ae0d5f835c0f08a5d4a06fa92661494fcce902c8
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.0.4"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_deanon_typedef(struct psi_decl_arg *def)
134 {
135 switch (def->type->type) {
136 case PSI_T_STRUCT:
137 if (!psi_decl_type_is_anon(def->type->name, "struct")) {
138 return;
139 }
140 break;
141 case PSI_T_UNION:
142 if (!psi_decl_type_is_anon(def->type->name, "union")) {
143 return;
144 }
145 break;
146 case PSI_T_ENUM:
147 if (!psi_decl_type_is_anon(def->type->name, "enum")) {
148 return;
149 }
150 break;
151 default:
152 return;
153 }
154 free(def->type->name);
155 def->type->name = strdup(def->var->name);
156 }
157 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
158 {
159 assert(def);
160 if (!P->types) {
161 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
162 }
163 psi_parser_proc_deanon_typedef(def);
164 P->types = psi_plist_add(P->types, &def);
165 }
166 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
167 assert(cnst);
168 if (!P->consts) {
169 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
170 }
171 P->consts = psi_plist_add(P->consts, &cnst);
172
173 }
174 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
175 assert(decl);
176
177 if (psi_decl_is_blacklisted(decl->func->var->name)) {
178 psi_decl_free(&decl);
179 return;
180 }
181
182 if (!P->decls) {
183 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
184 }
185 P->decls = psi_plist_add(P->decls, &decl);
186 }
187 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
188 assert(impl);
189 if (!P->impls) {
190 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
191 }
192 P->impls = psi_plist_add(P->impls, &impl);
193 }
194
195 /* end code */
196
197 #line 198 "src/parser_proc.c" /* glr.c:264 */
198
199 #include <stdio.h>
200 #include <stdlib.h>
201 #include <string.h>
202
203 #ifndef YY_
204 # if defined YYENABLE_NLS && YYENABLE_NLS
205 # if ENABLE_NLS
206 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
207 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
208 # endif
209 # endif
210 # ifndef YY_
211 # define YY_(Msgid) Msgid
212 # endif
213 #endif
214
215 #ifndef YYFREE
216 # define YYFREE free
217 #endif
218 #ifndef YYMALLOC
219 # define YYMALLOC malloc
220 #endif
221 #ifndef YYREALLOC
222 # define YYREALLOC realloc
223 #endif
224
225 #define YYSIZEMAX ((size_t) -1)
226
227 #ifdef __cplusplus
228 typedef bool yybool;
229 #else
230 typedef unsigned char yybool;
231 #endif
232 #define yytrue 1
233 #define yyfalse 0
234
235 #ifndef YYSETJMP
236 # include <setjmp.h>
237 # define YYJMP_BUF jmp_buf
238 # define YYSETJMP(Env) setjmp (Env)
239 /* Pacify clang. */
240 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
241 #endif
242
243 #ifndef YY_ATTRIBUTE
244 # if (defined __GNUC__ \
245 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
246 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
247 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
248 # else
249 # define YY_ATTRIBUTE(Spec) /* empty */
250 # endif
251 #endif
252
253 #ifndef YY_ATTRIBUTE_PURE
254 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
255 #endif
256
257 #ifndef YY_ATTRIBUTE_UNUSED
258 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
259 #endif
260
261 #if !defined _Noreturn \
262 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
263 # if defined _MSC_VER && 1200 <= _MSC_VER
264 # define _Noreturn __declspec (noreturn)
265 # else
266 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
267 # endif
268 #endif
269
270 /* Suppress unused-variable warnings by "using" E. */
271 #if ! defined lint || defined __GNUC__
272 # define YYUSE(E) ((void) (E))
273 #else
274 # define YYUSE(E) /* empty */
275 #endif
276
277 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
278 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
279 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
280 _Pragma ("GCC diagnostic push") \
281 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
282 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
283 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
284 _Pragma ("GCC diagnostic pop")
285 #else
286 # define YY_INITIAL_VALUE(Value) Value
287 #endif
288 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
289 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
290 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
291 #endif
292 #ifndef YY_INITIAL_VALUE
293 # define YY_INITIAL_VALUE(Value) /* Nothing. */
294 #endif
295
296
297 #ifndef YYASSERT
298 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
299 #endif
300
301 /* YYFINAL -- State number of the termination state. */
302 #define YYFINAL 169
303 /* YYLAST -- Last index in YYTABLE. */
304 #define YYLAST 3650
305
306 /* YYNTOKENS -- Number of terminals. */
307 #define YYNTOKENS 140
308 /* YYNNTS -- Number of nonterminals. */
309 #define YYNNTS 137
310 /* YYNRULES -- Number of rules. */
311 #define YYNRULES 630
312 /* YYNRULES -- Number of states. */
313 #define YYNSTATES 896
314 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
315 #define YYMAXRHS 13
316 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
317 accessed by $0, $-1, etc., in any rule. */
318 #define YYMAXLEFT 0
319
320 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
321 #define YYUNDEFTOK 2
322 #define YYMAXUTOK 394
323
324 #define YYTRANSLATE(YYX) \
325 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
326
327 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
328 static const unsigned char yytranslate[] =
329 {
330 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
356 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
357 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
358 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
359 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
360 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
361 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
362 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
363 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
364 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
365 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
366 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
367 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
368 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
369 135, 136, 137, 138, 139
370 };
371
372 #if YYDEBUG
373 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
374 static const unsigned short int yyrline[] =
375 {
376 0, 424, 424, 424, 424, 424, 424, 424, 424, 424,
377 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
378 425, 425, 425, 425, 426, 426, 426, 426, 426, 426,
379 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
380 426, 426, 426, 427, 427, 427, 427, 427, 427, 427,
381 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
382 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
383 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
384 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
385 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
386 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
387 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
388 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
389 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
390 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
391 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
392 427, 428, 428, 428, 428, 428, 428, 428, 428, 428,
393 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
394 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
395 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
396 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
397 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
398 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
399 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
400 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
401 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
402 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
403 428, 428, 428, 428, 428, 428, 428, 432, 433, 436,
404 437, 440, 441, 442, 443, 449, 457, 460, 463, 464,
405 465, 468, 471, 474, 477, 483, 489, 492, 498, 521,
406 525, 529, 534, 538, 542, 546, 553, 554, 558, 559,
407 563, 564, 565, 569, 570, 574, 575, 579, 580, 581,
408 585, 586, 590, 591, 592, 593, 594, 595, 596, 600,
409 605, 613, 616, 619, 620, 626, 631, 639, 642, 646,
410 650, 657, 661, 665, 669, 674, 684, 694, 699, 704,
411 708, 714, 723, 726, 730, 734, 740, 747, 753, 754,
412 755, 756, 760, 763, 794, 801, 802, 803, 804, 808,
413 811, 820, 826, 829, 835, 838, 844, 845, 853, 864,
414 873, 885, 886, 890, 900, 909, 921, 924, 927, 931,
415 935, 939, 944, 949, 957, 958, 959, 965, 968, 971,
416 977, 978, 982, 985, 988, 994, 997, 1000, 1008, 1020,
417 1023, 1026, 1029, 1036, 1039, 1049, 1052, 1055, 1058, 1059,
418 1060, 1064, 1067, 1070, 1081, 1084, 1090, 1091, 1095, 1096,
419 1100, 1104, 1110, 1111, 1117, 1120, 1126, 1129, 1132, 1138,
420 1142, 1143, 1147, 1148, 1152, 1153, 1160, 1161, 1165, 1172,
421 1183, 1190, 1201, 1208, 1219, 1230, 1244, 1245, 1257, 1260,
422 1263, 1269, 1272, 1279, 1282, 1288, 1297, 1309, 1317, 1320,
423 1330, 1343, 1348, 1356, 1366, 1376, 1379, 1383, 1389, 1403,
424 1420, 1423, 1429, 1436, 1446, 1453, 1456, 1462, 1467, 1475,
425 1479, 1483, 1487, 1491, 1495, 1502, 1506, 1510, 1514, 1518,
426 1522, 1528, 1532, 1539, 1542, 1554, 1558, 1562, 1568, 1581,
427 1594, 1607, 1610, 1617, 1618, 1622, 1625, 1628, 1631, 1637,
428 1641, 1648, 1651, 1654, 1657, 1668, 1671, 1677, 1678, 1684,
429 1687, 1693, 1694, 1704, 1707, 1714, 1719, 1724, 1734, 1737,
430 1743, 1746, 1752, 1759, 1766, 1767, 1768, 1769, 1770, 1771,
431 1772, 1773, 1774, 1778, 1781, 1787, 1790, 1793, 1796, 1799,
432 1805, 1809, 1817, 1818, 1822, 1829, 1832, 1835, 1838, 1842,
433 1845, 1851, 1855, 1863, 1870, 1875, 1883, 1891, 1892, 1893,
434 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1904, 1907, 1913,
435 1916, 1922, 1923, 1927, 1930, 1936, 1939, 1945, 1952, 1956,
436 1963, 1966, 1969, 1975, 1982, 1985, 1988, 1995, 2000, 2008,
437 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2019, 2022, 2028,
438 2031, 2037, 2044, 2045, 2049, 2056, 2059, 2065, 2073, 2076,
439 2082
440 };
441 #endif
442
443 #if YYDEBUG || YYERROR_VERBOSE || 1
444 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
445 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
446 static const char *const yytname[] =
447 {
448 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
449 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
450 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
451 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
452 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
453 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
454 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
455 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
456 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
457 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
458 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
459 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
460 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
461 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
462 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
463 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
464 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
465 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
466 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
467 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
468 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
469 "$accept", "binary_op_token", "unary_op_token", "name_token",
470 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
471 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
472 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
473 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_special_name_token",
474 "cpp_macro_decl", "cpp_macro_sig", "cpp_macro_sig_args",
475 "cpp_macro_decl_tokens", "cpp_macro_decl_token_list", "cpp_macro_exp",
476 "cpp_macro_call_args", "cpp_macro_call_arg_list", "constant",
477 "constant_type", "constant_type_token", "impl_def_val",
478 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
479 "typedef_decl", "typedef_anon_decl", "qualified_decl_type", "decl_type",
480 "decl_type_complex", "decl_type_simple", "decl_real_type", "int_signed",
481 "int_width", "decl_int_type", "int_signed_types", "signed_short_types",
482 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
483 "ignored_quoted_strings", "decl_ext_var_stmt", "decl_ext_var",
484 "decl_ext_var_list", "decl_vars", "ignored_decl", "ignored_decl_body",
485 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
486 "decl_func_body", "decl_functor_body", "decl_functor", "decl_func",
487 "decl_args", "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var",
488 "decl_union", "decl_struct", "decl_struct_args", "struct_args_block",
489 "struct_args", "struct_arg_var_list", "decl_vars_with_layout",
490 "decl_enum", "decl_enum_items", "decl_enum_item", "num_exp", "number",
491 "sizeof", "sizeof_body", "sizeof_body_notypes", "enum_name",
492 "union_name", "struct_name", "optional_name", "optional_comma",
493 "decl_layout", "align_and_size", "array_size", "indirection", "pointers",
494 "asterisks", "asterisk", "impl", "impl_func", "impl_args", "impl_arg",
495 "impl_var", "impl_type", "impl_type_token", "impl_stmts", "impl_stmt",
496 "let_stmt", "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
497 "let_callback", "let_func", "let_func_token", "let_func_exps",
498 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
499 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
500 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
501 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
502 "byref", YY_NULLPTR
503 };
504 #endif
505
506 #define YYPACT_NINF -699
507 #define YYTABLE_NINF -629
508
509 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
510 STATE-NUM. */
511 static const short int yypact[] =
512 {
513 497, -699, -699, -699, -699, -699, 60, -699, -699, 2504,
514 1667, 2537, -699, -699, 754, 466, 3359, 3359, 3359, 71,
515 25, 265, 51, -699, 1634, 1893, 42, 497, -699, -699,
516 -699, -699, -699, 2730, -699, -699, -699, -699, 284, 79,
517 -699, -699, -699, 68, -699, -20, -699, -699, 87, 99,
518 107, -699, -699, -699, -699, 113, -699, 115, -699, -699,
519 -699, -699, -699, 842, -699, 110, 75, -699, -699, -699,
520 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
521 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
522 -699, -699, -699, -699, -699, -699, -699, 2843, 10, -699,
523 -699, -699, -699, 3359, 3359, 3359, 661, -699, 88, -699,
524 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
525 -699, -699, 688, -699, -699, -699, -699, 149, 968, 968,
526 24, -699, 688, 2391, 2504, 3359, 3359, 2006, 143, -699,
527 -699, -699, 157, 3359, 146, 146, 111, 111, 169, -699,
528 -699, 191, 200, -699, 110, 202, -699, -699, 196, 1893,
529 193, 198, -699, 212, -699, 2119, 1401, -20, 193, -699,
530 -699, 205, -699, 204, 3359, -699, 234, -699, 100, -699,
531 -699, -699, 359, -699, -699, 213, 215, 2311, 2311, 3359,
532 478, 3359, -699, -699, 110, -699, -699, -699, -699, -699,
533 -699, 2730, -699, -699, -699, -699, -699, -699, -699, 129,
534 968, -699, -699, -699, -699, -699, -699, -699, -699, -699,
535 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
536 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
537 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
538 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
539 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
540 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
541 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
542 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
543 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
544 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
545 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
546 -699, -699, -699, 968, -699, -699, -699, -699, -699, -699,
547 -699, -699, 126, 2391, -699, -699, -699, -699, 2956, 2391,
548 225, 3513, -699, 227, 102, -699, 136, -699, -699, -699,
549 -699, 209, 224, 224, 58, 58, 3069, 221, -699, 193,
550 1220, -699, 478, 231, 233, 235, -699, 1334, -699, 110,
551 205, -699, -699, -699, 261, -699, -699, 242, -699, 16,
552 755, 2730, 144, 251, -699, -699, 154, 246, 257, -699,
553 2730, 2052, 2730, 3359, 2730, -699, -699, 18, -699, -699,
554 -699, -699, -699, 2278, -699, 259, 3359, 270, -699, 3359,
555 273, -699, -699, -699, -699, 635, 285, -699, 2834, 3359,
556 -699, -699, 2391, -699, -699, -699, -699, -699, -699, -699,
557 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
558 -699, 2391, 2391, -699, 276, 1446, 2730, 2730, -699, -699,
559 -699, -699, 110, -699, 1600, -699, -699, -699, -699, -699,
560 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
561 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
562 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
563 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
564 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
565 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
566 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
567 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
568 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
569 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
570 -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
571 -699, -699, -699, -699, 1094, -699, 185, 527, -699, -699,
572 -699, -699, -699, -699, 1487, -699, 271, 2278, -699, 3489,
573 -699, -699, 3359, -699, -699, -699, 40, 2843, 110, 204,
574 205, 247, 2345, 205, 248, 2278, 3359, 279, 277, 289,
575 3537, 287, 293, -699, 296, 301, 291, 305, 114, -699,
576 306, 312, -699, -699, -699, 2712, -699, 311, 2730, 3128,
577 110, 313, -699, -699, -699, 314, 3513, 315, 319, 3440,
578 -699, 330, 2006, 322, -699, -699, 2617, 292, 3359, 146,
579 146, -699, -699, 3359, 162, -699, -699, -699, 329, -699,
580 3537, -699, -699, -699, -699, -699, -699, -699, -699, -699,
581 -699, -699, -699, 326, 164, -699, 51, -699, 333, 2537,
582 337, 2947, -699, -699, -699, 2278, 2278, 339, -699, -699,
583 3069, -699, 340, 16, -699, -699, 341, 3537, -699, -699,
584 1713, -699, 2052, -699, 2730, -699, 51, 2730, -699, 3359,
585 3241, -699, -699, -699, -699, -699, -699, 347, 328, -699,
586 -699, -699, -699, 2391, 2391, 348, -699, 37, 349, -699,
587 322, 224, 224, 351, -699, 725, 354, 725, 346, 2278,
588 -699, 3465, -699, -699, 205, 205, 176, 281, 461, 360,
589 3537, -699, -699, -699, -699, 362, 2165, -699, 361, 2730,
590 170, -699, 364, 270, 365, 968, 3300, 3513, 3561, 374,
591 367, 368, 2730, 372, 349, 2730, 2730, -699, -699, 725,
592 -699, 51, 1600, -699, 2278, -699, -699, 360, -699, -699,
593 -699, 3241, -699, 376, 2278, 51, -699, 1826, 378, 383,
594 -699, 318, -699, -699, -699, 384, 381, 393, 322, 385,
595 -699, 389, -699, 39, -699, 3585, 394, 51, 3222, 395,
596 397, -699, 398, -699, -699, 106, -699, 396, 399, -699,
597 2730, -699, 407, 338, 405, 2278, 1713, 406, -699, 2052,
598 -699, -699, 409, 421, 422, 322, 416, 148, 1939, 3060,
599 277, -699, -699, -699, 423, 2165, -699, -699, 425, 427,
600 -699, 420, 424, 431, 432, -699, -699, 1713, -699, 440,
601 -699, 725, 51, 434, 2052, -699, 436, -699, 448, -699,
602 -699, -699, 1939, 451, 452, -699
603 };
604
605 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
606 Performed when YYTABLE does not specify something else to do. Zero
607 means the default is an error. */
608 static const unsigned short int yydefact[] =
609 {
610 277, 405, 402, 406, 400, 401, 403, 397, 398, 0,
611 396, 0, 282, 281, 0, 0, 0, 0, 511, 0,
612 0, 0, 628, 283, 0, 0, 0, 278, 279, 285,
613 284, 286, 290, 525, 388, 390, 389, 395, 409, 421,
614 394, 287, 289, 0, 288, 426, 444, 446, 447, 0,
615 0, 456, 292, 291, 293, 0, 294, 0, 404, 399,
616 33, 34, 616, 577, 24, 525, 531, 39, 38, 37,
617 35, 36, 32, 31, 25, 29, 28, 26, 27, 40,
618 585, 584, 582, 580, 581, 583, 579, 578, 586, 30,
619 614, 612, 611, 613, 610, 609, 457, 0, 527, 529,
620 41, 42, 396, 0, 0, 0, 0, 445, 432, 387,
621 296, 307, 304, 306, 308, 309, 320, 317, 318, 315,
622 321, 316, 0, 319, 310, 311, 312, 0, 337, 337,
623 0, 300, 0, 0, 0, 511, 511, 0, 0, 372,
624 377, 467, 376, 0, 519, 519, 391, 392, 393, 508,
625 358, 406, 397, 361, 0, 0, 357, 386, 0, 0,
626 0, 0, 630, 0, 629, 396, 0, 426, 0, 1,
627 280, 521, 468, 0, 526, 411, 415, 413, 417, 410,
628 407, 422, 409, 408, 430, 0, 0, 458, 458, 0,
629 0, 0, 526, 532, 525, 470, 528, 530, 391, 392,
630 393, 0, 431, 323, 324, 325, 327, 328, 326, 322,
631 337, 302, 297, 68, 43, 44, 45, 46, 47, 48,
632 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
633 59, 60, 61, 62, 63, 64, 65, 66, 67, 158,
634 159, 69, 70, 71, 72, 73, 74, 75, 76, 77,
635 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
636 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
637 98, 99, 100, 101, 102, 108, 106, 107, 105, 103,
638 104, 109, 110, 111, 112, 113, 114, 115, 116, 117,
639 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
640 128, 129, 130, 131, 132, 160, 133, 134, 135, 136,
641 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
642 147, 148, 149, 150, 151, 152, 156, 153, 154, 155,
643 157, 339, 305, 338, 298, 313, 314, 299, 322, 301,
644 347, 348, 0, 0, 22, 23, 20, 21, 0, 0,
645 350, 303, 349, 457, 391, 510, 392, 509, 373, 369,
646 378, 0, 0, 0, 0, 0, 0, 0, 295, 0,
647 0, 436, 0, 0, 0, 0, 437, 0, 472, 525,
648 521, 416, 412, 418, 419, 414, 423, 0, 424, 459,
649 0, 525, 0, 460, 461, 463, 0, 487, 513, 485,
650 0, 628, 0, 0, 0, 622, 623, 0, 553, 556,
651 555, 557, 558, 0, 559, 0, 0, 433, 434, 0,
652 0, 330, 340, 507, 506, 0, 0, 502, 0, 0,
653 345, 342, 352, 2, 3, 4, 5, 6, 7, 8,
654 9, 10, 11, 13, 12, 14, 15, 16, 17, 18,
655 19, 0, 0, 370, 0, 0, 0, 0, 475, 474,
656 476, 473, 525, 469, 362, 438, 186, 161, 162, 163,
657 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
658 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
659 184, 185, 274, 275, 187, 188, 189, 190, 191, 192,
660 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
661 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
662 213, 214, 215, 216, 217, 218, 224, 222, 223, 221,
663 219, 220, 225, 226, 227, 228, 229, 230, 231, 232,
664 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
665 243, 244, 245, 246, 247, 248, 276, 249, 250, 251,
666 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
667 262, 263, 264, 265, 266, 267, 268, 272, 269, 270,
668 271, 273, 442, 443, 0, 440, 0, 0, 371, 425,
669 498, 496, 495, 497, 0, 522, 0, 0, 499, 0,
670 489, 500, 0, 471, 420, 428, 0, 466, 0, 464,
671 521, 0, 0, 521, 0, 0, 514, 0, 0, 0,
672 605, 0, 0, 604, 42, 0, 0, 0, 0, 625,
673 0, 0, 599, 533, 554, 0, 455, 0, 0, 331,
674 525, 0, 503, 505, 341, 0, 354, 0, 353, 0,
675 343, 0, 0, 515, 381, 374, 382, 0, 383, 519,
676 519, 380, 379, 0, 498, 366, 367, 368, 0, 364,
677 363, 439, 441, 534, 546, 547, 548, 549, 545, 550,
678 551, 552, 544, 0, 0, 538, 628, 543, 24, 0,
679 0, 0, 523, 493, 524, 0, 0, 0, 429, 427,
680 465, 450, 0, 0, 462, 448, 0, 488, 486, 484,
681 0, 560, 628, 603, 0, 542, 628, 0, 624, 0,
682 600, 597, 621, 454, 435, 332, 335, 0, 333, 504,
683 501, 346, 351, 0, 0, 0, 375, 0, 480, 477,
684 515, 0, 0, 0, 356, 0, 0, 0, 540, 0,
685 491, 0, 492, 452, 521, 521, 498, 0, 31, 30,
686 566, 571, 567, 569, 570, 41, 0, 606, 617, 0,
687 0, 626, 616, 602, 0, 337, 0, 355, 344, 0,
688 516, 0, 0, 0, 480, 385, 384, 453, 535, 0,
689 539, 628, 362, 490, 0, 451, 449, 0, 568, 591,
690 577, 600, 592, 0, 0, 628, 572, 628, 0, 0,
691 627, 0, 329, 334, 336, 0, 0, 0, 515, 481,
692 478, 0, 536, 0, 541, 494, 0, 628, 0, 587,
693 0, 619, 618, 607, 561, 0, 520, 0, 0, 482,
694 0, 479, 0, 0, 0, 0, 0, 0, 608, 628,
695 615, 598, 0, 0, 0, 515, 0, 0, 593, 0,
696 499, 589, 564, 562, 588, 0, 576, 620, 0, 0,
697 483, 0, 0, 0, 594, 595, 573, 0, 563, 0,
698 517, 0, 628, 0, 628, 590, 0, 537, 0, 574,
699 596, 518, 593, 0, 0, 575
700 };
701
702 /* YYPGOTO[NTERM-NUM]. */
703 static const short int yypgoto[] =
704 {
705 -699, -327, -119, -7, 153, -699, -699, -699, 454, -699,
706 -699, -699, -699, -699, -699, -699, -699, -699, -699, 355,
707 -699, -699, -699, -126, -699, -291, -699, -699, -699, -699,
708 -699, -298, -699, -699, 334, -161, 26, -153, -160, 1,
709 -699, -699, -699, 471, -699, -699, 331, -699, -699, -699,
710 -699, 344, -699, -699, -699, -699, -194, -699, -130, -699,
711 -72, 491, 35, 7, 43, -699, -699, 332, -699, -96,
712 -2, -33, -699, -699, 159, -337, -699, -266, -699, 6,
713 -699, -94, -356, -699, -117, -699, 104, -699, -424, -415,
714 77, -699, -686, -128, -348, -61, -4, -699, 437, -699,
715 513, -699, -211, -651, -698, -699, 173, -371, -699, -331,
716 -664, 147, -209, -699, -699, -666, -699, -699, -308, -338,
717 -699, -699, -699, -246, -699, -386, -381, -367, -699, -699,
718 -699, -699, -699, -699, -163, -21, -671
719 };
720
721 /* YYDEFGOTO[NTERM-NUM]. */
722 static const short int yydefgoto[] =
723 {
724 -1, 696, 597, 171, 331, 582, 26, 27, 28, 29,
725 30, 127, 128, 129, 130, 337, 131, 132, 133, 210,
726 211, 727, 728, 332, 333, 351, 647, 648, 31, 155,
727 156, 668, 669, 32, 138, 653, 654, 655, 33, 34,
728 35, 36, 37, 38, 39, 40, 180, 382, 385, 183,
729 41, 186, 606, 42, 43, 202, 773, 44, 583, 584,
730 585, 45, 46, 47, 141, 49, 50, 392, 393, 394,
731 51, 598, 52, 53, 459, 460, 657, 783, 819, 143,
732 398, 399, 620, 600, 601, 641, 427, 55, 144, 145,
733 149, 617, 738, 362, 378, 173, 419, 98, 99, 56,
734 57, 684, 685, 621, 686, 687, 407, 408, 409, 861,
735 862, 863, 762, 763, 764, 100, 847, 864, 803, 873,
736 874, 410, 631, 774, 411, 875, 623, 101, 808, 832,
737 412, 413, 414, 628, 629, 625, 164
738 };
739
740 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
741 positive, shift that token. If negative, reduce the rule whose
742 number is the opposite. If YYTABLE_NINF, syntax error. */
743 static const short int yytable[] =
744 {
745 172, 163, 96, 334, 191, 97, 54, 417, 108, 146,
746 147, 148, 109, 142, 349, 622, 352, 363, 364, 365,
747 157, 599, 140, 632, 452, 456, 457, 391, 391, 174,
748 371, 659, 603, 54, 624, 748, 634, 624, 376, 766,
749 660, 139, 169, 48, 765, 107, 761, 788, 65, 791,
750 335, 158, 428, 48, 784, 633, 160, 635, 431, 66,
751 168, 192, 780, 715, 48, 66, 698, 48, 48, 58,
752 48, 59, 781, 699, 150, 1, 2, 151, 4, 5,
753 6, 152, 8, 153, 421, 181, 4, 5, 154, 458,
754 195, 822, 802, 102, 455, 162, 198, 199, 200, 184,
755 765, 452, 806, 842, 452, 185, 383, 157, 670, 384,
756 400, 401, 402, 403, 404, 209, 405, 406, -447, -467,
757 -456, -467, 201, 62, 850, 338, 350, 353, 354, 356,
758 97, 187, 839, 416, 196, 142, 360, -391, -512, 188,
759 748, 646, -519, 336, 140, 718, 361, -519, 719, 189,
760 366, 190, 423, 424, 829, 103, 104, 105, 425, 66,
761 649, 650, 193, 358, 142, 799, 800, 380, 418, 870,
762 426, -392, -512, 140, 359, 865, 844, 610, 611, 212,
763 765, 361, 397, 887, 415, 395, 395, 613, 614, -456,
764 192, 802, 139, -365, 369, -365, -365, 746, 747, 765,
765 107, 878, 48, 810, 638, -512, 865, -498, 48, -498,
766 -498, 765, 355, 357, -359, 634, 90, 91, 92, 93,
767 94, 95, 673, -360, 349, 367, 352, 368, 659, 370,
768 349, 888, 352, 659, 372, 373, 379, 660, 691, 465,
769 381, 693, 660, 377, 454, 387, 388, 420, 80, 81,
770 82, 83, 84, 85, 86, 87, 88, 432, 453, 707,
771 455, 464, 701, 587, 588, 705, 589, 604, 605, 1,
772 2, 3, 4, 5, 6, 7, 8, 400, 401, 402,
773 403, 404, 9, 405, 406, 612, 615, 102, 175, 176,
774 177, 616, 636, 178, 11, 656, 1, 2, 3, 4,
775 5, 6, 7, 8, 638, 639, 179, 643, 651, 9,
776 692, 702, 706, 349, 102, 352, 709, 710, 602, 452,
777 711, 11, 452, 452, 713, 715, 767, 712, 714, 739,
778 609, 716, 349, 349, 352, 352, 350, 717, 720, 751,
779 752, 430, 350, 721, 723, 624, 730, 731, 732, 103,
780 104, 105, 106, 733, 760, 735, 22, 737, 172, 463,
781 744, 745, 776, 175, 176, 177, -24, 618, 178, 626,
782 749, 630, 753, 754, 755, 192, 135, 136, 18, 106,
783 775, 179, 779, 782, 787, 607, 792, 174, 159, 789,
784 797, 157, 804, 793, 805, 807, 627, -601, 811, 815,
785 817, 663, 816, 820, 785, 786, 795, 796, 827, 637,
786 760, 833, 380, 652, 834, 835, 837, 836, 838, 840,
787 841, 831, 645, 661, 662, 350, 640, 843, 853, 846,
788 848, 856, 849, 854, 690, 857, 670, 858, 825, 866,
789 624, 714, 777, 778, 350, 350, 868, 869, 828, 871,
790 452, 452, 391, 142, 851, 881, 882, 877, 192, 879,
791 880, 658, 140, 867, 883, 886, 884, 889, 852, 891,
792 1, 2, 3, 4, 5, 6, 7, 8, 799, 800,
793 892, 170, 624, 134, 894, 895, 422, 339, 102, 859,
794 760, 624, 656, 801, 824, 11, 740, 656, 890, 736,
795 374, 1, 2, 3, 4, 5, 6, 7, 8, 760,
796 182, 375, 672, 386, 9, 167, 704, 624, 821, 10,
797 396, 760, 708, 770, 461, 624, 11, 12, 13, 642,
798 674, 741, 742, 675, 161, 197, 790, 676, 14, 677,
799 678, 679, 680, 681, 682, 586, 885, 619, 798, 872,
800 135, 136, 18, 106, 893, 826, 771, 0, 0, 0,
801 683, 80, 81, 82, 83, 84, 85, 86, 87, 88,
802 400, 401, 402, 403, 404, 0, 405, 406, 0, 729,
803 15, 16, 17, 18, 19, 20, 21, 137, 22, 0,
804 0, 0, 0, 0, 0, 697, 0, 0, 0, 0,
805 195, 0, 0, 0, 700, 724, 0, 0, 0, 397,
806 395, 0, 0, 23, 349, 349, 352, 352, 24, 0,
807 25, 0, 0, 172, 0, 0, 0, 0, 0, 0,
808 0, 0, 726, 0, 0, 0, 192, 0, 0, 1,
809 2, 3, 4, 5, 6, 7, 8, 0, 0, 812,
810 142, 360, 174, 0, 0, 142, 743, 102, 658, 140,
811 0, 423, 424, 658, 140, 1, 2, 3, 4, 5,
812 6, 7, 8, 0, 0, 0, 0, 0, 154, 426,
813 0, 768, 0, 102, 418, 0, 0, 418, 0, 0,
814 157, 60, 0, 463, 0, 769, 0, 0, 0, 607,
815 61, 0, 0, 0, 0, 62, 63, 203, 204, 205,
816 64, 0, 627, 0, 0, 0, 0, 0, 0, 103,
817 104, 105, 0, 0, 0, 0, 350, 350, 674, 0,
818 0, 675, 0, 0, 0, 676, 809, 677, 678, 679,
819 680, 681, 682, 0, 0, 103, 104, 105, 0, 818,
820 0, 0, 661, 662, 67, 68, 69, 70, 71, 1,
821 2, 3, 4, 5, 6, 7, 8, 0, 418, 814,
822 823, 0, 608, 0, 0, 0, 72, 102, 73, 74,
823 75, 76, 77, 78, 110, 79, 0, 0, 80, 81,
824 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
825 92, 93, 94, 95, 0, 0, 0, 855, 0, 206,
826 0, 207, 208, 860, 0, 0, 0, 0, 0, 0,
827 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
828 121, 122, 0, 123, 124, 125, 126, 0, 0, 103,
829 104, 105, -577, 0, 860, -577, -577, -577, -577, -577,
830 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
831 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
832 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
833 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
834 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
835 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
836 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
837 -577, -577, 0, -577, 0, -577, -577, -577, -577, -577,
838 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
839 -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
840 -577, -577, -577, -577, -577, -577, -577, -577, -577, 0,
841 -577, -577, 0, -577, -577, -577, -577, -577, 213, 0,
842 0, 214, 215, 216, 217, 218, 219, 220, 221, 222,
843 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
844 233, 234, 235, 236, 237, 238, 239, 240, 0, 241,
845 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
846 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
847 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
848 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
849 282, 283, 284, 285, 286, 287, 288, 289, 0, 290,
850 0, 291, 292, 293, 294, 295, 296, 297, 298, 299,
851 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
852 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
853 320, 321, 322, 323, 324, 0, 0, 325, 0, 326,
854 327, 328, 329, 330, 466, 0, 0, 467, 468, 469,
855 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
856 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
857 490, 491, 492, 493, 0, 494, 495, 496, 497, 498,
858 370, 671, 499, 500, 501, 502, 503, 504, 505, 506,
859 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
860 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
861 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
862 537, 538, 539, 540, 0, 541, 0, 542, 543, 544,
863 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
864 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
865 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
866 575, 0, 0, 576, 0, 577, 578, 579, 580, 581,
867 466, 0, 0, 467, 468, 469, 470, 471, 472, 473,
868 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
869 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
870 0, 494, 495, 496, 497, 498, 370, 0, 499, 500,
871 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
872 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
873 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
874 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
875 0, 541, 0, 542, 543, 544, 545, 546, 547, 548,
876 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
877 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
878 569, 570, 571, 572, 573, 574, 575, 60, 0, 576,
879 0, 577, 578, 579, 580, 581, 61, 0, 0, 0,
880 0, 62, 63, 590, 0, 0, 64, 591, 0, 592,
881 0, 593, 342, 0, 0, 0, 594, 0, 0, 0,
882 0, 0, 0, 595, 0, 0, 0, 0, 0, 0,
883 0, 344, 345, 66, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 346, 347, 0, 0, 0, 0,
885 67, 68, 69, 70, 71, 1, 2, 3, 4, 5,
886 6, 7, 8, 0, 0, 0, 0, 0, 9, 0,
887 0, 0, 72, 102, 73, 74, 75, 76, 77, 78,
888 11, 79, 0, 0, 80, 81, 82, 83, 84, 85,
889 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
890 1, 2, 3, 4, 5, 6, 7, 8, 596, 0,
891 0, 0, 0, 9, 0, 0, 0, 0, 102, 0,
892 0, 0, 0, 0, 0, 11, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 135, 136, 18, 106, 0,
894 60, 1, 2, 3, 4, 5, 6, 7, 8, 61,
895 0, 0, 0, 0, 62, 63, 590, 0, 0, 688,
896 591, 0, 592, 0, 593, 342, 11, 0, 0, 594,
897 0, 0, 137, 0, 0, 0, 0, 0, 0, 0,
898 135, 136, 18, 106, 344, 345, 66, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 346, 347, 0,
900 0, 0, 0, 67, 68, 69, 70, 71, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 652, 0, 0,
902 0, 103, 104, 105, 689, 72, 0, 73, 74, 75,
903 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
904 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
905 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
906 0, 0, 61, 0, 0, 0, 0, 62, 63, 664,
907 665, 666, 64, 591, 0, 592, 667, 593, 342, 0,
908 0, 0, 594, 0, 0, 0, 0, 0, 1, 2,
909 3, 4, 5, 6, 7, 8, 0, 344, 345, 66,
910 0, 9, 0, 0, 0, 0, 165, 0, 0, 0,
911 346, 347, 0, 11, 0, 0, 67, 68, 69, 70,
912 71, 1, 2, 3, 4, 5, 6, 7, 8, 0,
913 0, 0, 0, 0, 9, 0, 0, 0, 72, 102,
914 73, 74, 75, 76, 77, 78, 11, 79, 0, 0,
915 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
916 90, 91, 92, 93, 94, 95, 60, 166, 103, 104,
917 105, 106, 0, 0, 0, 61, 0, 0, 0, 0,
918 62, 63, 756, 0, 0, 64, 591, 0, 592, 0,
919 593, 342, 0, 0, 0, 594, 0, 0, 0, 0,
920 0, 103, 104, 105, 106, 0, 0, 162, 0, 0,
921 344, 345, 66, 0, 0, 0, 0, 0, 0, 0,
922 0, 0, 0, 346, 347, 0, 0, 0, 0, 67,
923 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
925 0, 72, 757, 758, 74, 75, 76, 77, 78, 0,
926 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
927 87, 88, 759, 90, 91, 92, 93, 94, 95, 60,
928 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
929 0, 0, 0, 62, 63, 590, 0, 0, 64, 591,
930 0, 592, 0, 593, 342, 0, 0, 0, 594, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
932 162, 0, 0, 344, 345, 66, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 346, 347, 0, 0,
934 830, 0, 67, 68, 69, 70, 71, 1, 2, 3,
935 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
936 9, 0, 0, 0, 72, 102, 73, 74, 75, 76,
937 77, 78, 11, 79, 0, 0, 80, 81, 82, 83,
938 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
939 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
940 0, 61, 0, 0, 0, 0, 62, 63, 590, 0,
941 0, 64, 591, -628, 592, 0, 593, 342, 0, 0,
942 0, 594, 0, 0, 0, 0, 0, 103, 104, 105,
943 106, 0, 0, 162, 0, 0, 344, 345, 66, 0,
944 0, 0, 0, 0, 0, 0, 0, 0, 0, 346,
945 347, 0, 0, 0, 0, 67, 68, 69, 70, 71,
946 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
947 0, 0, 0, 9, 0, 0, 0, 72, 102, 73,
948 74, 75, 76, 77, 78, 11, 79, 0, 0, 80,
949 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
950 91, 92, 93, 94, 95, 60, 0, 0, 0, 0,
951 0, 0, 0, 0, 61, 0, 0, 0, 0, 62,
952 63, 590, 0, 0, 64, 591, 0, 592, 0, 593,
953 342, 0, 0, 0, 594, 0, 0, 0, 0, 0,
954 135, 136, 18, 106, 0, 0, 162, 0, 0, 344,
955 345, 66, 0, 0, 0, 0, 0, 0, 0, 0,
956 0, 0, 346, 347, 0, 0, 0, 0, 67, 68,
957 69, 70, 71, 1, 2, 3, 4, 5, 6, 7,
958 8, 0, 0, 0, 0, 0, 9, 0, 0, 0,
959 72, 102, 73, 74, 75, 76, 77, 78, 11, 79,
960 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
961 88, 89, 90, 91, 92, 93, 94, 95, 60, 0,
962 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
963 0, 0, 62, 63, 756, 0, 0, 64, 591, 0,
964 592, 0, 593, 342, 0, 0, 0, 594, 0, 0,
965 0, 0, 0, 103, 104, 105, 106, 0, 0, 0,
966 0, 0, 344, 345, 66, 0, 0, 0, 0, 0,
967 0, 0, 0, 0, 0, 346, 347, 0, 0, 0,
968 0, 67, 68, 69, 70, 71, 0, 0, 0, 0,
969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 0, 72, 757, 758, 74, 75, 76, 77,
971 78, 0, 79, 0, 0, 80, 81, 82, 83, 84,
972 85, 86, 87, 88, 759, 90, 91, 92, 93, 94,
973 95, 60, 0, 0, 0, 0, 0, 0, 0, 0,
974 61, 0, 0, 0, 0, 62, 63, 590, 0, 0,
975 64, 591, 0, 592, 0, 593, 342, 0, 0, 0,
976 594, 0, 0, 0, 0, 1, 2, 3, 4, 5,
977 6, 7, 8, 0, 0, 344, 345, 66, 389, 0,
978 0, 0, 0, 102, 0, 0, 0, 0, 346, 347,
979 11, 0, 0, 0, 67, 68, 69, 70, 71, 1,
980 2, 3, 4, 5, 6, 7, 8, 0, 0, 0,
981 0, 0, 703, 0, 0, 0, 72, 102, 73, 74,
982 75, 76, 77, 78, 11, 79, 0, 0, 80, 81,
983 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
984 92, 93, 94, 95, 60, 103, 104, 105, 390, 0,
985 0, 0, 0, 61, 0, 0, 0, 0, 62, 63,
986 0, 0, 0, 64, 0, 0, 340, 0, 341, 342,
987 0, 0, 0, 343, 0, 0, 0, 0, 0, 103,
988 104, 105, 390, 0, 0, 0, 0, 0, 344, 345,
989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
990 0, 346, 347, 0, 0, 0, 0, 67, 68, 69,
991 70, 71, 0, 0, 0, 0, 0, 0, 0, 348,
992 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
993 0, 73, 74, 75, 76, 77, 78, 0, 79, 0,
994 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
995 89, 90, 91, 92, 93, 94, 95, 60, 0, 0,
996 0, 0, 0, 0, 0, 0, 61, 0, 0, 0,
997 0, 62, 63, 0, 0, 0, 64, 0, 0, 0,
998 0, 0, 0, 0, 0, 0, 65, 0, 0, 0,
999 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
1000 0, 0, 0, 66, 0, 0, 0, 0, 0, 102,
1001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1002 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
1003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1004 0, 0, 72, 0, 73, 74, 75, 76, 77, 78,
1005 0, 79, 0, 0, 80, 81, 82, 83, 84, 85,
1006 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1007 60, 103, 104, 105, 0, 0, 0, 0, 0, 61,
1008 0, 0, 0, 0, 62, 63, 0, 0, 0, 64,
1009 0, 0, 0, 0, 0, 0, 0, 0, 0, -525,
1010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
1012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, 67, 68, 69, 70, 71, 0, 0,
1014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 72, 0, 73, 74, 75,
1016 76, 77, 78, 0, 79, 0, 0, 80, 81, 82,
1017 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1018 93, 94, 95, 60, 0, 0, 0, 0, 0, 0,
1019 0, 0, 61, 722, 0, 0, 0, 62, 63, 0,
1020 0, 0, 64, 0, 433, 434, 435, 436, 437, 438,
1021 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
1022 449, 450, 0, 0, 0, 0, 0, 695, 0, 66,
1023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, 67, 68, 69, 70,
1025 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
1027 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
1028 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1029 90, 91, 92, 93, 94, 95, 60, 0, 0, 0,
1030 0, 0, 0, 0, 0, 61, 0, 0, 0, 0,
1031 62, 63, 0, 0, 0, 64, 0, 644, 0, 0,
1032 0, 0, 0, 0, 0, 194, 433, 434, 435, 436,
1033 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
1034 447, 448, 449, 450, 0, 0, 0, 0, 0, 451,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
1036 68, 69, 70, 71, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 72, 0, 73, 74, 75, 76, 77, 78, 0,
1039 79, 0, 0, 80, 81, 82, 83, 84, 85, 86,
1040 87, 88, 89, 90, 91, 92, 93, 94, 95, 60,
1041 0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
1042 0, 0, 0, 62, 63, 0, 0, 0, 64, 0,
1043 750, 0, 0, 0, 0, 0, 0, 0, 429, 433,
1044 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1045 444, 445, 446, 447, 448, 449, 450, 0, 0, 0,
1046 0, 0, 695, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, 67, 68, 69, 70, 71, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 72, 0, 73, 74, 75, 76,
1050 77, 78, 0, 79, 0, 0, 80, 81, 82, 83,
1051 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1052 94, 95, 60, 0, 0, 0, 0, 0, 0, 0,
1053 0, 61, 0, 0, 0, 0, 62, 63, 0, 0,
1054 0, 64, 0, 876, 0, 0, 0, 0, 0, 0,
1055 0, 462, 433, 434, 435, 436, 437, 438, 439, 440,
1056 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
1057 0, 0, 0, 0, 0, 695, 0, 0, 0, 0,
1058 0, 60, 0, 0, 0, 67, 68, 69, 70, 71,
1059 61, 0, 0, 0, 0, 62, 63, 0, 0, 0,
1060 64, 0, 0, 0, 0, 0, 0, 72, 0, 73,
1061 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
1062 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1063 91, 92, 93, 94, 95, 0, 0, 0, 0, 0,
1064 0, 0, 725, 0, 67, 68, 69, 70, 71, 0,
1065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 72, 0, 73, 74,
1067 75, 76, 77, 78, 0, 79, 0, 0, 80, 81,
1068 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1069 92, 93, 94, 95, 60, 0, 0, 0, 0, 0,
1070 0, 0, 0, 61, 0, 0, 845, 0, 772, 63,
1071 0, 0, 0, 64, 433, 434, 435, 436, 437, 438,
1072 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
1073 449, 450, 0, 0, 0, 0, 0, 695, 0, 0,
1074 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 60, 0, 0, 0, 67, 68, 69,
1076 70, 71, 61, 0, 0, 0, 0, 62, 63, 0,
1077 0, 0, 64, 0, 0, 0, 0, 0, 0, 72,
1078 0, 73, 74, 75, 76, 77, 78, 0, 79, 0,
1079 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1080 89, 90, 91, 92, 93, 94, 95, 0, 0, 0,
1081 0, 0, 60, 0, 813, 0, 67, 68, 69, 70,
1082 71, 61, 0, 0, 0, 0, 62, 63, 0, 0,
1083 0, 64, 0, 0, 0, 0, 0, 0, 72, 0,
1084 73, 74, 75, 76, 77, 78, 0, 79, 0, 0,
1085 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1086 90, 91, 92, 93, 94, 95, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 67, 68, 69, 70, 71,
1088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, 0, 0, 0, 0, 0, 72, 0, 73,
1090 74, 75, 76, 77, 78, 0, 79, 0, 0, 80,
1091 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1092 91, 92, 93, 94, 95, 734, 0, 0, 0, 0,
1093 0, 0, 433, 434, 435, 436, 437, 438, 439, 440,
1094 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
1095 794, 0, 0, 0, 0, 451, 0, 433, 434, 435,
1096 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1097 446, 447, 448, 449, 450, 0, 0, 0, 694, 0,
1098 695, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1099 442, 443, 444, 445, 446, 447, 448, 449, 450, 0,
1100 0, 0, 0, 0, 695, 433, 434, 435, 436, 437,
1101 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1102 448, 449, 450, 0, 0, 0, 0, 0, 451, 433,
1103 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1104 444, 445, 446, 447, 448, 449, 450, 0, 0, 0,
1105 0, 0, 695, 433, 434, 435, 436, 437, 438, 439,
1106 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1107 450, 0, 0, 0, 0, 0, 451, 433, 434, 435,
1108 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1109 446, 447, 448, 449, 450, 0, 0, 0, 0, 0,
1110 695
1111 };
1112
1113 static const short int yycheck[] =
1114 {
1115 33, 22, 9, 129, 65, 9, 0, 201, 10, 16,
1116 17, 18, 11, 15, 133, 401, 133, 145, 146, 147,
1117 19, 377, 15, 404, 351, 362, 363, 187, 188, 33,
1118 160, 455, 380, 27, 401, 686, 407, 404, 168, 710,
1119 455, 15, 0, 0, 710, 10, 710, 745, 32, 747,
1120 26, 26, 343, 10, 740, 37, 21, 413, 349, 49,
1121 25, 65, 25, 24, 21, 49, 26, 24, 25, 9,
1122 27, 11, 35, 33, 3, 4, 5, 6, 7, 8,
1123 9, 10, 11, 12, 210, 6, 7, 8, 17, 31,
1124 97, 789, 758, 22, 36, 44, 103, 104, 105, 31,
1125 766, 428, 766, 64, 431, 125, 6, 106, 464, 9,
1126 92, 93, 94, 95, 96, 122, 98, 99, 31, 32,
1127 32, 34, 34, 17, 18, 132, 133, 134, 135, 136,
1128 134, 32, 818, 194, 124, 137, 143, 35, 36, 32,
1129 791, 432, 31, 119, 137, 31, 35, 36, 34, 36,
1130 154, 36, 26, 27, 805, 84, 85, 86, 32, 49,
1131 451, 452, 87, 137, 166, 17, 18, 174, 201, 855,
1132 44, 35, 36, 166, 31, 846, 827, 33, 34, 30,
1133 846, 35, 189, 881, 191, 187, 188, 33, 34, 32,
1134 194, 857, 166, 31, 159, 33, 34, 33, 34, 865,
1135 165, 865, 159, 33, 34, 36, 877, 31, 165, 33,
1136 34, 877, 135, 136, 23, 586, 110, 111, 112, 113,
1137 114, 115, 37, 23, 343, 23, 343, 31, 652, 36,
1138 349, 882, 349, 657, 36, 23, 32, 652, 594, 369,
1139 6, 597, 657, 38, 35, 32, 31, 118, 100, 101,
1140 102, 103, 104, 105, 106, 107, 108, 32, 31, 615,
1141 36, 40, 610, 32, 31, 613, 31, 6, 26, 4,
1142 5, 6, 7, 8, 9, 10, 11, 92, 93, 94,
1143 95, 96, 17, 98, 99, 34, 40, 22, 4, 5,
1144 6, 34, 33, 9, 29, 455, 4, 5, 6, 7,
1145 8, 9, 10, 11, 34, 32, 22, 22, 32, 17,
1146 39, 64, 64, 432, 22, 432, 37, 40, 379, 646,
1147 31, 29, 649, 650, 31, 24, 712, 40, 32, 37,
1148 391, 40, 451, 452, 451, 452, 343, 32, 32, 695,
1149 696, 348, 349, 31, 33, 712, 33, 33, 33, 84,
1150 85, 86, 87, 34, 710, 25, 91, 35, 391, 366,
1151 31, 35, 34, 4, 5, 6, 33, 400, 9, 402,
1152 33, 404, 33, 33, 33, 379, 84, 85, 86, 87,
1153 33, 22, 34, 34, 33, 389, 40, 391, 123, 35,
1154 109, 390, 32, 749, 32, 34, 403, 33, 33, 25,
1155 32, 462, 35, 31, 741, 742, 754, 755, 32, 416,
1156 766, 33, 419, 121, 31, 97, 35, 33, 25, 34,
1157 31, 807, 429, 456, 457, 432, 425, 33, 32, 34,
1158 33, 24, 34, 34, 594, 97, 792, 32, 794, 33,
1159 807, 32, 733, 734, 451, 452, 25, 25, 804, 33,
1160 777, 778, 612, 455, 835, 35, 32, 34, 462, 34,
1161 33, 455, 455, 849, 33, 25, 34, 33, 835, 33,
1162 4, 5, 6, 7, 8, 9, 10, 11, 17, 18,
1163 32, 27, 849, 17, 33, 33, 333, 132, 22, 845,
1164 846, 858, 652, 32, 792, 29, 657, 657, 884, 652,
1165 166, 4, 5, 6, 7, 8, 9, 10, 11, 865,
1166 39, 167, 584, 182, 17, 24, 612, 884, 784, 22,
1167 188, 877, 616, 717, 365, 892, 29, 30, 31, 425,
1168 3, 659, 660, 6, 21, 98, 747, 10, 41, 12,
1169 13, 14, 15, 16, 17, 372, 877, 400, 757, 857,
1170 84, 85, 86, 87, 892, 801, 719, -1, -1, -1,
1171 33, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1172 92, 93, 94, 95, 96, -1, 98, 99, -1, 640,
1173 83, 84, 85, 86, 87, 88, 89, 121, 91, -1,
1174 -1, -1, -1, -1, -1, 602, -1, -1, -1, -1,
1175 607, -1, -1, -1, 608, 638, -1, -1, -1, 616,
1176 612, -1, -1, 116, 733, 734, 733, 734, 121, -1,
1177 123, -1, -1, 656, -1, -1, -1, -1, -1, -1,
1178 -1, -1, 639, -1, -1, -1, 640, -1, -1, 4,
1179 5, 6, 7, 8, 9, 10, 11, -1, -1, 775,
1180 652, 658, 656, -1, -1, 657, 663, 22, 652, 652,
1181 -1, 26, 27, 657, 657, 4, 5, 6, 7, 8,
1182 9, 10, 11, -1, -1, -1, -1, -1, 17, 44,
1183 -1, 714, -1, 22, 717, -1, -1, 720, -1, -1,
1184 689, 3, -1, 700, -1, 716, -1, -1, -1, 703,
1185 12, -1, -1, -1, -1, 17, 18, 19, 20, 21,
1186 22, -1, 719, -1, -1, -1, -1, -1, -1, 84,
1187 85, 86, -1, -1, -1, -1, 733, 734, 3, -1,
1188 -1, 6, -1, -1, -1, 10, 769, 12, 13, 14,
1189 15, 16, 17, -1, -1, 84, 85, 86, -1, 782,
1190 -1, -1, 785, 786, 66, 67, 68, 69, 70, 4,
1191 5, 6, 7, 8, 9, 10, 11, -1, 801, 776,
1192 791, -1, 17, -1, -1, -1, 88, 22, 90, 91,
1193 92, 93, 94, 95, 30, 97, -1, -1, 100, 101,
1194 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1195 112, 113, 114, 115, -1, -1, -1, 840, -1, 121,
1196 -1, 123, 124, 846, -1, -1, -1, -1, -1, -1,
1197 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1198 76, 77, -1, 79, 80, 81, 82, -1, -1, 84,
1199 85, 86, 0, -1, 877, 3, 4, 5, 6, 7,
1200 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
1201 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1202 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1203 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1204 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1205 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1206 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1207 78, 79, -1, 81, -1, 83, 84, 85, 86, 87,
1208 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1209 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1210 108, 109, 110, 111, 112, 113, 114, 115, 116, -1,
1211 118, 119, -1, 121, 122, 123, 124, 125, 0, -1,
1212 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1213 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1214 22, 23, 24, 25, 26, 27, 28, 29, -1, 31,
1215 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1216 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1217 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1218 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1219 72, 73, 74, 75, 76, 77, 78, 79, -1, 81,
1220 -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1221 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1222 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1223 112, 113, 114, 115, 116, -1, -1, 119, -1, 121,
1224 122, 123, 124, 125, 0, -1, -1, 3, 4, 5,
1225 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1226 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1227 26, 27, 28, 29, -1, 31, 32, 33, 34, 35,
1228 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1229 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1230 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1231 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1232 76, 77, 78, 79, -1, 81, -1, 83, 84, 85,
1233 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1234 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1235 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1236 116, -1, -1, 119, -1, 121, 122, 123, 124, 125,
1237 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
1238 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1239 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1240 -1, 31, 32, 33, 34, 35, 36, -1, 38, 39,
1241 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1242 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1243 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1244 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1245 -1, 81, -1, 83, 84, 85, 86, 87, 88, 89,
1246 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1247 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1248 110, 111, 112, 113, 114, 115, 116, 3, -1, 119,
1249 -1, 121, 122, 123, 124, 125, 12, -1, -1, -1,
1250 -1, 17, 18, 19, -1, -1, 22, 23, -1, 25,
1251 -1, 27, 28, -1, -1, -1, 32, -1, -1, -1,
1252 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1,
1253 -1, 47, 48, 49, -1, -1, -1, -1, -1, -1,
1254 -1, -1, -1, -1, 60, 61, -1, -1, -1, -1,
1255 66, 67, 68, 69, 70, 4, 5, 6, 7, 8,
1256 9, 10, 11, -1, -1, -1, -1, -1, 17, -1,
1257 -1, -1, 88, 22, 90, 91, 92, 93, 94, 95,
1258 29, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1259 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1260 4, 5, 6, 7, 8, 9, 10, 11, 124, -1,
1261 -1, -1, -1, 17, -1, -1, -1, -1, 22, -1,
1262 -1, -1, -1, -1, -1, 29, -1, -1, -1, -1,
1263 -1, -1, -1, -1, -1, 84, 85, 86, 87, -1,
1264 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1265 -1, -1, -1, -1, 17, 18, 19, -1, -1, 22,
1266 23, -1, 25, -1, 27, 28, 29, -1, -1, 32,
1267 -1, -1, 121, -1, -1, -1, -1, -1, -1, -1,
1268 84, 85, 86, 87, 47, 48, 49, -1, -1, -1,
1269 -1, -1, -1, -1, -1, -1, -1, 60, 61, -1,
1270 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1271 -1, -1, -1, -1, -1, -1, -1, 121, -1, -1,
1272 -1, 84, 85, 86, 87, 88, -1, 90, 91, 92,
1273 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1274 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1275 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1276 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
1277 20, 21, 22, 23, -1, 25, 26, 27, 28, -1,
1278 -1, -1, 32, -1, -1, -1, -1, -1, 4, 5,
1279 6, 7, 8, 9, 10, 11, -1, 47, 48, 49,
1280 -1, 17, -1, -1, -1, -1, 22, -1, -1, -1,
1281 60, 61, -1, 29, -1, -1, 66, 67, 68, 69,
1282 70, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1283 -1, -1, -1, -1, 17, -1, -1, -1, 88, 22,
1284 90, 91, 92, 93, 94, 95, 29, 97, -1, -1,
1285 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1286 110, 111, 112, 113, 114, 115, 3, 83, 84, 85,
1287 86, 87, -1, -1, -1, 12, -1, -1, -1, -1,
1288 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
1289 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1290 -1, 84, 85, 86, 87, -1, -1, 44, -1, -1,
1291 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1292 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1293 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1294 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1295 -1, 88, 89, 90, 91, 92, 93, 94, 95, -1,
1296 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1297 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1298 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1299 -1, -1, -1, 17, 18, 19, -1, -1, 22, 23,
1300 -1, 25, -1, 27, 28, -1, -1, -1, 32, -1,
1301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1302 44, -1, -1, 47, 48, 49, -1, -1, -1, -1,
1303 -1, -1, -1, -1, -1, -1, 60, 61, -1, -1,
1304 64, -1, 66, 67, 68, 69, 70, 4, 5, 6,
1305 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1306 17, -1, -1, -1, 88, 22, 90, 91, 92, 93,
1307 94, 95, 29, 97, -1, -1, 100, 101, 102, 103,
1308 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1309 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1310 -1, 12, -1, -1, -1, -1, 17, 18, 19, -1,
1311 -1, 22, 23, 24, 25, -1, 27, 28, -1, -1,
1312 -1, 32, -1, -1, -1, -1, -1, 84, 85, 86,
1313 87, -1, -1, 44, -1, -1, 47, 48, 49, -1,
1314 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1315 61, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1316 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
1317 -1, -1, -1, 17, -1, -1, -1, 88, 22, 90,
1318 91, 92, 93, 94, 95, 29, 97, -1, -1, 100,
1319 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1320 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1321 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1322 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
1323 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1324 84, 85, 86, 87, -1, -1, 44, -1, -1, 47,
1325 48, 49, -1, -1, -1, -1, -1, -1, -1, -1,
1326 -1, -1, 60, 61, -1, -1, -1, -1, 66, 67,
1327 68, 69, 70, 4, 5, 6, 7, 8, 9, 10,
1328 11, -1, -1, -1, -1, -1, 17, -1, -1, -1,
1329 88, 22, 90, 91, 92, 93, 94, 95, 29, 97,
1330 -1, -1, 100, 101, 102, 103, 104, 105, 106, 107,
1331 108, 109, 110, 111, 112, 113, 114, 115, 3, -1,
1332 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1,
1333 -1, -1, 17, 18, 19, -1, -1, 22, 23, -1,
1334 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
1335 -1, -1, -1, 84, 85, 86, 87, -1, -1, -1,
1336 -1, -1, 47, 48, 49, -1, -1, -1, -1, -1,
1337 -1, -1, -1, -1, -1, 60, 61, -1, -1, -1,
1338 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1340 -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
1341 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1342 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1343 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1344 12, -1, -1, -1, -1, 17, 18, 19, -1, -1,
1345 22, 23, -1, 25, -1, 27, 28, -1, -1, -1,
1346 32, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1347 9, 10, 11, -1, -1, 47, 48, 49, 17, -1,
1348 -1, -1, -1, 22, -1, -1, -1, -1, 60, 61,
1349 29, -1, -1, -1, 66, 67, 68, 69, 70, 4,
1350 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
1351 -1, -1, 17, -1, -1, -1, 88, 22, 90, 91,
1352 92, 93, 94, 95, 29, 97, -1, -1, 100, 101,
1353 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1354 112, 113, 114, 115, 3, 84, 85, 86, 87, -1,
1355 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1356 -1, -1, -1, 22, -1, -1, 25, -1, 27, 28,
1357 -1, -1, -1, 32, -1, -1, -1, -1, -1, 84,
1358 85, 86, 87, -1, -1, -1, -1, -1, 47, 48,
1359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1360 -1, 60, 61, -1, -1, -1, -1, 66, 67, 68,
1361 69, 70, -1, -1, -1, -1, -1, -1, -1, 78,
1362 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
1363 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1364 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1365 109, 110, 111, 112, 113, 114, 115, 3, -1, -1,
1366 -1, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1367 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
1368 -1, -1, -1, -1, -1, -1, 32, -1, -1, -1,
1369 -1, 4, 5, 6, 7, 8, 9, 10, 11, -1,
1370 -1, -1, -1, 49, -1, -1, -1, -1, -1, 22,
1371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1372 66, 67, 68, 69, 70, -1, -1, -1, -1, -1,
1373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1374 -1, -1, 88, -1, 90, 91, 92, 93, 94, 95,
1375 -1, 97, -1, -1, 100, 101, 102, 103, 104, 105,
1376 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1377 3, 84, 85, 86, -1, -1, -1, -1, -1, 12,
1378 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1379 -1, -1, -1, -1, -1, -1, -1, -1, -1, 32,
1380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1381 -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
1382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1383 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
1384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1385 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1386 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1387 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1388 113, 114, 115, 3, -1, -1, -1, -1, -1, -1,
1389 -1, -1, 12, 31, -1, -1, -1, 17, 18, -1,
1390 -1, -1, 22, -1, 42, 43, 44, 45, 46, 47,
1391 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1392 58, 59, -1, -1, -1, -1, -1, 65, -1, 49,
1393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1394 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
1395 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1396 -1, -1, -1, -1, -1, -1, -1, -1, 88, -1,
1397 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1398 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1399 110, 111, 112, 113, 114, 115, 3, -1, -1, -1,
1400 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1401 17, 18, -1, -1, -1, 22, -1, 33, -1, -1,
1402 -1, -1, -1, -1, -1, 32, 42, 43, 44, 45,
1403 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1404 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1405 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1406 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1408 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1409 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1410 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1411 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1412 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1413 33, -1, -1, -1, -1, -1, -1, -1, 32, 42,
1414 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1415 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1416 -1, -1, 65, -1, -1, -1, -1, -1, -1, -1,
1417 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1419 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1420 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1421 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1422 114, 115, 3, -1, -1, -1, -1, -1, -1, -1,
1423 -1, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1424 -1, 22, -1, 33, -1, -1, -1, -1, -1, -1,
1425 -1, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1426 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1427 -1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
1428 -1, 3, -1, -1, -1, 66, 67, 68, 69, 70,
1429 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1430 22, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1431 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1432 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1433 111, 112, 113, 114, 115, -1, -1, -1, -1, -1,
1434 -1, -1, 64, -1, 66, 67, 68, 69, 70, -1,
1435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1436 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1437 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1438 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1439 112, 113, 114, 115, 3, -1, -1, -1, -1, -1,
1440 -1, -1, -1, 12, -1, -1, 34, -1, 17, 18,
1441 -1, -1, -1, 22, 42, 43, 44, 45, 46, 47,
1442 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1443 58, 59, -1, -1, -1, -1, -1, 65, -1, -1,
1444 49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1445 -1, -1, -1, 3, -1, -1, -1, 66, 67, 68,
1446 69, 70, 12, -1, -1, -1, -1, 17, 18, -1,
1447 -1, -1, 22, -1, -1, -1, -1, -1, -1, 88,
1448 -1, 90, 91, 92, 93, 94, 95, -1, 97, -1,
1449 -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1450 109, 110, 111, 112, 113, 114, 115, -1, -1, -1,
1451 -1, -1, 3, -1, 64, -1, 66, 67, 68, 69,
1452 70, 12, -1, -1, -1, -1, 17, 18, -1, -1,
1453 -1, 22, -1, -1, -1, -1, -1, -1, 88, -1,
1454 90, 91, 92, 93, 94, 95, -1, 97, -1, -1,
1455 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1456 110, 111, 112, 113, 114, 115, -1, -1, -1, -1,
1457 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
1458 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, 88, -1, 90,
1460 91, 92, 93, 94, 95, -1, 97, -1, -1, 100,
1461 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1462 111, 112, 113, 114, 115, 35, -1, -1, -1, -1,
1463 -1, -1, 42, 43, 44, 45, 46, 47, 48, 49,
1464 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1465 35, -1, -1, -1, -1, 65, -1, 42, 43, 44,
1466 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1467 55, 56, 57, 58, 59, -1, -1, -1, 39, -1,
1468 65, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1469 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1470 -1, -1, -1, -1, 65, 42, 43, 44, 45, 46,
1471 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1472 57, 58, 59, -1, -1, -1, -1, -1, 65, 42,
1473 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1474 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1475 -1, -1, 65, 42, 43, 44, 45, 46, 47, 48,
1476 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1477 59, -1, -1, -1, -1, -1, 65, 42, 43, 44,
1478 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1479 55, 56, 57, 58, 59, -1, -1, -1, -1, -1,
1480 65
1481 };
1482
1483 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1484 symbol of state STATE-NUM. */
1485 static const unsigned short int yystos[] =
1486 {
1487 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1488 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
1489 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
1490 150, 168, 173, 178, 179, 180, 181, 182, 183, 184,
1491 185, 190, 193, 194, 197, 201, 202, 203, 204, 205,
1492 206, 210, 212, 213, 219, 227, 239, 240, 9, 11,
1493 3, 12, 17, 18, 22, 32, 49, 66, 67, 68,
1494 69, 70, 88, 90, 91, 92, 93, 94, 95, 97,
1495 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1496 110, 111, 112, 113, 114, 115, 143, 236, 237, 238,
1497 255, 267, 22, 84, 85, 86, 87, 202, 210, 179,
1498 30, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1499 75, 76, 77, 79, 80, 81, 82, 151, 152, 153,
1500 154, 156, 157, 158, 17, 84, 85, 121, 174, 176,
1501 203, 204, 210, 219, 228, 229, 143, 143, 143, 230,
1502 3, 6, 10, 12, 17, 169, 170, 179, 26, 123,
1503 202, 240, 44, 275, 276, 22, 83, 201, 202, 0,
1504 148, 143, 211, 235, 236, 4, 5, 6, 9, 22,
1505 186, 6, 183, 189, 31, 125, 191, 32, 32, 36,
1506 36, 235, 236, 87, 32, 143, 124, 238, 143, 143,
1507 143, 34, 195, 19, 20, 21, 121, 123, 124, 143,
1508 159, 160, 30, 0, 3, 4, 5, 6, 7, 8,
1509 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1510 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1511 29, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1512 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1513 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1514 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1515 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1516 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1517 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1518 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1519 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1520 125, 144, 163, 164, 163, 26, 119, 155, 143, 159,
1521 25, 27, 28, 32, 47, 48, 60, 61, 78, 142,
1522 143, 165, 224, 143, 143, 230, 143, 230, 176, 31,
1523 143, 35, 233, 233, 233, 233, 236, 23, 31, 202,
1524 36, 198, 36, 23, 174, 191, 198, 38, 234, 32,
1525 143, 6, 187, 6, 9, 188, 186, 32, 31, 17,
1526 87, 178, 207, 208, 209, 210, 207, 143, 220, 221,
1527 92, 93, 94, 95, 96, 98, 99, 246, 247, 248,
1528 261, 264, 270, 271, 272, 143, 235, 196, 211, 236,
1529 118, 163, 144, 26, 27, 32, 44, 226, 165, 32,
1530 143, 165, 32, 42, 43, 44, 45, 46, 47, 48,
1531 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1532 59, 65, 141, 31, 35, 36, 215, 215, 31, 214,
1533 215, 214, 32, 143, 40, 198, 0, 3, 4, 5,
1534 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1535 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1536 26, 27, 28, 29, 31, 32, 33, 34, 35, 38,
1537 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1538 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1539 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1540 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1541 79, 81, 83, 84, 85, 86, 87, 88, 89, 90,
1542 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1543 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1544 111, 112, 113, 114, 115, 116, 119, 121, 122, 123,
1545 124, 125, 145, 198, 199, 200, 246, 32, 31, 31,
1546 19, 23, 25, 27, 32, 39, 124, 142, 211, 222,
1547 223, 224, 235, 234, 6, 26, 192, 236, 17, 235,
1548 33, 34, 34, 33, 34, 40, 34, 231, 211, 251,
1549 222, 243, 265, 266, 267, 275, 211, 143, 273, 274,
1550 211, 262, 266, 37, 247, 222, 33, 143, 34, 32,
1551 179, 225, 226, 22, 33, 143, 165, 166, 167, 165,
1552 165, 32, 121, 175, 176, 177, 178, 216, 219, 228,
1553 229, 211, 211, 235, 19, 20, 21, 26, 171, 172,
1554 222, 37, 200, 37, 3, 6, 10, 12, 13, 14,
1555 15, 16, 17, 33, 241, 242, 244, 245, 22, 87,
1556 178, 222, 39, 222, 39, 65, 141, 143, 26, 33,
1557 236, 234, 64, 17, 209, 234, 64, 222, 221, 37,
1558 40, 31, 40, 31, 32, 24, 40, 32, 31, 34,
1559 32, 31, 31, 33, 211, 64, 143, 161, 162, 235,
1560 33, 33, 33, 34, 35, 25, 177, 35, 232, 37,
1561 175, 233, 233, 143, 31, 35, 33, 34, 243, 33,
1562 33, 222, 222, 33, 33, 33, 19, 89, 90, 109,
1563 222, 250, 252, 253, 254, 255, 276, 265, 211, 275,
1564 196, 274, 17, 196, 263, 33, 34, 165, 165, 34,
1565 25, 35, 34, 217, 232, 215, 215, 33, 244, 35,
1566 242, 244, 40, 222, 35, 234, 234, 109, 252, 17,
1567 18, 32, 255, 258, 32, 32, 250, 34, 268, 211,
1568 33, 33, 163, 64, 143, 25, 35, 32, 211, 218,
1569 31, 217, 244, 275, 171, 222, 263, 32, 222, 243,
1570 64, 265, 269, 33, 31, 97, 33, 35, 25, 232,
1571 34, 31, 64, 33, 243, 34, 34, 256, 33, 34,
1572 18, 266, 267, 32, 34, 211, 24, 97, 32, 222,
1573 211, 249, 250, 251, 257, 276, 33, 265, 25, 25,
1574 232, 33, 258, 259, 260, 265, 33, 34, 250, 34,
1575 33, 35, 32, 33, 34, 249, 25, 244, 243, 33,
1576 265, 33, 32, 259, 33, 33
1577 };
1578
1579 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1580 static const unsigned short int yyr1[] =
1581 {
1582 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
1583 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1584 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
1585 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
1586 143, 143, 143, 144, 144, 144, 144, 144, 144, 144,
1587 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1588 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1589 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1590 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1591 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1592 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1593 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1594 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1595 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1596 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1597 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1598 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1599 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1600 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1601 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1602 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1603 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1604 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1605 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1606 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1607 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1608 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1609 145, 145, 145, 145, 145, 145, 145, 146, 146, 147,
1610 147, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1611 148, 148, 148, 148, 148, 149, 150, 150, 151, 151,
1612 151, 151, 151, 151, 151, 151, 152, 152, 153, 153,
1613 154, 154, 154, 155, 155, 156, 156, 157, 157, 157,
1614 158, 158, 159, 159, 159, 159, 159, 159, 159, 160,
1615 160, 161, 161, 161, 161, 162, 162, 163, 163, 164,
1616 164, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1617 165, 165, 166, 166, 167, 167, 168, 169, 170, 170,
1618 170, 170, 171, 171, 171, 172, 172, 172, 172, 173,
1619 173, 173, 174, 174, 175, 175, 176, 176, 176, 176,
1620 176, 177, 177, 177, 177, 177, 178, 178, 178, 179,
1621 179, 180, 180, 180, 181, 181, 181, 182, 182, 182,
1622 183, 183, 184, 184, 184, 185, 185, 185, 185, 186,
1623 186, 186, 186, 186, 186, 187, 187, 188, 188, 188,
1624 188, 189, 189, 189, 190, 190, 191, 191, 192, 192,
1625 193, 194, 195, 195, 196, 196, 197, 197, 197, 198,
1626 199, 199, 200, 200, 201, 201, 202, 202, 203, 203,
1627 204, 204, 205, 205, 205, 205, 206, 206, 207, 207,
1628 207, 208, 208, 209, 209, 209, 209, 210, 210, 210,
1629 210, 211, 211, 212, 213, 214, 214, 215, 216, 216,
1630 217, 217, 218, 218, 219, 220, 220, 221, 221, 222,
1631 222, 222, 222, 222, 222, 223, 223, 223, 223, 223,
1632 223, 224, 224, 225, 225, 226, 226, 226, 227, 228,
1633 229, 230, 230, 231, 231, 232, 232, 232, 232, 233,
1634 233, 234, 234, 234, 234, 235, 235, 236, 236, 237,
1635 237, 238, 238, 239, 239, 240, 240, 240, 241, 241,
1636 242, 242, 243, 244, 245, 245, 245, 245, 245, 245,
1637 245, 245, 245, 246, 246, 247, 247, 247, 247, 247,
1638 248, 248, 249, 249, 249, 250, 250, 250, 250, 250,
1639 250, 251, 251, 252, 253, 253, 254, 255, 255, 255,
1640 255, 255, 255, 255, 255, 255, 255, 256, 256, 257,
1641 257, 258, 258, 259, 259, 260, 260, 261, 262, 262,
1642 263, 263, 263, 264, 265, 265, 265, 266, 266, 267,
1643 267, 267, 267, 267, 267, 267, 267, 268, 268, 269,
1644 269, 270, 271, 271, 272, 273, 273, 274, 275, 275,
1645 276
1646 };
1647
1648 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1649 static const unsigned char yyr2[] =
1650 {
1651 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1652 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1662 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1663 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1664 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1665 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1666 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1671 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1672 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1673 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1674 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1675 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1676 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1678 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1679 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1680 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
1681 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
1682 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1683 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
1684 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
1685 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
1686 1, 4, 0, 1, 1, 3, 6, 1, 1, 1,
1687 1, 1, 0, 1, 1, 1, 1, 1, 1, 3,
1688 4, 4, 1, 2, 1, 2, 1, 1, 2, 4,
1689 4, 1, 1, 1, 3, 3, 2, 2, 1, 1,
1690 1, 2, 2, 2, 1, 1, 1, 1, 1, 2,
1691 1, 1, 1, 1, 2, 1, 1, 2, 2, 0,
1692 1, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1693 2, 0, 1, 2, 3, 4, 0, 4, 1, 2,
1694 2, 3, 0, 2, 1, 3, 3, 3, 4, 3,
1695 1, 2, 1, 1, 1, 2, 1, 1, 5, 7,
1696 5, 7, 6, 7, 6, 5, 1, 2, 0, 1,
1697 1, 1, 3, 1, 2, 3, 2, 1, 2, 4,
1698 3, 3, 2, 4, 4, 1, 1, 3, 4, 5,
1699 0, 2, 2, 4, 5, 1, 3, 1, 3, 1,
1700 4, 3, 3, 2, 5, 1, 1, 1, 1, 1,
1701 1, 4, 2, 1, 2, 2, 1, 1, 2, 2,
1702 2, 0, 1, 0, 1, 0, 2, 7, 9, 0,
1703 7, 0, 2, 3, 3, 0, 1, 1, 2, 1,
1704 2, 1, 2, 4, 5, 7, 8, 13, 1, 3,
1705 2, 4, 2, 1, 1, 1, 1, 1, 1, 1,
1706 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1707 3, 6, 1, 2, 1, 1, 1, 1, 2, 1,
1708 1, 3, 4, 6, 8, 12, 5, 1, 1, 1,
1709 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
1710 3, 1, 1, 0, 1, 1, 3, 3, 6, 1,
1711 0, 1, 1, 3, 1, 1, 3, 5, 6, 1,
1712 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
1713 3, 3, 1, 1, 3, 1, 3, 4, 0, 1,
1714 1
1715 };
1716
1717
1718 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1719 static const unsigned char yydprec[] =
1720 {
1721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 1, 2, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 2, 1, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 2, 1, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0
1785 };
1786
1787 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1788 static const unsigned char yymerger[] =
1789 {
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0
1854 };
1855
1856 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1857 in the case of predicates. */
1858 static const yybool yyimmediate[] =
1859 {
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0
1924 };
1925
1926 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1927 list of conflicting reductions corresponding to action entry for
1928 state STATE-NUM in yytable. 0 means no conflicts. The list in
1929 yyconfl is terminated by a rule number of 0. */
1930 static const unsigned short int yyconflp[] =
1931 {
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, 7, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945 0, 0, 0, 0, 0, 0, 0, 255, 0, 0,
1946 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 257, 0, 0, 0, 0, 0, 0, 0, 0,
1950 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 263, 0, 265, 267, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 271, 0, 273,
1953 275, 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, 259, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964 0, 0, 0, 0, 0, 0, 0, 0, 261, 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, 269, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1970 0, 253, 0, 0, 0, 0, 0, 0, 0, 0,
1971 0, 0, 0, 0, 0, 0, 0, 277, 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, 9, 0, 0, 11, 13, 15, 17, 19,
2017 21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
2018 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,
2019 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
2020 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,
2021 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
2022 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
2023 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
2024 161, 163, 0, 165, 0, 167, 169, 171, 173, 175,
2025 177, 179, 181, 183, 185, 187, 189, 191, 193, 195,
2026 197, 199, 201, 203, 205, 207, 209, 211, 213, 215,
2027 217, 219, 221, 223, 225, 227, 229, 231, 233, 0,
2028 235, 237, 0, 239, 241, 243, 245, 247, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100 0, 0, 0, 0, 1, 0, 0, 0, 0, 3,
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, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
2146 0, 251, 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, 279, 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 281
2298 };
2299
2300 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2301 0, pointed into by YYCONFLP. */
2302 static const short int yyconfl[] =
2303 {
2304 0, 396, 0, 396, 0, 409, 0, 467, 0, 615,
2305 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2306 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2307 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2308 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2309 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2310 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2311 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2312 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2313 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2314 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2315 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2316 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2317 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2318 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2319 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2320 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2321 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2322 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2323 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2324 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2325 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2326 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2327 0, 615, 0, 615, 0, 615, 0, 615, 0, 615,
2328 0, 615, 0, 615, 0, 615, 0, 615, 0, 396,
2329 0, 396, 0, 409, 0, 512, 0, 512, 0, 460,
2330 0, 42, 0, 498, 0, 498, 0, 498, 0, 396,
2331 0, 565, 0, 565, 0, 565, 0, 616, 0, 344,
2332 0, 494, 0
2333 };
2334
2335 /* Error token number */
2336 #define YYTERROR 1
2337
2338
2339
2340
2341 #undef yynerrs
2342 #define yynerrs (yystackp->yyerrcnt)
2343 #undef yychar
2344 #define yychar (yystackp->yyrawchar)
2345 #undef yylval
2346 #define yylval (yystackp->yyval)
2347 #undef yylloc
2348 #define yylloc (yystackp->yyloc)
2349 #define psi_parser_proc_nerrs yynerrs
2350 #define psi_parser_proc_char yychar
2351 #define psi_parser_proc_lval yylval
2352 #define psi_parser_proc_lloc yylloc
2353
2354 static const int YYEOF = 0;
2355 static const int YYEMPTY = -2;
2356
2357 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2358
2359 #define YYCHK(YYE) \
2360 do { \
2361 YYRESULTTAG yychk_flag = YYE; \
2362 if (yychk_flag != yyok) \
2363 return yychk_flag; \
2364 } while (0)
2365
2366 #if YYDEBUG
2367
2368 # ifndef YYFPRINTF
2369 # define YYFPRINTF fprintf
2370 # endif
2371
2372 /* This macro is provided for backward compatibility. */
2373 #ifndef YY_LOCATION_PRINT
2374 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2375 #endif
2376
2377
2378 # define YYDPRINTF(Args) \
2379 do { \
2380 if (yydebug) \
2381 YYFPRINTF Args; \
2382 } while (0)
2383
2384
2385 /*----------------------------------------.
2386 | Print this symbol's value on YYOUTPUT. |
2387 `----------------------------------------*/
2388
2389 static void
2390 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2391 {
2392 FILE *yyo = yyoutput;
2393 YYUSE (yyo);
2394 YYUSE (P);
2395 YYUSE (tokens);
2396 YYUSE (index);
2397 if (!yyvaluep)
2398 return;
2399 YYUSE (yytype);
2400 }
2401
2402
2403 /*--------------------------------.
2404 | Print this symbol on YYOUTPUT. |
2405 `--------------------------------*/
2406
2407 static void
2408 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2409 {
2410 YYFPRINTF (yyoutput, "%s %s (",
2411 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2412
2413 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2414 YYFPRINTF (yyoutput, ")");
2415 }
2416
2417 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2418 do { \
2419 if (yydebug) \
2420 { \
2421 YYFPRINTF (stderr, "%s ", Title); \
2422 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2423 YYFPRINTF (stderr, "\n"); \
2424 } \
2425 } while (0)
2426
2427 /* Nonzero means print parse trace. It is left uninitialized so that
2428 multiple parsers can coexist. */
2429 int yydebug;
2430
2431 struct yyGLRStack;
2432 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2433 YY_ATTRIBUTE_UNUSED;
2434 static void yypdumpstack (struct yyGLRStack* yystackp)
2435 YY_ATTRIBUTE_UNUSED;
2436
2437 #else /* !YYDEBUG */
2438
2439 # define YYDPRINTF(Args)
2440 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2441
2442 #endif /* !YYDEBUG */
2443
2444 /* YYINITDEPTH -- initial size of the parser's stacks. */
2445 #ifndef YYINITDEPTH
2446 # define YYINITDEPTH 200
2447 #endif
2448
2449 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2450 if the built-in stack extension method is used).
2451
2452 Do not make this value too large; the results are undefined if
2453 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2454 evaluated with infinite-precision integer arithmetic. */
2455
2456 #ifndef YYMAXDEPTH
2457 # define YYMAXDEPTH 10000
2458 #endif
2459
2460 /* Minimum number of free items on the stack allowed after an
2461 allocation. This is to allow allocation and initialization
2462 to be completed by functions that call yyexpandGLRStack before the
2463 stack is expanded, thus insuring that all necessary pointers get
2464 properly redirected to new data. */
2465 #define YYHEADROOM 2
2466
2467 #ifndef YYSTACKEXPANDABLE
2468 # define YYSTACKEXPANDABLE 1
2469 #endif
2470
2471 #if YYSTACKEXPANDABLE
2472 # define YY_RESERVE_GLRSTACK(Yystack) \
2473 do { \
2474 if (Yystack->yyspaceLeft < YYHEADROOM) \
2475 yyexpandGLRStack (Yystack); \
2476 } while (0)
2477 #else
2478 # define YY_RESERVE_GLRSTACK(Yystack) \
2479 do { \
2480 if (Yystack->yyspaceLeft < YYHEADROOM) \
2481 yyMemoryExhausted (Yystack); \
2482 } while (0)
2483 #endif
2484
2485
2486 #if YYERROR_VERBOSE
2487
2488 # ifndef yystpcpy
2489 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2490 # define yystpcpy stpcpy
2491 # else
2492 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2493 YYDEST. */
2494 static char *
2495 yystpcpy (char *yydest, const char *yysrc)
2496 {
2497 char *yyd = yydest;
2498 const char *yys = yysrc;
2499
2500 while ((*yyd++ = *yys++) != '\0')
2501 continue;
2502
2503 return yyd - 1;
2504 }
2505 # endif
2506 # endif
2507
2508 # ifndef yytnamerr
2509 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2510 quotes and backslashes, so that it's suitable for yyerror. The
2511 heuristic is that double-quoting is unnecessary unless the string
2512 contains an apostrophe, a comma, or backslash (other than
2513 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2514 null, do not copy; instead, return the length of what the result
2515 would have been. */
2516 static size_t
2517 yytnamerr (char *yyres, const char *yystr)
2518 {
2519 if (*yystr == '"')
2520 {
2521 size_t yyn = 0;
2522 char const *yyp = yystr;
2523
2524 for (;;)
2525 switch (*++yyp)
2526 {
2527 case '\'':
2528 case ',':
2529 goto do_not_strip_quotes;
2530
2531 case '\\':
2532 if (*++yyp != '\\')
2533 goto do_not_strip_quotes;
2534 /* Fall through. */
2535 default:
2536 if (yyres)
2537 yyres[yyn] = *yyp;
2538 yyn++;
2539 break;
2540
2541 case '"':
2542 if (yyres)
2543 yyres[yyn] = '\0';
2544 return yyn;
2545 }
2546 do_not_strip_quotes: ;
2547 }
2548
2549 if (! yyres)
2550 return strlen (yystr);
2551
2552 return yystpcpy (yyres, yystr) - yyres;
2553 }
2554 # endif
2555
2556 #endif /* !YYERROR_VERBOSE */
2557
2558 /** State numbers, as in LALR(1) machine */
2559 typedef int yyStateNum;
2560
2561 /** Rule numbers, as in LALR(1) machine */
2562 typedef int yyRuleNum;
2563
2564 /** Grammar symbol */
2565 typedef int yySymbol;
2566
2567 /** Item references, as in LALR(1) machine */
2568 typedef short int yyItemNum;
2569
2570 typedef struct yyGLRState yyGLRState;
2571 typedef struct yyGLRStateSet yyGLRStateSet;
2572 typedef struct yySemanticOption yySemanticOption;
2573 typedef union yyGLRStackItem yyGLRStackItem;
2574 typedef struct yyGLRStack yyGLRStack;
2575
2576 struct yyGLRState {
2577 /** Type tag: always true. */
2578 yybool yyisState;
2579 /** Type tag for yysemantics. If true, yysval applies, otherwise
2580 * yyfirstVal applies. */
2581 yybool yyresolved;
2582 /** Number of corresponding LALR(1) machine state. */
2583 yyStateNum yylrState;
2584 /** Preceding state in this stack */
2585 yyGLRState* yypred;
2586 /** Source position of the last token produced by my symbol */
2587 size_t yyposn;
2588 union {
2589 /** First in a chain of alternative reductions producing the
2590 * non-terminal corresponding to this state, threaded through
2591 * yynext. */
2592 yySemanticOption* yyfirstVal;
2593 /** Semantic value for this state. */
2594 YYSTYPE yysval;
2595 } yysemantics;
2596 };
2597
2598 struct yyGLRStateSet {
2599 yyGLRState** yystates;
2600 /** During nondeterministic operation, yylookaheadNeeds tracks which
2601 * stacks have actually needed the current lookahead. During deterministic
2602 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2603 * duplicate yychar != YYEMPTY. */
2604 yybool* yylookaheadNeeds;
2605 size_t yysize, yycapacity;
2606 };
2607
2608 struct yySemanticOption {
2609 /** Type tag: always false. */
2610 yybool yyisState;
2611 /** Rule number for this reduction */
2612 yyRuleNum yyrule;
2613 /** The last RHS state in the list of states to be reduced. */
2614 yyGLRState* yystate;
2615 /** The lookahead for this reduction. */
2616 int yyrawchar;
2617 YYSTYPE yyval;
2618 /** Next sibling in chain of options. To facilitate merging,
2619 * options are chained in decreasing order by address. */
2620 yySemanticOption* yynext;
2621 };
2622
2623 /** Type of the items in the GLR stack. The yyisState field
2624 * indicates which item of the union is valid. */
2625 union yyGLRStackItem {
2626 yyGLRState yystate;
2627 yySemanticOption yyoption;
2628 };
2629
2630 struct yyGLRStack {
2631 int yyerrState;
2632
2633
2634 int yyerrcnt;
2635 int yyrawchar;
2636 YYSTYPE yyval;
2637
2638 YYJMP_BUF yyexception_buffer;
2639 yyGLRStackItem* yyitems;
2640 yyGLRStackItem* yynextFree;
2641 size_t yyspaceLeft;
2642 yyGLRState* yysplitPoint;
2643 yyGLRState* yylastDeleted;
2644 yyGLRStateSet yytops;
2645 };
2646
2647 #if YYSTACKEXPANDABLE
2648 static void yyexpandGLRStack (yyGLRStack* yystackp);
2649 #endif
2650
2651 static _Noreturn void
2652 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2653 {
2654 if (yymsg != YY_NULLPTR)
2655 yyerror (P, tokens, index, yymsg);
2656 YYLONGJMP (yystackp->yyexception_buffer, 1);
2657 }
2658
2659 static _Noreturn void
2660 yyMemoryExhausted (yyGLRStack* yystackp)
2661 {
2662 YYLONGJMP (yystackp->yyexception_buffer, 2);
2663 }
2664
2665 #if YYDEBUG || YYERROR_VERBOSE
2666 /** A printable representation of TOKEN. */
2667 static inline const char*
2668 yytokenName (yySymbol yytoken)
2669 {
2670 if (yytoken == YYEMPTY)
2671 return "";
2672
2673 return yytname[yytoken];
2674 }
2675 #endif
2676
2677 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2678 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2679 * containing the pointer to the next state in the chain. */
2680 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2681 static void
2682 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2683 {
2684 int i;
2685 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2686 for (i = yylow0-1; i >= yylow1; i -= 1)
2687 {
2688 #if YYDEBUG
2689 yyvsp[i].yystate.yylrState = s->yylrState;
2690 #endif
2691 yyvsp[i].yystate.yyresolved = s->yyresolved;
2692 if (s->yyresolved)
2693 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2694 else
2695 /* The effect of using yysval or yyloc (in an immediate rule) is
2696 * undefined. */
2697 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2698 s = yyvsp[i].yystate.yypred = s->yypred;
2699 }
2700 }
2701
2702 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2703 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2704 * For convenience, always return YYLOW1. */
2705 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2706 YY_ATTRIBUTE_UNUSED;
2707 static inline int
2708 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2709 {
2710 if (!yynormal && yylow1 < *yylow)
2711 {
2712 yyfillin (yyvsp, *yylow, yylow1);
2713 *yylow = yylow1;
2714 }
2715 return yylow1;
2716 }
2717
2718 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2719 * and top stack item YYVSP. YYLVALP points to place to put semantic
2720 * value ($$), and yylocp points to place for location information
2721 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2722 * yyerr for YYERROR, yyabort for YYABORT. */
2723 static YYRESULTTAG
2724 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2725 yyGLRStack* yystackp,
2726 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2727 {
2728 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2729 int yylow;
2730 YYUSE (yyvalp);
2731 YYUSE (P);
2732 YYUSE (tokens);
2733 YYUSE (index);
2734 YYUSE (yyrhslen);
2735 # undef yyerrok
2736 # define yyerrok (yystackp->yyerrState = 0)
2737 # undef YYACCEPT
2738 # define YYACCEPT return yyaccept
2739 # undef YYABORT
2740 # define YYABORT return yyabort
2741 # undef YYERROR
2742 # define YYERROR return yyerrok, yyerr
2743 # undef YYRECOVERING
2744 # define YYRECOVERING() (yystackp->yyerrState != 0)
2745 # undef yyclearin
2746 # define yyclearin (yychar = YYEMPTY)
2747 # undef YYFILL
2748 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2749 # undef YYBACKUP
2750 # define YYBACKUP(Token, Value) \
2751 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2752 yyerrok, yyerr
2753
2754 yylow = 1;
2755 if (yyrhslen == 0)
2756 *yyvalp = yyval_default;
2757 else
2758 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2759 switch (yyn)
2760 {
2761 case 284:
2762 #line 443 "src/parser_proc_grammar.y" /* glr.c:816 */
2763 {
2764 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2765 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2766 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2767 }
2768 }
2769 #line 2770 "src/parser_proc.c" /* glr.c:816 */
2770 break;
2771
2772 case 285:
2773 #line 449 "src/parser_proc_grammar.y" /* glr.c:816 */
2774 {
2775 if (P->file.ln) {
2776 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2777 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2778 } else {
2779 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);
2780 }
2781 }
2782 #line 2783 "src/parser_proc.c" /* glr.c:816 */
2783 break;
2784
2785 case 286:
2786 #line 457 "src/parser_proc_grammar.y" /* glr.c:816 */
2787 {
2788 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2789 }
2790 #line 2791 "src/parser_proc.c" /* glr.c:816 */
2791 break;
2792
2793 case 287:
2794 #line 460 "src/parser_proc_grammar.y" /* glr.c:816 */
2795 {
2796 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2797 }
2798 #line 2799 "src/parser_proc.c" /* glr.c:816 */
2799 break;
2800
2801 case 290:
2802 #line 465 "src/parser_proc_grammar.y" /* glr.c:816 */
2803 {
2804 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2805 }
2806 #line 2807 "src/parser_proc.c" /* glr.c:816 */
2807 break;
2808
2809 case 291:
2810 #line 468 "src/parser_proc_grammar.y" /* glr.c:816 */
2811 {
2812 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2813 }
2814 #line 2815 "src/parser_proc.c" /* glr.c:816 */
2815 break;
2816
2817 case 292:
2818 #line 471 "src/parser_proc_grammar.y" /* glr.c:816 */
2819 {
2820 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2821 }
2822 #line 2823 "src/parser_proc.c" /* glr.c:816 */
2823 break;
2824
2825 case 293:
2826 #line 474 "src/parser_proc_grammar.y" /* glr.c:816 */
2827 {
2828 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2829 }
2830 #line 2831 "src/parser_proc.c" /* glr.c:816 */
2831 break;
2832
2833 case 294:
2834 #line 477 "src/parser_proc_grammar.y" /* glr.c:816 */
2835 {
2836 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2837 }
2838 #line 2839 "src/parser_proc.c" /* glr.c:816 */
2839 break;
2840
2841 case 295:
2842 #line 483 "src/parser_proc_grammar.y" /* glr.c:816 */
2843 {
2844 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2845 }
2846 #line 2847 "src/parser_proc.c" /* glr.c:816 */
2847 break;
2848
2849 case 296:
2850 #line 489 "src/parser_proc_grammar.y" /* glr.c:816 */
2851 {
2852 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2853 }
2854 #line 2855 "src/parser_proc.c" /* glr.c:816 */
2855 break;
2856
2857 case 297:
2858 #line 492 "src/parser_proc_grammar.y" /* glr.c:816 */
2859 {
2860 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2861 }
2862 #line 2863 "src/parser_proc.c" /* glr.c:816 */
2863 break;
2864
2865 case 298:
2866 #line 498 "src/parser_proc_grammar.y" /* glr.c:816 */
2867 {
2868 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2869 struct psi_token *msg = NULL;
2870
2871 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2872 size_t index = 1;
2873 struct psi_token *next;
2874
2875 msg = psi_token_copy(msg);
2876 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2877 struct psi_token *old = msg;
2878 msg = psi_token_cat(" ", 2, msg, next);
2879 free(old);
2880 }
2881 }
2882 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2883
2884 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2885 } else {
2886 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2887 }
2888 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2889 }
2890 #line 2891 "src/parser_proc.c" /* glr.c:816 */
2891 break;
2892
2893 case 299:
2894 #line 521 "src/parser_proc_grammar.y" /* glr.c:816 */
2895 {
2896 (*(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))));
2897 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2898 }
2899 #line 2900 "src/parser_proc.c" /* glr.c:816 */
2900 break;
2901
2902 case 300:
2903 #line 525 "src/parser_proc_grammar.y" /* glr.c:816 */
2904 {
2905 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2906 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2907 }
2908 #line 2909 "src/parser_proc.c" /* glr.c:816 */
2909 break;
2910
2911 case 301:
2912 #line 529 "src/parser_proc_grammar.y" /* glr.c:816 */
2913 {
2914 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2915 (*(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))));
2916 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2917 }
2918 #line 2919 "src/parser_proc.c" /* glr.c:816 */
2919 break;
2920
2921 case 302:
2922 #line 534 "src/parser_proc_grammar.y" /* glr.c:816 */
2923 {
2924 (*(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)));
2925 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2926 }
2927 #line 2928 "src/parser_proc.c" /* glr.c:816 */
2928 break;
2929
2930 case 303:
2931 #line 538 "src/parser_proc_grammar.y" /* glr.c:816 */
2932 {
2933 (*(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)));
2934 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2935 }
2936 #line 2937 "src/parser_proc.c" /* glr.c:816 */
2937 break;
2938
2939 case 304:
2940 #line 542 "src/parser_proc_grammar.y" /* glr.c:816 */
2941 {
2942 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2943 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2944 }
2945 #line 2946 "src/parser_proc.c" /* glr.c:816 */
2946 break;
2947
2948 case 305:
2949 #line 546 "src/parser_proc_grammar.y" /* glr.c:816 */
2950 {
2951 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2952 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2953 }
2954 #line 2955 "src/parser_proc.c" /* glr.c:816 */
2955 break;
2956
2957 case 329:
2958 #line 600 "src/parser_proc_grammar.y" /* glr.c:816 */
2959 {
2960 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2961 (*(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);
2962 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2963 }
2964 #line 2965 "src/parser_proc.c" /* glr.c:816 */
2965 break;
2966
2967 case 330:
2968 #line 605 "src/parser_proc_grammar.y" /* glr.c:816 */
2969 {
2970 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2971 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
2972 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2973 }
2974 #line 2975 "src/parser_proc.c" /* glr.c:816 */
2975 break;
2976
2977 case 331:
2978 #line 613 "src/parser_proc_grammar.y" /* glr.c:816 */
2979 {
2980 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
2981 }
2982 #line 2983 "src/parser_proc.c" /* glr.c:816 */
2983 break;
2984
2985 case 332:
2986 #line 616 "src/parser_proc_grammar.y" /* glr.c:816 */
2987 {
2988 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
2989 }
2990 #line 2991 "src/parser_proc.c" /* glr.c:816 */
2991 break;
2992
2993 case 334:
2994 #line 620 "src/parser_proc_grammar.y" /* glr.c:816 */
2995 {
2996 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
2997 }
2998 #line 2999 "src/parser_proc.c" /* glr.c:816 */
2999 break;
3000
3001 case 335:
3002 #line 626 "src/parser_proc_grammar.y" /* glr.c:816 */
3003 {
3004 (*(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)));
3005 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3006 (*(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)));
3007 }
3008 #line 3009 "src/parser_proc.c" /* glr.c:816 */
3009 break;
3010
3011 case 336:
3012 #line 631 "src/parser_proc_grammar.y" /* glr.c:816 */
3013 {
3014 (*(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)));
3015 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3016 (*(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)));
3017 }
3018 #line 3019 "src/parser_proc.c" /* glr.c:816 */
3019 break;
3020
3021 case 337:
3022 #line 639 "src/parser_proc_grammar.y" /* glr.c:816 */
3023 {
3024 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3025 }
3026 #line 3027 "src/parser_proc.c" /* glr.c:816 */
3027 break;
3028
3029 case 339:
3030 #line 646 "src/parser_proc_grammar.y" /* glr.c:816 */
3031 {
3032 (*(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)));
3033 (*(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)));
3034 }
3035 #line 3036 "src/parser_proc.c" /* glr.c:816 */
3036 break;
3037
3038 case 340:
3039 #line 650 "src/parser_proc_grammar.y" /* glr.c:816 */
3040 {
3041 (*(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)));
3042 (*(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)));
3043 }
3044 #line 3045 "src/parser_proc.c" /* glr.c:816 */
3045 break;
3046
3047 case 341:
3048 #line 657 "src/parser_proc_grammar.y" /* glr.c:816 */
3049 {
3050 (*(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)));
3051 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3052 }
3053 #line 3054 "src/parser_proc.c" /* glr.c:816 */
3054 break;
3055
3056 case 342:
3057 #line 661 "src/parser_proc_grammar.y" /* glr.c:816 */
3058 {
3059 (*(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)));
3060 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3061 }
3062 #line 3063 "src/parser_proc.c" /* glr.c:816 */
3063 break;
3064
3065 case 343:
3066 #line 665 "src/parser_proc_grammar.y" /* glr.c:816 */
3067 {
3068 (*(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)));
3069 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3070 }
3071 #line 3072 "src/parser_proc.c" /* glr.c:816 */
3072 break;
3073
3074 case 344:
3075 #line 669 "src/parser_proc_grammar.y" /* glr.c:816 */
3076 {
3077 (*(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)));
3078 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3079 }
3080 #line 3081 "src/parser_proc.c" /* glr.c:816 */
3081 break;
3082
3083 case 345:
3084 #line 674 "src/parser_proc_grammar.y" /* glr.c:816 */
3085 {
3086 {
3087 uint8_t exists;
3088
3089 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3090 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3091 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3092 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3093 }
3094 }
3095 #line 3096 "src/parser_proc.c" /* glr.c:816 */
3096 break;
3097
3098 case 346:
3099 #line 684 "src/parser_proc_grammar.y" /* glr.c:816 */
3100 {
3101 {
3102 uint8_t exists;
3103
3104 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3105 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3106 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3107 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3108 }
3109 }
3110 #line 3111 "src/parser_proc.c" /* glr.c:816 */
3111 break;
3112
3113 case 347:
3114 #line 694 "src/parser_proc_grammar.y" /* glr.c:816 */
3115 {
3116 (*(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));
3117 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3118 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3119 }
3120 #line 3121 "src/parser_proc.c" /* glr.c:816 */
3121 break;
3122
3123 case 348:
3124 #line 699 "src/parser_proc_grammar.y" /* glr.c:816 */
3125 {
3126 (*(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));
3127 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3128 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3129 }
3130 #line 3131 "src/parser_proc.c" /* glr.c:816 */
3131 break;
3132
3133 case 349:
3134 #line 704 "src/parser_proc_grammar.y" /* glr.c:816 */
3135 {
3136 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3137 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3138 }
3139 #line 3140 "src/parser_proc.c" /* glr.c:816 */
3140 break;
3141
3142 case 350:
3143 #line 708 "src/parser_proc_grammar.y" /* glr.c:816 */
3144 {
3145 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3146 (*(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));
3147 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3148 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3149 }
3150 #line 3151 "src/parser_proc.c" /* glr.c:816 */
3151 break;
3152
3153 case 351:
3154 #line 714 "src/parser_proc_grammar.y" /* glr.c:816 */
3155 {
3156 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3157 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3158 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));
3159 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3160 }
3161 #line 3162 "src/parser_proc.c" /* glr.c:816 */
3162 break;
3163
3164 case 352:
3165 #line 723 "src/parser_proc_grammar.y" /* glr.c:816 */
3166 {
3167 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3168 }
3169 #line 3170 "src/parser_proc.c" /* glr.c:816 */
3170 break;
3171
3172 case 354:
3173 #line 730 "src/parser_proc_grammar.y" /* glr.c:816 */
3174 {
3175 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3176 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3177 }
3178 #line 3179 "src/parser_proc.c" /* glr.c:816 */
3179 break;
3180
3181 case 355:
3182 #line 734 "src/parser_proc_grammar.y" /* glr.c:816 */
3183 {
3184 (*(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)));
3185 }
3186 #line 3187 "src/parser_proc.c" /* glr.c:816 */
3187 break;
3188
3189 case 356:
3190 #line 740 "src/parser_proc_grammar.y" /* glr.c:816 */
3191 {
3192 (*(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)));
3193 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3194 }
3195 #line 3196 "src/parser_proc.c" /* glr.c:816 */
3196 break;
3197
3198 case 357:
3199 #line 747 "src/parser_proc_grammar.y" /* glr.c:816 */
3200 {
3201 (*(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);
3202 }
3203 #line 3204 "src/parser_proc.c" /* glr.c:816 */
3204 break;
3205
3206 case 362:
3207 #line 760 "src/parser_proc_grammar.y" /* glr.c:816 */
3208 {
3209 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3210 }
3211 #line 3212 "src/parser_proc.c" /* glr.c:816 */
3212 break;
3213
3214 case 363:
3215 #line 763 "src/parser_proc_grammar.y" /* glr.c:816 */
3216 {
3217 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)) {
3218 impl_val res = {0};
3219 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3220
3221 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3222 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3223 } else {
3224 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3225 }
3226
3227 switch (type) {
3228 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3229 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3230 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3231 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3232 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3233 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3234 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3235 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3236 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3237 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3238 default:
3239 assert(0);
3240
3241 }
3242 } else {
3243 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3244 }
3245 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3246 }
3247 #line 3248 "src/parser_proc.c" /* glr.c:816 */
3248 break;
3249
3250 case 364:
3251 #line 794 "src/parser_proc_grammar.y" /* glr.c:816 */
3252 {
3253 (*(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);
3254 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3255 }
3256 #line 3257 "src/parser_proc.c" /* glr.c:816 */
3257 break;
3258
3259 case 369:
3260 #line 808 "src/parser_proc_grammar.y" /* glr.c:816 */
3261 {
3262 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3263 }
3264 #line 3265 "src/parser_proc.c" /* glr.c:816 */
3265 break;
3266
3267 case 370:
3268 #line 811 "src/parser_proc_grammar.y" /* glr.c:816 */
3269 {
3270 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3271 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3272 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3273 );
3274 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3275 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3276 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3277 }
3278 #line 3279 "src/parser_proc.c" /* glr.c:816 */
3279 break;
3280
3281 case 371:
3282 #line 820 "src/parser_proc_grammar.y" /* glr.c:816 */
3283 {
3284 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3285 }
3286 #line 3287 "src/parser_proc.c" /* glr.c:816 */
3287 break;
3288
3289 case 372:
3290 #line 826 "src/parser_proc_grammar.y" /* glr.c:816 */
3291 {
3292 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3293 }
3294 #line 3295 "src/parser_proc.c" /* glr.c:816 */
3295 break;
3296
3297 case 373:
3298 #line 829 "src/parser_proc_grammar.y" /* glr.c:816 */
3299 {
3300 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3301 }
3302 #line 3303 "src/parser_proc.c" /* glr.c:816 */
3303 break;
3304
3305 case 374:
3306 #line 835 "src/parser_proc_grammar.y" /* glr.c:816 */
3307 {
3308 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3309 }
3310 #line 3311 "src/parser_proc.c" /* glr.c:816 */
3311 break;
3312
3313 case 375:
3314 #line 838 "src/parser_proc_grammar.y" /* glr.c:816 */
3315 {
3316 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3317 }
3318 #line 3319 "src/parser_proc.c" /* glr.c:816 */
3319 break;
3320
3321 case 377:
3322 #line 845 "src/parser_proc_grammar.y" /* glr.c:816 */
3323 {
3324 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3325 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3326 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3327 );
3328 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3329 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3330 }
3331 #line 3332 "src/parser_proc.c" /* glr.c:816 */
3332 break;
3333
3334 case 378:
3335 #line 853 "src/parser_proc_grammar.y" /* glr.c:816 */
3336 {
3337 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3338 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3339 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3340 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3341 );
3342 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3343 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3344 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3345 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3346 }
3347 #line 3348 "src/parser_proc.c" /* glr.c:816 */
3348 break;
3349
3350 case 379:
3351 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3352 {
3353 (*(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)));
3354 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3355 (*(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)));
3356 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3357 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3358 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3359 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3360 }
3361 #line 3362 "src/parser_proc.c" /* glr.c:816 */
3362 break;
3363
3364 case 380:
3365 #line 873 "src/parser_proc_grammar.y" /* glr.c:816 */
3366 {
3367 (*(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)));
3368 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3369 (*(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)));
3370 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3371 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3372 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3373 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3374 }
3375 #line 3376 "src/parser_proc.c" /* glr.c:816 */
3376 break;
3377
3378 case 382:
3379 #line 886 "src/parser_proc_grammar.y" /* glr.c:816 */
3380 {
3381 (*(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));
3382 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3383 }
3384 #line 3385 "src/parser_proc.c" /* glr.c:816 */
3385 break;
3386
3387 case 383:
3388 #line 890 "src/parser_proc_grammar.y" /* glr.c:816 */
3389 {
3390 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3391 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3392 psi_decl_var_init(NULL, 0, 0)
3393 );
3394 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3395 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3396 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3397 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3398 }
3399 #line 3400 "src/parser_proc.c" /* glr.c:816 */
3400 break;
3401
3402 case 384:
3403 #line 900 "src/parser_proc_grammar.y" /* glr.c:816 */
3404 {
3405 (*(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));
3406 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3407 (*(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)));
3408 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3409 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3410 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3411 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3412 }
3413 #line 3414 "src/parser_proc.c" /* glr.c:816 */
3414 break;
3415
3416 case 385:
3417 #line 909 "src/parser_proc_grammar.y" /* glr.c:816 */
3418 {
3419 (*(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));
3420 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3421 (*(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)));
3422 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3423 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3424 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3425 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3426 }
3427 #line 3428 "src/parser_proc.c" /* glr.c:816 */
3428 break;
3429
3430 case 386:
3431 #line 921 "src/parser_proc_grammar.y" /* glr.c:816 */
3432 {
3433 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3434 }
3435 #line 3436 "src/parser_proc.c" /* glr.c:816 */
3436 break;
3437
3438 case 387:
3439 #line 924 "src/parser_proc_grammar.y" /* glr.c:816 */
3440 {
3441 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3442 }
3443 #line 3444 "src/parser_proc.c" /* glr.c:816 */
3444 break;
3445
3446 case 389:
3447 #line 931 "src/parser_proc_grammar.y" /* glr.c:816 */
3448 {
3449 (*(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);
3450 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3451 }
3452 #line 3453 "src/parser_proc.c" /* glr.c:816 */
3453 break;
3454
3455 case 391:
3456 #line 939 "src/parser_proc_grammar.y" /* glr.c:816 */
3457 {
3458 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3459 (*(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);
3460 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3461 }
3462 #line 3463 "src/parser_proc.c" /* glr.c:816 */
3463 break;
3464
3465 case 392:
3466 #line 944 "src/parser_proc_grammar.y" /* glr.c:816 */
3467 {
3468 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3469 (*(struct psi_decl_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);
3470 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3471 }
3472 #line 3473 "src/parser_proc.c" /* glr.c:816 */
3473 break;
3474
3475 case 393:
3476 #line 949 "src/parser_proc_grammar.y" /* glr.c:816 */
3477 {
3478 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3479 (*(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);
3480 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3481 }
3482 #line 3483 "src/parser_proc.c" /* glr.c:816 */
3483 break;
3484
3485 case 396:
3486 #line 959 "src/parser_proc_grammar.y" /* glr.c:816 */
3487 {
3488 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3489 }
3490 #line 3491 "src/parser_proc.c" /* glr.c:816 */
3491 break;
3492
3493 case 397:
3494 #line 965 "src/parser_proc_grammar.y" /* glr.c:816 */
3495 {
3496 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3497 }
3498 #line 3499 "src/parser_proc.c" /* glr.c:816 */
3499 break;
3500
3501 case 398:
3502 #line 968 "src/parser_proc_grammar.y" /* glr.c:816 */
3503 {
3504 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3505 }
3506 #line 3507 "src/parser_proc.c" /* glr.c:816 */
3507 break;
3508
3509 case 399:
3510 #line 971 "src/parser_proc_grammar.y" /* glr.c:816 */
3511 {
3512 (*(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)));
3513 }
3514 #line 3515 "src/parser_proc.c" /* glr.c:816 */
3515 break;
3516
3517 case 402:
3518 #line 982 "src/parser_proc_grammar.y" /* glr.c:816 */
3519 {
3520 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3521 }
3522 #line 3523 "src/parser_proc.c" /* glr.c:816 */
3523 break;
3524
3525 case 403:
3526 #line 985 "src/parser_proc_grammar.y" /* glr.c:816 */
3527 {
3528 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3529 }
3530 #line 3531 "src/parser_proc.c" /* glr.c:816 */
3531 break;
3532
3533 case 404:
3534 #line 988 "src/parser_proc_grammar.y" /* glr.c:816 */
3535 {
3536 (*(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)));
3537 }
3538 #line 3539 "src/parser_proc.c" /* glr.c:816 */
3539 break;
3540
3541 case 405:
3542 #line 994 "src/parser_proc_grammar.y" /* glr.c:816 */
3543 {
3544 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3545 }
3546 #line 3547 "src/parser_proc.c" /* glr.c:816 */
3547 break;
3548
3549 case 406:
3550 #line 997 "src/parser_proc_grammar.y" /* glr.c:816 */
3551 {
3552 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3553 }
3554 #line 3555 "src/parser_proc.c" /* glr.c:816 */
3555 break;
3556
3557 case 407:
3558 #line 1000 "src/parser_proc_grammar.y" /* glr.c:816 */
3559 {
3560 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3561 (*(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)));
3562 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3563 } else {
3564 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3565 }
3566 }
3567 #line 3568 "src/parser_proc.c" /* glr.c:816 */
3568 break;
3569
3570 case 408:
3571 #line 1008 "src/parser_proc_grammar.y" /* glr.c:816 */
3572 {
3573 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3574 (*(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)));
3575 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3576 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3577 } else {
3578 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3579 }
3580 }
3581 #line 3582 "src/parser_proc.c" /* glr.c:816 */
3582 break;
3583
3584 case 409:
3585 #line 1020 "src/parser_proc_grammar.y" /* glr.c:816 */
3586 {
3587 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3588 }
3589 #line 3590 "src/parser_proc.c" /* glr.c:816 */
3590 break;
3591
3592 case 410:
3593 #line 1023 "src/parser_proc_grammar.y" /* glr.c:816 */
3594 {
3595 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3596 }
3597 #line 3598 "src/parser_proc.c" /* glr.c:816 */
3598 break;
3599
3600 case 411:
3601 #line 1026 "src/parser_proc_grammar.y" /* glr.c:816 */
3602 {
3603 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3604 }
3605 #line 3606 "src/parser_proc.c" /* glr.c:816 */
3606 break;
3607
3608 case 412:
3609 #line 1029 "src/parser_proc_grammar.y" /* glr.c:816 */
3610 {
3611 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3612 (*(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)));
3613 } else {
3614 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3615 }
3616 }
3617 #line 3618 "src/parser_proc.c" /* glr.c:816 */
3618 break;
3619
3620 case 413:
3621 #line 1036 "src/parser_proc_grammar.y" /* glr.c:816 */
3622 {
3623 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3624 }
3625 #line 3626 "src/parser_proc.c" /* glr.c:816 */
3626 break;
3627
3628 case 414:
3629 #line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */
3630 {
3631 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3632 (*(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)));
3633 } else {
3634 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3635 }
3636 }
3637 #line 3638 "src/parser_proc.c" /* glr.c:816 */
3638 break;
3639
3640 case 415:
3641 #line 1049 "src/parser_proc_grammar.y" /* glr.c:816 */
3642 {
3643 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3644 }
3645 #line 3646 "src/parser_proc.c" /* glr.c:816 */
3646 break;
3647
3648 case 417:
3649 #line 1055 "src/parser_proc_grammar.y" /* glr.c:816 */
3650 {
3651 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3652 }
3653 #line 3654 "src/parser_proc.c" /* glr.c:816 */
3654 break;
3655
3656 case 421:
3657 #line 1064 "src/parser_proc_grammar.y" /* glr.c:816 */
3658 {
3659 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3660 }
3661 #line 3662 "src/parser_proc.c" /* glr.c:816 */
3662 break;
3663
3664 case 422:
3665 #line 1067 "src/parser_proc_grammar.y" /* glr.c:816 */
3666 {
3667 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3668 }
3669 #line 3670 "src/parser_proc.c" /* glr.c:816 */
3670 break;
3671
3672 case 423:
3673 #line 1070 "src/parser_proc_grammar.y" /* glr.c:816 */
3674 {
3675 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
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 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3678 } else {
3679 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3680 }
3681 }
3682 #line 3683 "src/parser_proc.c" /* glr.c:816 */
3683 break;
3684
3685 case 424:
3686 #line 1081 "src/parser_proc_grammar.y" /* glr.c:816 */
3687 {
3688 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3689 }
3690 #line 3691 "src/parser_proc.c" /* glr.c:816 */
3691 break;
3692
3693 case 425:
3694 #line 1084 "src/parser_proc_grammar.y" /* glr.c:816 */
3695 {
3696 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3697 }
3698 #line 3699 "src/parser_proc.c" /* glr.c:816 */
3699 break;
3700
3701 case 431:
3702 #line 1104 "src/parser_proc_grammar.y" /* glr.c:816 */
3703 {
3704 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3705 }
3706 #line 3707 "src/parser_proc.c" /* glr.c:816 */
3707 break;
3708
3709 case 433:
3710 #line 1111 "src/parser_proc_grammar.y" /* glr.c:816 */
3711 {
3712 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3713 }
3714 #line 3715 "src/parser_proc.c" /* glr.c:816 */
3715 break;
3716
3717 case 434:
3718 #line 1117 "src/parser_proc_grammar.y" /* glr.c:816 */
3719 {
3720 (*(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)));
3721 }
3722 #line 3723 "src/parser_proc.c" /* glr.c:816 */
3723 break;
3724
3725 case 435:
3726 #line 1120 "src/parser_proc_grammar.y" /* glr.c:816 */
3727 {
3728 (*(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)));
3729 }
3730 #line 3731 "src/parser_proc.c" /* glr.c:816 */
3731 break;
3732
3733 case 436:
3734 #line 1126 "src/parser_proc_grammar.y" /* glr.c:816 */
3735 {
3736 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3737 }
3738 #line 3739 "src/parser_proc.c" /* glr.c:816 */
3739 break;
3740
3741 case 437:
3742 #line 1129 "src/parser_proc_grammar.y" /* glr.c:816 */
3743 {
3744 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3745 }
3746 #line 3747 "src/parser_proc.c" /* glr.c:816 */
3747 break;
3748
3749 case 438:
3750 #line 1132 "src/parser_proc_grammar.y" /* glr.c:816 */
3751 {
3752 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3753 }
3754 #line 3755 "src/parser_proc.c" /* glr.c:816 */
3755 break;
3756
3757 case 445:
3758 #line 1153 "src/parser_proc_grammar.y" /* glr.c:816 */
3759 {
3760 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3761 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3762 }
3763 #line 3764 "src/parser_proc.c" /* glr.c:816 */
3764 break;
3765
3766 case 448:
3767 #line 1165 "src/parser_proc_grammar.y" /* glr.c:816 */
3768 {
3769 (*(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)));
3770 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3771 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3772 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3773 }
3774 }
3775 #line 3776 "src/parser_proc.c" /* glr.c:816 */
3776 break;
3777
3778 case 449:
3779 #line 1172 "src/parser_proc_grammar.y" /* glr.c:816 */
3780 {
3781 (*(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)));
3782 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3783 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3784 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3785 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3786 }
3787 }
3788 #line 3789 "src/parser_proc.c" /* glr.c:816 */
3789 break;
3790
3791 case 450:
3792 #line 1183 "src/parser_proc_grammar.y" /* glr.c:816 */
3793 {
3794 (*(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)));
3795 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3796 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3797 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3798 }
3799 }
3800 #line 3801 "src/parser_proc.c" /* glr.c:816 */
3801 break;
3802
3803 case 451:
3804 #line 1190 "src/parser_proc_grammar.y" /* glr.c:816 */
3805 {
3806 (*(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)));
3807 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3808 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3809 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3810 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3811 }
3812 }
3813 #line 3814 "src/parser_proc.c" /* glr.c:816 */
3814 break;
3815
3816 case 452:
3817 #line 1201 "src/parser_proc_grammar.y" /* glr.c:816 */
3818 {
3819 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3820 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3821 (*(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));
3822 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3823 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3824 }
3825 #line 3826 "src/parser_proc.c" /* glr.c:816 */
3826 break;
3827
3828 case 453:
3829 #line 1208 "src/parser_proc_grammar.y" /* glr.c:816 */
3830 {
3831 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3832 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3833 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3834 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),
3835 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)
3836 );
3837 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3838 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3839 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3840 }
3841 #line 3842 "src/parser_proc.c" /* glr.c:816 */
3842 break;
3843
3844 case 454:
3845 #line 1219 "src/parser_proc_grammar.y" /* glr.c:816 */
3846 {
3847 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3848 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3849 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3850 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),
3851 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)
3852 );
3853 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3854 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3855 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3856 }
3857 #line 3858 "src/parser_proc.c" /* glr.c:816 */
3858 break;
3859
3860 case 455:
3861 #line 1230 "src/parser_proc_grammar.y" /* glr.c:816 */
3862 {
3863 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3864 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3865 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3866 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),
3867 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3868 );
3869 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3870 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3871 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3872 }
3873 #line 3874 "src/parser_proc.c" /* glr.c:816 */
3874 break;
3875
3876 case 457:
3877 #line 1245 "src/parser_proc_grammar.y" /* glr.c:816 */
3878 {
3879 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3880 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),
3881 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3882 );
3883 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3884 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3885 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3886 }
3887 #line 3888 "src/parser_proc.c" /* glr.c:816 */
3888 break;
3889
3890 case 458:
3891 #line 1257 "src/parser_proc_grammar.y" /* glr.c:816 */
3892 {
3893 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3894 }
3895 #line 3896 "src/parser_proc.c" /* glr.c:816 */
3896 break;
3897
3898 case 459:
3899 #line 1260 "src/parser_proc_grammar.y" /* glr.c:816 */
3900 {
3901 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3902 }
3903 #line 3904 "src/parser_proc.c" /* glr.c:816 */
3904 break;
3905
3906 case 460:
3907 #line 1263 "src/parser_proc_grammar.y" /* glr.c:816 */
3908 {
3909 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3910 }
3911 #line 3912 "src/parser_proc.c" /* glr.c:816 */
3912 break;
3913
3914 case 461:
3915 #line 1269 "src/parser_proc_grammar.y" /* glr.c:816 */
3916 {
3917 (*(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)));
3918 }
3919 #line 3920 "src/parser_proc.c" /* glr.c:816 */
3920 break;
3921
3922 case 462:
3923 #line 1272 "src/parser_proc_grammar.y" /* glr.c:816 */
3924 {
3925 (*(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)));
3926 }
3927 #line 3928 "src/parser_proc.c" /* glr.c:816 */
3928 break;
3929
3930 case 463:
3931 #line 1279 "src/parser_proc_grammar.y" /* glr.c:816 */
3932 {
3933 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3934 }
3935 #line 3936 "src/parser_proc.c" /* glr.c:816 */
3936 break;
3937
3938 case 464:
3939 #line 1282 "src/parser_proc_grammar.y" /* glr.c:816 */
3940 {
3941 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3942 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
3943 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3944 );
3945 }
3946 #line 3947 "src/parser_proc.c" /* glr.c:816 */
3947 break;
3948
3949 case 465:
3950 #line 1288 "src/parser_proc_grammar.y" /* glr.c:816 */
3951 {
3952 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3953 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),
3954 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3955 );
3956 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3957 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3958 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3959 }
3960 #line 3961 "src/parser_proc.c" /* glr.c:816 */
3961 break;
3962
3963 case 466:
3964 #line 1297 "src/parser_proc_grammar.y" /* glr.c:816 */
3965 {
3966 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3967 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),
3968 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
3969 );
3970 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3971 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3972 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3973 }
3974 #line 3975 "src/parser_proc.c" /* glr.c:816 */
3975 break;
3976
3977 case 467:
3978 #line 1309 "src/parser_proc_grammar.y" /* glr.c:816 */
3979 {
3980 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3981 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3982 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3983 );
3984 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3985 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3986 }
3987 #line 3988 "src/parser_proc.c" /* glr.c:816 */
3988 break;
3989
3990 case 468:
3991 #line 1317 "src/parser_proc_grammar.y" /* glr.c:816 */
3992 {
3993 (*(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)));
3994 }
3995 #line 3996 "src/parser_proc.c" /* glr.c:816 */
3996 break;
3997
3998 case 469:
3999 #line 1320 "src/parser_proc_grammar.y" /* glr.c:816 */
4000 {
4001 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4002 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4003 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),
4004 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)
4005 );
4006 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4007 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4008 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4009 }
4010 #line 4011 "src/parser_proc.c" /* glr.c:816 */
4011 break;
4012
4013 case 470:
4014 #line 1330 "src/parser_proc_grammar.y" /* glr.c:816 */
4015 {
4016 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4017 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4018 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),
4019 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)
4020 );
4021 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4022 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4023 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4024 }
4025 #line 4026 "src/parser_proc.c" /* glr.c:816 */
4026 break;
4027
4028 case 471:
4029 #line 1343 "src/parser_proc_grammar.y" /* glr.c:816 */
4030 {
4031 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4032 (*(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)));
4033 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4034 }
4035 #line 4036 "src/parser_proc.c" /* glr.c:816 */
4036 break;
4037
4038 case 472:
4039 #line 1348 "src/parser_proc_grammar.y" /* glr.c:816 */
4040 {
4041 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4042 (*(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)));
4043 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4044 }
4045 #line 4046 "src/parser_proc.c" /* glr.c:816 */
4046 break;
4047
4048 case 473:
4049 #line 1356 "src/parser_proc_grammar.y" /* glr.c:816 */
4050 {
4051 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4052 (*(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)));
4053 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4054 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4055 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4056 }
4057 #line 4058 "src/parser_proc.c" /* glr.c:816 */
4058 break;
4059
4060 case 474:
4061 #line 1366 "src/parser_proc_grammar.y" /* glr.c:816 */
4062 {
4063 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4064 (*(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)));
4065 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4066 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4067 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4068 }
4069 #line 4070 "src/parser_proc.c" /* glr.c:816 */
4070 break;
4071
4072 case 475:
4073 #line 1376 "src/parser_proc_grammar.y" /* glr.c:816 */
4074 {
4075 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4076 }
4077 #line 4078 "src/parser_proc.c" /* glr.c:816 */
4078 break;
4079
4080 case 477:
4081 #line 1383 "src/parser_proc_grammar.y" /* glr.c:816 */
4082 {
4083 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4084 }
4085 #line 4086 "src/parser_proc.c" /* glr.c:816 */
4086 break;
4087
4088 case 478:
4089 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
4090 {
4091 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4092 (*(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)));
4093 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4094 size_t i = 0;
4095 struct psi_decl_arg *arg;
4096
4097 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4098 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4099 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4100 }
4101 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4102 }
4103 }
4104 #line 4105 "src/parser_proc.c" /* glr.c:816 */
4105 break;
4106
4107 case 479:
4108 #line 1403 "src/parser_proc_grammar.y" /* glr.c:816 */
4109 {
4110 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4111 (*(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)));
4112 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4113 size_t i = 0;
4114 struct psi_decl_arg *arg;
4115
4116 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4117 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4118 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4119 }
4120 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4121 }
4122 }
4123 #line 4124 "src/parser_proc.c" /* glr.c:816 */
4124 break;
4125
4126 case 480:
4127 #line 1420 "src/parser_proc_grammar.y" /* glr.c:816 */
4128 {
4129 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4130 }
4131 #line 4132 "src/parser_proc.c" /* glr.c:816 */
4132 break;
4133
4134 case 481:
4135 #line 1423 "src/parser_proc_grammar.y" /* glr.c:816 */
4136 {
4137 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4138 }
4139 #line 4140 "src/parser_proc.c" /* glr.c:816 */
4140 break;
4141
4142 case 482:
4143 #line 1429 "src/parser_proc_grammar.y" /* glr.c:816 */
4144 {
4145 {
4146 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4147 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4148 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4149 }
4150 }
4151 #line 4152 "src/parser_proc.c" /* glr.c:816 */
4152 break;
4153
4154 case 483:
4155 #line 1436 "src/parser_proc_grammar.y" /* glr.c:816 */
4156 {
4157 {
4158 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4159 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4160 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4161 }
4162 }
4163 #line 4164 "src/parser_proc.c" /* glr.c:816 */
4164 break;
4165
4166 case 484:
4167 #line 1446 "src/parser_proc_grammar.y" /* glr.c:816 */
4168 {
4169 (*(struct psi_decl_enum **)(&(*yyvalp))) = psi_decl_enum_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4170 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
4171 }
4172 #line 4173 "src/parser_proc.c" /* glr.c:816 */
4173 break;
4174
4175 case 485:
4176 #line 1453 "src/parser_proc_grammar.y" /* glr.c:816 */
4177 {
4178 (*(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)));
4179 }
4180 #line 4181 "src/parser_proc.c" /* glr.c:816 */
4181 break;
4182
4183 case 486:
4184 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
4185 {
4186 (*(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)));
4187 }
4188 #line 4189 "src/parser_proc.c" /* glr.c:816 */
4189 break;
4190
4191 case 487:
4192 #line 1462 "src/parser_proc_grammar.y" /* glr.c:816 */
4193 {
4194 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4195 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4196 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4197 }
4198 #line 4199 "src/parser_proc.c" /* glr.c:816 */
4199 break;
4200
4201 case 488:
4202 #line 1467 "src/parser_proc_grammar.y" /* glr.c:816 */
4203 {
4204 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4205 (*(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)));
4206 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4207 }
4208 #line 4209 "src/parser_proc.c" /* glr.c:816 */
4209 break;
4210
4211 case 489:
4212 #line 1475 "src/parser_proc_grammar.y" /* glr.c:816 */
4213 {
4214 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4215 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4216 }
4217 #line 4218 "src/parser_proc.c" /* glr.c:816 */
4218 break;
4219
4220 case 490:
4221 #line 1479 "src/parser_proc_grammar.y" /* glr.c:816 */
4222 {
4223 (*(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)));
4224 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4225 }
4226 #line 4227 "src/parser_proc.c" /* glr.c:816 */
4227 break;
4228
4229 case 491:
4230 #line 1483 "src/parser_proc_grammar.y" /* glr.c:816 */
4231 {
4232 (*(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)));
4233 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4234 }
4235 #line 4236 "src/parser_proc.c" /* glr.c:816 */
4236 break;
4237
4238 case 492:
4239 #line 1487 "src/parser_proc_grammar.y" /* glr.c:816 */
4240 {
4241 (*(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)));
4242 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4243 }
4244 #line 4245 "src/parser_proc.c" /* glr.c:816 */
4245 break;
4246
4247 case 493:
4248 #line 1491 "src/parser_proc_grammar.y" /* glr.c:816 */
4249 {
4250 (*(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)));
4251 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4252 }
4253 #line 4254 "src/parser_proc.c" /* glr.c:816 */
4254 break;
4255
4256 case 494:
4257 #line 1495 "src/parser_proc_grammar.y" /* glr.c:816 */
4258 {
4259 (*(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)));
4260 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4261 }
4262 #line 4263 "src/parser_proc.c" /* glr.c:816 */
4263 break;
4264
4265 case 495:
4266 #line 1502 "src/parser_proc_grammar.y" /* glr.c:816 */
4267 {
4268 (*(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);
4269 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4270 }
4271 #line 4272 "src/parser_proc.c" /* glr.c:816 */
4272 break;
4273
4274 case 496:
4275 #line 1506 "src/parser_proc_grammar.y" /* glr.c:816 */
4276 {
4277 (*(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);
4278 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4279 }
4280 #line 4281 "src/parser_proc.c" /* glr.c:816 */
4281 break;
4282
4283 case 497:
4284 #line 1510 "src/parser_proc_grammar.y" /* glr.c:816 */
4285 {
4286 (*(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);
4287 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4288 }
4289 #line 4290 "src/parser_proc.c" /* glr.c:816 */
4290 break;
4291
4292 case 498:
4293 #line 1514 "src/parser_proc_grammar.y" /* glr.c:816 */
4294 {
4295 (*(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);
4296 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4297 }
4298 #line 4299 "src/parser_proc.c" /* glr.c:816 */
4299 break;
4300
4301 case 499:
4302 #line 1518 "src/parser_proc_grammar.y" /* glr.c:816 */
4303 {
4304 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4305 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4306 }
4307 #line 4308 "src/parser_proc.c" /* glr.c:816 */
4308 break;
4309
4310 case 500:
4311 #line 1522 "src/parser_proc_grammar.y" /* glr.c:816 */
4312 {
4313 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4314 }
4315 #line 4316 "src/parser_proc.c" /* glr.c:816 */
4316 break;
4317
4318 case 501:
4319 #line 1528 "src/parser_proc_grammar.y" /* glr.c:816 */
4320 {
4321 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4322 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4323 }
4324 #line 4325 "src/parser_proc.c" /* glr.c:816 */
4325 break;
4326
4327 case 502:
4328 #line 1532 "src/parser_proc_grammar.y" /* glr.c:816 */
4329 {
4330 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4331 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4332 }
4333 #line 4334 "src/parser_proc.c" /* glr.c:816 */
4334 break;
4335
4336 case 503:
4337 #line 1539 "src/parser_proc_grammar.y" /* glr.c:816 */
4338 {
4339 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4340 }
4341 #line 4342 "src/parser_proc.c" /* glr.c:816 */
4342 break;
4343
4344 case 504:
4345 #line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */
4346 {
4347 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4348 int8_t sizeof_void_p = sizeof(void *);
4349 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4350 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4351 } else {
4352 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4353 }
4354 }
4355 #line 4356 "src/parser_proc.c" /* glr.c:816 */
4356 break;
4357
4358 case 505:
4359 #line 1554 "src/parser_proc_grammar.y" /* glr.c:816 */
4360 {
4361 int8_t sizeof_void_p = sizeof(void *);
4362 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4363 }
4364 #line 4365 "src/parser_proc.c" /* glr.c:816 */
4365 break;
4366
4367 case 506:
4368 #line 1558 "src/parser_proc_grammar.y" /* glr.c:816 */
4369 {
4370 int8_t sizeof_a = sizeof('a');
4371 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4372 }
4373 #line 4374 "src/parser_proc.c" /* glr.c:816 */
4374 break;
4375
4376 case 507:
4377 #line 1562 "src/parser_proc_grammar.y" /* glr.c:816 */
4378 {
4379 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4380 }
4381 #line 4382 "src/parser_proc.c" /* glr.c:816 */
4382 break;
4383
4384 case 508:
4385 #line 1568 "src/parser_proc_grammar.y" /* glr.c:816 */
4386 {
4387 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4388 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4389 } else {
4390 char digest[17];
4391
4392 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4393 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4394 }
4395 }
4396 #line 4397 "src/parser_proc.c" /* glr.c:816 */
4397 break;
4398
4399 case 509:
4400 #line 1581 "src/parser_proc_grammar.y" /* glr.c:816 */
4401 {
4402 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4403 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4404 } else {
4405 char digest[17];
4406
4407 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4408 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4409 }
4410 }
4411 #line 4412 "src/parser_proc.c" /* glr.c:816 */
4412 break;
4413
4414 case 510:
4415 #line 1594 "src/parser_proc_grammar.y" /* glr.c:816 */
4416 {
4417 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4418 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4419 } else {
4420 char digest[17];
4421
4422 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4423 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4424 }
4425 }
4426 #line 4427 "src/parser_proc.c" /* glr.c:816 */
4427 break;
4428
4429 case 511:
4430 #line 1607 "src/parser_proc_grammar.y" /* glr.c:816 */
4431 {
4432 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4433 }
4434 #line 4435 "src/parser_proc.c" /* glr.c:816 */
4435 break;
4436
4437 case 512:
4438 #line 1610 "src/parser_proc_grammar.y" /* glr.c:816 */
4439 {
4440 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4441 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4442 }
4443 #line 4444 "src/parser_proc.c" /* glr.c:816 */
4444 break;
4445
4446 case 515:
4447 #line 1622 "src/parser_proc_grammar.y" /* glr.c:816 */
4448 {
4449 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4450 }
4451 #line 4452 "src/parser_proc.c" /* glr.c:816 */
4452 break;
4453
4454 case 516:
4455 #line 1625 "src/parser_proc_grammar.y" /* glr.c:816 */
4456 {
4457 (*(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));
4458 }
4459 #line 4460 "src/parser_proc.c" /* glr.c:816 */
4460 break;
4461
4462 case 517:
4463 #line 1628 "src/parser_proc_grammar.y" /* glr.c:816 */
4464 {
4465 (*(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);
4466 }
4467 #line 4468 "src/parser_proc.c" /* glr.c:816 */
4468 break;
4469
4470 case 518:
4471 #line 1631 "src/parser_proc_grammar.y" /* glr.c:816 */
4472 {
4473 (*(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));
4474 }
4475 #line 4476 "src/parser_proc.c" /* glr.c:816 */
4476 break;
4477
4478 case 519:
4479 #line 1637 "src/parser_proc_grammar.y" /* glr.c:816 */
4480 {
4481 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4482 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4483 }
4484 #line 4485 "src/parser_proc.c" /* glr.c:816 */
4485 break;
4486
4487 case 520:
4488 #line 1641 "src/parser_proc_grammar.y" /* glr.c:816 */
4489 {
4490 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4491 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4492 }
4493 #line 4494 "src/parser_proc.c" /* glr.c:816 */
4494 break;
4495
4496 case 521:
4497 #line 1648 "src/parser_proc_grammar.y" /* glr.c:816 */
4498 {
4499 (*(size_t*)(&(*yyvalp))) = 0;
4500 }
4501 #line 4502 "src/parser_proc.c" /* glr.c:816 */
4502 break;
4503
4504 case 522:
4505 #line 1651 "src/parser_proc_grammar.y" /* glr.c:816 */
4506 {
4507 (*(size_t*)(&(*yyvalp))) = 0;
4508 }
4509 #line 4510 "src/parser_proc.c" /* glr.c:816 */
4510 break;
4511
4512 case 523:
4513 #line 1654 "src/parser_proc_grammar.y" /* glr.c:816 */
4514 {
4515 (*(size_t*)(&(*yyvalp))) = 0;
4516 }
4517 #line 4518 "src/parser_proc.c" /* glr.c:816 */
4518 break;
4519
4520 case 524:
4521 #line 1657 "src/parser_proc_grammar.y" /* glr.c:816 */
4522 {
4523 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)) {
4524 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4525 } else {
4526 (*(size_t*)(&(*yyvalp))) = 0;
4527 }
4528 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4529 }
4530 #line 4531 "src/parser_proc.c" /* glr.c:816 */
4531 break;
4532
4533 case 525:
4534 #line 1668 "src/parser_proc_grammar.y" /* glr.c:816 */
4535 {
4536 (*(size_t*)(&(*yyvalp))) = 0;
4537 }
4538 #line 4539 "src/parser_proc.c" /* glr.c:816 */
4539 break;
4540
4541 case 526:
4542 #line 1671 "src/parser_proc_grammar.y" /* glr.c:816 */
4543 {
4544 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4545 }
4546 #line 4547 "src/parser_proc.c" /* glr.c:816 */
4547 break;
4548
4549 case 528:
4550 #line 1678 "src/parser_proc_grammar.y" /* glr.c:816 */
4551 {
4552 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4553 }
4554 #line 4555 "src/parser_proc.c" /* glr.c:816 */
4555 break;
4556
4557 case 529:
4558 #line 1684 "src/parser_proc_grammar.y" /* glr.c:816 */
4559 {
4560 (*(size_t*)(&(*yyvalp))) = 1;
4561 }
4562 #line 4563 "src/parser_proc.c" /* glr.c:816 */
4563 break;
4564
4565 case 530:
4566 #line 1687 "src/parser_proc_grammar.y" /* glr.c:816 */
4567 {
4568 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4569 }
4570 #line 4571 "src/parser_proc.c" /* glr.c:816 */
4571 break;
4572
4573 case 533:
4574 #line 1704 "src/parser_proc_grammar.y" /* glr.c:816 */
4575 {
4576 (*(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)));
4577 }
4578 #line 4579 "src/parser_proc.c" /* glr.c:816 */
4579 break;
4580
4581 case 534:
4582 #line 1707 "src/parser_proc_grammar.y" /* glr.c:816 */
4583 {
4584 (*(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)));
4585 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4586 }
4587 #line 4588 "src/parser_proc.c" /* glr.c:816 */
4588 break;
4589
4590 case 535:
4591 #line 1714 "src/parser_proc_grammar.y" /* glr.c:816 */
4592 {
4593 (*(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)));
4594 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4595 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4596 }
4597 #line 4598 "src/parser_proc.c" /* glr.c:816 */
4598 break;
4599
4600 case 536:
4601 #line 1719 "src/parser_proc_grammar.y" /* glr.c:816 */
4602 {
4603 (*(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)));
4604 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4605 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4606 }
4607 #line 4608 "src/parser_proc.c" /* glr.c:816 */
4608 break;
4609
4610 case 537:
4611 #line 1724 "src/parser_proc_grammar.y" /* glr.c:816 */
4612 {
4613 (*(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)));
4614 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4615 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4616 (*(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);
4617 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4618 }
4619 #line 4620 "src/parser_proc.c" /* glr.c:816 */
4620 break;
4621
4622 case 538:
4623 #line 1734 "src/parser_proc_grammar.y" /* glr.c:816 */
4624 {
4625 (*(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)));
4626 }
4627 #line 4628 "src/parser_proc.c" /* glr.c:816 */
4628 break;
4629
4630 case 539:
4631 #line 1737 "src/parser_proc_grammar.y" /* glr.c:816 */
4632 {
4633 (*(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)));
4634 }
4635 #line 4636 "src/parser_proc.c" /* glr.c:816 */
4636 break;
4637
4638 case 540:
4639 #line 1743 "src/parser_proc_grammar.y" /* glr.c:816 */
4640 {
4641 (*(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);
4642 }
4643 #line 4644 "src/parser_proc.c" /* glr.c:816 */
4644 break;
4645
4646 case 541:
4647 #line 1746 "src/parser_proc_grammar.y" /* glr.c:816 */
4648 {
4649 (*(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)));
4650 }
4651 #line 4652 "src/parser_proc.c" /* glr.c:816 */
4652 break;
4653
4654 case 542:
4655 #line 1752 "src/parser_proc_grammar.y" /* glr.c:816 */
4656 {
4657 (*(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)));
4658 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4659 }
4660 #line 4661 "src/parser_proc.c" /* glr.c:816 */
4661 break;
4662
4663 case 543:
4664 #line 1759 "src/parser_proc_grammar.y" /* glr.c:816 */
4665 {
4666 (*(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);
4667 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4668 }
4669 #line 4670 "src/parser_proc.c" /* glr.c:816 */
4670 break;
4671
4672 case 553:
4673 #line 1778 "src/parser_proc_grammar.y" /* glr.c:816 */
4674 {
4675 (*(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)));
4676 }
4677 #line 4678 "src/parser_proc.c" /* glr.c:816 */
4678 break;
4679
4680 case 554:
4681 #line 1781 "src/parser_proc_grammar.y" /* glr.c:816 */
4682 {
4683 (*(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)));
4684 }
4685 #line 4686 "src/parser_proc.c" /* glr.c:816 */
4686 break;
4687
4688 case 555:
4689 #line 1787 "src/parser_proc_grammar.y" /* glr.c:816 */
4690 {
4691 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4692 }
4693 #line 4694 "src/parser_proc.c" /* glr.c:816 */
4694 break;
4695
4696 case 556:
4697 #line 1790 "src/parser_proc_grammar.y" /* glr.c:816 */
4698 {
4699 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4700 }
4701 #line 4702 "src/parser_proc.c" /* glr.c:816 */
4702 break;
4703
4704 case 557:
4705 #line 1793 "src/parser_proc_grammar.y" /* glr.c:816 */
4706 {
4707 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4708 }
4709 #line 4710 "src/parser_proc.c" /* glr.c:816 */
4710 break;
4711
4712 case 558:
4713 #line 1796 "src/parser_proc_grammar.y" /* glr.c:816 */
4714 {
4715 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4716 }
4717 #line 4718 "src/parser_proc.c" /* glr.c:816 */
4718 break;
4719
4720 case 559:
4721 #line 1799 "src/parser_proc_grammar.y" /* glr.c:816 */
4722 {
4723 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4724 }
4725 #line 4726 "src/parser_proc.c" /* glr.c:816 */
4726 break;
4727
4728 case 560:
4729 #line 1805 "src/parser_proc_grammar.y" /* glr.c:816 */
4730 {
4731 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4732 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4733 }
4734 #line 4735 "src/parser_proc.c" /* glr.c:816 */
4735 break;
4736
4737 case 561:
4738 #line 1809 "src/parser_proc_grammar.y" /* glr.c:816 */
4739 {
4740 (*(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))));
4741 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4742 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4743 }
4744 #line 4745 "src/parser_proc.c" /* glr.c:816 */
4745 break;
4746
4747 case 563:
4748 #line 1818 "src/parser_proc_grammar.y" /* glr.c:816 */
4749 {
4750 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4751 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4752 }
4753 #line 4754 "src/parser_proc.c" /* glr.c:816 */
4754 break;
4755
4756 case 564:
4757 #line 1822 "src/parser_proc_grammar.y" /* glr.c:816 */
4758 {
4759 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4760 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4761 }
4762 #line 4763 "src/parser_proc.c" /* glr.c:816 */
4763 break;
4764
4765 case 565:
4766 #line 1829 "src/parser_proc_grammar.y" /* glr.c:816 */
4767 {
4768 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4769 }
4770 #line 4771 "src/parser_proc.c" /* glr.c:816 */
4771 break;
4772
4773 case 566:
4774 #line 1832 "src/parser_proc_grammar.y" /* glr.c:816 */
4775 {
4776 (*(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)));
4777 }
4778 #line 4779 "src/parser_proc.c" /* glr.c:816 */
4779 break;
4780
4781 case 567:
4782 #line 1835 "src/parser_proc_grammar.y" /* glr.c:816 */
4783 {
4784 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4785 }
4786 #line 4787 "src/parser_proc.c" /* glr.c:816 */
4787 break;
4788
4789 case 568:
4790 #line 1838 "src/parser_proc_grammar.y" /* glr.c:816 */
4791 {
4792 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4793 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4794 }
4795 #line 4796 "src/parser_proc.c" /* glr.c:816 */
4796 break;
4797
4798 case 569:
4799 #line 1842 "src/parser_proc_grammar.y" /* glr.c:816 */
4800 {
4801 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4802 }
4803 #line 4804 "src/parser_proc.c" /* glr.c:816 */
4804 break;
4805
4806 case 570:
4807 #line 1845 "src/parser_proc_grammar.y" /* glr.c:816 */
4808 {
4809 (*(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)));
4810 }
4811 #line 4812 "src/parser_proc.c" /* glr.c:816 */
4812 break;
4813
4814 case 571:
4815 #line 1851 "src/parser_proc_grammar.y" /* glr.c:816 */
4816 {
4817 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4818 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4819 }
4820 #line 4821 "src/parser_proc.c" /* glr.c:816 */
4821 break;
4822
4823 case 572:
4824 #line 1855 "src/parser_proc_grammar.y" /* glr.c:816 */
4825 {
4826 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4827 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4828 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4829 }
4830 #line 4831 "src/parser_proc.c" /* glr.c:816 */
4831 break;
4832
4833 case 573:
4834 #line 1863 "src/parser_proc_grammar.y" /* glr.c:816 */
4835 {
4836 (*(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)));
4837 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4838 }
4839 #line 4840 "src/parser_proc.c" /* glr.c:816 */
4840 break;
4841
4842 case 574:
4843 #line 1870 "src/parser_proc_grammar.y" /* glr.c:816 */
4844 {
4845 (*(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)), NULL);
4846 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4847 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4848 }
4849 #line 4850 "src/parser_proc.c" /* glr.c:816 */
4850 break;
4851
4852 case 575:
4853 #line 1875 "src/parser_proc_grammar.y" /* glr.c:816 */
4854 {
4855 (*(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)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)));
4856 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4857 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
4858 }
4859 #line 4860 "src/parser_proc.c" /* glr.c:816 */
4860 break;
4861
4862 case 576:
4863 #line 1883 "src/parser_proc_grammar.y" /* glr.c:816 */
4864 {
4865 (*(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)));
4866 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4867 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4868 }
4869 #line 4870 "src/parser_proc.c" /* glr.c:816 */
4870 break;
4871
4872 case 587:
4873 #line 1904 "src/parser_proc_grammar.y" /* glr.c:816 */
4874 {
4875 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4876 }
4877 #line 4878 "src/parser_proc.c" /* glr.c:816 */
4878 break;
4879
4880 case 588:
4881 #line 1907 "src/parser_proc_grammar.y" /* glr.c:816 */
4882 {
4883 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4884 }
4885 #line 4886 "src/parser_proc.c" /* glr.c:816 */
4886 break;
4887
4888 case 589:
4889 #line 1913 "src/parser_proc_grammar.y" /* glr.c:816 */
4890 {
4891 (*(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)));
4892 }
4893 #line 4894 "src/parser_proc.c" /* glr.c:816 */
4894 break;
4895
4896 case 590:
4897 #line 1916 "src/parser_proc_grammar.y" /* glr.c:816 */
4898 {
4899 (*(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)));
4900 }
4901 #line 4902 "src/parser_proc.c" /* glr.c:816 */
4902 break;
4903
4904 case 593:
4905 #line 1927 "src/parser_proc_grammar.y" /* glr.c:816 */
4906 {
4907 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4908 }
4909 #line 4910 "src/parser_proc.c" /* glr.c:816 */
4910 break;
4911
4912 case 594:
4913 #line 1930 "src/parser_proc_grammar.y" /* glr.c:816 */
4914 {
4915 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4916 }
4917 #line 4918 "src/parser_proc.c" /* glr.c:816 */
4918 break;
4919
4920 case 595:
4921 #line 1936 "src/parser_proc_grammar.y" /* glr.c:816 */
4922 {
4923 (*(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)));
4924 }
4925 #line 4926 "src/parser_proc.c" /* glr.c:816 */
4926 break;
4927
4928 case 596:
4929 #line 1939 "src/parser_proc_grammar.y" /* glr.c:816 */
4930 {
4931 (*(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)));
4932 }
4933 #line 4934 "src/parser_proc.c" /* glr.c:816 */
4934 break;
4935
4936 case 597:
4937 #line 1945 "src/parser_proc_grammar.y" /* glr.c:816 */
4938 {
4939 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4940 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4941 }
4942 #line 4943 "src/parser_proc.c" /* glr.c:816 */
4943 break;
4944
4945 case 598:
4946 #line 1952 "src/parser_proc_grammar.y" /* glr.c:816 */
4947 {
4948 (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
4949 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
4950 }
4951 #line 4952 "src/parser_proc.c" /* glr.c:816 */
4952 break;
4953
4954 case 599:
4955 #line 1956 "src/parser_proc_grammar.y" /* glr.c:816 */
4956 {
4957 (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init(NULL, NULL, psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))));
4958 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4959 }
4960 #line 4961 "src/parser_proc.c" /* glr.c:816 */
4961 break;
4962
4963 case 600:
4964 #line 1963 "src/parser_proc_grammar.y" /* glr.c:816 */
4965 {
4966 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4967 }
4968 #line 4969 "src/parser_proc.c" /* glr.c:816 */
4969 break;
4970
4971 case 601:
4972 #line 1966 "src/parser_proc_grammar.y" /* glr.c:816 */
4973 {
4974 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4975 }
4976 #line 4977 "src/parser_proc.c" /* glr.c:816 */
4977 break;
4978
4979 case 602:
4980 #line 1969 "src/parser_proc_grammar.y" /* glr.c:816 */
4981 {
4982 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4983 }
4984 #line 4985 "src/parser_proc.c" /* glr.c:816 */
4985 break;
4986
4987 case 603:
4988 #line 1975 "src/parser_proc_grammar.y" /* glr.c:816 */
4989 {
4990 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4991 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4992 }
4993 #line 4994 "src/parser_proc.c" /* glr.c:816 */
4994 break;
4995
4996 case 604:
4997 #line 1982 "src/parser_proc_grammar.y" /* glr.c:816 */
4998 {
4999 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5000 }
5001 #line 5002 "src/parser_proc.c" /* glr.c:816 */
5002 break;
5003
5004 case 605:
5005 #line 1985 "src/parser_proc_grammar.y" /* glr.c:816 */
5006 {
5007 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5008 }
5009 #line 5010 "src/parser_proc.c" /* glr.c:816 */
5010 break;
5011
5012 case 606:
5013 #line 1988 "src/parser_proc_grammar.y" /* glr.c:816 */
5014 {
5015 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5016 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5017 }
5018 #line 5019 "src/parser_proc.c" /* glr.c:816 */
5019 break;
5020
5021 case 607:
5022 #line 1995 "src/parser_proc_grammar.y" /* glr.c:816 */
5023 {
5024 (*(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)));
5025 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5026 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5027 }
5028 #line 5029 "src/parser_proc.c" /* glr.c:816 */
5029 break;
5030
5031 case 608:
5032 #line 2000 "src/parser_proc_grammar.y" /* glr.c:816 */
5033 {
5034 (*(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)));
5035 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
5036 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
5037 }
5038 #line 5039 "src/parser_proc.c" /* glr.c:816 */
5039 break;
5040
5041 case 617:
5042 #line 2019 "src/parser_proc_grammar.y" /* glr.c:816 */
5043 {
5044 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5045 }
5046 #line 5047 "src/parser_proc.c" /* glr.c:816 */
5047 break;
5048
5049 case 618:
5050 #line 2022 "src/parser_proc_grammar.y" /* glr.c:816 */
5051 {
5052 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5053 }
5054 #line 5055 "src/parser_proc.c" /* glr.c:816 */
5055 break;
5056
5057 case 619:
5058 #line 2028 "src/parser_proc_grammar.y" /* glr.c:816 */
5059 {
5060 (*(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)));
5061 }
5062 #line 5063 "src/parser_proc.c" /* glr.c:816 */
5063 break;
5064
5065 case 620:
5066 #line 2031 "src/parser_proc_grammar.y" /* glr.c:816 */
5067 {
5068 (*(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)));
5069 }
5070 #line 5071 "src/parser_proc.c" /* glr.c:816 */
5071 break;
5072
5073 case 621:
5074 #line 2037 "src/parser_proc_grammar.y" /* glr.c:816 */
5075 {
5076 (*(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)));
5077 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5078 }
5079 #line 5080 "src/parser_proc.c" /* glr.c:816 */
5080 break;
5081
5082 case 624:
5083 #line 2049 "src/parser_proc_grammar.y" /* glr.c:816 */
5084 {
5085 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5086 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5087 }
5088 #line 5089 "src/parser_proc.c" /* glr.c:816 */
5089 break;
5090
5091 case 625:
5092 #line 2056 "src/parser_proc_grammar.y" /* glr.c:816 */
5093 {
5094 (*(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)));
5095 }
5096 #line 5097 "src/parser_proc.c" /* glr.c:816 */
5097 break;
5098
5099 case 626:
5100 #line 2059 "src/parser_proc_grammar.y" /* glr.c:816 */
5101 {
5102 (*(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)));
5103 }
5104 #line 5105 "src/parser_proc.c" /* glr.c:816 */
5105 break;
5106
5107 case 627:
5108 #line 2065 "src/parser_proc_grammar.y" /* glr.c:816 */
5109 {
5110 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5111 (*(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)));
5112 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5113 }
5114 #line 5115 "src/parser_proc.c" /* glr.c:816 */
5115 break;
5116
5117 case 628:
5118 #line 2073 "src/parser_proc_grammar.y" /* glr.c:816 */
5119 {
5120 (*(bool*)(&(*yyvalp))) = false;
5121 }
5122 #line 5123 "src/parser_proc.c" /* glr.c:816 */
5123 break;
5124
5125 case 629:
5126 #line 2076 "src/parser_proc_grammar.y" /* glr.c:816 */
5127 {
5128 (*(bool*)(&(*yyvalp))) = true;
5129 }
5130 #line 5131 "src/parser_proc.c" /* glr.c:816 */
5131 break;
5132
5133
5134 #line 5135 "src/parser_proc.c" /* glr.c:816 */
5135 default: break;
5136 }
5137
5138 return yyok;
5139 # undef yyerrok
5140 # undef YYABORT
5141 # undef YYACCEPT
5142 # undef YYERROR
5143 # undef YYBACKUP
5144 # undef yyclearin
5145 # undef YYRECOVERING
5146 }
5147
5148
5149 static void
5150 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5151 {
5152 YYUSE (yy0);
5153 YYUSE (yy1);
5154
5155 switch (yyn)
5156 {
5157
5158 default: break;
5159 }
5160 }
5161
5162 /* Bison grammar-table manipulation. */
5163
5164 /*-----------------------------------------------.
5165 | Release the memory associated to this symbol. |
5166 `-----------------------------------------------*/
5167
5168 static void
5169 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5170 {
5171 YYUSE (yyvaluep);
5172 YYUSE (P);
5173 YYUSE (tokens);
5174 YYUSE (index);
5175 if (!yymsg)
5176 yymsg = "Deleting";
5177 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5178
5179 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5180 switch (yytype)
5181 {
5182 case 141: /* binary_op_token */
5183 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5184 {}
5185 #line 5186 "src/parser_proc.c" /* glr.c:846 */
5186 break;
5187
5188 case 142: /* unary_op_token */
5189 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5190 {}
5191 #line 5192 "src/parser_proc.c" /* glr.c:846 */
5192 break;
5193
5194 case 143: /* name_token */
5195 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5196 {}
5197 #line 5198 "src/parser_proc.c" /* glr.c:846 */
5198 break;
5199
5200 case 144: /* any_noeol_token */
5201 #line 307 "src/parser_proc_grammar.y" /* glr.c:846 */
5202 {}
5203 #line 5204 "src/parser_proc.c" /* glr.c:846 */
5204 break;
5205
5206 case 149: /* lib */
5207 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5208 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5209 #line 5210 "src/parser_proc.c" /* glr.c:846 */
5210 break;
5211
5212 case 150: /* cpp */
5213 #line 316 "src/parser_proc_grammar.y" /* glr.c:846 */
5214 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5215 #line 5216 "src/parser_proc.c" /* glr.c:846 */
5216 break;
5217
5218 case 151: /* cpp_exp */
5219 #line 316 "src/parser_proc_grammar.y" /* glr.c:846 */
5220 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5221 #line 5222 "src/parser_proc.c" /* glr.c:846 */
5222 break;
5223
5224 case 153: /* cpp_message_token */
5225 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5226 {}
5227 #line 5228 "src/parser_proc.c" /* glr.c:846 */
5228 break;
5229
5230 case 154: /* cpp_include_token */
5231 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5232 {}
5233 #line 5234 "src/parser_proc.c" /* glr.c:846 */
5234 break;
5235
5236 case 155: /* cpp_header_token */
5237 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5238 {}
5239 #line 5240 "src/parser_proc.c" /* glr.c:846 */
5240 break;
5241
5242 case 156: /* cpp_no_arg_token */
5243 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5244 {}
5245 #line 5246 "src/parser_proc.c" /* glr.c:846 */
5246 break;
5247
5248 case 157: /* cpp_name_arg_token */
5249 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5250 {}
5251 #line 5252 "src/parser_proc.c" /* glr.c:846 */
5252 break;
5253
5254 case 158: /* cpp_exp_arg_token */
5255 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5256 {}
5257 #line 5258 "src/parser_proc.c" /* glr.c:846 */
5258 break;
5259
5260 case 159: /* cpp_special_name_token */
5261 #line 304 "src/parser_proc_grammar.y" /* glr.c:846 */
5262 {}
5263 #line 5264 "src/parser_proc.c" /* glr.c:846 */
5264 break;
5265
5266 case 160: /* cpp_macro_decl */
5267 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
5268 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5269 #line 5270 "src/parser_proc.c" /* glr.c:846 */
5270 break;
5271
5272 case 161: /* cpp_macro_sig */
5273 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5274 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5275 #line 5276 "src/parser_proc.c" /* glr.c:846 */
5276 break;
5277
5278 case 162: /* cpp_macro_sig_args */
5279 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5280 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5281 #line 5282 "src/parser_proc.c" /* glr.c:846 */
5282 break;
5283
5284 case 163: /* cpp_macro_decl_tokens */
5285 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5286 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5287 #line 5288 "src/parser_proc.c" /* glr.c:846 */
5288 break;
5289
5290 case 164: /* cpp_macro_decl_token_list */
5291 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5292 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5293 #line 5294 "src/parser_proc.c" /* glr.c:846 */
5294 break;
5295
5296 case 165: /* cpp_macro_exp */
5297 #line 322 "src/parser_proc_grammar.y" /* glr.c:846 */
5298 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5299 #line 5300 "src/parser_proc.c" /* glr.c:846 */
5300 break;
5301
5302 case 166: /* cpp_macro_call_args */
5303 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5304 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5305 #line 5306 "src/parser_proc.c" /* glr.c:846 */
5306 break;
5307
5308 case 167: /* cpp_macro_call_arg_list */
5309 #line 320 "src/parser_proc_grammar.y" /* glr.c:846 */
5310 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5311 #line 5312 "src/parser_proc.c" /* glr.c:846 */
5312 break;
5313
5314 case 168: /* constant */
5315 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5316 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5317 #line 5318 "src/parser_proc.c" /* glr.c:846 */
5318 break;
5319
5320 case 169: /* constant_type */
5321 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
5322 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5323 #line 5324 "src/parser_proc.c" /* glr.c:846 */
5324 break;
5325
5326 case 170: /* constant_type_token */
5327 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
5328 {}
5329 #line 5330 "src/parser_proc.c" /* glr.c:846 */
5330 break;
5331
5332 case 171: /* impl_def_val */
5333 #line 332 "src/parser_proc_grammar.y" /* glr.c:846 */
5334 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5335 #line 5336 "src/parser_proc.c" /* glr.c:846 */
5336 break;
5337
5338 case 172: /* impl_def_val_token */
5339 #line 325 "src/parser_proc_grammar.y" /* glr.c:846 */
5340 {}
5341 #line 5342 "src/parser_proc.c" /* glr.c:846 */
5342 break;
5343
5344 case 173: /* decl_typedef */
5345 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5346 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5347 #line 5348 "src/parser_proc.c" /* glr.c:846 */
5348 break;
5349
5350 case 174: /* typedef */
5351 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5352 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5353 #line 5354 "src/parser_proc.c" /* glr.c:846 */
5354 break;
5355
5356 case 175: /* typedef_anon */
5357 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5358 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5359 #line 5360 "src/parser_proc.c" /* glr.c:846 */
5360 break;
5361
5362 case 176: /* typedef_decl */
5363 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5364 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5365 #line 5366 "src/parser_proc.c" /* glr.c:846 */
5366 break;
5367
5368 case 177: /* typedef_anon_decl */
5369 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5370 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5371 #line 5372 "src/parser_proc.c" /* glr.c:846 */
5372 break;
5373
5374 case 178: /* qualified_decl_type */
5375 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5376 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5377 #line 5378 "src/parser_proc.c" /* glr.c:846 */
5378 break;
5379
5380 case 179: /* decl_type */
5381 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5382 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5383 #line 5384 "src/parser_proc.c" /* glr.c:846 */
5384 break;
5385
5386 case 180: /* decl_type_complex */
5387 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5388 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5389 #line 5390 "src/parser_proc.c" /* glr.c:846 */
5390 break;
5391
5392 case 181: /* decl_type_simple */
5393 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5394 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5395 #line 5396 "src/parser_proc.c" /* glr.c:846 */
5396 break;
5397
5398 case 182: /* decl_real_type */
5399 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5400 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5401 #line 5402 "src/parser_proc.c" /* glr.c:846 */
5402 break;
5403
5404 case 183: /* int_signed */
5405 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5406 {}
5407 #line 5408 "src/parser_proc.c" /* glr.c:846 */
5408 break;
5409
5410 case 184: /* int_width */
5411 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5412 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5413 #line 5414 "src/parser_proc.c" /* glr.c:846 */
5414 break;
5415
5416 case 185: /* decl_int_type */
5417 #line 335 "src/parser_proc_grammar.y" /* glr.c:846 */
5418 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5419 #line 5420 "src/parser_proc.c" /* glr.c:846 */
5420 break;
5421
5422 case 186: /* int_signed_types */
5423 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5424 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5425 #line 5426 "src/parser_proc.c" /* glr.c:846 */
5426 break;
5427
5428 case 187: /* signed_short_types */
5429 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5430 {}
5431 #line 5432 "src/parser_proc.c" /* glr.c:846 */
5432 break;
5433
5434 case 188: /* signed_long_types */
5435 #line 313 "src/parser_proc_grammar.y" /* glr.c:846 */
5436 {}
5437 #line 5438 "src/parser_proc.c" /* glr.c:846 */
5438 break;
5439
5440 case 189: /* int_width_types */
5441 #line 310 "src/parser_proc_grammar.y" /* glr.c:846 */
5442 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5443 #line 5444 "src/parser_proc.c" /* glr.c:846 */
5444 break;
5445
5446 case 190: /* decl_stmt */
5447 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5448 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5449 #line 5450 "src/parser_proc.c" /* glr.c:846 */
5450 break;
5451
5452 case 196: /* decl_vars */
5453 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5454 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5455 #line 5456 "src/parser_proc.c" /* glr.c:846 */
5456 break;
5457
5458 case 201: /* decl */
5459 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5460 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5461 #line 5462 "src/parser_proc.c" /* glr.c:846 */
5462 break;
5463
5464 case 202: /* decl_body */
5465 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5466 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5467 #line 5468 "src/parser_proc.c" /* glr.c:846 */
5468 break;
5469
5470 case 203: /* decl_func_body */
5471 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5472 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5473 #line 5474 "src/parser_proc.c" /* glr.c:846 */
5474 break;
5475
5476 case 204: /* decl_functor_body */
5477 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5478 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5479 #line 5480 "src/parser_proc.c" /* glr.c:846 */
5480 break;
5481
5482 case 205: /* decl_functor */
5483 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5484 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5485 #line 5486 "src/parser_proc.c" /* glr.c:846 */
5486 break;
5487
5488 case 206: /* decl_func */
5489 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5490 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5491 #line 5492 "src/parser_proc.c" /* glr.c:846 */
5492 break;
5493
5494 case 207: /* decl_args */
5495 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5496 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5497 #line 5498 "src/parser_proc.c" /* glr.c:846 */
5498 break;
5499
5500 case 208: /* decl_arg_list */
5501 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5502 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5503 #line 5504 "src/parser_proc.c" /* glr.c:846 */
5504 break;
5505
5506 case 209: /* decl_anon_arg */
5507 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5508 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5509 #line 5510 "src/parser_proc.c" /* glr.c:846 */
5510 break;
5511
5512 case 210: /* decl_arg */
5513 #line 342 "src/parser_proc_grammar.y" /* glr.c:846 */
5514 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5515 #line 5516 "src/parser_proc.c" /* glr.c:846 */
5516 break;
5517
5518 case 211: /* decl_var */
5519 #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */
5520 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5521 #line 5522 "src/parser_proc.c" /* glr.c:846 */
5522 break;
5523
5524 case 212: /* decl_union */
5525 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5526 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5527 #line 5528 "src/parser_proc.c" /* glr.c:846 */
5528 break;
5529
5530 case 213: /* decl_struct */
5531 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5532 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5533 #line 5534 "src/parser_proc.c" /* glr.c:846 */
5534 break;
5535
5536 case 214: /* decl_struct_args */
5537 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5538 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5539 #line 5540 "src/parser_proc.c" /* glr.c:846 */
5540 break;
5541
5542 case 215: /* struct_args_block */
5543 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5544 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5545 #line 5546 "src/parser_proc.c" /* glr.c:846 */
5546 break;
5547
5548 case 216: /* struct_args */
5549 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5550 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5551 #line 5552 "src/parser_proc.c" /* glr.c:846 */
5552 break;
5553
5554 case 217: /* struct_arg_var_list */
5555 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5556 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5557 #line 5558 "src/parser_proc.c" /* glr.c:846 */
5558 break;
5559
5560 case 218: /* decl_vars_with_layout */
5561 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5562 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5563 #line 5564 "src/parser_proc.c" /* glr.c:846 */
5564 break;
5565
5566 case 219: /* decl_enum */
5567 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5568 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5569 #line 5570 "src/parser_proc.c" /* glr.c:846 */
5570 break;
5571
5572 case 220: /* decl_enum_items */
5573 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5574 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5575 #line 5576 "src/parser_proc.c" /* glr.c:846 */
5576 break;
5577
5578 case 221: /* decl_enum_item */
5579 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5580 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5581 #line 5582 "src/parser_proc.c" /* glr.c:846 */
5582 break;
5583
5584 case 222: /* num_exp */
5585 #line 410 "src/parser_proc_grammar.y" /* glr.c:846 */
5586 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5587 #line 5588 "src/parser_proc.c" /* glr.c:846 */
5588 break;
5589
5590 case 223: /* number */
5591 #line 412 "src/parser_proc_grammar.y" /* glr.c:846 */
5592 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5593 #line 5594 "src/parser_proc.c" /* glr.c:846 */
5594 break;
5595
5596 case 224: /* sizeof */
5597 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5598 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5599 #line 5600 "src/parser_proc.c" /* glr.c:846 */
5600 break;
5601
5602 case 225: /* sizeof_body */
5603 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5604 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5605 #line 5606 "src/parser_proc.c" /* glr.c:846 */
5606 break;
5607
5608 case 226: /* sizeof_body_notypes */
5609 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5610 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5611 #line 5612 "src/parser_proc.c" /* glr.c:846 */
5612 break;
5613
5614 case 227: /* enum_name */
5615 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5616 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5617 #line 5618 "src/parser_proc.c" /* glr.c:846 */
5618 break;
5619
5620 case 228: /* union_name */
5621 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5622 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5623 #line 5624 "src/parser_proc.c" /* glr.c:846 */
5624 break;
5625
5626 case 229: /* struct_name */
5627 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5628 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5629 #line 5630 "src/parser_proc.c" /* glr.c:846 */
5630 break;
5631
5632 case 230: /* optional_name */
5633 #line 301 "src/parser_proc_grammar.y" /* glr.c:846 */
5634 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5635 #line 5636 "src/parser_proc.c" /* glr.c:846 */
5636 break;
5637
5638 case 232: /* decl_layout */
5639 #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */
5640 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5641 #line 5642 "src/parser_proc.c" /* glr.c:846 */
5642 break;
5643
5644 case 233: /* align_and_size */
5645 #line 357 "src/parser_proc_grammar.y" /* glr.c:846 */
5646 {}
5647 #line 5648 "src/parser_proc.c" /* glr.c:846 */
5648 break;
5649
5650 case 234: /* array_size */
5651 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5652 {}
5653 #line 5654 "src/parser_proc.c" /* glr.c:846 */
5654 break;
5655
5656 case 235: /* indirection */
5657 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5658 {}
5659 #line 5660 "src/parser_proc.c" /* glr.c:846 */
5660 break;
5661
5662 case 236: /* pointers */
5663 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5664 {}
5665 #line 5666 "src/parser_proc.c" /* glr.c:846 */
5666 break;
5667
5668 case 237: /* asterisks */
5669 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5670 {}
5671 #line 5672 "src/parser_proc.c" /* glr.c:846 */
5672 break;
5673
5674 case 239: /* impl */
5675 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5676 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5677 #line 5678 "src/parser_proc.c" /* glr.c:846 */
5678 break;
5679
5680 case 240: /* impl_func */
5681 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
5682 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5683 #line 5684 "src/parser_proc.c" /* glr.c:846 */
5684 break;
5685
5686 case 241: /* impl_args */
5687 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5688 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5689 #line 5690 "src/parser_proc.c" /* glr.c:846 */
5690 break;
5691
5692 case 242: /* impl_arg */
5693 #line 369 "src/parser_proc_grammar.y" /* glr.c:846 */
5694 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5695 #line 5696 "src/parser_proc.c" /* glr.c:846 */
5696 break;
5697
5698 case 243: /* impl_var */
5699 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5700 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5701 #line 5702 "src/parser_proc.c" /* glr.c:846 */
5702 break;
5703
5704 case 244: /* impl_type */
5705 #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */
5706 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5707 #line 5708 "src/parser_proc.c" /* glr.c:846 */
5708 break;
5709
5710 case 245: /* impl_type_token */
5711 #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */
5712 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5713 #line 5714 "src/parser_proc.c" /* glr.c:846 */
5714 break;
5715
5716 case 246: /* impl_stmts */
5717 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5718 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5719 #line 5720 "src/parser_proc.c" /* glr.c:846 */
5720 break;
5721
5722 case 247: /* impl_stmt */
5723 #line 403 "src/parser_proc_grammar.y" /* glr.c:846 */
5724 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5725 #line 5726 "src/parser_proc.c" /* glr.c:846 */
5726 break;
5727
5728 case 248: /* let_stmt */
5729 #line 376 "src/parser_proc_grammar.y" /* glr.c:846 */
5730 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5731 #line 5732 "src/parser_proc.c" /* glr.c:846 */
5732 break;
5733
5734 case 249: /* let_exp */
5735 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
5736 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5737 #line 5738 "src/parser_proc.c" /* glr.c:846 */
5738 break;
5739
5740 case 250: /* let_exp_byref */
5741 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
5742 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5743 #line 5744 "src/parser_proc.c" /* glr.c:846 */
5744 break;
5745
5746 case 251: /* let_exp_assign */
5747 #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */
5748 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5749 #line 5750 "src/parser_proc.c" /* glr.c:846 */
5750 break;
5751
5752 case 252: /* let_calloc */
5753 #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */
5754 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5755 #line 5756 "src/parser_proc.c" /* glr.c:846 */
5756 break;
5757
5758 case 253: /* let_callback */
5759 #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */
5760 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5761 #line 5762 "src/parser_proc.c" /* glr.c:846 */
5762 break;
5763
5764 case 254: /* let_func */
5765 #line 384 "src/parser_proc_grammar.y" /* glr.c:846 */
5766 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5767 #line 5768 "src/parser_proc.c" /* glr.c:846 */
5768 break;
5769
5770 case 255: /* let_func_token */
5771 #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */
5772 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5773 #line 5774 "src/parser_proc.c" /* glr.c:846 */
5774 break;
5775
5776 case 256: /* let_func_exps */
5777 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5778 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5779 #line 5780 "src/parser_proc.c" /* glr.c:846 */
5780 break;
5781
5782 case 257: /* let_exps */
5783 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5784 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5785 #line 5786 "src/parser_proc.c" /* glr.c:846 */
5786 break;
5787
5788 case 258: /* callback_rval */
5789 #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */
5790 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5791 #line 5792 "src/parser_proc.c" /* glr.c:846 */
5792 break;
5793
5794 case 259: /* callback_arg_list */
5795 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5796 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5797 #line 5798 "src/parser_proc.c" /* glr.c:846 */
5798 break;
5799
5800 case 260: /* callback_args */
5801 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5802 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5803 #line 5804 "src/parser_proc.c" /* glr.c:846 */
5804 break;
5805
5806 case 261: /* return_stmt */
5807 #line 394 "src/parser_proc_grammar.y" /* glr.c:846 */
5808 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5809 #line 5810 "src/parser_proc.c" /* glr.c:846 */
5810 break;
5811
5812 case 262: /* return_exp */
5813 #line 396 "src/parser_proc_grammar.y" /* glr.c:846 */
5814 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
5815 #line 5816 "src/parser_proc.c" /* glr.c:846 */
5816 break;
5817
5818 case 263: /* call_decl_vars */
5819 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5820 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5821 #line 5822 "src/parser_proc.c" /* glr.c:846 */
5822 break;
5823
5824 case 264: /* set_stmt */
5825 #line 386 "src/parser_proc_grammar.y" /* glr.c:846 */
5826 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5827 #line 5828 "src/parser_proc.c" /* glr.c:846 */
5828 break;
5829
5830 case 265: /* set_exp */
5831 #line 388 "src/parser_proc_grammar.y" /* glr.c:846 */
5832 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5833 #line 5834 "src/parser_proc.c" /* glr.c:846 */
5834 break;
5835
5836 case 266: /* set_func */
5837 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5838 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5839 #line 5840 "src/parser_proc.c" /* glr.c:846 */
5840 break;
5841
5842 case 267: /* set_func_token */
5843 #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */
5844 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5845 #line 5846 "src/parser_proc.c" /* glr.c:846 */
5846 break;
5847
5848 case 268: /* set_func_exps */
5849 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5850 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5851 #line 5852 "src/parser_proc.c" /* glr.c:846 */
5852 break;
5853
5854 case 269: /* set_exps */
5855 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5856 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5857 #line 5858 "src/parser_proc.c" /* glr.c:846 */
5858 break;
5859
5860 case 270: /* assert_stmt */
5861 #line 392 "src/parser_proc_grammar.y" /* glr.c:846 */
5862 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5863 #line 5864 "src/parser_proc.c" /* glr.c:846 */
5864 break;
5865
5866 case 271: /* assert_stmt_token */
5867 #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */
5868 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5869 #line 5870 "src/parser_proc.c" /* glr.c:846 */
5870 break;
5871
5872 case 272: /* free_stmt */
5873 #line 398 "src/parser_proc_grammar.y" /* glr.c:846 */
5874 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5875 #line 5876 "src/parser_proc.c" /* glr.c:846 */
5876 break;
5877
5878 case 273: /* free_exps */
5879 #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */
5880 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5881 #line 5882 "src/parser_proc.c" /* glr.c:846 */
5882 break;
5883
5884 case 274: /* free_exp */
5885 #line 400 "src/parser_proc_grammar.y" /* glr.c:846 */
5886 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5887 #line 5888 "src/parser_proc.c" /* glr.c:846 */
5888 break;
5889
5890 case 275: /* reference */
5891 #line 417 "src/parser_proc_grammar.y" /* glr.c:846 */
5892 {}
5893 #line 5894 "src/parser_proc.c" /* glr.c:846 */
5894 break;
5895
5896
5897 default:
5898 break;
5899 }
5900 YY_IGNORE_MAYBE_UNINITIALIZED_END
5901 }
5902
5903 /** Number of symbols composing the right hand side of rule #RULE. */
5904 static inline int
5905 yyrhsLength (yyRuleNum yyrule)
5906 {
5907 return yyr2[yyrule];
5908 }
5909
5910 static void
5911 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5912 {
5913 if (yys->yyresolved)
5914 yydestruct (yymsg, yystos[yys->yylrState],
5915 &yys->yysemantics.yysval, P, tokens, index);
5916 else
5917 {
5918 #if YYDEBUG
5919 if (yydebug)
5920 {
5921 if (yys->yysemantics.yyfirstVal)
5922 YYFPRINTF (stderr, "%s unresolved", yymsg);
5923 else
5924 YYFPRINTF (stderr, "%s incomplete", yymsg);
5925 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
5926 }
5927 #endif
5928
5929 if (yys->yysemantics.yyfirstVal)
5930 {
5931 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
5932 yyGLRState *yyrh;
5933 int yyn;
5934 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
5935 yyn > 0;
5936 yyrh = yyrh->yypred, yyn -= 1)
5937 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
5938 }
5939 }
5940 }
5941
5942 /** Left-hand-side symbol for rule #YYRULE. */
5943 static inline yySymbol
5944 yylhsNonterm (yyRuleNum yyrule)
5945 {
5946 return yyr1[yyrule];
5947 }
5948
5949 #define yypact_value_is_default(Yystate) \
5950 (!!((Yystate) == (-699)))
5951
5952 /** True iff LR state YYSTATE has only a default reduction (regardless
5953 * of token). */
5954 static inline yybool
5955 yyisDefaultedState (yyStateNum yystate)
5956 {
5957 return yypact_value_is_default (yypact[yystate]);
5958 }
5959
5960 /** The default reduction for YYSTATE, assuming it has one. */
5961 static inline yyRuleNum
5962 yydefaultAction (yyStateNum yystate)
5963 {
5964 return yydefact[yystate];
5965 }
5966
5967 #define yytable_value_is_error(Yytable_value) \
5968 0
5969
5970 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
5971 * Result R means
5972 * R < 0: Reduce on rule -R.
5973 * R = 0: Error.
5974 * R > 0: Shift to state R.
5975 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
5976 * of conflicting reductions.
5977 */
5978 static inline void
5979 yygetLRActions (yyStateNum yystate, int yytoken,
5980 int* yyaction, const short int** yyconflicts)
5981 {
5982 int yyindex = yypact[yystate] + yytoken;
5983 if (yypact_value_is_default (yypact[yystate])
5984 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
5985 {
5986 *yyaction = -yydefact[yystate];
5987 *yyconflicts = yyconfl;
5988 }
5989 else if (! yytable_value_is_error (yytable[yyindex]))
5990 {
5991 *yyaction = yytable[yyindex];
5992 *yyconflicts = yyconfl + yyconflp[yyindex];
5993 }
5994 else
5995 {
5996 *yyaction = 0;
5997 *yyconflicts = yyconfl + yyconflp[yyindex];
5998 }
5999 }
6000
6001 /** Compute post-reduction state.
6002 * \param yystate the current state
6003 * \param yysym the nonterminal to push on the stack
6004 */
6005 static inline yyStateNum
6006 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
6007 {
6008 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
6009 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
6010 return yytable[yyr];
6011 else
6012 return yydefgoto[yysym - YYNTOKENS];
6013 }
6014
6015 static inline yybool
6016 yyisShiftAction (int yyaction)
6017 {
6018 return 0 < yyaction;
6019 }
6020
6021 static inline yybool
6022 yyisErrorAction (int yyaction)
6023 {
6024 return yyaction == 0;
6025 }
6026
6027 /* GLRStates */
6028
6029 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
6030 * if YYISSTATE, and otherwise a semantic option. Callers should call
6031 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
6032 * headroom. */
6033
6034 static inline yyGLRStackItem*
6035 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
6036 {
6037 yyGLRStackItem* yynewItem = yystackp->yynextFree;
6038 yystackp->yyspaceLeft -= 1;
6039 yystackp->yynextFree += 1;
6040 yynewItem->yystate.yyisState = yyisState;
6041 return yynewItem;
6042 }
6043
6044 /** Add a new semantic action that will execute the action for rule
6045 * YYRULE on the semantic values in YYRHS to the list of
6046 * alternative actions for YYSTATE. Assumes that YYRHS comes from
6047 * stack #YYK of *YYSTACKP. */
6048 static void
6049 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6050 yyGLRState* yyrhs, yyRuleNum yyrule)
6051 {
6052 yySemanticOption* yynewOption =
6053 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6054 YYASSERT (!yynewOption->yyisState);
6055 yynewOption->yystate = yyrhs;
6056 yynewOption->yyrule = yyrule;
6057 if (yystackp->yytops.yylookaheadNeeds[yyk])
6058 {
6059 yynewOption->yyrawchar = yychar;
6060 yynewOption->yyval = yylval;
6061 }
6062 else
6063 yynewOption->yyrawchar = YYEMPTY;
6064 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6065 yystate->yysemantics.yyfirstVal = yynewOption;
6066
6067 YY_RESERVE_GLRSTACK (yystackp);
6068 }
6069
6070 /* GLRStacks */
6071
6072 /** Initialize YYSET to a singleton set containing an empty stack. */
6073 static yybool
6074 yyinitStateSet (yyGLRStateSet* yyset)
6075 {
6076 yyset->yysize = 1;
6077 yyset->yycapacity = 16;
6078 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6079 if (! yyset->yystates)
6080 return yyfalse;
6081 yyset->yystates[0] = YY_NULLPTR;
6082 yyset->yylookaheadNeeds =
6083 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6084 if (! yyset->yylookaheadNeeds)
6085 {
6086 YYFREE (yyset->yystates);
6087 return yyfalse;
6088 }
6089 return yytrue;
6090 }
6091
6092 static void yyfreeStateSet (yyGLRStateSet* yyset)
6093 {
6094 YYFREE (yyset->yystates);
6095 YYFREE (yyset->yylookaheadNeeds);
6096 }
6097
6098 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6099 * capacity for all stacks of YYSIZE. */
6100 static yybool
6101 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6102 {
6103 yystackp->yyerrState = 0;
6104 yynerrs = 0;
6105 yystackp->yyspaceLeft = yysize;
6106 yystackp->yyitems =
6107 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6108 if (!yystackp->yyitems)
6109 return yyfalse;
6110 yystackp->yynextFree = yystackp->yyitems;
6111 yystackp->yysplitPoint = YY_NULLPTR;
6112 yystackp->yylastDeleted = YY_NULLPTR;
6113 return yyinitStateSet (&yystackp->yytops);
6114 }
6115
6116
6117 #if YYSTACKEXPANDABLE
6118 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6119 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6120
6121 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6122 stack from outside should be considered invalid after this call.
6123 We always expand when there are 1 or fewer items left AFTER an
6124 allocation, so that we can avoid having external pointers exist
6125 across an allocation. */
6126 static void
6127 yyexpandGLRStack (yyGLRStack* yystackp)
6128 {
6129 yyGLRStackItem* yynewItems;
6130 yyGLRStackItem* yyp0, *yyp1;
6131 size_t yynewSize;
6132 size_t yyn;
6133 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6134 if (YYMAXDEPTH - YYHEADROOM < yysize)
6135 yyMemoryExhausted (yystackp);
6136 yynewSize = 2*yysize;
6137 if (YYMAXDEPTH < yynewSize)
6138 yynewSize = YYMAXDEPTH;
6139 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6140 if (! yynewItems)
6141 yyMemoryExhausted (yystackp);
6142 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6143 0 < yyn;
6144 yyn -= 1, yyp0 += 1, yyp1 += 1)
6145 {
6146 *yyp1 = *yyp0;
6147 if (*(yybool *) yyp0)
6148 {
6149 yyGLRState* yys0 = &yyp0->yystate;
6150 yyGLRState* yys1 = &yyp1->yystate;
6151 if (yys0->yypred != YY_NULLPTR)
6152 yys1->yypred =
6153 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6154 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6155 yys1->yysemantics.yyfirstVal =
6156 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6157 }
6158 else
6159 {
6160 yySemanticOption* yyv0 = &yyp0->yyoption;
6161 yySemanticOption* yyv1 = &yyp1->yyoption;
6162 if (yyv0->yystate != YY_NULLPTR)
6163 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6164 if (yyv0->yynext != YY_NULLPTR)
6165 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6166 }
6167 }
6168 if (yystackp->yysplitPoint != YY_NULLPTR)
6169 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6170 yystackp->yysplitPoint, yystate);
6171
6172 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6173 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6174 yystackp->yytops.yystates[yyn] =
6175 YYRELOC (yystackp->yyitems, yynewItems,
6176 yystackp->yytops.yystates[yyn], yystate);
6177 YYFREE (yystackp->yyitems);
6178 yystackp->yyitems = yynewItems;
6179 yystackp->yynextFree = yynewItems + yysize;
6180 yystackp->yyspaceLeft = yynewSize - yysize;
6181 }
6182 #endif
6183
6184 static void
6185 yyfreeGLRStack (yyGLRStack* yystackp)
6186 {
6187 YYFREE (yystackp->yyitems);
6188 yyfreeStateSet (&yystackp->yytops);
6189 }
6190
6191 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6192 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6193 * YYS. */
6194 static inline void
6195 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6196 {
6197 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6198 yystackp->yysplitPoint = yys;
6199 }
6200
6201 /** Invalidate stack #YYK in *YYSTACKP. */
6202 static inline void
6203 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6204 {
6205 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6206 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6207 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6208 }
6209
6210 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6211 only be done once after a deletion, and only when all other stacks have
6212 been deleted. */
6213 static void
6214 yyundeleteLastStack (yyGLRStack* yystackp)
6215 {
6216 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6217 return;
6218 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6219 yystackp->yytops.yysize = 1;
6220 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6221 yystackp->yylastDeleted = YY_NULLPTR;
6222 }
6223
6224 static inline void
6225 yyremoveDeletes (yyGLRStack* yystackp)
6226 {
6227 size_t yyi, yyj;
6228 yyi = yyj = 0;
6229 while (yyj < yystackp->yytops.yysize)
6230 {
6231 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6232 {
6233 if (yyi == yyj)
6234 {
6235 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6236 }
6237 yystackp->yytops.yysize -= 1;
6238 }
6239 else
6240 {
6241 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6242 /* In the current implementation, it's unnecessary to copy
6243 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6244 yyremoveDeletes returns, the parser immediately either enters
6245 deterministic operation or shifts a token. However, it doesn't
6246 hurt, and the code might evolve to need it. */
6247 yystackp->yytops.yylookaheadNeeds[yyj] =
6248 yystackp->yytops.yylookaheadNeeds[yyi];
6249 if (yyj != yyi)
6250 {
6251 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6252 (unsigned long int) yyi, (unsigned long int) yyj));
6253 }
6254 yyj += 1;
6255 }
6256 yyi += 1;
6257 }
6258 }
6259
6260 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6261 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6262 * value *YYVALP and source location *YYLOCP. */
6263 static inline void
6264 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6265 size_t yyposn,
6266 YYSTYPE* yyvalp)
6267 {
6268 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6269
6270 yynewState->yylrState = yylrState;
6271 yynewState->yyposn = yyposn;
6272 yynewState->yyresolved = yytrue;
6273 yynewState->yypred = yystackp->yytops.yystates[yyk];
6274 yynewState->yysemantics.yysval = *yyvalp;
6275 yystackp->yytops.yystates[yyk] = yynewState;
6276
6277 YY_RESERVE_GLRSTACK (yystackp);
6278 }
6279
6280 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6281 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6282 * semantic value of YYRHS under the action for YYRULE. */
6283 static inline void
6284 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6285 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6286 {
6287 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6288 YYASSERT (yynewState->yyisState);
6289
6290 yynewState->yylrState = yylrState;
6291 yynewState->yyposn = yyposn;
6292 yynewState->yyresolved = yyfalse;
6293 yynewState->yypred = yystackp->yytops.yystates[yyk];
6294 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6295 yystackp->yytops.yystates[yyk] = yynewState;
6296
6297 /* Invokes YY_RESERVE_GLRSTACK. */
6298 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6299 }
6300
6301 #if !YYDEBUG
6302 # define YY_REDUCE_PRINT(Args)
6303 #else
6304 # define YY_REDUCE_PRINT(Args) \
6305 do { \
6306 if (yydebug) \
6307 yy_reduce_print Args; \
6308 } while (0)
6309
6310 /*----------------------------------------------------------------------.
6311 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6312 `----------------------------------------------------------------------*/
6313
6314 static inline void
6315 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6316 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6317 {
6318 int yynrhs = yyrhsLength (yyrule);
6319 int yyi;
6320 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6321 (unsigned long int) yyk, yyrule - 1,
6322 (unsigned long int) yyrline[yyrule]);
6323 if (! yynormal)
6324 yyfillin (yyvsp, 1, -yynrhs);
6325 /* The symbols being reduced. */
6326 for (yyi = 0; yyi < yynrhs; yyi++)
6327 {
6328 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6329 yy_symbol_print (stderr,
6330 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6331 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6332 , P, tokens, index);
6333 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6334 YYFPRINTF (stderr, " (unresolved)");
6335 YYFPRINTF (stderr, "\n");
6336 }
6337 }
6338 #endif
6339
6340 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6341 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6342 * semantic values. Assumes that all ambiguities in semantic values
6343 * have been previously resolved. Set *YYVALP to the resulting value,
6344 * and *YYLOCP to the computed location (if any). Return value is as
6345 * for userAction. */
6346 static inline YYRESULTTAG
6347 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6348 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6349 {
6350 int yynrhs = yyrhsLength (yyrule);
6351
6352 if (yystackp->yysplitPoint == YY_NULLPTR)
6353 {
6354 /* Standard special case: single stack. */
6355 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6356 YYASSERT (yyk == 0);
6357 yystackp->yynextFree -= yynrhs;
6358 yystackp->yyspaceLeft += yynrhs;
6359 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6360 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6361 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6362 yyvalp, P, tokens, index);
6363 }
6364 else
6365 {
6366 int yyi;
6367 yyGLRState* yys;
6368 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6369 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6370 = yystackp->yytops.yystates[yyk];
6371 for (yyi = 0; yyi < yynrhs; yyi += 1)
6372 {
6373 yys = yys->yypred;
6374 YYASSERT (yys);
6375 }
6376 yyupdateSplit (yystackp, yys);
6377 yystackp->yytops.yystates[yyk] = yys;
6378 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6379 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6380 yystackp, yyvalp, P, tokens, index);
6381 }
6382 }
6383
6384 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6385 * and push back on the resulting nonterminal symbol. Perform the
6386 * semantic action associated with YYRULE and store its value with the
6387 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6388 * unambiguous. Otherwise, store the deferred semantic action with
6389 * the new state. If the new state would have an identical input
6390 * position, LR state, and predecessor to an existing state on the stack,
6391 * it is identified with that existing state, eliminating stack #YYK from
6392 * *YYSTACKP. In this case, the semantic value is
6393 * added to the options for the existing state's semantic value.
6394 */
6395 static inline YYRESULTTAG
6396 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6397 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6398 {
6399 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6400
6401 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6402 {
6403 YYSTYPE yysval;
6404
6405 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6406 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6407 {
6408 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6409 (unsigned long int) yyk, yyrule - 1));
6410 }
6411 if (yyflag != yyok)
6412 return yyflag;
6413 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6414 yyglrShift (yystackp, yyk,
6415 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6416 yylhsNonterm (yyrule)),
6417 yyposn, &yysval);
6418 }
6419 else
6420 {
6421 size_t yyi;
6422 int yyn;
6423 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6424 yyStateNum yynewLRState;
6425
6426 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6427 0 < yyn; yyn -= 1)
6428 {
6429 yys = yys->yypred;
6430 YYASSERT (yys);
6431 }
6432 yyupdateSplit (yystackp, yys);
6433 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6434 YYDPRINTF ((stderr,
6435 "Reduced stack %lu by rule #%d; action deferred. "
6436 "Now in state %d.\n",
6437 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6438 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6439 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6440 {
6441 yyGLRState *yysplit = yystackp->yysplitPoint;
6442 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6443 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6444 {
6445 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6446 {
6447 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6448 yymarkStackDeleted (yystackp, yyk);
6449 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6450 (unsigned long int) yyk,
6451 (unsigned long int) yyi));
6452 return yyok;
6453 }
6454 yyp = yyp->yypred;
6455 }
6456 }
6457 yystackp->yytops.yystates[yyk] = yys;
6458 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6459 }
6460 return yyok;
6461 }
6462
6463 static size_t
6464 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6465 {
6466 if (yystackp->yysplitPoint == YY_NULLPTR)
6467 {
6468 YYASSERT (yyk == 0);
6469 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6470 }
6471 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6472 {
6473 yyGLRState** yynewStates;
6474 yybool* yynewLookaheadNeeds;
6475
6476 yynewStates = YY_NULLPTR;
6477
6478 if (yystackp->yytops.yycapacity
6479 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6480 yyMemoryExhausted (yystackp);
6481 yystackp->yytops.yycapacity *= 2;
6482
6483 yynewStates =
6484 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6485 (yystackp->yytops.yycapacity
6486 * sizeof yynewStates[0]));
6487 if (yynewStates == YY_NULLPTR)
6488 yyMemoryExhausted (yystackp);
6489 yystackp->yytops.yystates = yynewStates;
6490
6491 yynewLookaheadNeeds =
6492 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6493 (yystackp->yytops.yycapacity
6494 * sizeof yynewLookaheadNeeds[0]));
6495 if (yynewLookaheadNeeds == YY_NULLPTR)
6496 yyMemoryExhausted (yystackp);
6497 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6498 }
6499 yystackp->yytops.yystates[yystackp->yytops.yysize]
6500 = yystackp->yytops.yystates[yyk];
6501 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6502 = yystackp->yytops.yylookaheadNeeds[yyk];
6503 yystackp->yytops.yysize += 1;
6504 return yystackp->yytops.yysize-1;
6505 }
6506
6507 /** True iff YYY0 and YYY1 represent identical options at the top level.
6508 * That is, they represent the same rule applied to RHS symbols
6509 * that produce the same terminal symbols. */
6510 static yybool
6511 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6512 {
6513 if (yyy0->yyrule == yyy1->yyrule)
6514 {
6515 yyGLRState *yys0, *yys1;
6516 int yyn;
6517 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6518 yyn = yyrhsLength (yyy0->yyrule);
6519 yyn > 0;
6520 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6521 if (yys0->yyposn != yys1->yyposn)
6522 return yyfalse;
6523 return yytrue;
6524 }
6525 else
6526 return yyfalse;
6527 }
6528
6529 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6530 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6531 static void
6532 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6533 {
6534 yyGLRState *yys0, *yys1;
6535 int yyn;
6536 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6537 yyn = yyrhsLength (yyy0->yyrule);
6538 yyn > 0;
6539 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6540 {
6541 if (yys0 == yys1)
6542 break;
6543 else if (yys0->yyresolved)
6544 {
6545 yys1->yyresolved = yytrue;
6546 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6547 }
6548 else if (yys1->yyresolved)
6549 {
6550 yys0->yyresolved = yytrue;
6551 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6552 }
6553 else
6554 {
6555 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6556 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6557 while (yytrue)
6558 {
6559 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6560 break;
6561 else if (*yyz0p == YY_NULLPTR)
6562 {
6563 *yyz0p = yyz1;
6564 break;
6565 }
6566 else if (*yyz0p < yyz1)
6567 {
6568 yySemanticOption* yyz = *yyz0p;
6569 *yyz0p = yyz1;
6570 yyz1 = yyz1->yynext;
6571 (*yyz0p)->yynext = yyz;
6572 }
6573 yyz0p = &(*yyz0p)->yynext;
6574 }
6575 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6576 }
6577 }
6578 }
6579
6580 /** Y0 and Y1 represent two possible actions to take in a given
6581 * parsing state; return 0 if no combination is possible,
6582 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6583 static int
6584 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6585 {
6586 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6587 int p0 = yydprec[r0], p1 = yydprec[r1];
6588
6589 if (p0 == p1)
6590 {
6591 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6592 return 0;
6593 else
6594 return 1;
6595 }
6596 if (p0 == 0 || p1 == 0)
6597 return 0;
6598 if (p0 < p1)
6599 return 3;
6600 if (p1 < p0)
6601 return 2;
6602 return 0;
6603 }
6604
6605 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6606 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6607
6608
6609 /** Resolve the previous YYN states starting at and including state YYS
6610 * on *YYSTACKP. If result != yyok, some states may have been left
6611 * unresolved possibly with empty semantic option chains. Regardless
6612 * of whether result = yyok, each state has been left with consistent
6613 * data so that yydestroyGLRState can be invoked if necessary. */
6614 static YYRESULTTAG
6615 yyresolveStates (yyGLRState* yys, int yyn,
6616 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6617 {
6618 if (0 < yyn)
6619 {
6620 YYASSERT (yys->yypred);
6621 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6622 if (! yys->yyresolved)
6623 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6624 }
6625 return yyok;
6626 }
6627
6628 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6629 * user action, and return the semantic value and location in *YYVALP
6630 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6631 * have been destroyed (assuming the user action destroys all RHS
6632 * semantic values if invoked). */
6633 static YYRESULTTAG
6634 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6635 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6636 {
6637 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6638 int yynrhs = yyrhsLength (yyopt->yyrule);
6639 YYRESULTTAG yyflag =
6640 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6641 if (yyflag != yyok)
6642 {
6643 yyGLRState *yys;
6644 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6645 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6646 return yyflag;
6647 }
6648
6649 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6650 {
6651 int yychar_current = yychar;
6652 YYSTYPE yylval_current = yylval;
6653 yychar = yyopt->yyrawchar;
6654 yylval = yyopt->yyval;
6655 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6656 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6657 yystackp, yyvalp, P, tokens, index);
6658 yychar = yychar_current;
6659 yylval = yylval_current;
6660 }
6661 return yyflag;
6662 }
6663
6664 #if YYDEBUG
6665 static void
6666 yyreportTree (yySemanticOption* yyx, int yyindent)
6667 {
6668 int yynrhs = yyrhsLength (yyx->yyrule);
6669 int yyi;
6670 yyGLRState* yys;
6671 yyGLRState* yystates[1 + YYMAXRHS];
6672 yyGLRState yyleftmost_state;
6673
6674 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6675 yystates[yyi] = yys;
6676 if (yys == YY_NULLPTR)
6677 {
6678 yyleftmost_state.yyposn = 0;
6679 yystates[0] = &yyleftmost_state;
6680 }
6681 else
6682 yystates[0] = yys;
6683
6684 if (yyx->yystate->yyposn < yys->yyposn + 1)
6685 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6686 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6687 yyx->yyrule - 1);
6688 else
6689 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6690 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6691 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6692 (unsigned long int) yyx->yystate->yyposn);
6693 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6694 {
6695 if (yystates[yyi]->yyresolved)
6696 {
6697 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6698 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6699 yytokenName (yystos[yystates[yyi]->yylrState]));
6700 else
6701 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6702 yytokenName (yystos[yystates[yyi]->yylrState]),
6703 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6704 (unsigned long int) yystates[yyi]->yyposn);
6705 }
6706 else
6707 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6708 }
6709 }
6710 #endif
6711
6712 static YYRESULTTAG
6713 yyreportAmbiguity (yySemanticOption* yyx0,
6714 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6715 {
6716 YYUSE (yyx0);
6717 YYUSE (yyx1);
6718
6719 #if YYDEBUG
6720 YYFPRINTF (stderr, "Ambiguity detected.\n");
6721 YYFPRINTF (stderr, "Option 1,\n");
6722 yyreportTree (yyx0, 2);
6723 YYFPRINTF (stderr, "\nOption 2,\n");
6724 yyreportTree (yyx1, 2);
6725 YYFPRINTF (stderr, "\n");
6726 #endif
6727
6728 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6729 return yyabort;
6730 }
6731
6732 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6733 * perform the indicated actions, and set the semantic value of YYS.
6734 * If result != yyok, the chain of semantic options in YYS has been
6735 * cleared instead or it has been left unmodified except that
6736 * redundant options may have been removed. Regardless of whether
6737 * result = yyok, YYS has been left with consistent data so that
6738 * yydestroyGLRState can be invoked if necessary. */
6739 static YYRESULTTAG
6740 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6741 {
6742 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6743 yySemanticOption* yybest = yyoptionList;
6744 yySemanticOption** yypp;
6745 yybool yymerge = yyfalse;
6746 YYSTYPE yysval;
6747 YYRESULTTAG yyflag;
6748
6749 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6750 {
6751 yySemanticOption* yyp = *yypp;
6752
6753 if (yyidenticalOptions (yybest, yyp))
6754 {
6755 yymergeOptionSets (yybest, yyp);
6756 *yypp = yyp->yynext;
6757 }
6758 else
6759 {
6760 switch (yypreference (yybest, yyp))
6761 {
6762 case 0:
6763 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6764 break;
6765 case 1:
6766 yymerge = yytrue;
6767 break;
6768 case 2:
6769 break;
6770 case 3:
6771 yybest = yyp;
6772 yymerge = yyfalse;
6773 break;
6774 default:
6775 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6776 but some compilers complain if the default case is
6777 omitted. */
6778 break;
6779 }
6780 yypp = &yyp->yynext;
6781 }
6782 }
6783
6784 if (yymerge)
6785 {
6786 yySemanticOption* yyp;
6787 int yyprec = yydprec[yybest->yyrule];
6788 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6789 if (yyflag == yyok)
6790 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6791 {
6792 if (yyprec == yydprec[yyp->yyrule])
6793 {
6794 YYSTYPE yysval_other;
6795 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6796 if (yyflag != yyok)
6797 {
6798 yydestruct ("Cleanup: discarding incompletely merged value for",
6799 yystos[yys->yylrState],
6800 &yysval, P, tokens, index);
6801 break;
6802 }
6803 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6804 }
6805 }
6806 }
6807 else
6808 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6809
6810 if (yyflag == yyok)
6811 {
6812 yys->yyresolved = yytrue;
6813 yys->yysemantics.yysval = yysval;
6814 }
6815 else
6816 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6817 return yyflag;
6818 }
6819
6820 static YYRESULTTAG
6821 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6822 {
6823 if (yystackp->yysplitPoint != YY_NULLPTR)
6824 {
6825 yyGLRState* yys;
6826 int yyn;
6827
6828 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6829 yys != yystackp->yysplitPoint;
6830 yys = yys->yypred, yyn += 1)
6831 continue;
6832 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6833 , P, tokens, index));
6834 }
6835 return yyok;
6836 }
6837
6838 static void
6839 yycompressStack (yyGLRStack* yystackp)
6840 {
6841 yyGLRState* yyp, *yyq, *yyr;
6842
6843 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6844 return;
6845
6846 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6847 yyp != yystackp->yysplitPoint;
6848 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6849 yyp->yypred = yyr;
6850
6851 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6852 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6853 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6854 yystackp->yysplitPoint = YY_NULLPTR;
6855 yystackp->yylastDeleted = YY_NULLPTR;
6856
6857 while (yyr != YY_NULLPTR)
6858 {
6859 yystackp->yynextFree->yystate = *yyr;
6860 yyr = yyr->yypred;
6861 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6862 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6863 yystackp->yynextFree += 1;
6864 yystackp->yyspaceLeft -= 1;
6865 }
6866 }
6867
6868 static YYRESULTTAG
6869 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6870 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6871 {
6872 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6873 {
6874 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6875 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6876 (unsigned long int) yyk, yystate));
6877
6878 YYASSERT (yystate != YYFINAL);
6879
6880 if (yyisDefaultedState (yystate))
6881 {
6882 YYRESULTTAG yyflag;
6883 yyRuleNum yyrule = yydefaultAction (yystate);
6884 if (yyrule == 0)
6885 {
6886 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6887 (unsigned long int) yyk));
6888 yymarkStackDeleted (yystackp, yyk);
6889 return yyok;
6890 }
6891 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6892 if (yyflag == yyerr)
6893 {
6894 YYDPRINTF ((stderr,
6895 "Stack %lu dies "
6896 "(predicate failure or explicit user error).\n",
6897 (unsigned long int) yyk));
6898 yymarkStackDeleted (yystackp, yyk);
6899 return yyok;
6900 }
6901 if (yyflag != yyok)
6902 return yyflag;
6903 }
6904 else
6905 {
6906 yySymbol yytoken;
6907 int yyaction;
6908 const short int* yyconflicts;
6909
6910 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6911 if (yychar == YYEMPTY)
6912 {
6913 YYDPRINTF ((stderr, "Reading a token: "));
6914 yychar = yylex (&yylval, P, tokens, index);
6915 }
6916
6917 if (yychar <= YYEOF)
6918 {
6919 yychar = yytoken = YYEOF;
6920 YYDPRINTF ((stderr, "Now at end of input.\n"));
6921 }
6922 else
6923 {
6924 yytoken = YYTRANSLATE (yychar);
6925 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
6926 }
6927
6928 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
6929
6930 while (*yyconflicts != 0)
6931 {
6932 YYRESULTTAG yyflag;
6933 size_t yynewStack = yysplitStack (yystackp, yyk);
6934 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
6935 (unsigned long int) yynewStack,
6936 (unsigned long int) yyk));
6937 yyflag = yyglrReduce (yystackp, yynewStack,
6938 *yyconflicts,
6939 yyimmediate[*yyconflicts], P, tokens, index);
6940 if (yyflag == yyok)
6941 YYCHK (yyprocessOneStack (yystackp, yynewStack,
6942 yyposn, P, tokens, index));
6943 else if (yyflag == yyerr)
6944 {
6945 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6946 (unsigned long int) yynewStack));
6947 yymarkStackDeleted (yystackp, yynewStack);
6948 }
6949 else
6950 return yyflag;
6951 yyconflicts += 1;
6952 }
6953
6954 if (yyisShiftAction (yyaction))
6955 break;
6956 else if (yyisErrorAction (yyaction))
6957 {
6958 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6959 (unsigned long int) yyk));
6960 yymarkStackDeleted (yystackp, yyk);
6961 break;
6962 }
6963 else
6964 {
6965 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
6966 yyimmediate[-yyaction], P, tokens, index);
6967 if (yyflag == yyerr)
6968 {
6969 YYDPRINTF ((stderr,
6970 "Stack %lu dies "
6971 "(predicate failure or explicit user error).\n",
6972 (unsigned long int) yyk));
6973 yymarkStackDeleted (yystackp, yyk);
6974 break;
6975 }
6976 else if (yyflag != yyok)
6977 return yyflag;
6978 }
6979 }
6980 }
6981 return yyok;
6982 }
6983
6984 static void
6985 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6986 {
6987 if (yystackp->yyerrState != 0)
6988 return;
6989 #if ! YYERROR_VERBOSE
6990 yyerror (P, tokens, index, YY_("syntax error"));
6991 #else
6992 {
6993 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6994 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
6995 size_t yysize = yysize0;
6996 yybool yysize_overflow = yyfalse;
6997 char* yymsg = YY_NULLPTR;
6998 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6999 /* Internationalized format string. */
7000 const char *yyformat = YY_NULLPTR;
7001 /* Arguments of yyformat. */
7002 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
7003 /* Number of reported tokens (one for the "unexpected", one per
7004 "expected"). */
7005 int yycount = 0;
7006
7007 /* There are many possibilities here to consider:
7008 - If this state is a consistent state with a default action, then
7009 the only way this function was invoked is if the default action
7010 is an error action. In that case, don't check for expected
7011 tokens because there are none.
7012 - The only way there can be no lookahead present (in yychar) is if
7013 this state is a consistent state with a default action. Thus,
7014 detecting the absence of a lookahead is sufficient to determine
7015 that there is no unexpected or expected token to report. In that
7016 case, just report a simple "syntax error".
7017 - Don't assume there isn't a lookahead just because this state is a
7018 consistent state with a default action. There might have been a
7019 previous inconsistent state, consistent state with a non-default
7020 action, or user semantic action that manipulated yychar.
7021 - Of course, the expected token list depends on states to have
7022 correct lookahead information, and it depends on the parser not
7023 to perform extra reductions after fetching a lookahead from the
7024 scanner and before detecting a syntax error. Thus, state merging
7025 (from LALR or IELR) and default reductions corrupt the expected
7026 token list. However, the list is correct for canonical LR with
7027 one exception: it will still contain any token that will not be
7028 accepted due to an error action in a later state.
7029 */
7030 if (yytoken != YYEMPTY)
7031 {
7032 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
7033 yyarg[yycount++] = yytokenName (yytoken);
7034 if (!yypact_value_is_default (yyn))
7035 {
7036 /* Start YYX at -YYN if negative to avoid negative indexes in
7037 YYCHECK. In other words, skip the first -YYN actions for this
7038 state because they are default actions. */
7039 int yyxbegin = yyn < 0 ? -yyn : 0;
7040 /* Stay within bounds of both yycheck and yytname. */
7041 int yychecklim = YYLAST - yyn + 1;
7042 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
7043 int yyx;
7044 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
7045 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
7046 && !yytable_value_is_error (yytable[yyx + yyn]))
7047 {
7048 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7049 {
7050 yycount = 1;
7051 yysize = yysize0;
7052 break;
7053 }
7054 yyarg[yycount++] = yytokenName (yyx);
7055 {
7056 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7057 yysize_overflow |= yysz < yysize;
7058 yysize = yysz;
7059 }
7060 }
7061 }
7062 }
7063
7064 switch (yycount)
7065 {
7066 #define YYCASE_(N, S) \
7067 case N: \
7068 yyformat = S; \
7069 break
7070 YYCASE_(0, YY_("syntax error"));
7071 YYCASE_(1, YY_("syntax error, unexpected %s"));
7072 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7073 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7074 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7075 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7076 #undef YYCASE_
7077 }
7078
7079 {
7080 size_t yysz = yysize + strlen (yyformat);
7081 yysize_overflow |= yysz < yysize;
7082 yysize = yysz;
7083 }
7084
7085 if (!yysize_overflow)
7086 yymsg = (char *) YYMALLOC (yysize);
7087
7088 if (yymsg)
7089 {
7090 char *yyp = yymsg;
7091 int yyi = 0;
7092 while ((*yyp = *yyformat))
7093 {
7094 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7095 {
7096 yyp += yytnamerr (yyp, yyarg[yyi++]);
7097 yyformat += 2;
7098 }
7099 else
7100 {
7101 yyp++;
7102 yyformat++;
7103 }
7104 }
7105 yyerror (P, tokens, index, yymsg);
7106 YYFREE (yymsg);
7107 }
7108 else
7109 {
7110 yyerror (P, tokens, index, YY_("syntax error"));
7111 yyMemoryExhausted (yystackp);
7112 }
7113 }
7114 #endif /* YYERROR_VERBOSE */
7115 yynerrs += 1;
7116 }
7117
7118 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7119 yylval, and yylloc are the syntactic category, semantic value, and location
7120 of the lookahead. */
7121 static void
7122 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7123 {
7124 size_t yyk;
7125 int yyj;
7126
7127 if (yystackp->yyerrState == 3)
7128 /* We just shifted the error token and (perhaps) took some
7129 reductions. Skip tokens until we can proceed. */
7130 while (yytrue)
7131 {
7132 yySymbol yytoken;
7133 if (yychar == YYEOF)
7134 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7135 if (yychar != YYEMPTY)
7136 {
7137 yytoken = YYTRANSLATE (yychar);
7138 yydestruct ("Error: discarding",
7139 yytoken, &yylval, P, tokens, index);
7140 }
7141 YYDPRINTF ((stderr, "Reading a token: "));
7142 yychar = yylex (&yylval, P, tokens, index);
7143 if (yychar <= YYEOF)
7144 {
7145 yychar = yytoken = YYEOF;
7146 YYDPRINTF ((stderr, "Now at end of input.\n"));
7147 }
7148 else
7149 {
7150 yytoken = YYTRANSLATE (yychar);
7151 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7152 }
7153 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7154 if (yypact_value_is_default (yyj))
7155 return;
7156 yyj += yytoken;
7157 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7158 {
7159 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7160 return;
7161 }
7162 else if (! yytable_value_is_error (yytable[yyj]))
7163 return;
7164 }
7165
7166 /* Reduce to one stack. */
7167 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7168 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7169 break;
7170 if (yyk >= yystackp->yytops.yysize)
7171 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7172 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7173 yymarkStackDeleted (yystackp, yyk);
7174 yyremoveDeletes (yystackp);
7175 yycompressStack (yystackp);
7176
7177 /* Now pop stack until we find a state that shifts the error token. */
7178 yystackp->yyerrState = 3;
7179 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7180 {
7181 yyGLRState *yys = yystackp->yytops.yystates[0];
7182 yyj = yypact[yys->yylrState];
7183 if (! yypact_value_is_default (yyj))
7184 {
7185 yyj += YYTERROR;
7186 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7187 && yyisShiftAction (yytable[yyj]))
7188 {
7189 /* Shift the error token. */
7190 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7191 &yylval, &yyerrloc);
7192 yyglrShift (yystackp, 0, yytable[yyj],
7193 yys->yyposn, &yylval);
7194 yys = yystackp->yytops.yystates[0];
7195 break;
7196 }
7197 }
7198 if (yys->yypred != YY_NULLPTR)
7199 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7200 yystackp->yytops.yystates[0] = yys->yypred;
7201 yystackp->yynextFree -= 1;
7202 yystackp->yyspaceLeft += 1;
7203 }
7204 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7205 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7206 }
7207
7208 #define YYCHK1(YYE) \
7209 do { \
7210 switch (YYE) { \
7211 case yyok: \
7212 break; \
7213 case yyabort: \
7214 goto yyabortlab; \
7215 case yyaccept: \
7216 goto yyacceptlab; \
7217 case yyerr: \
7218 goto yyuser_error; \
7219 default: \
7220 goto yybuglab; \
7221 } \
7222 } while (0)
7223
7224 /*----------.
7225 | yyparse. |
7226 `----------*/
7227
7228 int
7229 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7230 {
7231 int yyresult;
7232 yyGLRStack yystack;
7233 yyGLRStack* const yystackp = &yystack;
7234 size_t yyposn;
7235
7236 YYDPRINTF ((stderr, "Starting parse\n"));
7237
7238 yychar = YYEMPTY;
7239 yylval = yyval_default;
7240
7241 /* User initialization code. */
7242 #line 136 "src/parser_proc_grammar.y" /* glr.c:2270 */
7243 {
7244 }
7245
7246 #line 7247 "src/parser_proc.c" /* glr.c:2270 */
7247
7248 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7249 goto yyexhaustedlab;
7250 switch (YYSETJMP (yystack.yyexception_buffer))
7251 {
7252 case 0: break;
7253 case 1: goto yyabortlab;
7254 case 2: goto yyexhaustedlab;
7255 default: goto yybuglab;
7256 }
7257 yyglrShift (&yystack, 0, 0, 0, &yylval);
7258 yyposn = 0;
7259
7260 while (yytrue)
7261 {
7262 /* For efficiency, we have two loops, the first of which is
7263 specialized to deterministic operation (single stack, no
7264 potential ambiguity). */
7265 /* Standard mode */
7266 while (yytrue)
7267 {
7268 yyRuleNum yyrule;
7269 int yyaction;
7270 const short int* yyconflicts;
7271
7272 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7273 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7274 if (yystate == YYFINAL)
7275 goto yyacceptlab;
7276 if (yyisDefaultedState (yystate))
7277 {
7278 yyrule = yydefaultAction (yystate);
7279 if (yyrule == 0)
7280 {
7281
7282 yyreportSyntaxError (&yystack, P, tokens, index);
7283 goto yyuser_error;
7284 }
7285 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7286 }
7287 else
7288 {
7289 yySymbol yytoken;
7290 if (yychar == YYEMPTY)
7291 {
7292 YYDPRINTF ((stderr, "Reading a token: "));
7293 yychar = yylex (&yylval, P, tokens, index);
7294 }
7295
7296 if (yychar <= YYEOF)
7297 {
7298 yychar = yytoken = YYEOF;
7299 YYDPRINTF ((stderr, "Now at end of input.\n"));
7300 }
7301 else
7302 {
7303 yytoken = YYTRANSLATE (yychar);
7304 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7305 }
7306
7307 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7308 if (*yyconflicts != 0)
7309 break;
7310 if (yyisShiftAction (yyaction))
7311 {
7312 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7313 yychar = YYEMPTY;
7314 yyposn += 1;
7315 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7316 if (0 < yystack.yyerrState)
7317 yystack.yyerrState -= 1;
7318 }
7319 else if (yyisErrorAction (yyaction))
7320 {
7321
7322 yyreportSyntaxError (&yystack, P, tokens, index);
7323 goto yyuser_error;
7324 }
7325 else
7326 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7327 }
7328 }
7329
7330 while (yytrue)
7331 {
7332 yySymbol yytoken_to_shift;
7333 size_t yys;
7334
7335 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7336 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7337
7338 /* yyprocessOneStack returns one of three things:
7339
7340 - An error flag. If the caller is yyprocessOneStack, it
7341 immediately returns as well. When the caller is finally
7342 yyparse, it jumps to an error label via YYCHK1.
7343
7344 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7345 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7346 yyparse's following invocation of yyremoveDeletes will remove
7347 the stack.
7348
7349 - yyok, when ready to shift a token.
7350
7351 Except in the first case, yyparse will invoke yyremoveDeletes and
7352 then shift the next token onto all remaining stacks. This
7353 synchronization of the shift (that is, after all preceding
7354 reductions on all stacks) helps prevent double destructor calls
7355 on yylval in the event of memory exhaustion. */
7356
7357 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7358 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7359 yyremoveDeletes (&yystack);
7360 if (yystack.yytops.yysize == 0)
7361 {
7362 yyundeleteLastStack (&yystack);
7363 if (yystack.yytops.yysize == 0)
7364 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7365 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7366 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7367
7368 yyreportSyntaxError (&yystack, P, tokens, index);
7369 goto yyuser_error;
7370 }
7371
7372 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7373 a copy of yylval will already be on stack 0 in the event of a
7374 failure in the following loop. Thus, yychar is set to YYEMPTY
7375 before the loop to make sure the user destructor for yylval isn't
7376 called twice. */
7377 yytoken_to_shift = YYTRANSLATE (yychar);
7378 yychar = YYEMPTY;
7379 yyposn += 1;
7380 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7381 {
7382 int yyaction;
7383 const short int* yyconflicts;
7384 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7385 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7386 &yyconflicts);
7387 /* Note that yyconflicts were handled by yyprocessOneStack. */
7388 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7389 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7390 yyglrShift (&yystack, yys, yyaction, yyposn,
7391 &yylval);
7392 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7393 (unsigned long int) yys,
7394 yystack.yytops.yystates[yys]->yylrState));
7395 }
7396
7397 if (yystack.yytops.yysize == 1)
7398 {
7399 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7400 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7401 yycompressStack (&yystack);
7402 break;
7403 }
7404 }
7405 continue;
7406 yyuser_error:
7407 yyrecoverSyntaxError (&yystack, P, tokens, index);
7408 yyposn = yystack.yytops.yystates[0]->yyposn;
7409 }
7410
7411 yyacceptlab:
7412 yyresult = 0;
7413 goto yyreturn;
7414
7415 yybuglab:
7416 YYASSERT (yyfalse);
7417 goto yyabortlab;
7418
7419 yyabortlab:
7420 yyresult = 1;
7421 goto yyreturn;
7422
7423 yyexhaustedlab:
7424 yyerror (P, tokens, index, YY_("memory exhausted"));
7425 yyresult = 2;
7426 goto yyreturn;
7427
7428 yyreturn:
7429 if (yychar != YYEMPTY)
7430 yydestruct ("Cleanup: discarding lookahead",
7431 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7432
7433 /* If the stack is well-formed, pop the stack until it is empty,
7434 destroying its entries as we go. But free the stack regardless
7435 of whether it is well-formed. */
7436 if (yystack.yyitems)
7437 {
7438 yyGLRState** yystates = yystack.yytops.yystates;
7439 if (yystates)
7440 {
7441 size_t yysize = yystack.yytops.yysize;
7442 size_t yyk;
7443 for (yyk = 0; yyk < yysize; yyk += 1)
7444 if (yystates[yyk])
7445 {
7446 while (yystates[yyk])
7447 {
7448 yyGLRState *yys = yystates[yyk];
7449 if (yys->yypred != YY_NULLPTR)
7450 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7451 yystates[yyk] = yys->yypred;
7452 yystack.yynextFree -= 1;
7453 yystack.yyspaceLeft += 1;
7454 }
7455 break;
7456 }
7457 }
7458 yyfreeGLRStack (&yystack);
7459 }
7460
7461 return yyresult;
7462 }
7463
7464 /* DEBUGGING ONLY */
7465 #if YYDEBUG
7466 static void
7467 yy_yypstack (yyGLRState* yys)
7468 {
7469 if (yys->yypred)
7470 {
7471 yy_yypstack (yys->yypred);
7472 YYFPRINTF (stderr, " -> ");
7473 }
7474 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7475 (unsigned long int) yys->yyposn);
7476 }
7477
7478 static void
7479 yypstates (yyGLRState* yyst)
7480 {
7481 if (yyst == YY_NULLPTR)
7482 YYFPRINTF (stderr, "<null>");
7483 else
7484 yy_yypstack (yyst);
7485 YYFPRINTF (stderr, "\n");
7486 }
7487
7488 static void
7489 yypstack (yyGLRStack* yystackp, size_t yyk)
7490 {
7491 yypstates (yystackp->yytops.yystates[yyk]);
7492 }
7493
7494 #define YYINDEX(YYX) \
7495 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7496
7497
7498 static void
7499 yypdumpstack (yyGLRStack* yystackp)
7500 {
7501 yyGLRStackItem* yyp;
7502 size_t yyi;
7503 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7504 {
7505 YYFPRINTF (stderr, "%3lu. ",
7506 (unsigned long int) (yyp - yystackp->yyitems));
7507 if (*(yybool *) yyp)
7508 {
7509 YYASSERT (yyp->yystate.yyisState);
7510 YYASSERT (yyp->yyoption.yyisState);
7511 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7512 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7513 (unsigned long int) yyp->yystate.yyposn,
7514 (long int) YYINDEX (yyp->yystate.yypred));
7515 if (! yyp->yystate.yyresolved)
7516 YYFPRINTF (stderr, ", firstVal: %ld",
7517 (long int) YYINDEX (yyp->yystate
7518 .yysemantics.yyfirstVal));
7519 }
7520 else
7521 {
7522 YYASSERT (!yyp->yystate.yyisState);
7523 YYASSERT (!yyp->yyoption.yyisState);
7524 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7525 yyp->yyoption.yyrule - 1,
7526 (long int) YYINDEX (yyp->yyoption.yystate),
7527 (long int) YYINDEX (yyp->yyoption.yynext));
7528 }
7529 YYFPRINTF (stderr, "\n");
7530 }
7531 YYFPRINTF (stderr, "Tops:");
7532 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7533 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7534 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7535 YYFPRINTF (stderr, "\n");
7536 }
7537 #endif
7538
7539 #undef yylval
7540 #undef yychar
7541 #undef yynerrs
7542
7543 /* Substitute the variable and function names. */
7544 #define yyparse psi_parser_proc_parse
7545 #define yylex psi_parser_proc_lex
7546 #define yyerror psi_parser_proc_error
7547 #define yylval psi_parser_proc_lval
7548 #define yychar psi_parser_proc_char
7549 #define yydebug psi_parser_proc_debug
7550 #define yynerrs psi_parser_proc_nerrs
7551
7552 #line 2085 "src/parser_proc_grammar.y" /* glr.c:2584 */
7553
7554
7555 /* epilogue */
7556
7557 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7558 {
7559 struct psi_token *token;
7560
7561 if (psi_plist_get(tokens, (*index)++, &token)) {
7562 if (P->flags & PSI_DEBUG) {
7563 psi_token_dump(2, token);
7564 }
7565
7566 *((struct psi_token **)lvalp) = token;
7567 return token->type;
7568 } else {
7569 (*index)--;
7570 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7571 }
7572
7573 return PSI_T_EOF;
7574 }
7575
7576 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7577 {
7578 struct psi_token *T = NULL;
7579 size_t last;
7580
7581 if (*index == 0) {
7582 last = 0;
7583 } else {
7584 last = --(*index);
7585 }
7586
7587 psi_plist_get(tokens, last, &T);
7588 if (T) {
7589 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7590 } else {
7591 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7592 }
7593 P->errors++;
7594 }
7595