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