parser: extern var support
[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_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
188 assert(list);
189 if (!P->vars) {
190 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
191 }
192 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
193 free(list);
194 }
195 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
196 assert(impl);
197 if (!P->impls) {
198 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
199 }
200 P->impls = psi_plist_add(P->impls, &impl);
201 }
202
203 /* end code */
204
205 #line 206 "src/parser_proc.c" /* glr.c:264 */
206
207 #include <stdio.h>
208 #include <stdlib.h>
209 #include <string.h>
210
211 #ifndef YY_
212 # if defined YYENABLE_NLS && YYENABLE_NLS
213 # if ENABLE_NLS
214 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
215 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
216 # endif
217 # endif
218 # ifndef YY_
219 # define YY_(Msgid) Msgid
220 # endif
221 #endif
222
223 #ifndef YYFREE
224 # define YYFREE free
225 #endif
226 #ifndef YYMALLOC
227 # define YYMALLOC malloc
228 #endif
229 #ifndef YYREALLOC
230 # define YYREALLOC realloc
231 #endif
232
233 #define YYSIZEMAX ((size_t) -1)
234
235 #ifdef __cplusplus
236 typedef bool yybool;
237 #else
238 typedef unsigned char yybool;
239 #endif
240 #define yytrue 1
241 #define yyfalse 0
242
243 #ifndef YYSETJMP
244 # include <setjmp.h>
245 # define YYJMP_BUF jmp_buf
246 # define YYSETJMP(Env) setjmp (Env)
247 /* Pacify clang. */
248 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
249 #endif
250
251 #ifndef YY_ATTRIBUTE
252 # if (defined __GNUC__ \
253 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
254 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
255 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
256 # else
257 # define YY_ATTRIBUTE(Spec) /* empty */
258 # endif
259 #endif
260
261 #ifndef YY_ATTRIBUTE_PURE
262 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
263 #endif
264
265 #ifndef YY_ATTRIBUTE_UNUSED
266 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
267 #endif
268
269 #if !defined _Noreturn \
270 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
271 # if defined _MSC_VER && 1200 <= _MSC_VER
272 # define _Noreturn __declspec (noreturn)
273 # else
274 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
275 # endif
276 #endif
277
278 /* Suppress unused-variable warnings by "using" E. */
279 #if ! defined lint || defined __GNUC__
280 # define YYUSE(E) ((void) (E))
281 #else
282 # define YYUSE(E) /* empty */
283 #endif
284
285 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
286 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
287 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
288 _Pragma ("GCC diagnostic push") \
289 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
290 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
291 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
292 _Pragma ("GCC diagnostic pop")
293 #else
294 # define YY_INITIAL_VALUE(Value) Value
295 #endif
296 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
297 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
298 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
299 #endif
300 #ifndef YY_INITIAL_VALUE
301 # define YY_INITIAL_VALUE(Value) /* Nothing. */
302 #endif
303
304
305 #ifndef YYASSERT
306 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
307 #endif
308
309 /* YYFINAL -- State number of the termination state. */
310 #define YYFINAL 168
311 /* YYLAST -- Last index in YYTABLE. */
312 #define YYLAST 3737
313
314 /* YYNTOKENS -- Number of terminals. */
315 #define YYNTOKENS 140
316 /* YYNNTS -- Number of nonterminals. */
317 #define YYNNTS 136
318 /* YYNRULES -- Number of rules. */
319 #define YYNRULES 629
320 /* YYNRULES -- Number of states. */
321 #define YYNSTATES 895
322 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
323 #define YYMAXRHS 13
324 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
325 accessed by $0, $-1, etc., in any rule. */
326 #define YYMAXLEFT 0
327
328 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
329 #define YYUNDEFTOK 2
330 #define YYMAXUTOK 394
331
332 #define YYTRANSLATE(YYX) \
333 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
334
335 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
336 static const unsigned char yytranslate[] =
337 {
338 0, 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, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
364 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
365 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
366 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
367 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
368 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
369 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
370 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
371 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
372 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
373 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
374 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
375 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
376 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
377 135, 136, 137, 138, 139
378 };
379
380 #if YYDEBUG
381 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
382 static const unsigned short int yyrline[] =
383 {
384 0, 432, 432, 432, 432, 432, 432, 432, 432, 432,
385 432, 432, 432, 432, 432, 432, 432, 432, 432, 432,
386 433, 433, 433, 433, 434, 434, 434, 434, 434, 434,
387 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
388 434, 434, 434, 435, 435, 435, 435, 435, 435, 435,
389 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
390 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
391 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
392 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
393 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
394 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
395 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
396 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
397 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
398 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
399 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
400 435, 436, 436, 436, 436, 436, 436, 436, 436, 436,
401 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
402 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
403 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
404 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
405 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
406 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
407 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
408 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
409 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
410 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
411 436, 436, 436, 436, 436, 436, 436, 440, 441, 444,
412 445, 448, 449, 450, 451, 457, 465, 468, 471, 474,
413 475, 478, 481, 484, 487, 493, 499, 502, 508, 531,
414 535, 539, 544, 548, 552, 556, 563, 564, 568, 569,
415 573, 574, 575, 579, 580, 584, 585, 589, 590, 591,
416 595, 596, 600, 601, 602, 603, 604, 605, 606, 610,
417 615, 623, 626, 629, 630, 636, 641, 649, 652, 656,
418 660, 667, 671, 675, 679, 684, 694, 704, 709, 714,
419 718, 724, 733, 736, 740, 744, 750, 757, 763, 764,
420 765, 766, 770, 773, 805, 812, 813, 814, 815, 819,
421 822, 831, 837, 840, 846, 849, 855, 856, 864, 875,
422 884, 896, 897, 901, 911, 920, 932, 935, 938, 942,
423 946, 950, 955, 960, 968, 969, 970, 976, 979, 982,
424 988, 989, 993, 996, 999, 1005, 1008, 1011, 1019, 1031,
425 1034, 1037, 1040, 1047, 1050, 1060, 1063, 1066, 1069, 1070,
426 1071, 1075, 1078, 1081, 1092, 1095, 1101, 1102, 1106, 1107,
427 1111, 1141, 1144, 1150, 1153, 1159, 1162, 1165, 1171, 1175,
428 1176, 1180, 1181, 1185, 1186, 1193, 1194, 1198, 1205, 1216,
429 1223, 1234, 1241, 1252, 1263, 1277, 1278, 1290, 1293, 1296,
430 1302, 1305, 1312, 1315, 1321, 1330, 1342, 1350, 1353, 1363,
431 1376, 1381, 1389, 1399, 1409, 1412, 1416, 1422, 1436, 1453,
432 1456, 1462, 1469, 1479, 1486, 1489, 1495, 1500, 1508, 1512,
433 1516, 1520, 1524, 1528, 1535, 1539, 1543, 1547, 1551, 1555,
434 1561, 1565, 1572, 1575, 1587, 1591, 1595, 1601, 1614, 1627,
435 1640, 1643, 1650, 1651, 1655, 1658, 1661, 1664, 1670, 1674,
436 1681, 1684, 1687, 1690, 1701, 1704, 1710, 1711, 1717, 1720,
437 1726, 1727, 1737, 1740, 1747, 1752, 1757, 1767, 1770, 1776,
438 1779, 1785, 1792, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
439 1806, 1807, 1811, 1814, 1820, 1823, 1826, 1829, 1832, 1838,
440 1842, 1850, 1851, 1855, 1862, 1865, 1868, 1871, 1875, 1878,
441 1884, 1888, 1896, 1903, 1908, 1916, 1924, 1925, 1926, 1927,
442 1928, 1929, 1930, 1931, 1932, 1933, 1937, 1940, 1946, 1949,
443 1955, 1956, 1960, 1963, 1969, 1972, 1978, 1985, 1989, 1996,
444 1999, 2002, 2008, 2015, 2018, 2021, 2028, 2033, 2041, 2042,
445 2043, 2044, 2045, 2046, 2047, 2048, 2052, 2055, 2061, 2064,
446 2070, 2077, 2078, 2082, 2089, 2092, 2098, 2106, 2109, 2115
447 };
448 #endif
449
450 #if YYDEBUG || YYERROR_VERBOSE || 1
451 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
452 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
453 static const char *const yytname[] =
454 {
455 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
456 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
457 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
458 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
459 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
460 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
461 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
462 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
463 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
464 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
465 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
466 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
467 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
468 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
469 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
470 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
471 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
472 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
473 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
474 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
475 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
476 "$accept", "binary_op_token", "unary_op_token", "name_token",
477 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
478 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
479 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
480 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_special_name_token",
481 "cpp_macro_decl", "cpp_macro_sig", "cpp_macro_sig_args",
482 "cpp_macro_decl_tokens", "cpp_macro_decl_token_list", "cpp_macro_exp",
483 "cpp_macro_call_args", "cpp_macro_call_arg_list", "constant",
484 "constant_type", "constant_type_token", "impl_def_val",
485 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
486 "typedef_decl", "typedef_anon_decl", "qualified_decl_type", "decl_type",
487 "decl_type_complex", "decl_type_simple", "decl_real_type", "int_signed",
488 "int_width", "decl_int_type", "int_signed_types", "signed_short_types",
489 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
490 "ignored_quoted_strings", "decl_extvar_stmt", "decl_extvar_list",
491 "decl_vars", "ignored_decl", "ignored_decl_body",
492 "ignored_decl_body_stmts", "ignored_decl_body_stmt", "decl", "decl_body",
493 "decl_func_body", "decl_functor_body", "decl_functor", "decl_func",
494 "decl_args", "decl_arg_list", "decl_anon_arg", "decl_arg", "decl_var",
495 "decl_union", "decl_struct", "decl_struct_args", "struct_args_block",
496 "struct_args", "struct_arg_var_list", "decl_vars_with_layout",
497 "decl_enum", "decl_enum_items", "decl_enum_item", "num_exp", "number",
498 "sizeof", "sizeof_body", "sizeof_body_notypes", "enum_name",
499 "union_name", "struct_name", "optional_name", "optional_comma",
500 "decl_layout", "align_and_size", "array_size", "indirection", "pointers",
501 "asterisks", "asterisk", "impl", "impl_func", "impl_args", "impl_arg",
502 "impl_var", "impl_type", "impl_type_token", "impl_stmts", "impl_stmt",
503 "let_stmt", "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
504 "let_callback", "let_func", "let_func_token", "let_func_exps",
505 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
506 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
507 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
508 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
509 "byref", YY_NULLPTR
510 };
511 #endif
512
513 #define YYPACT_NINF -703
514 #define YYTABLE_NINF -628
515
516 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
517 STATE-NUM. */
518 static const short int yypact[] =
519 {
520 1445, -703, -703, -703, -703, -703, 70, -703, -703, 2591,
521 1754, 344, -703, -703, 753, 540, 3446, 3446, 3446, 65,
522 82, 277, 74, -703, 1721, 1980, 123, 1445, -703, -703,
523 -703, -703, -703, 2817, -703, -703, -703, -703, 115, 180,
524 -703, -703, -703, -703, 39, -703, -703, 73, 125, 138,
525 -703, -703, -703, -703, 136, -703, 144, -703, -703, -703,
526 -703, -703, 841, -703, 154, 97, -703, -703, -703, -703,
527 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
528 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
529 -703, -703, -703, -703, -703, -703, 2930, -10, -703, -703,
530 -703, -703, 3446, 3446, 3446, 635, -703, 101, -703, -703,
531 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
532 -703, 687, -703, -703, -703, -703, 160, 967, 967, 26,
533 -703, 687, 2478, 2591, 3446, 3446, 2093, 192, -703, -703,
534 -703, 187, 3446, 193, 193, 59, 59, 196, -703, -703,
535 206, 215, -703, 154, 216, -703, -703, 203, 1980, 210,
536 212, -703, 224, -703, 2206, 1473, 39, 210, -703, -703,
537 213, -703, 217, 3446, -703, 246, -703, 116, -703, -703,
538 -703, 211, -703, 222, 225, 2398, 2398, 3446, 313, 3446,
539 -703, -703, 154, -703, -703, -703, -703, -703, -703, 2817,
540 244, -703, -703, -703, -703, -703, -703, 137, 967, -703,
541 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
542 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
543 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
544 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
545 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
546 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
547 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
548 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
549 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
550 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
551 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
552 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
553 -703, 967, -703, -703, -703, -703, -703, -703, -703, -703,
554 135, 2478, -703, -703, -703, -703, 3043, 2478, 245, 3600,
555 -703, 247, 119, -703, 141, -703, -703, -703, -703, 241,
556 243, 243, 49, 49, 3156, 240, -703, 210, 1219, -703,
557 313, 257, 259, 260, -703, 1333, -703, 154, 213, -703,
558 -703, -703, 287, -703, -703, 269, -703, 11, 1503, 2817,
559 162, 262, -703, -703, 173, 261, 263, -703, 2817, 2139,
560 2817, 3446, 2817, -703, -703, 17, -703, -703, -703, -703,
561 -703, 2365, -703, 271, 3446, 268, -703, 3446, -703, 273,
562 -703, -703, -703, -703, 2624, 294, -703, 2921, 3446, -703,
563 -703, 2478, -703, -703, -703, -703, -703, -703, -703, -703,
564 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
565 2478, 2478, -703, 285, 1533, 2817, 2817, -703, -703, -703,
566 -703, 154, -703, 1687, -703, -703, -703, -703, -703, -703,
567 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
568 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
569 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
570 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
571 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
572 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
573 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
574 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
575 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
576 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
577 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
578 -703, -703, -703, 1093, -703, 174, 297, -703, -703, -703,
579 -703, -703, -703, 1574, -703, 279, 2365, -703, 3576, -703,
580 -703, 3446, -703, -703, -703, 58, 2930, 154, 217, 213,
581 256, 2432, 213, 258, 2365, 3446, 286, 289, 295, 3624,
582 292, 302, -703, 307, 316, 301, 312, 122, -703, 314,
583 326, -703, -703, -703, 2799, -703, 325, 2817, 3215, 154,
584 337, -703, -703, -703, 342, 3600, 356, 311, 3527, -703,
585 322, 2093, 324, -703, -703, 2704, 480, 3446, 193, 193,
586 -703, -703, 3446, 25, -703, -703, -703, 346, -703, 3624,
587 -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
588 -703, -703, 355, 176, -703, 74, -703, 358, 344, 359,
589 3034, -703, -703, -703, 2365, 2365, 360, -703, -703, 3156,
590 -703, 363, 11, -703, -703, 365, 3624, -703, -703, 1800,
591 -703, 2139, -703, 2817, -703, 74, 2817, -703, 3446, 3328,
592 -703, -703, -703, -703, -703, -703, 366, 367, -703, -703,
593 -703, -703, 2478, 2478, 370, -703, 53, 380, -703, 324,
594 243, 243, 369, -703, 368, 381, 368, 379, 2365, -703,
595 3552, -703, -703, 213, 213, 109, 323, 157, 388, 3624,
596 -703, -703, -703, -703, 389, 2252, -703, 391, 2817, 188,
597 -703, 401, 268, 402, 967, 3387, 3600, 3648, 411, 403,
598 407, 2817, 413, 380, 2817, 2817, -703, -703, 368, -703,
599 74, 1687, -703, 2365, -703, -703, 388, -703, -703, -703,
600 3328, -703, 410, 2365, 74, -703, 1913, 412, 417, -703,
601 353, -703, -703, -703, 418, 421, 432, 324, 427, -703,
602 433, -703, 33, -703, 3672, 430, 74, 3309, 431, 434,
603 -703, 436, -703, -703, 130, -703, 440, 442, -703, 2817,
604 -703, 444, 377, 445, 2365, 1800, 446, -703, 2139, -703,
605 -703, 448, 441, 453, 324, 450, 486, 2026, 3147, 289,
606 -703, -703, -703, 458, 2252, -703, -703, 459, 461, -703,
607 463, 464, 466, 467, -703, -703, 1800, -703, 481, -703,
608 368, 74, 472, 2139, -703, 474, -703, 479, -703, -703,
609 -703, 2026, 482, 485, -703
610 };
611
612 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
613 Performed when YYTABLE does not specify something else to do. Zero
614 means the default is an error. */
615 static const unsigned short int yydefact[] =
616 {
617 277, 405, 402, 406, 400, 401, 403, 397, 398, 0,
618 396, 0, 282, 281, 0, 0, 0, 0, 510, 0,
619 0, 0, 627, 283, 0, 0, 0, 278, 279, 285,
620 284, 286, 290, 524, 388, 390, 389, 395, 409, 421,
621 394, 287, 288, 289, 426, 443, 445, 446, 0, 0,
622 455, 292, 291, 293, 0, 294, 0, 404, 399, 33,
623 34, 615, 576, 24, 524, 530, 39, 38, 37, 35,
624 36, 32, 31, 25, 29, 28, 26, 27, 40, 584,
625 583, 581, 579, 580, 582, 578, 577, 585, 30, 613,
626 611, 610, 612, 609, 608, 456, 0, 526, 528, 41,
627 42, 396, 0, 0, 0, 0, 444, 431, 387, 296,
628 307, 304, 306, 308, 309, 320, 317, 318, 315, 321,
629 316, 0, 319, 310, 311, 312, 0, 337, 337, 0,
630 300, 0, 0, 0, 510, 510, 0, 0, 372, 377,
631 466, 376, 0, 518, 518, 391, 392, 393, 507, 358,
632 406, 397, 361, 0, 0, 357, 386, 0, 0, 0,
633 0, 629, 0, 628, 396, 0, 426, 0, 1, 280,
634 520, 467, 0, 525, 411, 415, 413, 417, 410, 407,
635 422, 409, 408, 0, 0, 457, 457, 0, 0, 0,
636 525, 531, 524, 469, 527, 529, 391, 392, 393, 0,
637 0, 323, 324, 325, 327, 328, 326, 322, 337, 302,
638 297, 68, 43, 44, 45, 46, 47, 48, 49, 50,
639 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
640 61, 62, 63, 64, 65, 66, 67, 158, 159, 69,
641 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
642 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
643 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
644 100, 101, 102, 108, 106, 107, 105, 103, 104, 109,
645 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
646 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
647 130, 131, 132, 160, 133, 134, 135, 136, 137, 138,
648 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
649 149, 150, 151, 152, 156, 153, 154, 155, 157, 339,
650 305, 338, 298, 313, 314, 299, 322, 301, 347, 348,
651 0, 0, 22, 23, 20, 21, 0, 0, 350, 303,
652 349, 456, 391, 509, 392, 508, 373, 369, 378, 0,
653 0, 0, 0, 0, 0, 0, 295, 0, 0, 435,
654 0, 0, 0, 0, 436, 0, 471, 524, 520, 416,
655 412, 418, 419, 414, 423, 0, 424, 458, 0, 524,
656 0, 459, 460, 462, 0, 486, 512, 484, 0, 627,
657 0, 0, 0, 621, 622, 0, 552, 555, 554, 556,
658 557, 0, 558, 0, 0, 432, 433, 0, 430, 0,
659 330, 340, 506, 505, 0, 0, 501, 0, 0, 345,
660 342, 352, 2, 3, 4, 5, 6, 7, 8, 9,
661 10, 11, 13, 12, 14, 15, 16, 17, 18, 19,
662 0, 0, 370, 0, 0, 0, 0, 474, 473, 475,
663 472, 524, 468, 362, 437, 186, 161, 162, 163, 164,
664 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
665 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
666 185, 274, 275, 187, 188, 189, 190, 191, 192, 193,
667 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
668 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
669 214, 215, 216, 217, 218, 224, 222, 223, 221, 219,
670 220, 225, 226, 227, 228, 229, 230, 231, 232, 233,
671 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
672 244, 245, 246, 247, 248, 276, 249, 250, 251, 252,
673 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
674 263, 264, 265, 266, 267, 268, 272, 269, 270, 271,
675 273, 441, 442, 0, 439, 0, 0, 371, 425, 497,
676 495, 494, 496, 0, 521, 0, 0, 498, 0, 488,
677 499, 0, 470, 420, 428, 0, 465, 0, 463, 520,
678 0, 0, 520, 0, 0, 513, 0, 0, 0, 604,
679 0, 0, 603, 42, 0, 0, 0, 0, 624, 0,
680 0, 598, 532, 553, 0, 454, 0, 0, 331, 524,
681 0, 502, 504, 341, 0, 354, 0, 353, 0, 343,
682 0, 0, 514, 381, 374, 382, 0, 383, 518, 518,
683 380, 379, 0, 497, 366, 367, 368, 0, 364, 363,
684 438, 440, 533, 545, 546, 547, 548, 544, 549, 550,
685 551, 543, 0, 0, 537, 627, 542, 24, 0, 0,
686 0, 522, 492, 523, 0, 0, 0, 429, 427, 464,
687 449, 0, 0, 461, 447, 0, 487, 485, 483, 0,
688 559, 627, 602, 0, 541, 627, 0, 623, 0, 599,
689 596, 620, 453, 434, 332, 335, 0, 333, 503, 500,
690 346, 351, 0, 0, 0, 375, 0, 479, 476, 514,
691 0, 0, 0, 356, 0, 0, 0, 539, 0, 490,
692 0, 491, 451, 520, 520, 497, 0, 31, 30, 565,
693 570, 566, 568, 569, 41, 0, 605, 616, 0, 0,
694 625, 615, 601, 0, 337, 0, 355, 344, 0, 515,
695 0, 0, 0, 479, 385, 384, 452, 534, 0, 538,
696 627, 362, 489, 0, 450, 448, 0, 567, 590, 576,
697 599, 591, 0, 0, 627, 571, 627, 0, 0, 626,
698 0, 329, 334, 336, 0, 0, 0, 514, 480, 477,
699 0, 535, 0, 540, 493, 0, 627, 0, 586, 0,
700 618, 617, 606, 560, 0, 519, 0, 0, 481, 0,
701 478, 0, 0, 0, 0, 0, 0, 607, 627, 614,
702 597, 0, 0, 0, 514, 0, 0, 592, 0, 498,
703 588, 563, 561, 587, 0, 575, 619, 0, 0, 482,
704 0, 0, 0, 593, 594, 572, 0, 562, 0, 516,
705 0, 627, 0, 627, 589, 0, 536, 0, 573, 595,
706 517, 592, 0, 0, 574
707 };
708
709 /* YYPGOTO[NTERM-NUM]. */
710 static const short int yypgoto[] =
711 {
712 -703, -324, -123, -4, 181, -703, -703, -703, 487, -703,
713 -703, -703, -703, -703, -703, -703, -703, -703, -703, 382,
714 -703, -703, -703, -125, -703, -292, -703, -703, -703, -703,
715 -703, -272, -703, -703, 361, -136, 32, -130, -156, -9,
716 -703, -703, -703, 488, -703, -703, 347, -703, -703, -703,
717 -703, 364, -703, -703, -703, -192, -703, -131, -703, -54,
718 501, 41, 0, 40, -703, -703, 345, -703, -79, 8,
719 -33, -703, -703, 170, -323, -703, -247, -703, 4, -703,
720 -78, -322, -703, -116, -703, 114, -703, -443, -421, 92,
721 -703, -691, -124, -359, -58, -1, -703, 443, -703, 518,
722 -703, -205, -644, -702, -703, 182, -371, -703, -333, -663,
723 155, -201, -703, -703, -664, -703, -703, -300, -332, -703,
724 -703, -703, -242, -703, -373, -385, -375, -703, -703, -703,
725 -703, -703, -703, -158, -21, -674
726 };
727
728 /* YYDEFGOTO[NTERM-NUM]. */
729 static const short int yydefgoto[] =
730 {
731 -1, 695, 596, 170, 329, 581, 26, 27, 28, 29,
732 30, 126, 127, 128, 129, 335, 130, 131, 132, 208,
733 209, 726, 727, 330, 331, 349, 646, 647, 31, 154,
734 155, 667, 668, 32, 137, 652, 653, 654, 33, 34,
735 35, 36, 37, 38, 39, 40, 179, 380, 383, 182,
736 41, 184, 605, 42, 200, 772, 43, 582, 583, 584,
737 44, 45, 46, 140, 48, 49, 390, 391, 392, 50,
738 597, 51, 52, 458, 459, 656, 782, 818, 142, 396,
739 397, 619, 599, 600, 640, 426, 54, 143, 144, 148,
740 616, 737, 360, 376, 172, 417, 97, 98, 55, 56,
741 683, 684, 620, 685, 686, 405, 406, 407, 860, 861,
742 862, 761, 762, 763, 99, 846, 863, 802, 872, 873,
743 408, 630, 773, 409, 874, 622, 100, 807, 831, 410,
744 411, 412, 627, 628, 624, 163
745 };
746
747 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
748 positive, shift that token. If negative, reduce the rule whose
749 number is the opposite. If YYTABLE_NINF, syntax error. */
750 static const short int yytable[] =
751 {
752 171, 162, 108, 332, 53, 95, 189, 415, 96, 347,
753 156, 658, 145, 146, 147, 139, 350, 631, 107, 602,
754 361, 362, 363, 141, 623, 451, 621, 623, 369, 389,
755 389, 53, 173, 659, 633, 765, 374, 455, 456, 65,
756 47, 747, 787, 64, 790, 764, 760, 138, 783, 427,
757 47, 106, 333, 598, 632, 430, -365, 714, -365, -365,
758 65, 47, 159, 190, 47, 47, 167, 47, 149, 1,
759 2, 150, 4, 5, 6, 151, 8, 152, 779, 57,
760 457, 58, 153, 420, 697, 454, 821, 101, 780, 634,
761 -518, 698, 193, 801, 359, -518, 156, 841, 196, 197,
762 198, 764, 805, 451, -446, -466, 451, -466, 157, 398,
763 399, 400, 401, 402, 194, 403, 404, 207, 161, 174,
764 175, 176, 381, 168, 177, 382, 838, 336, 348, 351,
765 352, 354, 96, -455, 414, 199, 139, 178, 358, 645,
766 -497, 669, -497, -497, 141, 334, 747, 61, 849, 102,
767 103, 104, 364, 717, -391, -511, 718, 185, 648, 649,
768 828, 422, 423, 869, 183, 139, 416, 424, 356, 378,
769 186, 864, 187, 141, 798, 799, -392, -511, 886, 425,
770 188, 764, 843, 395, 191, 413, 180, 4, 5, 800,
771 210, 190, 801, 393, 393, 609, 610, 138, 47, 367,
772 764, 877, 864, 65, 47, 106, 612, 613, 658, 745,
773 746, 672, 764, 658, 633, 174, 175, 176, 347, -455,
774 177, 809, 637, 357, 347, 350, 353, 355, 359, -359,
775 659, 350, -511, 178, 366, 659, 464, 887, -360, 365,
776 89, 90, 91, 92, 93, 94, 368, 371, 370, 377,
777 700, 375, 379, 704, 385, 419, 386, 79, 80, 81,
778 82, 83, 84, 85, 86, 87, 398, 399, 400, 401,
779 402, 690, 403, 404, 692, 418, 453, 431, 452, 454,
780 463, 1, 2, 3, 4, 5, 6, 7, 8, 586,
781 587, 588, 706, 603, 9, 604, 611, 615, 655, 101,
782 673, 614, 637, 674, 635, 638, 11, 675, 347, 676,
783 677, 678, 679, 680, 681, 350, 642, 650, 691, 601,
784 701, 451, 705, 708, 451, 451, 710, 347, 347, 709,
785 682, 608, 711, 712, 350, 350, 623, 348, 766, 713,
786 714, 715, 429, 348, 716, 732, 719, 734, 1, 2,
787 3, 4, 5, 6, 7, 8, 171, 720, 722, 736,
788 462, 102, 103, 104, 105, 617, 101, 625, 22, 629,
789 729, 673, 750, 751, 674, 730, 190, 743, 675, 156,
790 676, 677, 678, 679, 680, 681, 606, 759, 173, 731,
791 744, -24, 748, 752, 794, 795, 753, 626, 754, 774,
792 158, 775, 786, 662, 778, 398, 399, 400, 401, 402,
793 636, 403, 404, 378, 781, 639, 788, 784, 785, 791,
794 803, 804, 660, 661, 644, 806, 792, 348, 102, 103,
795 104, 623, 796, 830, -600, 810, 814, 689, 815, 816,
796 776, 777, 826, 759, 819, 832, 348, 348, 833, 850,
797 834, 835, 451, 451, 139, 389, 836, 837, 657, 851,
798 190, 839, 141, 842, 840, 845, 867, 847, 855, 669,
799 848, 824, 852, 623, 856, 866, 853, 857, 868, 865,
800 713, 827, 623, 870, 1, 2, 3, 4, 5, 6,
801 7, 8, 876, 878, 879, 655, 881, 9, 880, 882,
802 655, 883, 101, 798, 799, 888, 885, 890, 623, 11,
803 889, 891, 421, 337, 169, 893, 623, 738, 894, 823,
804 739, 735, 858, 759, 769, 166, 372, 181, 384, 671,
805 373, 394, 703, 460, 740, 741, 820, 707, 641, 160,
806 195, 789, 759, 884, 1, 2, 3, 4, 5, 6,
807 7, 8, 585, 618, 759, 797, 871, 133, 825, 892,
808 770, 0, 101, 0, 134, 135, 18, 105, 0, 11,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 728, 0, 0, 0, 0, 79, 80, 81, 82,
811 83, 84, 85, 86, 87, 0, 0, 696, 0, 0,
812 0, 651, 193, 0, 723, 0, 699, 0, 0, 347,
813 347, 395, 0, 0, 0, 0, 350, 350, 0, 393,
814 0, 0, 171, 0, 134, 135, 18, 105, 0, 0,
815 0, 0, 0, 0, 725, 0, 0, 0, 190, 1,
816 2, 3, 4, 5, 6, 7, 8, 0, 0, 811,
817 0, 139, 153, 358, 173, 657, 139, 101, 742, 141,
818 657, 136, 0, 0, 141, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
820 767, 0, 0, 416, 0, 0, 416, 0, 0, 0,
821 59, 0, 0, 0, 768, 462, 0, 0, 0, 60,
822 0, 606, 0, 0, 61, 62, 201, 202, 203, 63,
823 0, 0, 0, 0, 626, 0, 0, 0, 0, 102,
824 103, 104, 0, 0, 0, 0, 0, 0, 348, 348,
825 0, 0, 0, 0, 0, 808, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 0, 0, 817, 0,
827 0, 660, 661, 66, 67, 68, 69, 70, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 416, 0, 822,
829 0, 813, 0, 0, 0, 71, 0, 72, 73, 74,
830 75, 76, 77, 109, 78, 0, 0, 79, 80, 81,
831 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
832 92, 93, 94, 0, 0, 0, 854, 0, 204, 0,
833 205, 206, 859, 0, 0, 0, 0, 0, 0, 110,
834 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
835 121, 0, 122, 123, 124, 125, 0, 0, 0, 0,
836 0, -576, 0, 859, -576, -576, -576, -576, -576, -576,
837 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
838 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
839 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
840 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
841 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
842 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
843 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
844 -576, 0, -576, 0, -576, -576, -576, -576, -576, -576,
845 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
846 -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
847 -576, -576, -576, -576, -576, -576, -576, -576, 0, -576,
848 -576, 0, -576, -576, -576, -576, -576, 211, 0, 0,
849 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
850 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
851 232, 233, 234, 235, 236, 237, 238, 0, 239, 240,
852 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
853 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
854 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
855 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
856 281, 282, 283, 284, 285, 286, 287, 0, 288, 0,
857 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
858 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
859 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
860 319, 320, 321, 322, 0, 0, 323, 0, 324, 325,
861 326, 327, 328, 465, 0, 0, 466, 467, 468, 469,
862 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
863 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
864 490, 491, 492, 0, 493, 494, 495, 496, 497, 368,
865 670, 498, 499, 500, 501, 502, 503, 504, 505, 506,
866 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
867 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
868 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
869 537, 538, 539, 0, 540, 0, 541, 542, 543, 544,
870 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
871 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
872 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
873 0, 0, 575, 0, 576, 577, 578, 579, 580, 465,
874 0, 0, 466, 467, 468, 469, 470, 471, 472, 473,
875 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
876 484, 485, 486, 487, 488, 489, 490, 491, 492, 0,
877 493, 494, 495, 496, 497, 368, 0, 498, 499, 500,
878 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
879 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
880 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
881 531, 532, 533, 534, 535, 536, 537, 538, 539, 0,
882 540, 0, 541, 542, 543, 544, 545, 546, 547, 548,
883 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
884 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
885 569, 570, 571, 572, 573, 574, 59, 0, 575, 0,
886 576, 577, 578, 579, 580, 60, 0, 0, 0, 0,
887 61, 62, 589, 0, 0, 63, 590, 0, 591, 0,
888 592, 340, 0, 0, 0, 593, 0, 0, 0, 0,
889 0, 0, 594, 0, 0, 0, 0, 0, 0, 0,
890 342, 343, 65, 0, 0, 0, 0, 0, 0, 0,
891 0, 0, 0, 344, 345, 0, 0, 0, 0, 66,
892 67, 68, 69, 70, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 71, 0, 72, 73, 74, 75, 76, 77, 0,
895 78, 0, 0, 79, 80, 81, 82, 83, 84, 85,
896 86, 87, 88, 89, 90, 91, 92, 93, 94, 1,
897 2, 3, 4, 5, 6, 7, 8, 595, 0, 0,
898 0, 0, 9, 0, 0, 0, 0, 10, 0, 0,
899 0, 0, 0, 0, 11, 12, 13, 1, 2, 3,
900 4, 5, 6, 7, 8, 0, 14, 0, 0, 0,
901 9, 0, 0, 0, 0, 101, 0, 0, 0, 0,
902 0, 0, 11, 0, 0, 0, 0, 1, 2, 3,
903 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
904 607, 0, 0, 0, 0, 101, 0, 0, 15, 16,
905 17, 18, 19, 20, 21, 0, 22, 1, 2, 3,
906 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
907 9, 0, 0, 0, 0, 101, 0, 134, 135, 18,
908 105, 23, 11, 0, 0, 0, 24, 0, 25, 0,
909 0, 0, 0, 0, 0, 0, 0, 59, 1, 2,
910 3, 4, 5, 6, 7, 8, 60, 102, 103, 104,
911 0, 61, 62, 589, 136, 0, 687, 590, 0, 591,
912 0, 592, 340, 11, 0, 0, 593, 0, 0, 0,
913 0, 0, 0, 0, 0, 0, 0, 134, 135, 18,
914 105, 342, 343, 65, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 344, 345, 0, 0, 0, 0,
916 66, 67, 68, 69, 70, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 651, 0, 0, 0, 102, 103,
918 104, 688, 71, 0, 72, 73, 74, 75, 76, 77,
919 0, 78, 0, 0, 79, 80, 81, 82, 83, 84,
920 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
921 59, 0, 0, 0, 0, 0, 0, 0, 0, 60,
922 0, 0, 0, 0, 61, 62, 663, 664, 665, 63,
923 590, 0, 591, 666, 592, 340, 0, 0, 0, 593,
924 0, 0, 0, 0, 0, 1, 2, 3, 4, 5,
925 6, 7, 8, 0, 342, 343, 65, 0, 9, 0,
926 0, 0, 0, 164, 0, 0, 0, 344, 345, 0,
927 11, 0, 0, 66, 67, 68, 69, 70, 1, 2,
928 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
929 0, 9, 0, 0, 0, 71, 101, 72, 73, 74,
930 75, 76, 77, 11, 78, 0, 0, 79, 80, 81,
931 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
932 92, 93, 94, 59, 165, 102, 103, 104, 105, 0,
933 0, 0, 60, 0, 0, 0, 0, 61, 62, 755,
934 0, 0, 63, 590, 0, 591, 0, 592, 340, 0,
935 0, 0, 593, 0, 0, 0, 0, 0, 102, 103,
936 104, 105, 0, 0, 161, 0, 0, 342, 343, 65,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
938 344, 345, 0, 0, 0, 0, 66, 67, 68, 69,
939 70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0, 71, 756,
941 757, 73, 74, 75, 76, 77, 0, 78, 0, 0,
942 79, 80, 81, 82, 83, 84, 85, 86, 87, 758,
943 89, 90, 91, 92, 93, 94, 59, 0, 0, 0,
944 0, 0, 0, 0, 0, 60, 0, 0, 0, 0,
945 61, 62, 589, 0, 0, 63, 590, 0, 591, 0,
946 592, 340, 0, 0, 0, 593, 0, 0, 0, 0,
947 0, 0, 0, 0, 0, 0, 0, 161, 0, 0,
948 342, 343, 65, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 344, 345, 0, 0, 829, 0, 66,
950 67, 68, 69, 70, 1, 2, 3, 4, 5, 6,
951 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
952 0, 71, 101, 72, 73, 74, 75, 76, 77, 11,
953 78, 0, 0, 79, 80, 81, 82, 83, 84, 85,
954 86, 87, 88, 89, 90, 91, 92, 93, 94, 59,
955 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
956 0, 0, 0, 61, 62, 589, 0, 0, 63, 590,
957 -627, 591, 0, 592, 340, 0, 0, 0, 593, 0,
958 0, 0, 0, 0, 102, 103, 104, 105, 0, 0,
959 161, 0, 0, 342, 343, 65, 0, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 344, 345, 0, 0,
961 0, 0, 66, 67, 68, 69, 70, 1, 2, 3,
962 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
963 9, 0, 0, 0, 71, 101, 72, 73, 74, 75,
964 76, 77, 11, 78, 0, 0, 79, 80, 81, 82,
965 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
966 93, 94, 59, 0, 0, 0, 0, 0, 0, 0,
967 0, 60, 0, 0, 0, 0, 61, 62, 589, 0,
968 0, 63, 590, 0, 591, 0, 592, 340, 0, 0,
969 0, 593, 0, 0, 0, 0, 0, 134, 135, 18,
970 105, 0, 0, 161, 0, 0, 342, 343, 65, 0,
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 344,
972 345, 0, 0, 0, 0, 66, 67, 68, 69, 70,
973 1, 2, 3, 4, 5, 6, 7, 8, 0, 0,
974 0, 0, 0, 9, 0, 0, 0, 71, 101, 72,
975 73, 74, 75, 76, 77, 11, 78, 0, 0, 79,
976 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
977 90, 91, 92, 93, 94, 59, 0, 0, 0, 0,
978 0, 0, 0, 0, 60, 0, 0, 0, 0, 61,
979 62, 755, 0, 0, 63, 590, 0, 591, 0, 592,
980 340, 0, 0, 0, 593, 0, 0, 0, 0, 0,
981 102, 103, 104, 105, 0, 0, 0, 0, 0, 342,
982 343, 65, 0, 0, 0, 0, 0, 0, 0, 0,
983 0, 0, 344, 345, 0, 0, 0, 0, 66, 67,
984 68, 69, 70, 0, 0, 0, 0, 0, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
986 71, 756, 757, 73, 74, 75, 76, 77, 0, 78,
987 0, 0, 79, 80, 81, 82, 83, 84, 85, 86,
988 87, 758, 89, 90, 91, 92, 93, 94, 59, 0,
989 0, 0, 0, 0, 0, 0, 0, 60, 0, 0,
990 0, 0, 61, 62, 589, 0, 0, 63, 590, 0,
991 591, 0, 592, 340, 0, 0, 0, 593, 0, 0,
992 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
993 0, 0, 342, 343, 65, 387, 0, 0, 0, 0,
994 101, 0, 0, 0, 0, 344, 345, 11, 0, 0,
995 0, 66, 67, 68, 69, 70, 1, 2, 3, 4,
996 5, 6, 7, 8, 0, 0, 0, 0, 0, 702,
997 0, 0, 0, 71, 101, 72, 73, 74, 75, 76,
998 77, 11, 78, 0, 0, 79, 80, 81, 82, 83,
999 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1000 94, 59, 102, 103, 104, 388, 0, 0, 0, 0,
1001 60, 0, 0, 0, 0, 61, 62, 0, 0, 0,
1002 63, 0, 0, 338, 0, 339, 340, 0, 0, 0,
1003 341, 0, 0, 0, 0, 0, 102, 103, 104, 388,
1004 0, 0, 0, 0, 0, 342, 343, 0, 0, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0, 344, 345,
1006 0, 0, 0, 0, 66, 67, 68, 69, 70, 0,
1007 0, 0, 0, 0, 0, 0, 346, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 71, 0, 72, 73,
1009 74, 75, 76, 77, 0, 78, 0, 0, 79, 80,
1010 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1011 91, 92, 93, 94, 59, 0, 0, 0, 0, 0,
1012 0, 0, 0, 60, 0, 0, 0, 0, 61, 62,
1013 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
1014 0, 0, 0, 64, 0, 0, 0, 0, 1, 2,
1015 3, 4, 5, 6, 7, 8, 0, 0, 0, 0,
1016 65, 0, 0, 0, 0, 0, 101, 0, 0, 0,
1017 422, 423, 0, 0, 0, 0, 0, 66, 67, 68,
1018 69, 70, 0, 0, 0, 0, 0, 0, 425, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
1020 0, 72, 73, 74, 75, 76, 77, 0, 78, 0,
1021 0, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1022 88, 89, 90, 91, 92, 93, 94, 59, 102, 103,
1023 104, 0, 0, 0, 0, 0, 60, 0, 0, 0,
1024 0, 61, 62, 0, 0, 0, 63, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, -524, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 66, 67, 68, 69, 70, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 71, 0, 72, 73, 74, 75, 76, 77,
1032 0, 78, 0, 0, 79, 80, 81, 82, 83, 84,
1033 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1034 59, 0, 0, 0, 0, 0, 0, 0, 0, 60,
1035 721, 0, 0, 0, 61, 62, 0, 0, 0, 63,
1036 0, 432, 433, 434, 435, 436, 437, 438, 439, 440,
1037 441, 442, 443, 444, 445, 446, 447, 448, 449, 0,
1038 0, 0, 0, 0, 694, 0, 65, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 66, 67, 68, 69, 70, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 71, 0, 72, 73, 74,
1043 75, 76, 77, 0, 78, 0, 0, 79, 80, 81,
1044 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1045 92, 93, 94, 59, 0, 0, 0, 0, 0, 0,
1046 0, 0, 60, 0, 0, 0, 0, 61, 62, 0,
1047 0, 0, 63, 0, 643, 0, 0, 0, 0, 0,
1048 0, 0, 192, 432, 433, 434, 435, 436, 437, 438,
1049 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
1050 449, 0, 0, 0, 0, 0, 450, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 66, 67, 68, 69,
1052 70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
1054 72, 73, 74, 75, 76, 77, 0, 78, 0, 0,
1055 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1056 89, 90, 91, 92, 93, 94, 59, 0, 0, 0,
1057 0, 0, 0, 0, 0, 60, 0, 0, 0, 0,
1058 61, 62, 0, 0, 0, 63, 0, 749, 0, 0,
1059 0, 0, 0, 0, 0, 428, 432, 433, 434, 435,
1060 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1061 446, 447, 448, 449, 0, 0, 0, 0, 0, 694,
1062 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
1063 67, 68, 69, 70, 0, 0, 0, 0, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 71, 0, 72, 73, 74, 75, 76, 77, 0,
1066 78, 0, 0, 79, 80, 81, 82, 83, 84, 85,
1067 86, 87, 88, 89, 90, 91, 92, 93, 94, 59,
1068 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
1069 0, 0, 0, 61, 62, 0, 0, 0, 63, 0,
1070 875, 0, 0, 0, 0, 0, 0, 0, 461, 432,
1071 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1072 443, 444, 445, 446, 447, 448, 449, 0, 0, 0,
1073 0, 0, 694, 0, 0, 0, 0, 0, 59, 0,
1074 0, 0, 66, 67, 68, 69, 70, 60, 0, 0,
1075 0, 0, 61, 62, 0, 0, 0, 63, 0, 0,
1076 0, 0, 0, 0, 71, 0, 72, 73, 74, 75,
1077 76, 77, 0, 78, 0, 0, 79, 80, 81, 82,
1078 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1079 93, 94, 0, 0, 0, 0, 0, 0, 0, 724,
1080 0, 66, 67, 68, 69, 70, 0, 0, 0, 0,
1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 0, 71, 0, 72, 73, 74, 75, 76,
1083 77, 0, 78, 0, 0, 79, 80, 81, 82, 83,
1084 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1085 94, 59, 0, 0, 0, 0, 0, 0, 0, 0,
1086 60, 0, 0, 844, 0, 771, 62, 0, 0, 0,
1087 63, 432, 433, 434, 435, 436, 437, 438, 439, 440,
1088 441, 442, 443, 444, 445, 446, 447, 448, 449, 0,
1089 0, 0, 0, 0, 694, 0, 0, 65, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1091 59, 0, 0, 0, 66, 67, 68, 69, 70, 60,
1092 0, 0, 0, 0, 61, 62, 0, 0, 0, 63,
1093 0, 0, 0, 0, 0, 0, 71, 0, 72, 73,
1094 74, 75, 76, 77, 0, 78, 0, 0, 79, 80,
1095 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1096 91, 92, 93, 94, 0, 0, 0, 0, 0, 59,
1097 0, 812, 0, 66, 67, 68, 69, 70, 60, 0,
1098 0, 0, 0, 61, 62, 0, 0, 0, 63, 0,
1099 0, 0, 0, 0, 0, 71, 0, 72, 73, 74,
1100 75, 76, 77, 0, 78, 0, 0, 79, 80, 81,
1101 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1102 92, 93, 94, 0, 0, 0, 0, 0, 0, 0,
1103 0, 0, 66, 67, 68, 69, 70, 0, 0, 0,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0, 0, 0, 71, 0, 72, 73, 74, 75,
1106 76, 77, 0, 78, 0, 0, 79, 80, 81, 82,
1107 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1108 93, 94, 733, 0, 0, 0, 0, 0, 0, 432,
1109 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
1110 443, 444, 445, 446, 447, 448, 449, 793, 0, 0,
1111 0, 0, 450, 0, 432, 433, 434, 435, 436, 437,
1112 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1113 448, 449, 0, 0, 0, 693, 0, 694, 432, 433,
1114 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
1115 444, 445, 446, 447, 448, 449, 0, 0, 0, 0,
1116 0, 694, 432, 433, 434, 435, 436, 437, 438, 439,
1117 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
1118 0, 0, 0, 0, 0, 450, 432, 433, 434, 435,
1119 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
1120 446, 447, 448, 449, 0, 0, 0, 0, 0, 694,
1121 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1122 442, 443, 444, 445, 446, 447, 448, 449, 0, 0,
1123 0, 0, 0, 450, 432, 433, 434, 435, 436, 437,
1124 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
1125 448, 449, 0, 0, 0, 0, 0, 694
1126 };
1127
1128 static const short int yycheck[] =
1129 {
1130 33, 22, 11, 128, 0, 9, 64, 199, 9, 132,
1131 19, 454, 16, 17, 18, 15, 132, 402, 10, 378,
1132 144, 145, 146, 15, 399, 349, 399, 402, 159, 185,
1133 186, 27, 33, 454, 405, 709, 167, 360, 361, 49,
1134 0, 685, 744, 32, 746, 709, 709, 15, 739, 341,
1135 10, 10, 26, 375, 37, 347, 31, 24, 33, 34,
1136 49, 21, 21, 64, 24, 25, 25, 27, 3, 4,
1137 5, 6, 7, 8, 9, 10, 11, 12, 25, 9,
1138 31, 11, 17, 208, 26, 36, 788, 22, 35, 411,
1139 31, 33, 96, 757, 35, 36, 105, 64, 102, 103,
1140 104, 765, 765, 427, 31, 32, 430, 34, 26, 92,
1141 93, 94, 95, 96, 124, 98, 99, 121, 44, 4,
1142 5, 6, 6, 0, 9, 9, 817, 131, 132, 133,
1143 134, 135, 133, 32, 192, 34, 136, 22, 142, 431,
1144 31, 463, 33, 34, 136, 119, 790, 17, 18, 84,
1145 85, 86, 153, 31, 35, 36, 34, 32, 450, 451,
1146 804, 26, 27, 854, 125, 165, 199, 32, 136, 173,
1147 32, 845, 36, 165, 17, 18, 35, 36, 880, 44,
1148 36, 845, 826, 187, 87, 189, 6, 7, 8, 32,
1149 30, 192, 856, 185, 186, 33, 34, 165, 158, 158,
1150 864, 864, 876, 49, 164, 164, 33, 34, 651, 33,
1151 34, 37, 876, 656, 585, 4, 5, 6, 341, 32,
1152 9, 33, 34, 31, 347, 341, 134, 135, 35, 23,
1153 651, 347, 36, 22, 31, 656, 367, 881, 23, 23,
1154 110, 111, 112, 113, 114, 115, 36, 23, 36, 32,
1155 609, 38, 6, 612, 32, 118, 31, 100, 101, 102,
1156 103, 104, 105, 106, 107, 108, 92, 93, 94, 95,
1157 96, 593, 98, 99, 596, 31, 35, 32, 31, 36,
1158 40, 4, 5, 6, 7, 8, 9, 10, 11, 32,
1159 31, 31, 614, 6, 17, 26, 34, 34, 454, 22,
1160 3, 40, 34, 6, 33, 32, 29, 10, 431, 12,
1161 13, 14, 15, 16, 17, 431, 22, 32, 39, 377,
1162 64, 645, 64, 37, 648, 649, 31, 450, 451, 40,
1163 33, 389, 40, 31, 450, 451, 711, 341, 711, 32,
1164 24, 40, 346, 347, 32, 34, 32, 25, 4, 5,
1165 6, 7, 8, 9, 10, 11, 389, 31, 33, 35,
1166 364, 84, 85, 86, 87, 398, 22, 400, 91, 402,
1167 33, 3, 694, 695, 6, 33, 377, 31, 10, 388,
1168 12, 13, 14, 15, 16, 17, 387, 709, 389, 33,
1169 35, 33, 33, 33, 753, 754, 33, 401, 33, 33,
1170 123, 34, 33, 461, 34, 92, 93, 94, 95, 96,
1171 414, 98, 99, 417, 34, 424, 35, 740, 741, 40,
1172 32, 32, 455, 456, 428, 34, 748, 431, 84, 85,
1173 86, 806, 109, 806, 33, 33, 25, 593, 35, 32,
1174 732, 733, 32, 765, 31, 33, 450, 451, 31, 834,
1175 97, 33, 776, 777, 454, 611, 35, 25, 454, 834,
1176 461, 34, 454, 33, 31, 34, 25, 33, 24, 791,
1177 34, 793, 32, 848, 97, 848, 34, 32, 25, 33,
1178 32, 803, 857, 33, 4, 5, 6, 7, 8, 9,
1179 10, 11, 34, 34, 33, 651, 32, 17, 35, 33,
1180 656, 34, 22, 17, 18, 33, 25, 33, 883, 29,
1181 883, 32, 331, 131, 27, 33, 891, 37, 33, 791,
1182 656, 651, 844, 845, 716, 24, 165, 39, 181, 583,
1183 166, 186, 611, 363, 658, 659, 783, 615, 424, 21,
1184 97, 746, 864, 876, 4, 5, 6, 7, 8, 9,
1185 10, 11, 370, 398, 876, 756, 856, 17, 800, 891,
1186 718, -1, 22, -1, 84, 85, 86, 87, -1, 29,
1187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1188 -1, 639, -1, -1, -1, -1, 100, 101, 102, 103,
1189 104, 105, 106, 107, 108, -1, -1, 601, -1, -1,
1190 -1, 121, 606, -1, 637, -1, 607, -1, -1, 732,
1191 733, 615, -1, -1, -1, -1, 732, 733, -1, 611,
1192 -1, -1, 655, -1, 84, 85, 86, 87, -1, -1,
1193 -1, -1, -1, -1, 638, -1, -1, -1, 639, 4,
1194 5, 6, 7, 8, 9, 10, 11, -1, -1, 774,
1195 -1, 651, 17, 657, 655, 651, 656, 22, 662, 651,
1196 656, 121, -1, -1, 656, -1, -1, -1, -1, -1,
1197 -1, -1, -1, -1, -1, -1, -1, -1, -1, 688,
1198 713, -1, -1, 716, -1, -1, 719, -1, -1, -1,
1199 3, -1, -1, -1, 715, 699, -1, -1, -1, 12,
1200 -1, 702, -1, -1, 17, 18, 19, 20, 21, 22,
1201 -1, -1, -1, -1, 718, -1, -1, -1, -1, 84,
1202 85, 86, -1, -1, -1, -1, -1, -1, 732, 733,
1203 -1, -1, -1, -1, -1, 768, -1, -1, -1, -1,
1204 -1, -1, -1, -1, -1, -1, -1, -1, 781, -1,
1205 -1, 784, 785, 66, 67, 68, 69, 70, -1, -1,
1206 -1, -1, -1, -1, -1, -1, -1, 800, -1, 790,
1207 -1, 775, -1, -1, -1, 88, -1, 90, 91, 92,
1208 93, 94, 95, 30, 97, -1, -1, 100, 101, 102,
1209 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1210 113, 114, 115, -1, -1, -1, 839, -1, 121, -1,
1211 123, 124, 845, -1, -1, -1, -1, -1, -1, 66,
1212 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1213 77, -1, 79, 80, 81, 82, -1, -1, -1, -1,
1214 -1, 0, -1, 876, 3, 4, 5, 6, 7, 8,
1215 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
1216 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1217 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1218 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1219 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1220 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1221 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1222 79, -1, 81, -1, 83, 84, 85, 86, 87, 88,
1223 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1224 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1225 109, 110, 111, 112, 113, 114, 115, 116, -1, 118,
1226 119, -1, 121, 122, 123, 124, 125, 0, -1, -1,
1227 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1228 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1229 23, 24, 25, 26, 27, 28, 29, -1, 31, 32,
1230 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1231 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1232 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1233 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1234 73, 74, 75, 76, 77, 78, 79, -1, 81, -1,
1235 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1236 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1237 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1238 113, 114, 115, 116, -1, -1, 119, -1, 121, 122,
1239 123, 124, 125, 0, -1, -1, 3, 4, 5, 6,
1240 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1241 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1242 27, 28, 29, -1, 31, 32, 33, 34, 35, 36,
1243 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1244 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1245 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1246 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1247 77, 78, 79, -1, 81, -1, 83, 84, 85, 86,
1248 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1249 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1250 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1251 -1, -1, 119, -1, 121, 122, 123, 124, 125, 0,
1252 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1253 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1254 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1255 31, 32, 33, 34, 35, 36, -1, 38, 39, 40,
1256 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1257 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1258 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1259 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
1260 81, -1, 83, 84, 85, 86, 87, 88, 89, 90,
1261 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1262 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1263 111, 112, 113, 114, 115, 116, 3, -1, 119, -1,
1264 121, 122, 123, 124, 125, 12, -1, -1, -1, -1,
1265 17, 18, 19, -1, -1, 22, 23, -1, 25, -1,
1266 27, 28, -1, -1, -1, 32, -1, -1, -1, -1,
1267 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
1268 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1269 -1, -1, -1, 60, 61, -1, -1, -1, -1, 66,
1270 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1271 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1272 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1273 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1274 107, 108, 109, 110, 111, 112, 113, 114, 115, 4,
1275 5, 6, 7, 8, 9, 10, 11, 124, -1, -1,
1276 -1, -1, 17, -1, -1, -1, -1, 22, -1, -1,
1277 -1, -1, -1, -1, 29, 30, 31, 4, 5, 6,
1278 7, 8, 9, 10, 11, -1, 41, -1, -1, -1,
1279 17, -1, -1, -1, -1, 22, -1, -1, -1, -1,
1280 -1, -1, 29, -1, -1, -1, -1, 4, 5, 6,
1281 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1282 17, -1, -1, -1, -1, 22, -1, -1, 83, 84,
1283 85, 86, 87, 88, 89, -1, 91, 4, 5, 6,
1284 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1285 17, -1, -1, -1, -1, 22, -1, 84, 85, 86,
1286 87, 116, 29, -1, -1, -1, 121, -1, 123, -1,
1287 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
1288 6, 7, 8, 9, 10, 11, 12, 84, 85, 86,
1289 -1, 17, 18, 19, 121, -1, 22, 23, -1, 25,
1290 -1, 27, 28, 29, -1, -1, 32, -1, -1, -1,
1291 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86,
1292 87, 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, 121, -1, -1, -1, 84, 85,
1296 86, 87, 88, -1, 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, 20, 21, 22,
1301 23, -1, 25, 26, 27, 28, -1, -1, -1, 32,
1302 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8,
1303 9, 10, 11, -1, 47, 48, 49, -1, 17, -1,
1304 -1, -1, -1, 22, -1, -1, -1, 60, 61, -1,
1305 29, -1, -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, 83, 84, 85, 86, 87, -1,
1311 -1, -1, 12, -1, -1, -1, -1, 17, 18, 19,
1312 -1, -1, 22, 23, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1318 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89,
1319 90, 91, 92, 93, 94, 95, -1, 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, -1, -1, -1, -1, -1, -1, 44, -1, -1,
1326 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
1327 -1, -1, -1, 60, 61, -1, -1, 64, -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 24, 25, -1, 27, 28, -1, -1, -1, 32, -1,
1336 -1, -1, -1, -1, 84, 85, 86, 87, -1, -1,
1337 44, -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, 4, 5, 6,
1340 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
1341 17, -1, -1, -1, 88, 22, 90, 91, 92, 93,
1342 94, 95, 29, 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, -1, 84, 85, 86,
1348 87, -1, -1, 44, -1, -1, 47, 48, 49, -1,
1349 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
1350 61, -1, -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, 29, 97, -1, -1, 100,
1354 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1355 111, 112, 113, 114, 115, 3, -1, -1, -1, -1,
1356 -1, -1, -1, -1, 12, -1, -1, -1, -1, 17,
1357 18, 19, -1, -1, 22, 23, -1, 25, -1, 27,
1358 28, -1, -1, -1, 32, -1, -1, -1, -1, -1,
1359 84, 85, 86, 87, -1, -1, -1, -1, -1, 47,
1360 48, 49, -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 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1364 88, 89, 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, 19, -1, -1, 22, 23, -1,
1369 25, -1, 27, 28, -1, -1, -1, 32, -1, -1,
1370 -1, -1, 4, 5, 6, 7, 8, 9, 10, 11,
1371 -1, -1, 47, 48, 49, 17, -1, -1, -1, -1,
1372 22, -1, -1, -1, -1, 60, 61, 29, -1, -1,
1373 -1, 66, 67, 68, 69, 70, 4, 5, 6, 7,
1374 8, 9, 10, 11, -1, -1, -1, -1, -1, 17,
1375 -1, -1, -1, 88, 22, 90, 91, 92, 93, 94,
1376 95, 29, 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, 87, -1, -1, -1, -1,
1379 12, -1, -1, -1, -1, 17, 18, -1, -1, -1,
1380 22, -1, -1, 25, -1, 27, 28, -1, -1, -1,
1381 32, -1, -1, -1, -1, -1, 84, 85, 86, 87,
1382 -1, -1, -1, -1, -1, 47, 48, -1, -1, -1,
1383 -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
1384 -1, -1, -1, -1, 66, 67, 68, 69, 70, -1,
1385 -1, -1, -1, -1, -1, -1, 78, -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, -1, -1, -1, -1, -1,
1390 -1, -1, -1, 12, -1, -1, -1, -1, 17, 18,
1391 -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
1392 -1, -1, -1, 32, -1, -1, -1, -1, 4, 5,
1393 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
1394 49, -1, -1, -1, -1, -1, 22, -1, -1, -1,
1395 26, 27, -1, -1, -1, -1, -1, 66, 67, 68,
1396 69, 70, -1, -1, -1, -1, -1, -1, 44, -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, 84, 85,
1401 86, -1, -1, -1, -1, -1, 12, -1, -1, -1,
1402 -1, 17, 18, -1, -1, -1, 22, -1, -1, -1,
1403 -1, -1, -1, -1, -1, -1, 32, -1, -1, -1,
1404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1405 -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
1406 -1, -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 31, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1414 -1, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1415 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1416 -1, -1, -1, -1, 65, -1, 49, -1, -1, -1,
1417 -1, -1, -1, -1, -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, -1, -1, -1, -1, 66, 67, 68, 69,
1430 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1431 -1, -1, -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, 3, -1, -1, -1,
1435 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1,
1436 17, 18, -1, -1, -1, 22, -1, 33, -1, -1,
1437 -1, -1, -1, -1, -1, 32, 42, 43, 44, 45,
1438 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1439 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1440 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66,
1441 67, 68, 69, 70, -1, -1, -1, -1, -1, -1,
1442 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1443 -1, 88, -1, 90, 91, 92, 93, 94, 95, -1,
1444 97, -1, -1, 100, 101, 102, 103, 104, 105, 106,
1445 107, 108, 109, 110, 111, 112, 113, 114, 115, 3,
1446 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1,
1447 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1448 33, -1, -1, -1, -1, -1, -1, -1, 32, 42,
1449 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1450 53, 54, 55, 56, 57, 58, 59, -1, -1, -1,
1451 -1, -1, 65, -1, -1, -1, -1, -1, 3, -1,
1452 -1, -1, 66, 67, 68, 69, 70, 12, -1, -1,
1453 -1, -1, 17, 18, -1, -1, -1, 22, -1, -1,
1454 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1455 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1456 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1457 114, 115, -1, -1, -1, -1, -1, -1, -1, 64,
1458 -1, 66, 67, 68, 69, 70, -1, -1, -1, -1,
1459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1460 -1, -1, -1, 88, -1, 90, 91, 92, 93, 94,
1461 95, -1, 97, -1, -1, 100, 101, 102, 103, 104,
1462 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1463 115, 3, -1, -1, -1, -1, -1, -1, -1, -1,
1464 12, -1, -1, 34, -1, 17, 18, -1, -1, -1,
1465 22, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1466 51, 52, 53, 54, 55, 56, 57, 58, 59, -1,
1467 -1, -1, -1, -1, 65, -1, -1, 49, -1, -1,
1468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1469 3, -1, -1, -1, 66, 67, 68, 69, 70, 12,
1470 -1, -1, -1, -1, 17, 18, -1, -1, -1, 22,
1471 -1, -1, -1, -1, -1, -1, 88, -1, 90, 91,
1472 92, 93, 94, 95, -1, 97, -1, -1, 100, 101,
1473 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1474 112, 113, 114, 115, -1, -1, -1, -1, -1, 3,
1475 -1, 64, -1, 66, 67, 68, 69, 70, 12, -1,
1476 -1, -1, -1, 17, 18, -1, -1, -1, 22, -1,
1477 -1, -1, -1, -1, -1, 88, -1, 90, 91, 92,
1478 93, 94, 95, -1, 97, -1, -1, 100, 101, 102,
1479 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1480 113, 114, 115, -1, -1, -1, -1, -1, -1, -1,
1481 -1, -1, 66, 67, 68, 69, 70, -1, -1, -1,
1482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1483 -1, -1, -1, -1, 88, -1, 90, 91, 92, 93,
1484 94, 95, -1, 97, -1, -1, 100, 101, 102, 103,
1485 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1486 114, 115, 35, -1, -1, -1, -1, -1, -1, 42,
1487 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1488 53, 54, 55, 56, 57, 58, 59, 35, -1, -1,
1489 -1, -1, 65, -1, 42, 43, 44, 45, 46, 47,
1490 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1491 58, 59, -1, -1, -1, 39, -1, 65, 42, 43,
1492 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1493 54, 55, 56, 57, 58, 59, -1, -1, -1, -1,
1494 -1, 65, 42, 43, 44, 45, 46, 47, 48, 49,
1495 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1496 -1, -1, -1, -1, -1, 65, 42, 43, 44, 45,
1497 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1498 56, 57, 58, 59, -1, -1, -1, -1, -1, 65,
1499 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1500 52, 53, 54, 55, 56, 57, 58, 59, -1, -1,
1501 -1, -1, -1, 65, 42, 43, 44, 45, 46, 47,
1502 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1503 58, 59, -1, -1, -1, -1, -1, 65
1504 };
1505
1506 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1507 symbol of state STATE-NUM. */
1508 static const unsigned short int yystos[] =
1509 {
1510 0, 4, 5, 6, 7, 8, 9, 10, 11, 17,
1511 22, 29, 30, 31, 41, 83, 84, 85, 86, 87,
1512 88, 89, 91, 116, 121, 123, 146, 147, 148, 149,
1513 150, 168, 173, 178, 179, 180, 181, 182, 183, 184,
1514 185, 190, 193, 196, 200, 201, 202, 203, 204, 205,
1515 209, 211, 212, 218, 226, 238, 239, 9, 11, 3,
1516 12, 17, 18, 22, 32, 49, 66, 67, 68, 69,
1517 70, 88, 90, 91, 92, 93, 94, 95, 97, 100,
1518 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1519 111, 112, 113, 114, 115, 143, 235, 236, 237, 254,
1520 266, 22, 84, 85, 86, 87, 201, 209, 179, 30,
1521 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1522 76, 77, 79, 80, 81, 82, 151, 152, 153, 154,
1523 156, 157, 158, 17, 84, 85, 121, 174, 176, 202,
1524 203, 209, 218, 227, 228, 143, 143, 143, 229, 3,
1525 6, 10, 12, 17, 169, 170, 179, 26, 123, 201,
1526 239, 44, 274, 275, 22, 83, 200, 201, 0, 148,
1527 143, 210, 234, 235, 4, 5, 6, 9, 22, 186,
1528 6, 183, 189, 125, 191, 32, 32, 36, 36, 234,
1529 235, 87, 32, 143, 124, 237, 143, 143, 143, 34,
1530 194, 19, 20, 21, 121, 123, 124, 143, 159, 160,
1531 30, 0, 3, 4, 5, 6, 7, 8, 9, 10,
1532 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1533 21, 22, 23, 24, 25, 26, 27, 28, 29, 31,
1534 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1535 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1536 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1537 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1538 72, 73, 74, 75, 76, 77, 78, 79, 81, 83,
1539 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1540 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1541 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1542 114, 115, 116, 119, 121, 122, 123, 124, 125, 144,
1543 163, 164, 163, 26, 119, 155, 143, 159, 25, 27,
1544 28, 32, 47, 48, 60, 61, 78, 142, 143, 165,
1545 223, 143, 143, 229, 143, 229, 176, 31, 143, 35,
1546 232, 232, 232, 232, 235, 23, 31, 201, 36, 197,
1547 36, 23, 174, 191, 197, 38, 233, 32, 143, 6,
1548 187, 6, 9, 188, 186, 32, 31, 17, 87, 178,
1549 206, 207, 208, 209, 206, 143, 219, 220, 92, 93,
1550 94, 95, 96, 98, 99, 245, 246, 247, 260, 263,
1551 269, 270, 271, 143, 234, 195, 210, 235, 31, 118,
1552 163, 144, 26, 27, 32, 44, 225, 165, 32, 143,
1553 165, 32, 42, 43, 44, 45, 46, 47, 48, 49,
1554 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1555 65, 141, 31, 35, 36, 214, 214, 31, 213, 214,
1556 213, 32, 143, 40, 197, 0, 3, 4, 5, 6,
1557 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1558 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1559 27, 28, 29, 31, 32, 33, 34, 35, 38, 39,
1560 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1561 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1562 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1563 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1564 81, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1565 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1566 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1567 112, 113, 114, 115, 116, 119, 121, 122, 123, 124,
1568 125, 145, 197, 198, 199, 245, 32, 31, 31, 19,
1569 23, 25, 27, 32, 39, 124, 142, 210, 221, 222,
1570 223, 234, 233, 6, 26, 192, 235, 17, 234, 33,
1571 34, 34, 33, 34, 40, 34, 230, 210, 250, 221,
1572 242, 264, 265, 266, 274, 210, 143, 272, 273, 210,
1573 261, 265, 37, 246, 221, 33, 143, 34, 32, 179,
1574 224, 225, 22, 33, 143, 165, 166, 167, 165, 165,
1575 32, 121, 175, 176, 177, 178, 215, 218, 227, 228,
1576 210, 210, 234, 19, 20, 21, 26, 171, 172, 221,
1577 37, 199, 37, 3, 6, 10, 12, 13, 14, 15,
1578 16, 17, 33, 240, 241, 243, 244, 22, 87, 178,
1579 221, 39, 221, 39, 65, 141, 143, 26, 33, 235,
1580 233, 64, 17, 208, 233, 64, 221, 220, 37, 40,
1581 31, 40, 31, 32, 24, 40, 32, 31, 34, 32,
1582 31, 31, 33, 210, 64, 143, 161, 162, 234, 33,
1583 33, 33, 34, 35, 25, 177, 35, 231, 37, 175,
1584 232, 232, 143, 31, 35, 33, 34, 242, 33, 33,
1585 221, 221, 33, 33, 33, 19, 89, 90, 109, 221,
1586 249, 251, 252, 253, 254, 275, 264, 210, 274, 195,
1587 273, 17, 195, 262, 33, 34, 165, 165, 34, 25,
1588 35, 34, 216, 231, 214, 214, 33, 243, 35, 241,
1589 243, 40, 221, 35, 233, 233, 109, 251, 17, 18,
1590 32, 254, 257, 32, 32, 249, 34, 267, 210, 33,
1591 33, 163, 64, 143, 25, 35, 32, 210, 217, 31,
1592 216, 243, 274, 171, 221, 262, 32, 221, 242, 64,
1593 264, 268, 33, 31, 97, 33, 35, 25, 231, 34,
1594 31, 64, 33, 242, 34, 34, 255, 33, 34, 18,
1595 265, 266, 32, 34, 210, 24, 97, 32, 221, 210,
1596 248, 249, 250, 256, 275, 33, 264, 25, 25, 231,
1597 33, 257, 258, 259, 264, 33, 34, 249, 34, 33,
1598 35, 32, 33, 34, 248, 25, 243, 242, 33, 264,
1599 33, 32, 258, 33, 33
1600 };
1601
1602 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1603 static const unsigned short int yyr1[] =
1604 {
1605 0, 140, 141, 141, 141, 141, 141, 141, 141, 141,
1606 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1607 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
1608 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
1609 143, 143, 143, 144, 144, 144, 144, 144, 144, 144,
1610 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1611 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1612 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1613 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1614 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1615 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1616 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1617 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1618 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1619 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1620 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
1621 144, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1622 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1623 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1624 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1625 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1626 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1627 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1628 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1629 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1630 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1631 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
1632 145, 145, 145, 145, 145, 145, 145, 146, 146, 147,
1633 147, 148, 148, 148, 148, 148, 148, 148, 148, 148,
1634 148, 148, 148, 148, 148, 149, 150, 150, 151, 151,
1635 151, 151, 151, 151, 151, 151, 152, 152, 153, 153,
1636 154, 154, 154, 155, 155, 156, 156, 157, 157, 157,
1637 158, 158, 159, 159, 159, 159, 159, 159, 159, 160,
1638 160, 161, 161, 161, 161, 162, 162, 163, 163, 164,
1639 164, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1640 165, 165, 166, 166, 167, 167, 168, 169, 170, 170,
1641 170, 170, 171, 171, 171, 172, 172, 172, 172, 173,
1642 173, 173, 174, 174, 175, 175, 176, 176, 176, 176,
1643 176, 177, 177, 177, 177, 177, 178, 178, 178, 179,
1644 179, 180, 180, 180, 181, 181, 181, 182, 182, 182,
1645 183, 183, 184, 184, 184, 185, 185, 185, 185, 186,
1646 186, 186, 186, 186, 186, 187, 187, 188, 188, 188,
1647 188, 189, 189, 189, 190, 190, 191, 191, 192, 192,
1648 193, 194, 194, 195, 195, 196, 196, 196, 197, 198,
1649 198, 199, 199, 200, 200, 201, 201, 202, 202, 203,
1650 203, 204, 204, 204, 204, 205, 205, 206, 206, 206,
1651 207, 207, 208, 208, 208, 208, 209, 209, 209, 209,
1652 210, 210, 211, 212, 213, 213, 214, 215, 215, 216,
1653 216, 217, 217, 218, 219, 219, 220, 220, 221, 221,
1654 221, 221, 221, 221, 222, 222, 222, 222, 222, 222,
1655 223, 223, 224, 224, 225, 225, 225, 226, 227, 228,
1656 229, 229, 230, 230, 231, 231, 231, 231, 232, 232,
1657 233, 233, 233, 233, 234, 234, 235, 235, 236, 236,
1658 237, 237, 238, 238, 239, 239, 239, 240, 240, 241,
1659 241, 242, 243, 244, 244, 244, 244, 244, 244, 244,
1660 244, 244, 245, 245, 246, 246, 246, 246, 246, 247,
1661 247, 248, 248, 248, 249, 249, 249, 249, 249, 249,
1662 250, 250, 251, 252, 252, 253, 254, 254, 254, 254,
1663 254, 254, 254, 254, 254, 254, 255, 255, 256, 256,
1664 257, 257, 258, 258, 259, 259, 260, 261, 261, 262,
1665 262, 262, 263, 264, 264, 264, 265, 265, 266, 266,
1666 266, 266, 266, 266, 266, 266, 267, 267, 268, 268,
1667 269, 270, 270, 271, 272, 272, 273, 274, 274, 275
1668 };
1669
1670 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1671 static const unsigned char yyr2[] =
1672 {
1673 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1674 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1675 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1676 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1678 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1680 1, 1, 1, 1, 1, 1, 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, 1,
1683 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1684 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1685 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1686 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1687 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1688 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1689 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1690 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1691 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1692 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1693 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1694 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1695 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1696 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1697 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1698 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1699 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1700 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1701 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1702 1, 1, 1, 1, 1, 3, 2, 3, 2, 2,
1703 1, 2, 2, 2, 1, 2, 1, 1, 1, 1,
1704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1705 1, 1, 1, 1, 1, 1, 1, 1, 1, 6,
1706 2, 0, 1, 1, 3, 1, 3, 0, 1, 1,
1707 2, 3, 2, 3, 5, 2, 4, 1, 1, 1,
1708 1, 4, 0, 1, 1, 3, 6, 1, 1, 1,
1709 1, 1, 0, 1, 1, 1, 1, 1, 1, 3,
1710 4, 4, 1, 2, 1, 2, 1, 1, 2, 4,
1711 4, 1, 1, 1, 3, 3, 2, 2, 1, 1,
1712 1, 2, 2, 2, 1, 1, 1, 1, 1, 2,
1713 1, 1, 1, 1, 2, 1, 1, 2, 2, 0,
1714 1, 1, 2, 1, 2, 0, 1, 0, 1, 1,
1715 2, 0, 1, 2, 3, 4, 0, 4, 1, 2,
1716 4, 0, 2, 1, 3, 3, 3, 4, 3, 1,
1717 2, 1, 1, 1, 2, 1, 1, 5, 7, 5,
1718 7, 6, 7, 6, 5, 1, 2, 0, 1, 1,
1719 1, 3, 1, 2, 3, 2, 1, 2, 4, 3,
1720 3, 2, 4, 4, 1, 1, 3, 4, 5, 0,
1721 2, 2, 4, 5, 1, 3, 1, 3, 1, 4,
1722 3, 3, 2, 5, 1, 1, 1, 1, 1, 1,
1723 4, 2, 1, 2, 2, 1, 1, 2, 2, 2,
1724 0, 1, 0, 1, 0, 2, 7, 9, 0, 7,
1725 0, 2, 3, 3, 0, 1, 1, 2, 1, 2,
1726 1, 2, 4, 5, 7, 8, 13, 1, 3, 2,
1727 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1728 1, 1, 1, 2, 1, 1, 1, 1, 1, 3,
1729 6, 1, 2, 1, 1, 1, 1, 2, 1, 1,
1730 3, 4, 6, 8, 12, 5, 1, 1, 1, 1,
1731 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
1732 1, 1, 0, 1, 1, 3, 3, 6, 1, 0,
1733 1, 1, 3, 1, 1, 3, 5, 6, 1, 1,
1734 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
1735 3, 1, 1, 3, 1, 3, 4, 0, 1, 1
1736 };
1737
1738
1739 /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
1740 static const unsigned char yydprec[] =
1741 {
1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 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, 0, 0, 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, 0, 0, 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, 1, 2, 0, 0, 0, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 2, 1, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 2, 1, 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, 2, 1, 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 };
1806
1807 /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
1808 static const unsigned char yymerger[] =
1809 {
1810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 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 };
1874
1875 /* YYIMMEDIATE[RULE-NUM] -- True iff rule #RULE-NUM is not to be deferred, as
1876 in the case of predicates. */
1877 static const yybool yyimmediate[] =
1878 {
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
1942 };
1943
1944 /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
1945 list of conflicting reductions corresponding to action entry for
1946 state STATE-NUM in yytable. 0 means no conflicts. The list in
1947 yyconfl is terminated by a rule number of 0. */
1948 static const unsigned short int yyconflp[] =
1949 {
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, 263, 0, 265, 267,
1956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1957 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1958 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1960 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
1961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1963 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
1964 271, 0, 273, 275, 0, 0, 0, 0, 0, 0,
1965 0, 0, 0, 0, 255, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 257, 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, 253, 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, 259, 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, 261,
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, 269, 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, 277, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2016 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 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, 9, 0, 0, 11, 13, 15, 17, 19, 21,
2035 23, 25, 27, 29, 31, 33, 35, 37, 39, 41,
2036 43, 45, 47, 49, 51, 53, 55, 57, 59, 61,
2037 63, 65, 67, 69, 71, 73, 75, 77, 79, 81,
2038 83, 85, 87, 89, 91, 93, 95, 97, 99, 101,
2039 103, 105, 107, 109, 111, 113, 115, 117, 119, 121,
2040 123, 125, 127, 129, 131, 133, 135, 137, 139, 141,
2041 143, 145, 147, 149, 151, 153, 155, 157, 159, 161,
2042 163, 0, 165, 0, 167, 169, 171, 173, 175, 177,
2043 179, 181, 183, 185, 187, 189, 191, 193, 195, 197,
2044 199, 201, 203, 205, 207, 209, 211, 213, 215, 217,
2045 219, 221, 223, 225, 227, 229, 231, 233, 0, 235,
2046 237, 0, 239, 241, 243, 245, 247, 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, 1, 0, 0, 0, 0, 3, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 249, 0, 0, 0, 0, 251, 0,
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2196 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2296 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 0, 0, 279, 0, 0, 0, 0, 0, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 0, 0, 281
2324 };
2325
2326 /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
2327 0, pointed into by YYCONFLP. */
2328 static const short int yyconfl[] =
2329 {
2330 0, 396, 0, 396, 0, 409, 0, 466, 0, 614,
2331 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2332 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2333 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2334 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2335 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2336 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2337 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2338 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2339 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2340 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2341 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2342 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2343 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2344 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2345 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2346 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2347 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2348 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2349 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2350 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2351 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2352 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2353 0, 614, 0, 614, 0, 614, 0, 614, 0, 614,
2354 0, 614, 0, 614, 0, 614, 0, 614, 0, 396,
2355 0, 396, 0, 409, 0, 511, 0, 511, 0, 459,
2356 0, 42, 0, 497, 0, 497, 0, 497, 0, 396,
2357 0, 564, 0, 564, 0, 564, 0, 615, 0, 344,
2358 0, 493, 0
2359 };
2360
2361 /* Error token number */
2362 #define YYTERROR 1
2363
2364
2365
2366
2367 #undef yynerrs
2368 #define yynerrs (yystackp->yyerrcnt)
2369 #undef yychar
2370 #define yychar (yystackp->yyrawchar)
2371 #undef yylval
2372 #define yylval (yystackp->yyval)
2373 #undef yylloc
2374 #define yylloc (yystackp->yyloc)
2375 #define psi_parser_proc_nerrs yynerrs
2376 #define psi_parser_proc_char yychar
2377 #define psi_parser_proc_lval yylval
2378 #define psi_parser_proc_lloc yylloc
2379
2380 static const int YYEOF = 0;
2381 static const int YYEMPTY = -2;
2382
2383 typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
2384
2385 #define YYCHK(YYE) \
2386 do { \
2387 YYRESULTTAG yychk_flag = YYE; \
2388 if (yychk_flag != yyok) \
2389 return yychk_flag; \
2390 } while (0)
2391
2392 #if YYDEBUG
2393
2394 # ifndef YYFPRINTF
2395 # define YYFPRINTF fprintf
2396 # endif
2397
2398 /* This macro is provided for backward compatibility. */
2399 #ifndef YY_LOCATION_PRINT
2400 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2401 #endif
2402
2403
2404 # define YYDPRINTF(Args) \
2405 do { \
2406 if (yydebug) \
2407 YYFPRINTF Args; \
2408 } while (0)
2409
2410
2411 /*----------------------------------------.
2412 | Print this symbol's value on YYOUTPUT. |
2413 `----------------------------------------*/
2414
2415 static void
2416 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2417 {
2418 FILE *yyo = yyoutput;
2419 YYUSE (yyo);
2420 YYUSE (P);
2421 YYUSE (tokens);
2422 YYUSE (index);
2423 if (!yyvaluep)
2424 return;
2425 YYUSE (yytype);
2426 }
2427
2428
2429 /*--------------------------------.
2430 | Print this symbol on YYOUTPUT. |
2431 `--------------------------------*/
2432
2433 static void
2434 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2435 {
2436 YYFPRINTF (yyoutput, "%s %s (",
2437 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2438
2439 yy_symbol_value_print (yyoutput, yytype, yyvaluep, P, tokens, index);
2440 YYFPRINTF (yyoutput, ")");
2441 }
2442
2443 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2444 do { \
2445 if (yydebug) \
2446 { \
2447 YYFPRINTF (stderr, "%s ", Title); \
2448 yy_symbol_print (stderr, Type, Value, P, tokens, index); \
2449 YYFPRINTF (stderr, "\n"); \
2450 } \
2451 } while (0)
2452
2453 /* Nonzero means print parse trace. It is left uninitialized so that
2454 multiple parsers can coexist. */
2455 int yydebug;
2456
2457 struct yyGLRStack;
2458 static void yypstack (struct yyGLRStack* yystackp, size_t yyk)
2459 YY_ATTRIBUTE_UNUSED;
2460 static void yypdumpstack (struct yyGLRStack* yystackp)
2461 YY_ATTRIBUTE_UNUSED;
2462
2463 #else /* !YYDEBUG */
2464
2465 # define YYDPRINTF(Args)
2466 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2467
2468 #endif /* !YYDEBUG */
2469
2470 /* YYINITDEPTH -- initial size of the parser's stacks. */
2471 #ifndef YYINITDEPTH
2472 # define YYINITDEPTH 200
2473 #endif
2474
2475 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2476 if the built-in stack extension method is used).
2477
2478 Do not make this value too large; the results are undefined if
2479 SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
2480 evaluated with infinite-precision integer arithmetic. */
2481
2482 #ifndef YYMAXDEPTH
2483 # define YYMAXDEPTH 10000
2484 #endif
2485
2486 /* Minimum number of free items on the stack allowed after an
2487 allocation. This is to allow allocation and initialization
2488 to be completed by functions that call yyexpandGLRStack before the
2489 stack is expanded, thus insuring that all necessary pointers get
2490 properly redirected to new data. */
2491 #define YYHEADROOM 2
2492
2493 #ifndef YYSTACKEXPANDABLE
2494 # define YYSTACKEXPANDABLE 1
2495 #endif
2496
2497 #if YYSTACKEXPANDABLE
2498 # define YY_RESERVE_GLRSTACK(Yystack) \
2499 do { \
2500 if (Yystack->yyspaceLeft < YYHEADROOM) \
2501 yyexpandGLRStack (Yystack); \
2502 } while (0)
2503 #else
2504 # define YY_RESERVE_GLRSTACK(Yystack) \
2505 do { \
2506 if (Yystack->yyspaceLeft < YYHEADROOM) \
2507 yyMemoryExhausted (Yystack); \
2508 } while (0)
2509 #endif
2510
2511
2512 #if YYERROR_VERBOSE
2513
2514 # ifndef yystpcpy
2515 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2516 # define yystpcpy stpcpy
2517 # else
2518 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2519 YYDEST. */
2520 static char *
2521 yystpcpy (char *yydest, const char *yysrc)
2522 {
2523 char *yyd = yydest;
2524 const char *yys = yysrc;
2525
2526 while ((*yyd++ = *yys++) != '\0')
2527 continue;
2528
2529 return yyd - 1;
2530 }
2531 # endif
2532 # endif
2533
2534 # ifndef yytnamerr
2535 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2536 quotes and backslashes, so that it's suitable for yyerror. The
2537 heuristic is that double-quoting is unnecessary unless the string
2538 contains an apostrophe, a comma, or backslash (other than
2539 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2540 null, do not copy; instead, return the length of what the result
2541 would have been. */
2542 static size_t
2543 yytnamerr (char *yyres, const char *yystr)
2544 {
2545 if (*yystr == '"')
2546 {
2547 size_t yyn = 0;
2548 char const *yyp = yystr;
2549
2550 for (;;)
2551 switch (*++yyp)
2552 {
2553 case '\'':
2554 case ',':
2555 goto do_not_strip_quotes;
2556
2557 case '\\':
2558 if (*++yyp != '\\')
2559 goto do_not_strip_quotes;
2560 /* Fall through. */
2561 default:
2562 if (yyres)
2563 yyres[yyn] = *yyp;
2564 yyn++;
2565 break;
2566
2567 case '"':
2568 if (yyres)
2569 yyres[yyn] = '\0';
2570 return yyn;
2571 }
2572 do_not_strip_quotes: ;
2573 }
2574
2575 if (! yyres)
2576 return strlen (yystr);
2577
2578 return yystpcpy (yyres, yystr) - yyres;
2579 }
2580 # endif
2581
2582 #endif /* !YYERROR_VERBOSE */
2583
2584 /** State numbers, as in LALR(1) machine */
2585 typedef int yyStateNum;
2586
2587 /** Rule numbers, as in LALR(1) machine */
2588 typedef int yyRuleNum;
2589
2590 /** Grammar symbol */
2591 typedef int yySymbol;
2592
2593 /** Item references, as in LALR(1) machine */
2594 typedef short int yyItemNum;
2595
2596 typedef struct yyGLRState yyGLRState;
2597 typedef struct yyGLRStateSet yyGLRStateSet;
2598 typedef struct yySemanticOption yySemanticOption;
2599 typedef union yyGLRStackItem yyGLRStackItem;
2600 typedef struct yyGLRStack yyGLRStack;
2601
2602 struct yyGLRState {
2603 /** Type tag: always true. */
2604 yybool yyisState;
2605 /** Type tag for yysemantics. If true, yysval applies, otherwise
2606 * yyfirstVal applies. */
2607 yybool yyresolved;
2608 /** Number of corresponding LALR(1) machine state. */
2609 yyStateNum yylrState;
2610 /** Preceding state in this stack */
2611 yyGLRState* yypred;
2612 /** Source position of the last token produced by my symbol */
2613 size_t yyposn;
2614 union {
2615 /** First in a chain of alternative reductions producing the
2616 * non-terminal corresponding to this state, threaded through
2617 * yynext. */
2618 yySemanticOption* yyfirstVal;
2619 /** Semantic value for this state. */
2620 YYSTYPE yysval;
2621 } yysemantics;
2622 };
2623
2624 struct yyGLRStateSet {
2625 yyGLRState** yystates;
2626 /** During nondeterministic operation, yylookaheadNeeds tracks which
2627 * stacks have actually needed the current lookahead. During deterministic
2628 * operation, yylookaheadNeeds[0] is not maintained since it would merely
2629 * duplicate yychar != YYEMPTY. */
2630 yybool* yylookaheadNeeds;
2631 size_t yysize, yycapacity;
2632 };
2633
2634 struct yySemanticOption {
2635 /** Type tag: always false. */
2636 yybool yyisState;
2637 /** Rule number for this reduction */
2638 yyRuleNum yyrule;
2639 /** The last RHS state in the list of states to be reduced. */
2640 yyGLRState* yystate;
2641 /** The lookahead for this reduction. */
2642 int yyrawchar;
2643 YYSTYPE yyval;
2644 /** Next sibling in chain of options. To facilitate merging,
2645 * options are chained in decreasing order by address. */
2646 yySemanticOption* yynext;
2647 };
2648
2649 /** Type of the items in the GLR stack. The yyisState field
2650 * indicates which item of the union is valid. */
2651 union yyGLRStackItem {
2652 yyGLRState yystate;
2653 yySemanticOption yyoption;
2654 };
2655
2656 struct yyGLRStack {
2657 int yyerrState;
2658
2659
2660 int yyerrcnt;
2661 int yyrawchar;
2662 YYSTYPE yyval;
2663
2664 YYJMP_BUF yyexception_buffer;
2665 yyGLRStackItem* yyitems;
2666 yyGLRStackItem* yynextFree;
2667 size_t yyspaceLeft;
2668 yyGLRState* yysplitPoint;
2669 yyGLRState* yylastDeleted;
2670 yyGLRStateSet yytops;
2671 };
2672
2673 #if YYSTACKEXPANDABLE
2674 static void yyexpandGLRStack (yyGLRStack* yystackp);
2675 #endif
2676
2677 static _Noreturn void
2678 yyFail (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char* yymsg)
2679 {
2680 if (yymsg != YY_NULLPTR)
2681 yyerror (P, tokens, index, yymsg);
2682 YYLONGJMP (yystackp->yyexception_buffer, 1);
2683 }
2684
2685 static _Noreturn void
2686 yyMemoryExhausted (yyGLRStack* yystackp)
2687 {
2688 YYLONGJMP (yystackp->yyexception_buffer, 2);
2689 }
2690
2691 #if YYDEBUG || YYERROR_VERBOSE
2692 /** A printable representation of TOKEN. */
2693 static inline const char*
2694 yytokenName (yySymbol yytoken)
2695 {
2696 if (yytoken == YYEMPTY)
2697 return "";
2698
2699 return yytname[yytoken];
2700 }
2701 #endif
2702
2703 /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
2704 * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
2705 * containing the pointer to the next state in the chain. */
2706 static void yyfillin (yyGLRStackItem *, int, int) YY_ATTRIBUTE_UNUSED;
2707 static void
2708 yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
2709 {
2710 int i;
2711 yyGLRState *s = yyvsp[yylow0].yystate.yypred;
2712 for (i = yylow0-1; i >= yylow1; i -= 1)
2713 {
2714 #if YYDEBUG
2715 yyvsp[i].yystate.yylrState = s->yylrState;
2716 #endif
2717 yyvsp[i].yystate.yyresolved = s->yyresolved;
2718 if (s->yyresolved)
2719 yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
2720 else
2721 /* The effect of using yysval or yyloc (in an immediate rule) is
2722 * undefined. */
2723 yyvsp[i].yystate.yysemantics.yyfirstVal = YY_NULLPTR;
2724 s = yyvsp[i].yystate.yypred = s->yypred;
2725 }
2726 }
2727
2728 /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
2729 * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
2730 * For convenience, always return YYLOW1. */
2731 static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
2732 YY_ATTRIBUTE_UNUSED;
2733 static inline int
2734 yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
2735 {
2736 if (!yynormal && yylow1 < *yylow)
2737 {
2738 yyfillin (yyvsp, *yylow, yylow1);
2739 *yylow = yylow1;
2740 }
2741 return yylow1;
2742 }
2743
2744 /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
2745 * and top stack item YYVSP. YYLVALP points to place to put semantic
2746 * value ($$), and yylocp points to place for location information
2747 * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
2748 * yyerr for YYERROR, yyabort for YYABORT. */
2749 static YYRESULTTAG
2750 yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
2751 yyGLRStack* yystackp,
2752 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
2753 {
2754 yybool yynormal YY_ATTRIBUTE_UNUSED = (yystackp->yysplitPoint == YY_NULLPTR);
2755 int yylow;
2756 YYUSE (yyvalp);
2757 YYUSE (P);
2758 YYUSE (tokens);
2759 YYUSE (index);
2760 YYUSE (yyrhslen);
2761 # undef yyerrok
2762 # define yyerrok (yystackp->yyerrState = 0)
2763 # undef YYACCEPT
2764 # define YYACCEPT return yyaccept
2765 # undef YYABORT
2766 # define YYABORT return yyabort
2767 # undef YYERROR
2768 # define YYERROR return yyerrok, yyerr
2769 # undef YYRECOVERING
2770 # define YYRECOVERING() (yystackp->yyerrState != 0)
2771 # undef yyclearin
2772 # define yyclearin (yychar = YYEMPTY)
2773 # undef YYFILL
2774 # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
2775 # undef YYBACKUP
2776 # define YYBACKUP(Token, Value) \
2777 return yyerror (P, tokens, index, YY_("syntax error: cannot back up")), \
2778 yyerrok, yyerr
2779
2780 yylow = 1;
2781 if (yyrhslen == 0)
2782 *yyvalp = yyval_default;
2783 else
2784 *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
2785 switch (yyn)
2786 {
2787 case 284:
2788 #line 451 "src/parser_proc_grammar.y" /* glr.c:816 */
2789 {
2790 if ((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2791 psi_cpp_exp_exec((*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), P->preproc, PSI_DATA(P));
2792 psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2793 }
2794 }
2795 #line 2796 "src/parser_proc.c" /* glr.c:816 */
2796 break;
2797
2798 case 285:
2799 #line 457 "src/parser_proc_grammar.y" /* glr.c:816 */
2800 {
2801 if (P->file.ln) {
2802 P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING,
2803 "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text);
2804 } else {
2805 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);
2806 }
2807 }
2808 #line 2809 "src/parser_proc.c" /* glr.c:816 */
2809 break;
2810
2811 case 286:
2812 #line 465 "src/parser_proc_grammar.y" /* glr.c:816 */
2813 {
2814 psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2815 }
2816 #line 2817 "src/parser_proc.c" /* glr.c:816 */
2817 break;
2818
2819 case 287:
2820 #line 468 "src/parser_proc_grammar.y" /* glr.c:816 */
2821 {
2822 psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2823 }
2824 #line 2825 "src/parser_proc.c" /* glr.c:816 */
2825 break;
2826
2827 case 288:
2828 #line 471 "src/parser_proc_grammar.y" /* glr.c:816 */
2829 {
2830 psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2831 }
2832 #line 2833 "src/parser_proc.c" /* glr.c:816 */
2833 break;
2834
2835 case 290:
2836 #line 475 "src/parser_proc_grammar.y" /* glr.c:816 */
2837 {
2838 psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2839 }
2840 #line 2841 "src/parser_proc.c" /* glr.c:816 */
2841 break;
2842
2843 case 291:
2844 #line 478 "src/parser_proc_grammar.y" /* glr.c:816 */
2845 {
2846 psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2847 }
2848 #line 2849 "src/parser_proc.c" /* glr.c:816 */
2849 break;
2850
2851 case 292:
2852 #line 481 "src/parser_proc_grammar.y" /* glr.c:816 */
2853 {
2854 psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2855 }
2856 #line 2857 "src/parser_proc.c" /* glr.c:816 */
2857 break;
2858
2859 case 293:
2860 #line 484 "src/parser_proc_grammar.y" /* glr.c:816 */
2861 {
2862 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2863 }
2864 #line 2865 "src/parser_proc.c" /* glr.c:816 */
2865 break;
2866
2867 case 294:
2868 #line 487 "src/parser_proc_grammar.y" /* glr.c:816 */
2869 {
2870 psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2871 }
2872 #line 2873 "src/parser_proc.c" /* glr.c:816 */
2873 break;
2874
2875 case 295:
2876 #line 493 "src/parser_proc_grammar.y" /* glr.c:816 */
2877 {
2878 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2879 }
2880 #line 2881 "src/parser_proc.c" /* glr.c:816 */
2881 break;
2882
2883 case 296:
2884 #line 499 "src/parser_proc_grammar.y" /* glr.c:816 */
2885 {
2886 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2887 }
2888 #line 2889 "src/parser_proc.c" /* glr.c:816 */
2889 break;
2890
2891 case 297:
2892 #line 502 "src/parser_proc_grammar.y" /* glr.c:816 */
2893 {
2894 (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
2895 }
2896 #line 2897 "src/parser_proc.c" /* glr.c:816 */
2897 break;
2898
2899 case 298:
2900 #line 508 "src/parser_proc_grammar.y" /* glr.c:816 */
2901 {
2902 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
2903 struct psi_token *msg = NULL;
2904
2905 if (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0, &msg)) {
2906 size_t index = 1;
2907 struct psi_token *next;
2908
2909 msg = psi_token_copy(msg);
2910 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), index++, &next)) {
2911 struct psi_token *old = msg;
2912 msg = psi_token_cat(" ", 2, msg, next);
2913 free(old);
2914 }
2915 }
2916 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2917
2918 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, msg);
2919 } else {
2920 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, NULL);
2921 }
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 299:
2928 #line 531 "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, psi_token_copy((*(struct psi_token **)(&((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 300:
2937 #line 535 "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 301:
2946 #line 539 "src/parser_proc_grammar.y" /* glr.c:816 */
2947 {
2948 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2949 (*(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))));
2950 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2951 }
2952 #line 2953 "src/parser_proc.c" /* glr.c:816 */
2953 break;
2954
2955 case 302:
2956 #line 544 "src/parser_proc_grammar.y" /* glr.c:816 */
2957 {
2958 (*(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)));
2959 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2960 }
2961 #line 2962 "src/parser_proc.c" /* glr.c:816 */
2962 break;
2963
2964 case 303:
2965 #line 548 "src/parser_proc_grammar.y" /* glr.c:816 */
2966 {
2967 (*(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)));
2968 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
2969 }
2970 #line 2971 "src/parser_proc.c" /* glr.c:816 */
2971 break;
2972
2973 case 304:
2974 #line 552 "src/parser_proc_grammar.y" /* glr.c:816 */
2975 {
2976 (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL);
2977 (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2978 }
2979 #line 2980 "src/parser_proc.c" /* glr.c:816 */
2980 break;
2981
2982 case 305:
2983 #line 556 "src/parser_proc_grammar.y" /* glr.c:816 */
2984 {
2985 psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
2986 (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL;
2987 }
2988 #line 2989 "src/parser_proc.c" /* glr.c:816 */
2989 break;
2990
2991 case 329:
2992 #line 610 "src/parser_proc_grammar.y" /* glr.c:816 */
2993 {
2994 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
2995 (*(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);
2996 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
2997 }
2998 #line 2999 "src/parser_proc.c" /* glr.c:816 */
2999 break;
3000
3001 case 330:
3002 #line 615 "src/parser_proc_grammar.y" /* glr.c:816 */
3003 {
3004 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3005 (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL);
3006 (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3007 }
3008 #line 3009 "src/parser_proc.c" /* glr.c:816 */
3009 break;
3010
3011 case 331:
3012 #line 623 "src/parser_proc_grammar.y" /* glr.c:816 */
3013 {
3014 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL);
3015 }
3016 #line 3017 "src/parser_proc.c" /* glr.c:816 */
3017 break;
3018
3019 case 332:
3020 #line 626 "src/parser_proc_grammar.y" /* glr.c:816 */
3021 {
3022 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */
3023 }
3024 #line 3025 "src/parser_proc.c" /* glr.c:816 */
3025 break;
3026
3027 case 334:
3028 #line 630 "src/parser_proc_grammar.y" /* glr.c:816 */
3029 {
3030 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3031 }
3032 #line 3033 "src/parser_proc.c" /* glr.c:816 */
3033 break;
3034
3035 case 335:
3036 #line 636 "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_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3040 (*(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)));
3041 }
3042 #line 3043 "src/parser_proc.c" /* glr.c:816 */
3043 break;
3044
3045 case 336:
3046 #line 641 "src/parser_proc_grammar.y" /* glr.c:816 */
3047 {
3048 (*(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)));
3049 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3050 (*(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)));
3051 }
3052 #line 3053 "src/parser_proc.c" /* glr.c:816 */
3053 break;
3054
3055 case 337:
3056 #line 649 "src/parser_proc_grammar.y" /* glr.c:816 */
3057 {
3058 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3059 }
3060 #line 3061 "src/parser_proc.c" /* glr.c:816 */
3061 break;
3062
3063 case 339:
3064 #line 656 "src/parser_proc_grammar.y" /* glr.c:816 */
3065 {
3066 (*(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)));
3067 (*(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)));
3068 }
3069 #line 3070 "src/parser_proc.c" /* glr.c:816 */
3070 break;
3071
3072 case 340:
3073 #line 660 "src/parser_proc_grammar.y" /* glr.c:816 */
3074 {
3075 (*(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)));
3076 (*(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)));
3077 }
3078 #line 3079 "src/parser_proc.c" /* glr.c:816 */
3079 break;
3080
3081 case 341:
3082 #line 667 "src/parser_proc_grammar.y" /* glr.c:816 */
3083 {
3084 (*(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)));
3085 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3086 }
3087 #line 3088 "src/parser_proc.c" /* glr.c:816 */
3088 break;
3089
3090 case 342:
3091 #line 671 "src/parser_proc_grammar.y" /* glr.c:816 */
3092 {
3093 (*(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)));
3094 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3095 }
3096 #line 3097 "src/parser_proc.c" /* glr.c:816 */
3097 break;
3098
3099 case 343:
3100 #line 675 "src/parser_proc_grammar.y" /* glr.c:816 */
3101 {
3102 (*(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)));
3103 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3104 }
3105 #line 3106 "src/parser_proc.c" /* glr.c:816 */
3106 break;
3107
3108 case 344:
3109 #line 679 "src/parser_proc_grammar.y" /* glr.c:816 */
3110 {
3111 (*(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)));
3112 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3113 }
3114 #line 3115 "src/parser_proc.c" /* glr.c:816 */
3115 break;
3116
3117 case 345:
3118 #line 684 "src/parser_proc_grammar.y" /* glr.c:816 */
3119 {
3120 {
3121 uint8_t exists;
3122
3123 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3124 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3125 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3126 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3127 }
3128 }
3129 #line 3130 "src/parser_proc.c" /* glr.c:816 */
3130 break;
3131
3132 case 346:
3133 #line 694 "src/parser_proc_grammar.y" /* glr.c:816 */
3134 {
3135 {
3136 uint8_t exists;
3137
3138 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3139 exists = psi_cpp_defined(P->preproc, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3140 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists, 0));
3141 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3142 }
3143 }
3144 #line 3145 "src/parser_proc.c" /* glr.c:816 */
3145 break;
3146
3147 case 347:
3148 #line 704 "src/parser_proc_grammar.y" /* glr.c:816 */
3149 {
3150 (*(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));
3151 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3152 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3153 }
3154 #line 3155 "src/parser_proc.c" /* glr.c:816 */
3155 break;
3156
3157 case 348:
3158 #line 709 "src/parser_proc_grammar.y" /* glr.c:816 */
3159 {
3160 (*(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));
3161 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3162 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3163 }
3164 #line 3165 "src/parser_proc.c" /* glr.c:816 */
3165 break;
3166
3167 case 349:
3168 #line 714 "src/parser_proc_grammar.y" /* glr.c:816 */
3169 {
3170 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3171 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3172 }
3173 #line 3174 "src/parser_proc.c" /* glr.c:816 */
3174 break;
3175
3176 case 350:
3177 #line 718 "src/parser_proc_grammar.y" /* glr.c:816 */
3178 {
3179 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3180 (*(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));
3181 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3182 (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3183 }
3184 #line 3185 "src/parser_proc.c" /* glr.c:816 */
3185 break;
3186
3187 case 351:
3188 #line 724 "src/parser_proc_grammar.y" /* glr.c:816 */
3189 {
3190 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3191 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
3192 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));
3193 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3194 }
3195 #line 3196 "src/parser_proc.c" /* glr.c:816 */
3196 break;
3197
3198 case 352:
3199 #line 733 "src/parser_proc_grammar.y" /* glr.c:816 */
3200 {
3201 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3202 }
3203 #line 3204 "src/parser_proc.c" /* glr.c:816 */
3204 break;
3205
3206 case 354:
3207 #line 740 "src/parser_proc_grammar.y" /* glr.c:816 */
3208 {
3209 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free),
3210 &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3211 }
3212 #line 3213 "src/parser_proc.c" /* glr.c:816 */
3213 break;
3214
3215 case 355:
3216 #line 744 "src/parser_proc_grammar.y" /* glr.c:816 */
3217 {
3218 (*(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)));
3219 }
3220 #line 3221 "src/parser_proc.c" /* glr.c:816 */
3221 break;
3222
3223 case 356:
3224 #line 750 "src/parser_proc_grammar.y" /* glr.c:816 */
3225 {
3226 (*(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)));
3227 (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3228 }
3229 #line 3230 "src/parser_proc.c" /* glr.c:816 */
3230 break;
3231
3232 case 357:
3233 #line 757 "src/parser_proc_grammar.y" /* glr.c:816 */
3234 {
3235 (*(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);
3236 }
3237 #line 3238 "src/parser_proc.c" /* glr.c:816 */
3238 break;
3239
3240 case 362:
3241 #line 770 "src/parser_proc_grammar.y" /* glr.c:816 */
3242 {
3243 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3244 }
3245 #line 3246 "src/parser_proc.c" /* glr.c:816 */
3246 break;
3247
3248 case 363:
3249 #line 773 "src/parser_proc_grammar.y" /* glr.c:816 */
3250 {
3251 /* FIXME */
3252 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)) {
3253 impl_val res = {0};
3254 token_t type = psi_num_exp_exec((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), &res, NULL, &P->preproc->defs);
3255
3256 if (type == PSI_T_FLOAT || type == PSI_T_DOUBLE) {
3257 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(type, NULL);
3258 } else {
3259 (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_INT, NULL);
3260 }
3261
3262 switch (type) {
3263 case PSI_T_UINT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u8; break;
3264 case PSI_T_UINT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u16; break;
3265 case PSI_T_UINT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u32; break;
3266 case PSI_T_UINT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.u64; break; /* FIXME */
3267 case PSI_T_INT8: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i8; break;
3268 case PSI_T_INT16: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i16; break;
3269 case PSI_T_INT32: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i32; break;
3270 case PSI_T_INT64: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.zend.lval = res.i64; break;
3271 case PSI_T_FLOAT: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.fval; break;
3272 case PSI_T_DOUBLE: (*(struct psi_impl_def_val **)(&(*yyvalp)))->ival.dval = res.dval; break;
3273 default:
3274 assert(0);
3275
3276 }
3277 } else {
3278 (*(struct psi_impl_def_val **)(&(*yyvalp))) = NULL;
3279 }
3280 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3281 }
3282 #line 3283 "src/parser_proc.c" /* glr.c:816 */
3283 break;
3284
3285 case 364:
3286 #line 805 "src/parser_proc_grammar.y" /* glr.c:816 */
3287 {
3288 (*(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);
3289 (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3290 }
3291 #line 3292 "src/parser_proc.c" /* glr.c:816 */
3292 break;
3293
3294 case 369:
3295 #line 819 "src/parser_proc_grammar.y" /* glr.c:816 */
3296 {
3297 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3298 }
3299 #line 3300 "src/parser_proc.c" /* glr.c:816 */
3300 break;
3301
3302 case 370:
3303 #line 822 "src/parser_proc_grammar.y" /* glr.c:816 */
3304 {
3305 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3306 psi_decl_type_init(PSI_T_VOID, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text),
3307 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3308 );
3309 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3310 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3311 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3312 }
3313 #line 3314 "src/parser_proc.c" /* glr.c:816 */
3314 break;
3315
3316 case 371:
3317 #line 831 "src/parser_proc_grammar.y" /* glr.c:816 */
3318 {
3319 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3320 }
3321 #line 3322 "src/parser_proc.c" /* glr.c:816 */
3322 break;
3323
3324 case 372:
3325 #line 837 "src/parser_proc_grammar.y" /* glr.c:816 */
3326 {
3327 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3328 }
3329 #line 3330 "src/parser_proc.c" /* glr.c:816 */
3330 break;
3331
3332 case 373:
3333 #line 840 "src/parser_proc_grammar.y" /* glr.c:816 */
3334 {
3335 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3336 }
3337 #line 3338 "src/parser_proc.c" /* glr.c:816 */
3338 break;
3339
3340 case 374:
3341 #line 846 "src/parser_proc_grammar.y" /* glr.c:816 */
3342 {
3343 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3344 }
3345 #line 3346 "src/parser_proc.c" /* glr.c:816 */
3346 break;
3347
3348 case 375:
3349 #line 849 "src/parser_proc_grammar.y" /* glr.c:816 */
3350 {
3351 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3352 }
3353 #line 3354 "src/parser_proc.c" /* glr.c:816 */
3354 break;
3355
3356 case 377:
3357 #line 856 "src/parser_proc_grammar.y" /* glr.c:816 */
3358 {
3359 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3360 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
3361 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
3362 );
3363 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
3364 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3365 }
3366 #line 3367 "src/parser_proc.c" /* glr.c:816 */
3367 break;
3368
3369 case 378:
3370 #line 864 "src/parser_proc_grammar.y" /* glr.c:816 */
3371 {
3372 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3373 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3374 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->name),
3375 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3376 );
3377 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3378 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->token);
3379 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3380 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3381 }
3382 #line 3383 "src/parser_proc.c" /* glr.c:816 */
3383 break;
3384
3385 case 379:
3386 #line 875 "src/parser_proc_grammar.y" /* glr.c:816 */
3387 {
3388 (*(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)));
3389 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3390 (*(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)));
3391 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3392 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3393 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3394 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3395 }
3396 #line 3397 "src/parser_proc.c" /* glr.c:816 */
3397 break;
3398
3399 case 380:
3400 #line 884 "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_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)));
3403 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
3404 (*(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)));
3405 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
3406 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).pos;
3407 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len;
3408 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3409 }
3410 #line 3411 "src/parser_proc.c" /* glr.c:816 */
3411 break;
3412
3413 case 382:
3414 #line 897 "src/parser_proc_grammar.y" /* glr.c:816 */
3415 {
3416 (*(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));
3417 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3418 }
3419 #line 3420 "src/parser_proc.c" /* glr.c:816 */
3420 break;
3421
3422 case 383:
3423 #line 901 "src/parser_proc_grammar.y" /* glr.c:816 */
3424 {
3425 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3426 psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name),
3427 psi_decl_var_init(NULL, 0, 0)
3428 );
3429 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3430 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
3431 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3432 psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3433 }
3434 #line 3435 "src/parser_proc.c" /* glr.c:816 */
3435 break;
3436
3437 case 384:
3438 #line 911 "src/parser_proc_grammar.y" /* glr.c:816 */
3439 {
3440 (*(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));
3441 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3442 (*(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)));
3443 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3444 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3445 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3446 psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct);
3447 }
3448 #line 3449 "src/parser_proc.c" /* glr.c:816 */
3449 break;
3450
3451 case 385:
3452 #line 920 "src/parser_proc_grammar.y" /* glr.c:816 */
3453 {
3454 (*(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));
3455 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3456 (*(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)));
3457 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3458 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
3459 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
3460 psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn);
3461 }
3462 #line 3463 "src/parser_proc.c" /* glr.c:816 */
3463 break;
3464
3465 case 386:
3466 #line 932 "src/parser_proc_grammar.y" /* glr.c:816 */
3467 {
3468 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3469 }
3470 #line 3471 "src/parser_proc.c" /* glr.c:816 */
3471 break;
3472
3473 case 387:
3474 #line 935 "src/parser_proc_grammar.y" /* glr.c:816 */
3475 {
3476 (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3477 }
3478 #line 3479 "src/parser_proc.c" /* glr.c:816 */
3479 break;
3480
3481 case 389:
3482 #line 942 "src/parser_proc_grammar.y" /* glr.c:816 */
3483 {
3484 (*(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);
3485 (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(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 391:
3491 #line 950 "src/parser_proc_grammar.y" /* glr.c:816 */
3492 {
3493 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3494 (*(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);
3495 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3496 }
3497 #line 3498 "src/parser_proc.c" /* glr.c:816 */
3498 break;
3499
3500 case 392:
3501 #line 955 "src/parser_proc_grammar.y" /* glr.c:816 */
3502 {
3503 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3504 (*(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);
3505 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3506 }
3507 #line 3508 "src/parser_proc.c" /* glr.c:816 */
3508 break;
3509
3510 case 393:
3511 #line 960 "src/parser_proc_grammar.y" /* glr.c:816 */
3512 {
3513 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3514 (*(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);
3515 (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3516 }
3517 #line 3518 "src/parser_proc.c" /* glr.c:816 */
3518 break;
3519
3520 case 396:
3521 #line 970 "src/parser_proc_grammar.y" /* glr.c:816 */
3522 {
3523 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3524 }
3525 #line 3526 "src/parser_proc.c" /* glr.c:816 */
3526 break;
3527
3528 case 397:
3529 #line 976 "src/parser_proc_grammar.y" /* glr.c:816 */
3530 {
3531 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3532 }
3533 #line 3534 "src/parser_proc.c" /* glr.c:816 */
3534 break;
3535
3536 case 398:
3537 #line 979 "src/parser_proc_grammar.y" /* glr.c:816 */
3538 {
3539 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3540 }
3541 #line 3542 "src/parser_proc.c" /* glr.c:816 */
3542 break;
3543
3544 case 399:
3545 #line 982 "src/parser_proc_grammar.y" /* glr.c:816 */
3546 {
3547 (*(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)));
3548 }
3549 #line 3550 "src/parser_proc.c" /* glr.c:816 */
3550 break;
3551
3552 case 402:
3553 #line 993 "src/parser_proc_grammar.y" /* glr.c:816 */
3554 {
3555 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3556 }
3557 #line 3558 "src/parser_proc.c" /* glr.c:816 */
3558 break;
3559
3560 case 403:
3561 #line 996 "src/parser_proc_grammar.y" /* glr.c:816 */
3562 {
3563 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3564 }
3565 #line 3566 "src/parser_proc.c" /* glr.c:816 */
3566 break;
3567
3568 case 404:
3569 #line 999 "src/parser_proc_grammar.y" /* glr.c:816 */
3570 {
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 }
3573 #line 3574 "src/parser_proc.c" /* glr.c:816 */
3574 break;
3575
3576 case 405:
3577 #line 1005 "src/parser_proc_grammar.y" /* glr.c:816 */
3578 {
3579 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3580 }
3581 #line 3582 "src/parser_proc.c" /* glr.c:816 */
3582 break;
3583
3584 case 406:
3585 #line 1008 "src/parser_proc_grammar.y" /* glr.c:816 */
3586 {
3587 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3588 }
3589 #line 3590 "src/parser_proc.c" /* glr.c:816 */
3590 break;
3591
3592 case 407:
3593 #line 1011 "src/parser_proc_grammar.y" /* glr.c:816 */
3594 {
3595 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3596 (*(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)));
3597 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3598 } else {
3599 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3600 }
3601 }
3602 #line 3603 "src/parser_proc.c" /* glr.c:816 */
3603 break;
3604
3605 case 408:
3606 #line 1019 "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 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3611 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3612 } else {
3613 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
3614 }
3615 }
3616 #line 3617 "src/parser_proc.c" /* glr.c:816 */
3617 break;
3618
3619 case 409:
3620 #line 1031 "src/parser_proc_grammar.y" /* glr.c:816 */
3621 {
3622 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3623 }
3624 #line 3625 "src/parser_proc.c" /* glr.c:816 */
3625 break;
3626
3627 case 410:
3628 #line 1034 "src/parser_proc_grammar.y" /* glr.c:816 */
3629 {
3630 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3631 }
3632 #line 3633 "src/parser_proc.c" /* glr.c:816 */
3633 break;
3634
3635 case 411:
3636 #line 1037 "src/parser_proc_grammar.y" /* glr.c:816 */
3637 {
3638 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3639 }
3640 #line 3641 "src/parser_proc.c" /* glr.c:816 */
3641 break;
3642
3643 case 412:
3644 #line 1040 "src/parser_proc_grammar.y" /* glr.c:816 */
3645 {
3646 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3647 (*(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)));
3648 } else {
3649 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3650 }
3651 }
3652 #line 3653 "src/parser_proc.c" /* glr.c:816 */
3653 break;
3654
3655 case 413:
3656 #line 1047 "src/parser_proc_grammar.y" /* glr.c:816 */
3657 {
3658 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3659 }
3660 #line 3661 "src/parser_proc.c" /* glr.c:816 */
3661 break;
3662
3663 case 414:
3664 #line 1050 "src/parser_proc_grammar.y" /* glr.c:816 */
3665 {
3666 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3667 (*(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)));
3668 } else {
3669 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3670 }
3671 }
3672 #line 3673 "src/parser_proc.c" /* glr.c:816 */
3673 break;
3674
3675 case 415:
3676 #line 1060 "src/parser_proc_grammar.y" /* glr.c:816 */
3677 {
3678 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3679 }
3680 #line 3681 "src/parser_proc.c" /* glr.c:816 */
3681 break;
3682
3683 case 417:
3684 #line 1066 "src/parser_proc_grammar.y" /* glr.c:816 */
3685 {
3686 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3687 }
3688 #line 3689 "src/parser_proc.c" /* glr.c:816 */
3689 break;
3690
3691 case 421:
3692 #line 1075 "src/parser_proc_grammar.y" /* glr.c:816 */
3693 {
3694 (*(struct psi_token **)(&(*yyvalp))) = NULL;
3695 }
3696 #line 3697 "src/parser_proc.c" /* glr.c:816 */
3697 break;
3698
3699 case 422:
3700 #line 1078 "src/parser_proc_grammar.y" /* glr.c:816 */
3701 {
3702 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3703 }
3704 #line 3705 "src/parser_proc.c" /* glr.c:816 */
3705 break;
3706
3707 case 423:
3708 #line 1081 "src/parser_proc_grammar.y" /* glr.c:816 */
3709 {
3710 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3711 (*(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)));
3712 free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3713 } else {
3714 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3715 }
3716 }
3717 #line 3718 "src/parser_proc.c" /* glr.c:816 */
3718 break;
3719
3720 case 424:
3721 #line 1092 "src/parser_proc_grammar.y" /* glr.c:816 */
3722 {
3723 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3724 }
3725 #line 3726 "src/parser_proc.c" /* glr.c:816 */
3726 break;
3727
3728 case 425:
3729 #line 1095 "src/parser_proc_grammar.y" /* glr.c:816 */
3730 {
3731 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3732 }
3733 #line 3734 "src/parser_proc.c" /* glr.c:816 */
3734 break;
3735
3736 case 430:
3737 #line 1111 "src/parser_proc_grammar.y" /* glr.c:816 */
3738 {
3739 struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
3740
3741 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
3742 size_t i = 0;
3743 struct psi_decl_var *var;
3744
3745 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &var)) {
3746 if (psi_decl_extvar_is_blacklisted(var->name)) {
3747 psi_decl_var_free(&var);
3748 } else {
3749 list = psi_plist_add(list, psi_decl_extvar_init(
3750 psi_decl_arg_init(psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type), var)));
3751 }
3752 }
3753 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3754 }
3755
3756 if (psi_decl_extvar_is_blacklisted((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->var->name)) {
3757 psi_decl_arg_free(&(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3758 } else {
3759 struct psi_decl_extvar *evar = psi_decl_extvar_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
3760 list = psi_plist_add(list, &evar);
3761 }
3762
3763 (*(struct psi_plist **)(&(*yyvalp))) = list;
3764 }
3765 #line 3766 "src/parser_proc.c" /* glr.c:816 */
3766 break;
3767
3768 case 431:
3769 #line 1141 "src/parser_proc_grammar.y" /* glr.c:816 */
3770 {
3771 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3772 }
3773 #line 3774 "src/parser_proc.c" /* glr.c:816 */
3774 break;
3775
3776 case 432:
3777 #line 1144 "src/parser_proc_grammar.y" /* glr.c:816 */
3778 {
3779 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3780 }
3781 #line 3782 "src/parser_proc.c" /* glr.c:816 */
3782 break;
3783
3784 case 433:
3785 #line 1150 "src/parser_proc_grammar.y" /* glr.c:816 */
3786 {
3787 (*(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)));
3788 }
3789 #line 3790 "src/parser_proc.c" /* glr.c:816 */
3790 break;
3791
3792 case 434:
3793 #line 1153 "src/parser_proc_grammar.y" /* glr.c:816 */
3794 {
3795 (*(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)));
3796 }
3797 #line 3798 "src/parser_proc.c" /* glr.c:816 */
3798 break;
3799
3800 case 435:
3801 #line 1159 "src/parser_proc_grammar.y" /* glr.c:816 */
3802 {
3803 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3804 }
3805 #line 3806 "src/parser_proc.c" /* glr.c:816 */
3806 break;
3807
3808 case 436:
3809 #line 1162 "src/parser_proc_grammar.y" /* glr.c:816 */
3810 {
3811 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3812 }
3813 #line 3814 "src/parser_proc.c" /* glr.c:816 */
3814 break;
3815
3816 case 437:
3817 #line 1165 "src/parser_proc_grammar.y" /* glr.c:816 */
3818 {
3819 psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3820 }
3821 #line 3822 "src/parser_proc.c" /* glr.c:816 */
3822 break;
3823
3824 case 444:
3825 #line 1186 "src/parser_proc_grammar.y" /* glr.c:816 */
3826 {
3827 (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3828 (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
3829 }
3830 #line 3831 "src/parser_proc.c" /* glr.c:816 */
3831 break;
3832
3833 case 447:
3834 #line 1198 "src/parser_proc_grammar.y" /* glr.c:816 */
3835 {
3836 (*(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)));
3837 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3838 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3839 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3840 }
3841 }
3842 #line 3843 "src/parser_proc.c" /* glr.c:816 */
3843 break;
3844
3845 case 448:
3846 #line 1205 "src/parser_proc_grammar.y" /* glr.c:816 */
3847 {
3848 (*(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)));
3849 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3850 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3851 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3852 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3853 }
3854 }
3855 #line 3856 "src/parser_proc.c" /* glr.c:816 */
3856 break;
3857
3858 case 449:
3859 #line 1216 "src/parser_proc_grammar.y" /* glr.c:816 */
3860 {
3861 (*(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)));
3862 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3863 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3864 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3865 }
3866 }
3867 #line 3868 "src/parser_proc.c" /* glr.c:816 */
3868 break;
3869
3870 case 450:
3871 #line 1223 "src/parser_proc_grammar.y" /* glr.c:816 */
3872 {
3873 (*(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)));
3874 (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1;
3875 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
3876 (*(struct psi_decl **)(&(*yyvalp)))->func->var->pointer_level += 1;
3877 (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3878 }
3879 }
3880 #line 3881 "src/parser_proc.c" /* glr.c:816 */
3881 break;
3882
3883 case 451:
3884 #line 1234 "src/parser_proc_grammar.y" /* glr.c:816 */
3885 {
3886 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3887 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3888 (*(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));
3889 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3890 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3891 }
3892 #line 3893 "src/parser_proc.c" /* glr.c:816 */
3893 break;
3894
3895 case 452:
3896 #line 1241 "src/parser_proc_grammar.y" /* glr.c:816 */
3897 {
3898 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3899 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3900 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3901 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),
3902 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)
3903 );
3904 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3905 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3906 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3907 }
3908 #line 3909 "src/parser_proc.c" /* glr.c:816 */
3909 break;
3910
3911 case 453:
3912 #line 1252 "src/parser_proc_grammar.y" /* glr.c:816 */
3913 {
3914 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3915 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3916 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3917 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),
3918 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)
3919 );
3920 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
3921 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3922 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3923 }
3924 #line 3925 "src/parser_proc.c" /* glr.c:816 */
3925 break;
3926
3927 case 454:
3928 #line 1263 "src/parser_proc_grammar.y" /* glr.c:816 */
3929 {
3930 (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
3931 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
3932 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3933 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),
3934 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, 0, 0)
3935 );
3936 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
3937 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3938 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3939 }
3940 #line 3941 "src/parser_proc.c" /* glr.c:816 */
3941 break;
3942
3943 case 456:
3944 #line 1278 "src/parser_proc_grammar.y" /* glr.c:816 */
3945 {
3946 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
3947 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),
3948 psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0, 0)
3949 );
3950 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
3951 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3952 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
3953 }
3954 #line 3955 "src/parser_proc.c" /* glr.c:816 */
3955 break;
3956
3957 case 457:
3958 #line 1290 "src/parser_proc_grammar.y" /* glr.c:816 */
3959 {
3960 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3961 }
3962 #line 3963 "src/parser_proc.c" /* glr.c:816 */
3963 break;
3964
3965 case 458:
3966 #line 1293 "src/parser_proc_grammar.y" /* glr.c:816 */
3967 {
3968 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
3969 }
3970 #line 3971 "src/parser_proc.c" /* glr.c:816 */
3971 break;
3972
3973 case 459:
3974 #line 1296 "src/parser_proc_grammar.y" /* glr.c:816 */
3975 {
3976 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
3977 }
3978 #line 3979 "src/parser_proc.c" /* glr.c:816 */
3979 break;
3980
3981 case 460:
3982 #line 1302 "src/parser_proc_grammar.y" /* glr.c:816 */
3983 {
3984 (*(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)));
3985 }
3986 #line 3987 "src/parser_proc.c" /* glr.c:816 */
3987 break;
3988
3989 case 461:
3990 #line 1305 "src/parser_proc_grammar.y" /* glr.c:816 */
3991 {
3992 (*(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)));
3993 }
3994 #line 3995 "src/parser_proc.c" /* glr.c:816 */
3995 break;
3996
3997 case 462:
3998 #line 1312 "src/parser_proc_grammar.y" /* glr.c:816 */
3999 {
4000 (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4001 }
4002 #line 4003 "src/parser_proc.c" /* glr.c:816 */
4003 break;
4004
4005 case 463:
4006 #line 1315 "src/parser_proc_grammar.y" /* glr.c:816 */
4007 {
4008 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4009 (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)),
4010 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4011 );
4012 }
4013 #line 4014 "src/parser_proc.c" /* glr.c:816 */
4014 break;
4015
4016 case 464:
4017 #line 1321 "src/parser_proc_grammar.y" /* glr.c:816 */
4018 {
4019 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4020 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),
4021 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4022 );
4023 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4024 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4025 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4026 }
4027 #line 4028 "src/parser_proc.c" /* glr.c:816 */
4028 break;
4029
4030 case 465:
4031 #line 1330 "src/parser_proc_grammar.y" /* glr.c:816 */
4032 {
4033 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4034 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),
4035 psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0)
4036 );
4037 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4038 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4039 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4040 }
4041 #line 4042 "src/parser_proc.c" /* glr.c:816 */
4042 break;
4043
4044 case 466:
4045 #line 1342 "src/parser_proc_grammar.y" /* glr.c:816 */
4046 {
4047 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4048 psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name),
4049 psi_decl_var_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var)
4050 );
4051 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token);
4052 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4053 }
4054 #line 4055 "src/parser_proc.c" /* glr.c:816 */
4055 break;
4056
4057 case 467:
4058 #line 1350 "src/parser_proc_grammar.y" /* glr.c:816 */
4059 {
4060 (*(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)));
4061 }
4062 #line 4063 "src/parser_proc.c" /* glr.c:816 */
4063 break;
4064
4065 case 468:
4066 #line 1353 "src/parser_proc_grammar.y" /* glr.c:816 */
4067 {
4068 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4069 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4070 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),
4071 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)
4072 );
4073 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4074 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4075 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4076 }
4077 #line 4078 "src/parser_proc.c" /* glr.c:816 */
4078 break;
4079
4080 case 469:
4081 #line 1363 "src/parser_proc_grammar.y" /* glr.c:816 */
4082 {
4083 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4084 (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(
4085 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),
4086 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)
4087 );
4088 (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4089 (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4090 (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4091 }
4092 #line 4093 "src/parser_proc.c" /* glr.c:816 */
4093 break;
4094
4095 case 470:
4096 #line 1376 "src/parser_proc_grammar.y" /* glr.c:816 */
4097 {
4098 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4099 (*(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)));
4100 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4101 }
4102 #line 4103 "src/parser_proc.c" /* glr.c:816 */
4103 break;
4104
4105 case 471:
4106 #line 1381 "src/parser_proc_grammar.y" /* glr.c:816 */
4107 {
4108 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4109 (*(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)));
4110 (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4111 }
4112 #line 4113 "src/parser_proc.c" /* glr.c:816 */
4113 break;
4114
4115 case 472:
4116 #line 1389 "src/parser_proc_grammar.y" /* glr.c:816 */
4117 {
4118 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4119 (*(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)));
4120 (*(struct psi_decl_union **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4121 (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4122 (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4123 }
4124 #line 4125 "src/parser_proc.c" /* glr.c:816 */
4125 break;
4126
4127 case 473:
4128 #line 1399 "src/parser_proc_grammar.y" /* glr.c:816 */
4129 {
4130 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4131 (*(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)));
4132 (*(struct psi_decl_struct **)(&(*yyvalp)))->align = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).pos;
4133 (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len;
4134 (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4135 }
4136 #line 4137 "src/parser_proc.c" /* glr.c:816 */
4137 break;
4138
4139 case 474:
4140 #line 1409 "src/parser_proc_grammar.y" /* glr.c:816 */
4141 {
4142 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4143 }
4144 #line 4145 "src/parser_proc.c" /* glr.c:816 */
4145 break;
4146
4147 case 476:
4148 #line 1416 "src/parser_proc_grammar.y" /* glr.c:816 */
4149 {
4150 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4151 }
4152 #line 4153 "src/parser_proc.c" /* glr.c:816 */
4153 break;
4154
4155 case 477:
4156 #line 1422 "src/parser_proc_grammar.y" /* glr.c:816 */
4157 {
4158 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4159 (*(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)));
4160 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4161 size_t i = 0;
4162 struct psi_decl_arg *arg;
4163
4164 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4165 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4166 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4167 }
4168 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4169 }
4170 }
4171 #line 4172 "src/parser_proc.c" /* glr.c:816 */
4172 break;
4173
4174 case 478:
4175 #line 1436 "src/parser_proc_grammar.y" /* glr.c:816 */
4176 {
4177 (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4178 (*(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)));
4179 if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) {
4180 size_t i = 0;
4181 struct psi_decl_arg *arg;
4182
4183 while (psi_plist_get((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), i++, &arg)) {
4184 arg->type = psi_decl_type_copy((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type);
4185 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&(*yyvalp))), &arg);
4186 }
4187 free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4188 }
4189 }
4190 #line 4191 "src/parser_proc.c" /* glr.c:816 */
4191 break;
4192
4193 case 479:
4194 #line 1453 "src/parser_proc_grammar.y" /* glr.c:816 */
4195 {
4196 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4197 }
4198 #line 4199 "src/parser_proc.c" /* glr.c:816 */
4199 break;
4200
4201 case 480:
4202 #line 1456 "src/parser_proc_grammar.y" /* glr.c:816 */
4203 {
4204 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4205 }
4206 #line 4207 "src/parser_proc.c" /* glr.c:816 */
4207 break;
4208
4209 case 481:
4210 #line 1462 "src/parser_proc_grammar.y" /* glr.c:816 */
4211 {
4212 {
4213 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4214 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4215 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg);
4216 }
4217 }
4218 #line 4219 "src/parser_proc.c" /* glr.c:816 */
4219 break;
4220
4221 case 482:
4222 #line 1469 "src/parser_proc_grammar.y" /* glr.c:816 */
4223 {
4224 {
4225 struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4226 arg->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4227 (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg);
4228 }
4229 }
4230 #line 4231 "src/parser_proc.c" /* glr.c:816 */
4231 break;
4232
4233 case 483:
4234 #line 1479 "src/parser_proc_grammar.y" /* glr.c:816 */
4235 {
4236 (*(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)));
4237 (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
4238 }
4239 #line 4240 "src/parser_proc.c" /* glr.c:816 */
4240 break;
4241
4242 case 484:
4243 #line 1486 "src/parser_proc_grammar.y" /* glr.c:816 */
4244 {
4245 (*(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)));
4246 }
4247 #line 4248 "src/parser_proc.c" /* glr.c:816 */
4248 break;
4249
4250 case 485:
4251 #line 1489 "src/parser_proc_grammar.y" /* glr.c:816 */
4252 {
4253 (*(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)));
4254 }
4255 #line 4256 "src/parser_proc.c" /* glr.c:816 */
4256 break;
4257
4258 case 486:
4259 #line 1495 "src/parser_proc_grammar.y" /* glr.c:816 */
4260 {
4261 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4262 (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL);
4263 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4264 }
4265 #line 4266 "src/parser_proc.c" /* glr.c:816 */
4266 break;
4267
4268 case 487:
4269 #line 1500 "src/parser_proc_grammar.y" /* glr.c:816 */
4270 {
4271 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
4272 (*(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)));
4273 (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4274 }
4275 #line 4276 "src/parser_proc.c" /* glr.c:816 */
4276 break;
4277
4278 case 488:
4279 #line 1508 "src/parser_proc_grammar.y" /* glr.c:816 */
4280 {
4281 (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4282 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4283 }
4284 #line 4285 "src/parser_proc.c" /* glr.c:816 */
4285 break;
4286
4287 case 489:
4288 #line 1512 "src/parser_proc_grammar.y" /* glr.c:816 */
4289 {
4290 (*(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)));
4291 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token);
4292 }
4293 #line 4294 "src/parser_proc.c" /* glr.c:816 */
4294 break;
4295
4296 case 490:
4297 #line 1516 "src/parser_proc_grammar.y" /* glr.c:816 */
4298 {
4299 (*(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)));
4300 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4301 }
4302 #line 4303 "src/parser_proc.c" /* glr.c:816 */
4303 break;
4304
4305 case 491:
4306 #line 1520 "src/parser_proc_grammar.y" /* glr.c:816 */
4307 {
4308 (*(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)));
4309 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4310 }
4311 #line 4312 "src/parser_proc.c" /* glr.c:816 */
4312 break;
4313
4314 case 492:
4315 #line 1524 "src/parser_proc_grammar.y" /* glr.c:816 */
4316 {
4317 (*(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)));
4318 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4319 }
4320 #line 4321 "src/parser_proc.c" /* glr.c:816 */
4321 break;
4322
4323 case 493:
4324 #line 1528 "src/parser_proc_grammar.y" /* glr.c:816 */
4325 {
4326 (*(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)));
4327 (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4328 }
4329 #line 4330 "src/parser_proc.c" /* glr.c:816 */
4330 break;
4331
4332 case 494:
4333 #line 1535 "src/parser_proc_grammar.y" /* glr.c:816 */
4334 {
4335 (*(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);
4336 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4337 }
4338 #line 4339 "src/parser_proc.c" /* glr.c:816 */
4339 break;
4340
4341 case 495:
4342 #line 1539 "src/parser_proc_grammar.y" /* glr.c:816 */
4343 {
4344 (*(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);
4345 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4346 }
4347 #line 4348 "src/parser_proc.c" /* glr.c:816 */
4348 break;
4349
4350 case 496:
4351 #line 1543 "src/parser_proc_grammar.y" /* glr.c:816 */
4352 {
4353 (*(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);
4354 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4355 }
4356 #line 4357 "src/parser_proc.c" /* glr.c:816 */
4357 break;
4358
4359 case 497:
4360 #line 1547 "src/parser_proc_grammar.y" /* glr.c:816 */
4361 {
4362 (*(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);
4363 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4364 }
4365 #line 4366 "src/parser_proc.c" /* glr.c:816 */
4366 break;
4367
4368 case 498:
4369 #line 1551 "src/parser_proc_grammar.y" /* glr.c:816 */
4370 {
4371 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0);
4372 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
4373 }
4374 #line 4375 "src/parser_proc.c" /* glr.c:816 */
4375 break;
4376
4377 case 499:
4378 #line 1555 "src/parser_proc_grammar.y" /* glr.c:816 */
4379 {
4380 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4381 }
4382 #line 4383 "src/parser_proc.c" /* glr.c:816 */
4383 break;
4384
4385 case 500:
4386 #line 1561 "src/parser_proc_grammar.y" /* glr.c:816 */
4387 {
4388 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4389 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4390 }
4391 #line 4392 "src/parser_proc.c" /* glr.c:816 */
4392 break;
4393
4394 case 501:
4395 #line 1565 "src/parser_proc_grammar.y" /* glr.c:816 */
4396 {
4397 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4398 (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4399 }
4400 #line 4401 "src/parser_proc.c" /* glr.c:816 */
4401 break;
4402
4403 case 502:
4404 #line 1572 "src/parser_proc_grammar.y" /* glr.c:816 */
4405 {
4406 (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4407 }
4408 #line 4409 "src/parser_proc.c" /* glr.c:816 */
4409 break;
4410
4411 case 503:
4412 #line 1575 "src/parser_proc_grammar.y" /* glr.c:816 */
4413 {
4414 if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4415 int8_t sizeof_void_p = sizeof(void *);
4416 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4417 psi_decl_type_free(&(*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4418 } else {
4419 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0);
4420 }
4421 }
4422 #line 4423 "src/parser_proc.c" /* glr.c:816 */
4423 break;
4424
4425 case 504:
4426 #line 1587 "src/parser_proc_grammar.y" /* glr.c:816 */
4427 {
4428 int8_t sizeof_void_p = sizeof(void *);
4429 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0);
4430 }
4431 #line 4432 "src/parser_proc.c" /* glr.c:816 */
4432 break;
4433
4434 case 505:
4435 #line 1591 "src/parser_proc_grammar.y" /* glr.c:816 */
4436 {
4437 int8_t sizeof_a = sizeof('a');
4438 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0);
4439 }
4440 #line 4441 "src/parser_proc.c" /* glr.c:816 */
4441 break;
4442
4443 case 506:
4444 #line 1595 "src/parser_proc_grammar.y" /* glr.c:816 */
4445 {
4446 (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT64, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size, 0);
4447 }
4448 #line 4449 "src/parser_proc.c" /* glr.c:816 */
4449 break;
4450
4451 case 507:
4452 #line 1601 "src/parser_proc_grammar.y" /* glr.c:816 */
4453 {
4454 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4455 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4456 } else {
4457 char digest[17];
4458
4459 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4460 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4461 }
4462 }
4463 #line 4464 "src/parser_proc.c" /* glr.c:816 */
4464 break;
4465
4466 case 508:
4467 #line 1614 "src/parser_proc_grammar.y" /* glr.c:816 */
4468 {
4469 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4470 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4471 } else {
4472 char digest[17];
4473
4474 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4475 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4476 }
4477 }
4478 #line 4479 "src/parser_proc.c" /* glr.c:816 */
4479 break;
4480
4481 case 509:
4482 #line 1627 "src/parser_proc_grammar.y" /* glr.c:816 */
4483 {
4484 if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) {
4485 (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4486 } else {
4487 char digest[17];
4488
4489 psi_token_hash((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), digest);
4490 (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest);
4491 }
4492 }
4493 #line 4494 "src/parser_proc.c" /* glr.c:816 */
4494 break;
4495
4496 case 510:
4497 #line 1640 "src/parser_proc_grammar.y" /* glr.c:816 */
4498 {
4499 (*(struct psi_token **)(&(*yyvalp))) = NULL;
4500 }
4501 #line 4502 "src/parser_proc.c" /* glr.c:816 */
4502 break;
4503
4504 case 511:
4505 #line 1643 "src/parser_proc_grammar.y" /* glr.c:816 */
4506 {
4507 (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4508 (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME;
4509 }
4510 #line 4511 "src/parser_proc.c" /* glr.c:816 */
4511 break;
4512
4513 case 514:
4514 #line 1655 "src/parser_proc_grammar.y" /* glr.c:816 */
4515 {
4516 (*(struct psi_layout **)(&(*yyvalp))) = NULL;
4517 }
4518 #line 4519 "src/parser_proc.c" /* glr.c:816 */
4519 break;
4520
4521 case 515:
4522 #line 1658 "src/parser_proc_grammar.y" /* glr.c:816 */
4523 {
4524 (*(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));
4525 }
4526 #line 4527 "src/parser_proc.c" /* glr.c:816 */
4527 break;
4528
4529 case 516:
4530 #line 1661 "src/parser_proc_grammar.y" /* glr.c:816 */
4531 {
4532 (*(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);
4533 }
4534 #line 4535 "src/parser_proc.c" /* glr.c:816 */
4535 break;
4536
4537 case 517:
4538 #line 1664 "src/parser_proc_grammar.y" /* glr.c:816 */
4539 {
4540 (*(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));
4541 }
4542 #line 4543 "src/parser_proc.c" /* glr.c:816 */
4543 break;
4544
4545 case 518:
4546 #line 1670 "src/parser_proc_grammar.y" /* glr.c:816 */
4547 {
4548 (*(struct psi_layout*)(&(*yyvalp))).pos = 0;
4549 (*(struct psi_layout*)(&(*yyvalp))).len = 0;
4550 }
4551 #line 4552 "src/parser_proc.c" /* glr.c:816 */
4552 break;
4553
4554 case 519:
4555 #line 1674 "src/parser_proc_grammar.y" /* glr.c:816 */
4556 {
4557 (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text);
4558 (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text);
4559 }
4560 #line 4561 "src/parser_proc.c" /* glr.c:816 */
4561 break;
4562
4563 case 520:
4564 #line 1681 "src/parser_proc_grammar.y" /* glr.c:816 */
4565 {
4566 (*(size_t*)(&(*yyvalp))) = 0;
4567 }
4568 #line 4569 "src/parser_proc.c" /* glr.c:816 */
4569 break;
4570
4571 case 521:
4572 #line 1684 "src/parser_proc_grammar.y" /* glr.c:816 */
4573 {
4574 (*(size_t*)(&(*yyvalp))) = 0;
4575 }
4576 #line 4577 "src/parser_proc.c" /* glr.c:816 */
4577 break;
4578
4579 case 522:
4580 #line 1687 "src/parser_proc_grammar.y" /* glr.c:816 */
4581 {
4582 (*(size_t*)(&(*yyvalp))) = 0;
4583 }
4584 #line 4585 "src/parser_proc.c" /* glr.c:816 */
4585 break;
4586
4587 case 523:
4588 #line 1690 "src/parser_proc_grammar.y" /* glr.c:816 */
4589 {
4590 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)) {
4591 (*(size_t*)(&(*yyvalp))) = psi_long_num_exp((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), NULL, &P->preproc->defs);
4592 } else {
4593 (*(size_t*)(&(*yyvalp))) = 0;
4594 }
4595 psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4596 }
4597 #line 4598 "src/parser_proc.c" /* glr.c:816 */
4598 break;
4599
4600 case 524:
4601 #line 1701 "src/parser_proc_grammar.y" /* glr.c:816 */
4602 {
4603 (*(size_t*)(&(*yyvalp))) = 0;
4604 }
4605 #line 4606 "src/parser_proc.c" /* glr.c:816 */
4606 break;
4607
4608 case 525:
4609 #line 1704 "src/parser_proc_grammar.y" /* glr.c:816 */
4610 {
4611 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4612 }
4613 #line 4614 "src/parser_proc.c" /* glr.c:816 */
4614 break;
4615
4616 case 527:
4617 #line 1711 "src/parser_proc_grammar.y" /* glr.c:816 */
4618 {
4619 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4620 }
4621 #line 4622 "src/parser_proc.c" /* glr.c:816 */
4622 break;
4623
4624 case 528:
4625 #line 1717 "src/parser_proc_grammar.y" /* glr.c:816 */
4626 {
4627 (*(size_t*)(&(*yyvalp))) = 1;
4628 }
4629 #line 4630 "src/parser_proc.c" /* glr.c:816 */
4630 break;
4631
4632 case 529:
4633 #line 1720 "src/parser_proc_grammar.y" /* glr.c:816 */
4634 {
4635 (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1;
4636 }
4637 #line 4638 "src/parser_proc.c" /* glr.c:816 */
4638 break;
4639
4640 case 532:
4641 #line 1737 "src/parser_proc_grammar.y" /* glr.c:816 */
4642 {
4643 (*(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)));
4644 }
4645 #line 4646 "src/parser_proc.c" /* glr.c:816 */
4646 break;
4647
4648 case 533:
4649 #line 1740 "src/parser_proc_grammar.y" /* glr.c:816 */
4650 {
4651 (*(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)));
4652 (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1;
4653 }
4654 #line 4655 "src/parser_proc.c" /* glr.c:816 */
4655 break;
4656
4657 case 534:
4658 #line 1747 "src/parser_proc_grammar.y" /* glr.c:816 */
4659 {
4660 (*(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)));
4661 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4662 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval));
4663 }
4664 #line 4665 "src/parser_proc.c" /* glr.c:816 */
4665 break;
4666
4667 case 535:
4668 #line 1752 "src/parser_proc_grammar.y" /* glr.c:816 */
4669 {
4670 (*(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)));
4671 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4672 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval));
4673 }
4674 #line 4675 "src/parser_proc.c" /* glr.c:816 */
4675 break;
4676
4677 case 536:
4678 #line 1757 "src/parser_proc_grammar.y" /* glr.c:816 */
4679 {
4680 (*(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)));
4681 (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)));
4682 (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval));
4683 (*(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);
4684 (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
4685 }
4686 #line 4687 "src/parser_proc.c" /* glr.c:816 */
4687 break;
4688
4689 case 537:
4690 #line 1767 "src/parser_proc_grammar.y" /* glr.c:816 */
4691 {
4692 (*(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)));
4693 }
4694 #line 4695 "src/parser_proc.c" /* glr.c:816 */
4695 break;
4696
4697 case 538:
4698 #line 1770 "src/parser_proc_grammar.y" /* glr.c:816 */
4699 {
4700 (*(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)));
4701 }
4702 #line 4703 "src/parser_proc.c" /* glr.c:816 */
4703 break;
4704
4705 case 539:
4706 #line 1776 "src/parser_proc_grammar.y" /* glr.c:816 */
4707 {
4708 (*(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);
4709 }
4710 #line 4711 "src/parser_proc.c" /* glr.c:816 */
4711 break;
4712
4713 case 540:
4714 #line 1779 "src/parser_proc_grammar.y" /* glr.c:816 */
4715 {
4716 (*(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)));
4717 }
4718 #line 4719 "src/parser_proc.c" /* glr.c:816 */
4719 break;
4720
4721 case 541:
4722 #line 1785 "src/parser_proc_grammar.y" /* glr.c:816 */
4723 {
4724 (*(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)));
4725 (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4726 }
4727 #line 4728 "src/parser_proc.c" /* glr.c:816 */
4728 break;
4729
4730 case 542:
4731 #line 1792 "src/parser_proc_grammar.y" /* glr.c:816 */
4732 {
4733 (*(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);
4734 (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4735 }
4736 #line 4737 "src/parser_proc.c" /* glr.c:816 */
4737 break;
4738
4739 case 552:
4740 #line 1811 "src/parser_proc_grammar.y" /* glr.c:816 */
4741 {
4742 (*(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)));
4743 }
4744 #line 4745 "src/parser_proc.c" /* glr.c:816 */
4745 break;
4746
4747 case 553:
4748 #line 1814 "src/parser_proc_grammar.y" /* glr.c:816 */
4749 {
4750 (*(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)));
4751 }
4752 #line 4753 "src/parser_proc.c" /* glr.c:816 */
4753 break;
4754
4755 case 554:
4756 #line 1820 "src/parser_proc_grammar.y" /* glr.c:816 */
4757 {
4758 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4759 }
4760 #line 4761 "src/parser_proc.c" /* glr.c:816 */
4761 break;
4762
4763 case 555:
4764 #line 1823 "src/parser_proc_grammar.y" /* glr.c:816 */
4765 {
4766 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4767 }
4768 #line 4769 "src/parser_proc.c" /* glr.c:816 */
4769 break;
4770
4771 case 556:
4772 #line 1826 "src/parser_proc_grammar.y" /* glr.c:816 */
4773 {
4774 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4775 }
4776 #line 4777 "src/parser_proc.c" /* glr.c:816 */
4777 break;
4778
4779 case 557:
4780 #line 1829 "src/parser_proc_grammar.y" /* glr.c:816 */
4781 {
4782 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4783 }
4784 #line 4785 "src/parser_proc.c" /* glr.c:816 */
4785 break;
4786
4787 case 558:
4788 #line 1832 "src/parser_proc_grammar.y" /* glr.c:816 */
4789 {
4790 (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4791 }
4792 #line 4793 "src/parser_proc.c" /* glr.c:816 */
4793 break;
4794
4795 case 559:
4796 #line 1838 "src/parser_proc_grammar.y" /* glr.c:816 */
4797 {
4798 (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
4799 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
4800 }
4801 #line 4802 "src/parser_proc.c" /* glr.c:816 */
4802 break;
4803
4804 case 560:
4805 #line 1842 "src/parser_proc_grammar.y" /* glr.c:816 */
4806 {
4807 (*(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))));
4808 (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4809 (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4810 }
4811 #line 4812 "src/parser_proc.c" /* glr.c:816 */
4812 break;
4813
4814 case 562:
4815 #line 1851 "src/parser_proc_grammar.y" /* glr.c:816 */
4816 {
4817 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4818 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true;
4819 }
4820 #line 4821 "src/parser_proc.c" /* glr.c:816 */
4821 break;
4822
4823 case 563:
4824 #line 1855 "src/parser_proc_grammar.y" /* glr.c:816 */
4825 {
4826 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4827 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false;
4828 }
4829 #line 4830 "src/parser_proc.c" /* glr.c:816 */
4830 break;
4831
4832 case 564:
4833 #line 1862 "src/parser_proc_grammar.y" /* glr.c:816 */
4834 {
4835 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL);
4836 }
4837 #line 4838 "src/parser_proc.c" /* glr.c:816 */
4838 break;
4839
4840 case 565:
4841 #line 1865 "src/parser_proc_grammar.y" /* glr.c:816 */
4842 {
4843 (*(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)));
4844 }
4845 #line 4846 "src/parser_proc.c" /* glr.c:816 */
4846 break;
4847
4848 case 566:
4849 #line 1868 "src/parser_proc_grammar.y" /* glr.c:816 */
4850 {
4851 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4852 }
4853 #line 4854 "src/parser_proc.c" /* glr.c:816 */
4854 break;
4855
4856 case 567:
4857 #line 1871 "src/parser_proc_grammar.y" /* glr.c:816 */
4858 {
4859 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4860 (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1;
4861 }
4862 #line 4863 "src/parser_proc.c" /* glr.c:816 */
4863 break;
4864
4865 case 568:
4866 #line 1875 "src/parser_proc_grammar.y" /* glr.c:816 */
4867 {
4868 (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
4869 }
4870 #line 4871 "src/parser_proc.c" /* glr.c:816 */
4871 break;
4872
4873 case 569:
4874 #line 1878 "src/parser_proc_grammar.y" /* glr.c:816 */
4875 {
4876 (*(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)));
4877 }
4878 #line 4879 "src/parser_proc.c" /* glr.c:816 */
4879 break;
4880
4881 case 570:
4882 #line 1884 "src/parser_proc_grammar.y" /* glr.c:816 */
4883 {
4884 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4885 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
4886 }
4887 #line 4888 "src/parser_proc.c" /* glr.c:816 */
4888 break;
4889
4890 case 571:
4891 #line 1888 "src/parser_proc_grammar.y" /* glr.c:816 */
4892 {
4893 (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4894 (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1;
4895 (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
4896 }
4897 #line 4898 "src/parser_proc.c" /* glr.c:816 */
4898 break;
4899
4900 case 572:
4901 #line 1896 "src/parser_proc_grammar.y" /* glr.c:816 */
4902 {
4903 (*(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)));
4904 (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
4905 }
4906 #line 4907 "src/parser_proc.c" /* glr.c:816 */
4907 break;
4908
4909 case 573:
4910 #line 1903 "src/parser_proc_grammar.y" /* glr.c:816 */
4911 {
4912 (*(struct psi_let_callback **)(&(*yyvalp))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), NULL);
4913 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4914 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval)));
4915 }
4916 #line 4917 "src/parser_proc.c" /* glr.c:816 */
4917 break;
4918
4919 case 574:
4920 #line 1908 "src/parser_proc_grammar.y" /* glr.c:816 */
4921 {
4922 (*(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)));
4923 (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)));
4924 (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval)));
4925 }
4926 #line 4927 "src/parser_proc.c" /* glr.c:816 */
4927 break;
4928
4929 case 575:
4930 #line 1916 "src/parser_proc_grammar.y" /* glr.c:816 */
4931 {
4932 (*(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)));
4933 (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
4934 (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
4935 }
4936 #line 4937 "src/parser_proc.c" /* glr.c:816 */
4937 break;
4938
4939 case 586:
4940 #line 1937 "src/parser_proc_grammar.y" /* glr.c:816 */
4941 {
4942 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4943 }
4944 #line 4945 "src/parser_proc.c" /* glr.c:816 */
4945 break;
4946
4947 case 587:
4948 #line 1940 "src/parser_proc_grammar.y" /* glr.c:816 */
4949 {
4950 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4951 }
4952 #line 4953 "src/parser_proc.c" /* glr.c:816 */
4953 break;
4954
4955 case 588:
4956 #line 1946 "src/parser_proc_grammar.y" /* glr.c:816 */
4957 {
4958 (*(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)));
4959 }
4960 #line 4961 "src/parser_proc.c" /* glr.c:816 */
4961 break;
4962
4963 case 589:
4964 #line 1949 "src/parser_proc_grammar.y" /* glr.c:816 */
4965 {
4966 (*(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)));
4967 }
4968 #line 4969 "src/parser_proc.c" /* glr.c:816 */
4969 break;
4970
4971 case 592:
4972 #line 1960 "src/parser_proc_grammar.y" /* glr.c:816 */
4973 {
4974 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
4975 }
4976 #line 4977 "src/parser_proc.c" /* glr.c:816 */
4977 break;
4978
4979 case 593:
4980 #line 1963 "src/parser_proc_grammar.y" /* glr.c:816 */
4981 {
4982 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
4983 }
4984 #line 4985 "src/parser_proc.c" /* glr.c:816 */
4985 break;
4986
4987 case 594:
4988 #line 1969 "src/parser_proc_grammar.y" /* glr.c:816 */
4989 {
4990 (*(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)));
4991 }
4992 #line 4993 "src/parser_proc.c" /* glr.c:816 */
4993 break;
4994
4995 case 595:
4996 #line 1972 "src/parser_proc_grammar.y" /* glr.c:816 */
4997 {
4998 (*(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)));
4999 }
5000 #line 5001 "src/parser_proc.c" /* glr.c:816 */
5001 break;
5002
5003 case 596:
5004 #line 1978 "src/parser_proc_grammar.y" /* glr.c:816 */
5005 {
5006 (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5007 (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5008 }
5009 #line 5010 "src/parser_proc.c" /* glr.c:816 */
5010 break;
5011
5012 case 597:
5013 #line 1985 "src/parser_proc_grammar.y" /* glr.c:816 */
5014 {
5015 (*(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))));
5016 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token);
5017 }
5018 #line 5019 "src/parser_proc.c" /* glr.c:816 */
5019 break;
5020
5021 case 598:
5022 #line 1989 "src/parser_proc_grammar.y" /* glr.c:816 */
5023 {
5024 (*(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))));
5025 (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token);
5026 }
5027 #line 5028 "src/parser_proc.c" /* glr.c:816 */
5028 break;
5029
5030 case 599:
5031 #line 1996 "src/parser_proc_grammar.y" /* glr.c:816 */
5032 {
5033 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5034 }
5035 #line 5036 "src/parser_proc.c" /* glr.c:816 */
5036 break;
5037
5038 case 600:
5039 #line 1999 "src/parser_proc_grammar.y" /* glr.c:816 */
5040 {
5041 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5042 }
5043 #line 5044 "src/parser_proc.c" /* glr.c:816 */
5044 break;
5045
5046 case 601:
5047 #line 2002 "src/parser_proc_grammar.y" /* glr.c:816 */
5048 {
5049 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5050 }
5051 #line 5052 "src/parser_proc.c" /* glr.c:816 */
5052 break;
5053
5054 case 602:
5055 #line 2008 "src/parser_proc_grammar.y" /* glr.c:816 */
5056 {
5057 (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5058 (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5059 }
5060 #line 5061 "src/parser_proc.c" /* glr.c:816 */
5061 break;
5062
5063 case 603:
5064 #line 2015 "src/parser_proc_grammar.y" /* glr.c:816 */
5065 {
5066 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5067 }
5068 #line 5069 "src/parser_proc.c" /* glr.c:816 */
5069 break;
5070
5071 case 604:
5072 #line 2018 "src/parser_proc_grammar.y" /* glr.c:816 */
5073 {
5074 (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)));
5075 }
5076 #line 5077 "src/parser_proc.c" /* glr.c:816 */
5077 break;
5078
5079 case 605:
5080 #line 2021 "src/parser_proc_grammar.y" /* glr.c:816 */
5081 {
5082 (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5083 (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
5084 }
5085 #line 5086 "src/parser_proc.c" /* glr.c:816 */
5086 break;
5087
5088 case 606:
5089 #line 2028 "src/parser_proc_grammar.y" /* glr.c:816 */
5090 {
5091 (*(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)));
5092 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)));
5093 (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
5094 }
5095 #line 5096 "src/parser_proc.c" /* glr.c:816 */
5096 break;
5097
5098 case 607:
5099 #line 2033 "src/parser_proc_grammar.y" /* glr.c:816 */
5100 {
5101 (*(struct psi_set_func **)(&(*yyvalp))) = psi_set_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-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)));
5102 (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)));
5103 (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1;
5104 }
5105 #line 5106 "src/parser_proc.c" /* glr.c:816 */
5106 break;
5107
5108 case 616:
5109 #line 2052 "src/parser_proc_grammar.y" /* glr.c:816 */
5110 {
5111 (*(struct psi_plist **)(&(*yyvalp))) = NULL;
5112 }
5113 #line 5114 "src/parser_proc.c" /* glr.c:816 */
5114 break;
5115
5116 case 617:
5117 #line 2055 "src/parser_proc_grammar.y" /* glr.c:816 */
5118 {
5119 (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
5120 }
5121 #line 5122 "src/parser_proc.c" /* glr.c:816 */
5122 break;
5123
5124 case 618:
5125 #line 2061 "src/parser_proc_grammar.y" /* glr.c:816 */
5126 {
5127 (*(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)));
5128 }
5129 #line 5130 "src/parser_proc.c" /* glr.c:816 */
5130 break;
5131
5132 case 619:
5133 #line 2064 "src/parser_proc_grammar.y" /* glr.c:816 */
5134 {
5135 (*(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)));
5136 }
5137 #line 5138 "src/parser_proc.c" /* glr.c:816 */
5138 break;
5139
5140 case 620:
5141 #line 2070 "src/parser_proc_grammar.y" /* glr.c:816 */
5142 {
5143 (*(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)));
5144 (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5145 }
5146 #line 5147 "src/parser_proc.c" /* glr.c:816 */
5147 break;
5148
5149 case 623:
5150 #line 2082 "src/parser_proc_grammar.y" /* glr.c:816 */
5151 {
5152 (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)));
5153 (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)));
5154 }
5155 #line 5156 "src/parser_proc.c" /* glr.c:816 */
5156 break;
5157
5158 case 624:
5159 #line 2089 "src/parser_proc_grammar.y" /* glr.c:816 */
5160 {
5161 (*(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)));
5162 }
5163 #line 5164 "src/parser_proc.c" /* glr.c:816 */
5164 break;
5165
5166 case 625:
5167 #line 2092 "src/parser_proc_grammar.y" /* glr.c:816 */
5168 {
5169 (*(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)));
5170 }
5171 #line 5172 "src/parser_proc.c" /* glr.c:816 */
5172 break;
5173
5174 case 626:
5175 #line 2098 "src/parser_proc_grammar.y" /* glr.c:816 */
5176 {
5177 (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME;
5178 (*(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)));
5179 (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)));
5180 }
5181 #line 5182 "src/parser_proc.c" /* glr.c:816 */
5182 break;
5183
5184 case 627:
5185 #line 2106 "src/parser_proc_grammar.y" /* glr.c:816 */
5186 {
5187 (*(bool*)(&(*yyvalp))) = false;
5188 }
5189 #line 5190 "src/parser_proc.c" /* glr.c:816 */
5190 break;
5191
5192 case 628:
5193 #line 2109 "src/parser_proc_grammar.y" /* glr.c:816 */
5194 {
5195 (*(bool*)(&(*yyvalp))) = true;
5196 }
5197 #line 5198 "src/parser_proc.c" /* glr.c:816 */
5198 break;
5199
5200
5201 #line 5202 "src/parser_proc.c" /* glr.c:816 */
5202 default: break;
5203 }
5204
5205 return yyok;
5206 # undef yyerrok
5207 # undef YYABORT
5208 # undef YYACCEPT
5209 # undef YYERROR
5210 # undef YYBACKUP
5211 # undef yyclearin
5212 # undef YYRECOVERING
5213 }
5214
5215
5216 static void
5217 yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
5218 {
5219 YYUSE (yy0);
5220 YYUSE (yy1);
5221
5222 switch (yyn)
5223 {
5224
5225 default: break;
5226 }
5227 }
5228
5229 /* Bison grammar-table manipulation. */
5230
5231 /*-----------------------------------------------.
5232 | Release the memory associated to this symbol. |
5233 `-----------------------------------------------*/
5234
5235 static void
5236 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5237 {
5238 YYUSE (yyvaluep);
5239 YYUSE (P);
5240 YYUSE (tokens);
5241 YYUSE (index);
5242 if (!yymsg)
5243 yymsg = "Deleting";
5244 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
5245
5246 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5247 switch (yytype)
5248 {
5249 case 141: /* binary_op_token */
5250 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5251 {}
5252 #line 5253 "src/parser_proc.c" /* glr.c:846 */
5253 break;
5254
5255 case 142: /* unary_op_token */
5256 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5257 {}
5258 #line 5259 "src/parser_proc.c" /* glr.c:846 */
5259 break;
5260
5261 case 143: /* name_token */
5262 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5263 {}
5264 #line 5265 "src/parser_proc.c" /* glr.c:846 */
5265 break;
5266
5267 case 144: /* any_noeol_token */
5268 #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */
5269 {}
5270 #line 5271 "src/parser_proc.c" /* glr.c:846 */
5271 break;
5272
5273 case 149: /* lib */
5274 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5275 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5276 #line 5277 "src/parser_proc.c" /* glr.c:846 */
5277 break;
5278
5279 case 150: /* cpp */
5280 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
5281 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5282 #line 5283 "src/parser_proc.c" /* glr.c:846 */
5283 break;
5284
5285 case 151: /* cpp_exp */
5286 #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */
5287 {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));}
5288 #line 5289 "src/parser_proc.c" /* glr.c:846 */
5289 break;
5290
5291 case 153: /* cpp_message_token */
5292 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5293 {}
5294 #line 5295 "src/parser_proc.c" /* glr.c:846 */
5295 break;
5296
5297 case 154: /* cpp_include_token */
5298 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5299 {}
5300 #line 5301 "src/parser_proc.c" /* glr.c:846 */
5301 break;
5302
5303 case 155: /* cpp_header_token */
5304 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5305 {}
5306 #line 5307 "src/parser_proc.c" /* glr.c:846 */
5307 break;
5308
5309 case 156: /* cpp_no_arg_token */
5310 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5311 {}
5312 #line 5313 "src/parser_proc.c" /* glr.c:846 */
5313 break;
5314
5315 case 157: /* cpp_name_arg_token */
5316 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5317 {}
5318 #line 5319 "src/parser_proc.c" /* glr.c:846 */
5319 break;
5320
5321 case 158: /* cpp_exp_arg_token */
5322 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5323 {}
5324 #line 5325 "src/parser_proc.c" /* glr.c:846 */
5325 break;
5326
5327 case 159: /* cpp_special_name_token */
5328 #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */
5329 {}
5330 #line 5331 "src/parser_proc.c" /* glr.c:846 */
5331 break;
5332
5333 case 160: /* cpp_macro_decl */
5334 #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */
5335 {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));}
5336 #line 5337 "src/parser_proc.c" /* glr.c:846 */
5337 break;
5338
5339 case 161: /* cpp_macro_sig */
5340 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5341 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5342 #line 5343 "src/parser_proc.c" /* glr.c:846 */
5343 break;
5344
5345 case 162: /* cpp_macro_sig_args */
5346 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5347 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5348 #line 5349 "src/parser_proc.c" /* glr.c:846 */
5349 break;
5350
5351 case 163: /* cpp_macro_decl_tokens */
5352 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5353 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5354 #line 5355 "src/parser_proc.c" /* glr.c:846 */
5355 break;
5356
5357 case 164: /* cpp_macro_decl_token_list */
5358 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5359 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5360 #line 5361 "src/parser_proc.c" /* glr.c:846 */
5361 break;
5362
5363 case 165: /* cpp_macro_exp */
5364 #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */
5365 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5366 #line 5367 "src/parser_proc.c" /* glr.c:846 */
5367 break;
5368
5369 case 166: /* cpp_macro_call_args */
5370 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5371 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5372 #line 5373 "src/parser_proc.c" /* glr.c:846 */
5373 break;
5374
5375 case 167: /* cpp_macro_call_arg_list */
5376 #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */
5377 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5378 #line 5379 "src/parser_proc.c" /* glr.c:846 */
5379 break;
5380
5381 case 168: /* constant */
5382 #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */
5383 {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));}
5384 #line 5385 "src/parser_proc.c" /* glr.c:846 */
5385 break;
5386
5387 case 169: /* constant_type */
5388 #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */
5389 {psi_const_type_free(&(*(struct psi_const_type **)(&(*yyvaluep))));}
5390 #line 5391 "src/parser_proc.c" /* glr.c:846 */
5391 break;
5392
5393 case 170: /* constant_type_token */
5394 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5395 {}
5396 #line 5397 "src/parser_proc.c" /* glr.c:846 */
5397 break;
5398
5399 case 171: /* impl_def_val */
5400 #line 340 "src/parser_proc_grammar.y" /* glr.c:846 */
5401 {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));}
5402 #line 5403 "src/parser_proc.c" /* glr.c:846 */
5403 break;
5404
5405 case 172: /* impl_def_val_token */
5406 #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */
5407 {}
5408 #line 5409 "src/parser_proc.c" /* glr.c:846 */
5409 break;
5410
5411 case 173: /* decl_typedef */
5412 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5413 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5414 #line 5415 "src/parser_proc.c" /* glr.c:846 */
5415 break;
5416
5417 case 174: /* typedef */
5418 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5419 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5420 #line 5421 "src/parser_proc.c" /* glr.c:846 */
5421 break;
5422
5423 case 175: /* typedef_anon */
5424 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5425 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5426 #line 5427 "src/parser_proc.c" /* glr.c:846 */
5427 break;
5428
5429 case 176: /* typedef_decl */
5430 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5431 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5432 #line 5433 "src/parser_proc.c" /* glr.c:846 */
5433 break;
5434
5435 case 177: /* typedef_anon_decl */
5436 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5437 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5438 #line 5439 "src/parser_proc.c" /* glr.c:846 */
5439 break;
5440
5441 case 178: /* qualified_decl_type */
5442 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5443 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5444 #line 5445 "src/parser_proc.c" /* glr.c:846 */
5445 break;
5446
5447 case 179: /* decl_type */
5448 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5449 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5450 #line 5451 "src/parser_proc.c" /* glr.c:846 */
5451 break;
5452
5453 case 180: /* decl_type_complex */
5454 #line 346 "src/parser_proc_grammar.y" /* glr.c:846 */
5455 {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));}
5456 #line 5457 "src/parser_proc.c" /* glr.c:846 */
5457 break;
5458
5459 case 181: /* decl_type_simple */
5460 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5461 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5462 #line 5463 "src/parser_proc.c" /* glr.c:846 */
5463 break;
5464
5465 case 182: /* decl_real_type */
5466 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5467 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5468 #line 5469 "src/parser_proc.c" /* glr.c:846 */
5469 break;
5470
5471 case 183: /* int_signed */
5472 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
5473 {}
5474 #line 5475 "src/parser_proc.c" /* glr.c:846 */
5475 break;
5476
5477 case 184: /* int_width */
5478 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
5479 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5480 #line 5481 "src/parser_proc.c" /* glr.c:846 */
5481 break;
5482
5483 case 185: /* decl_int_type */
5484 #line 343 "src/parser_proc_grammar.y" /* glr.c:846 */
5485 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5486 #line 5487 "src/parser_proc.c" /* glr.c:846 */
5487 break;
5488
5489 case 186: /* int_signed_types */
5490 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
5491 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5492 #line 5493 "src/parser_proc.c" /* glr.c:846 */
5493 break;
5494
5495 case 187: /* signed_short_types */
5496 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
5497 {}
5498 #line 5499 "src/parser_proc.c" /* glr.c:846 */
5499 break;
5500
5501 case 188: /* signed_long_types */
5502 #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */
5503 {}
5504 #line 5505 "src/parser_proc.c" /* glr.c:846 */
5505 break;
5506
5507 case 189: /* int_width_types */
5508 #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */
5509 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5510 #line 5511 "src/parser_proc.c" /* glr.c:846 */
5511 break;
5512
5513 case 190: /* decl_stmt */
5514 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5515 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5516 #line 5517 "src/parser_proc.c" /* glr.c:846 */
5517 break;
5518
5519 case 193: /* decl_extvar_stmt */
5520 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5521 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5522 #line 5523 "src/parser_proc.c" /* glr.c:846 */
5523 break;
5524
5525 case 194: /* decl_extvar_list */
5526 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5527 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5528 #line 5529 "src/parser_proc.c" /* glr.c:846 */
5529 break;
5530
5531 case 195: /* decl_vars */
5532 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5533 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5534 #line 5535 "src/parser_proc.c" /* glr.c:846 */
5535 break;
5536
5537 case 200: /* decl */
5538 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5539 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5540 #line 5541 "src/parser_proc.c" /* glr.c:846 */
5541 break;
5542
5543 case 201: /* decl_body */
5544 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5545 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5546 #line 5547 "src/parser_proc.c" /* glr.c:846 */
5547 break;
5548
5549 case 202: /* decl_func_body */
5550 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5551 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5552 #line 5553 "src/parser_proc.c" /* glr.c:846 */
5553 break;
5554
5555 case 203: /* decl_functor_body */
5556 #line 348 "src/parser_proc_grammar.y" /* glr.c:846 */
5557 {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));}
5558 #line 5559 "src/parser_proc.c" /* glr.c:846 */
5559 break;
5560
5561 case 204: /* decl_functor */
5562 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5563 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5564 #line 5565 "src/parser_proc.c" /* glr.c:846 */
5565 break;
5566
5567 case 205: /* decl_func */
5568 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5569 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5570 #line 5571 "src/parser_proc.c" /* glr.c:846 */
5571 break;
5572
5573 case 206: /* decl_args */
5574 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5575 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5576 #line 5577 "src/parser_proc.c" /* glr.c:846 */
5577 break;
5578
5579 case 207: /* decl_arg_list */
5580 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5581 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5582 #line 5583 "src/parser_proc.c" /* glr.c:846 */
5583 break;
5584
5585 case 208: /* decl_anon_arg */
5586 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5587 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5588 #line 5589 "src/parser_proc.c" /* glr.c:846 */
5589 break;
5590
5591 case 209: /* decl_arg */
5592 #line 350 "src/parser_proc_grammar.y" /* glr.c:846 */
5593 {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));}
5594 #line 5595 "src/parser_proc.c" /* glr.c:846 */
5595 break;
5596
5597 case 210: /* decl_var */
5598 #line 352 "src/parser_proc_grammar.y" /* glr.c:846 */
5599 {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));}
5600 #line 5601 "src/parser_proc.c" /* glr.c:846 */
5601 break;
5602
5603 case 211: /* decl_union */
5604 #line 356 "src/parser_proc_grammar.y" /* glr.c:846 */
5605 {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));}
5606 #line 5607 "src/parser_proc.c" /* glr.c:846 */
5607 break;
5608
5609 case 212: /* decl_struct */
5610 #line 354 "src/parser_proc_grammar.y" /* glr.c:846 */
5611 {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));}
5612 #line 5613 "src/parser_proc.c" /* glr.c:846 */
5613 break;
5614
5615 case 213: /* decl_struct_args */
5616 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5617 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5618 #line 5619 "src/parser_proc.c" /* glr.c:846 */
5619 break;
5620
5621 case 214: /* struct_args_block */
5622 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5623 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5624 #line 5625 "src/parser_proc.c" /* glr.c:846 */
5625 break;
5626
5627 case 215: /* struct_args */
5628 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5629 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5630 #line 5631 "src/parser_proc.c" /* glr.c:846 */
5631 break;
5632
5633 case 216: /* struct_arg_var_list */
5634 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5635 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5636 #line 5637 "src/parser_proc.c" /* glr.c:846 */
5637 break;
5638
5639 case 217: /* decl_vars_with_layout */
5640 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5641 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5642 #line 5643 "src/parser_proc.c" /* glr.c:846 */
5643 break;
5644
5645 case 218: /* decl_enum */
5646 #line 358 "src/parser_proc_grammar.y" /* glr.c:846 */
5647 {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));}
5648 #line 5649 "src/parser_proc.c" /* glr.c:846 */
5649 break;
5650
5651 case 219: /* decl_enum_items */
5652 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5653 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5654 #line 5655 "src/parser_proc.c" /* glr.c:846 */
5655 break;
5656
5657 case 220: /* decl_enum_item */
5658 #line 360 "src/parser_proc_grammar.y" /* glr.c:846 */
5659 {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));}
5660 #line 5661 "src/parser_proc.c" /* glr.c:846 */
5661 break;
5662
5663 case 221: /* num_exp */
5664 #line 418 "src/parser_proc_grammar.y" /* glr.c:846 */
5665 {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));}
5666 #line 5667 "src/parser_proc.c" /* glr.c:846 */
5667 break;
5668
5669 case 222: /* number */
5670 #line 420 "src/parser_proc_grammar.y" /* glr.c:846 */
5671 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5672 #line 5673 "src/parser_proc.c" /* glr.c:846 */
5673 break;
5674
5675 case 223: /* sizeof */
5676 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5677 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5678 #line 5679 "src/parser_proc.c" /* glr.c:846 */
5679 break;
5680
5681 case 224: /* sizeof_body */
5682 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5683 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5684 #line 5685 "src/parser_proc.c" /* glr.c:846 */
5685 break;
5686
5687 case 225: /* sizeof_body_notypes */
5688 #line 370 "src/parser_proc_grammar.y" /* glr.c:846 */
5689 {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));}
5690 #line 5691 "src/parser_proc.c" /* glr.c:846 */
5691 break;
5692
5693 case 226: /* enum_name */
5694 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5695 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5696 #line 5697 "src/parser_proc.c" /* glr.c:846 */
5697 break;
5698
5699 case 227: /* union_name */
5700 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5701 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5702 #line 5703 "src/parser_proc.c" /* glr.c:846 */
5703 break;
5704
5705 case 228: /* struct_name */
5706 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5707 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5708 #line 5709 "src/parser_proc.c" /* glr.c:846 */
5709 break;
5710
5711 case 229: /* optional_name */
5712 #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */
5713 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5714 #line 5715 "src/parser_proc.c" /* glr.c:846 */
5715 break;
5716
5717 case 231: /* decl_layout */
5718 #line 367 "src/parser_proc_grammar.y" /* glr.c:846 */
5719 {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));}
5720 #line 5721 "src/parser_proc.c" /* glr.c:846 */
5721 break;
5722
5723 case 232: /* align_and_size */
5724 #line 365 "src/parser_proc_grammar.y" /* glr.c:846 */
5725 {}
5726 #line 5727 "src/parser_proc.c" /* glr.c:846 */
5727 break;
5728
5729 case 233: /* array_size */
5730 #line 423 "src/parser_proc_grammar.y" /* glr.c:846 */
5731 {}
5732 #line 5733 "src/parser_proc.c" /* glr.c:846 */
5733 break;
5734
5735 case 234: /* indirection */
5736 #line 423 "src/parser_proc_grammar.y" /* glr.c:846 */
5737 {}
5738 #line 5739 "src/parser_proc.c" /* glr.c:846 */
5739 break;
5740
5741 case 235: /* pointers */
5742 #line 423 "src/parser_proc_grammar.y" /* glr.c:846 */
5743 {}
5744 #line 5745 "src/parser_proc.c" /* glr.c:846 */
5745 break;
5746
5747 case 236: /* asterisks */
5748 #line 423 "src/parser_proc_grammar.y" /* glr.c:846 */
5749 {}
5750 #line 5751 "src/parser_proc.c" /* glr.c:846 */
5751 break;
5752
5753 case 238: /* impl */
5754 #line 373 "src/parser_proc_grammar.y" /* glr.c:846 */
5755 {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));}
5756 #line 5757 "src/parser_proc.c" /* glr.c:846 */
5757 break;
5758
5759 case 239: /* impl_func */
5760 #line 375 "src/parser_proc_grammar.y" /* glr.c:846 */
5761 {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));}
5762 #line 5763 "src/parser_proc.c" /* glr.c:846 */
5763 break;
5764
5765 case 240: /* impl_args */
5766 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5767 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5768 #line 5769 "src/parser_proc.c" /* glr.c:846 */
5769 break;
5770
5771 case 241: /* impl_arg */
5772 #line 377 "src/parser_proc_grammar.y" /* glr.c:846 */
5773 {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));}
5774 #line 5775 "src/parser_proc.c" /* glr.c:846 */
5775 break;
5776
5777 case 242: /* impl_var */
5778 #line 381 "src/parser_proc_grammar.y" /* glr.c:846 */
5779 {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));}
5780 #line 5781 "src/parser_proc.c" /* glr.c:846 */
5781 break;
5782
5783 case 243: /* impl_type */
5784 #line 379 "src/parser_proc_grammar.y" /* glr.c:846 */
5785 {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));}
5786 #line 5787 "src/parser_proc.c" /* glr.c:846 */
5787 break;
5788
5789 case 244: /* impl_type_token */
5790 #line 413 "src/parser_proc_grammar.y" /* glr.c:846 */
5791 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5792 #line 5793 "src/parser_proc.c" /* glr.c:846 */
5793 break;
5794
5795 case 245: /* impl_stmts */
5796 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5797 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5798 #line 5799 "src/parser_proc.c" /* glr.c:846 */
5799 break;
5800
5801 case 246: /* impl_stmt */
5802 #line 411 "src/parser_proc_grammar.y" /* glr.c:846 */
5803 {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));}
5804 #line 5805 "src/parser_proc.c" /* glr.c:846 */
5805 break;
5806
5807 case 247: /* let_stmt */
5808 #line 384 "src/parser_proc_grammar.y" /* glr.c:846 */
5809 {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));}
5810 #line 5811 "src/parser_proc.c" /* glr.c:846 */
5811 break;
5812
5813 case 248: /* let_exp */
5814 #line 386 "src/parser_proc_grammar.y" /* glr.c:846 */
5815 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5816 #line 5817 "src/parser_proc.c" /* glr.c:846 */
5817 break;
5818
5819 case 249: /* let_exp_byref */
5820 #line 386 "src/parser_proc_grammar.y" /* glr.c:846 */
5821 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5822 #line 5823 "src/parser_proc.c" /* glr.c:846 */
5823 break;
5824
5825 case 250: /* let_exp_assign */
5826 #line 386 "src/parser_proc_grammar.y" /* glr.c:846 */
5827 {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));}
5828 #line 5829 "src/parser_proc.c" /* glr.c:846 */
5829 break;
5830
5831 case 251: /* let_calloc */
5832 #line 388 "src/parser_proc_grammar.y" /* glr.c:846 */
5833 {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));}
5834 #line 5835 "src/parser_proc.c" /* glr.c:846 */
5835 break;
5836
5837 case 252: /* let_callback */
5838 #line 390 "src/parser_proc_grammar.y" /* glr.c:846 */
5839 {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));}
5840 #line 5841 "src/parser_proc.c" /* glr.c:846 */
5841 break;
5842
5843 case 253: /* let_func */
5844 #line 392 "src/parser_proc_grammar.y" /* glr.c:846 */
5845 {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));}
5846 #line 5847 "src/parser_proc.c" /* glr.c:846 */
5847 break;
5848
5849 case 254: /* let_func_token */
5850 #line 413 "src/parser_proc_grammar.y" /* glr.c:846 */
5851 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5852 #line 5853 "src/parser_proc.c" /* glr.c:846 */
5853 break;
5854
5855 case 255: /* let_func_exps */
5856 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5857 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5858 #line 5859 "src/parser_proc.c" /* glr.c:846 */
5859 break;
5860
5861 case 256: /* let_exps */
5862 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5863 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5864 #line 5865 "src/parser_proc.c" /* glr.c:846 */
5865 break;
5866
5867 case 257: /* callback_rval */
5868 #line 413 "src/parser_proc_grammar.y" /* glr.c:846 */
5869 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5870 #line 5871 "src/parser_proc.c" /* glr.c:846 */
5871 break;
5872
5873 case 258: /* callback_arg_list */
5874 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5875 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5876 #line 5877 "src/parser_proc.c" /* glr.c:846 */
5877 break;
5878
5879 case 259: /* callback_args */
5880 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5881 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5882 #line 5883 "src/parser_proc.c" /* glr.c:846 */
5883 break;
5884
5885 case 260: /* return_stmt */
5886 #line 402 "src/parser_proc_grammar.y" /* glr.c:846 */
5887 {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));}
5888 #line 5889 "src/parser_proc.c" /* glr.c:846 */
5889 break;
5890
5891 case 261: /* return_exp */
5892 #line 404 "src/parser_proc_grammar.y" /* glr.c:846 */
5893 {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));}
5894 #line 5895 "src/parser_proc.c" /* glr.c:846 */
5895 break;
5896
5897 case 262: /* call_decl_vars */
5898 #line 362 "src/parser_proc_grammar.y" /* glr.c:846 */
5899 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5900 #line 5901 "src/parser_proc.c" /* glr.c:846 */
5901 break;
5902
5903 case 263: /* set_stmt */
5904 #line 394 "src/parser_proc_grammar.y" /* glr.c:846 */
5905 {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));}
5906 #line 5907 "src/parser_proc.c" /* glr.c:846 */
5907 break;
5908
5909 case 264: /* set_exp */
5910 #line 396 "src/parser_proc_grammar.y" /* glr.c:846 */
5911 {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));}
5912 #line 5913 "src/parser_proc.c" /* glr.c:846 */
5913 break;
5914
5915 case 265: /* set_func */
5916 #line 398 "src/parser_proc_grammar.y" /* glr.c:846 */
5917 {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));}
5918 #line 5919 "src/parser_proc.c" /* glr.c:846 */
5919 break;
5920
5921 case 266: /* set_func_token */
5922 #line 413 "src/parser_proc_grammar.y" /* glr.c:846 */
5923 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5924 #line 5925 "src/parser_proc.c" /* glr.c:846 */
5925 break;
5926
5927 case 267: /* set_func_exps */
5928 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5929 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5930 #line 5931 "src/parser_proc.c" /* glr.c:846 */
5931 break;
5932
5933 case 268: /* set_exps */
5934 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5935 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5936 #line 5937 "src/parser_proc.c" /* glr.c:846 */
5937 break;
5938
5939 case 269: /* assert_stmt */
5940 #line 400 "src/parser_proc_grammar.y" /* glr.c:846 */
5941 {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));}
5942 #line 5943 "src/parser_proc.c" /* glr.c:846 */
5943 break;
5944
5945 case 270: /* assert_stmt_token */
5946 #line 413 "src/parser_proc_grammar.y" /* glr.c:846 */
5947 {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));}
5948 #line 5949 "src/parser_proc.c" /* glr.c:846 */
5949 break;
5950
5951 case 271: /* free_stmt */
5952 #line 406 "src/parser_proc_grammar.y" /* glr.c:846 */
5953 {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));}
5954 #line 5955 "src/parser_proc.c" /* glr.c:846 */
5955 break;
5956
5957 case 272: /* free_exps */
5958 #line 415 "src/parser_proc_grammar.y" /* glr.c:846 */
5959 {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));}
5960 #line 5961 "src/parser_proc.c" /* glr.c:846 */
5961 break;
5962
5963 case 273: /* free_exp */
5964 #line 408 "src/parser_proc_grammar.y" /* glr.c:846 */
5965 {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));}
5966 #line 5967 "src/parser_proc.c" /* glr.c:846 */
5967 break;
5968
5969 case 274: /* reference */
5970 #line 425 "src/parser_proc_grammar.y" /* glr.c:846 */
5971 {}
5972 #line 5973 "src/parser_proc.c" /* glr.c:846 */
5973 break;
5974
5975
5976 default:
5977 break;
5978 }
5979 YY_IGNORE_MAYBE_UNINITIALIZED_END
5980 }
5981
5982 /** Number of symbols composing the right hand side of rule #RULE. */
5983 static inline int
5984 yyrhsLength (yyRuleNum yyrule)
5985 {
5986 return yyr2[yyrule];
5987 }
5988
5989 static void
5990 yydestroyGLRState (char const *yymsg, yyGLRState *yys, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
5991 {
5992 if (yys->yyresolved)
5993 yydestruct (yymsg, yystos[yys->yylrState],
5994 &yys->yysemantics.yysval, P, tokens, index);
5995 else
5996 {
5997 #if YYDEBUG
5998 if (yydebug)
5999 {
6000 if (yys->yysemantics.yyfirstVal)
6001 YYFPRINTF (stderr, "%s unresolved", yymsg);
6002 else
6003 YYFPRINTF (stderr, "%s incomplete", yymsg);
6004 YY_SYMBOL_PRINT ("", yystos[yys->yylrState], YY_NULLPTR, &yys->yyloc);
6005 }
6006 #endif
6007
6008 if (yys->yysemantics.yyfirstVal)
6009 {
6010 yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
6011 yyGLRState *yyrh;
6012 int yyn;
6013 for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
6014 yyn > 0;
6015 yyrh = yyrh->yypred, yyn -= 1)
6016 yydestroyGLRState (yymsg, yyrh, P, tokens, index);
6017 }
6018 }
6019 }
6020
6021 /** Left-hand-side symbol for rule #YYRULE. */
6022 static inline yySymbol
6023 yylhsNonterm (yyRuleNum yyrule)
6024 {
6025 return yyr1[yyrule];
6026 }
6027
6028 #define yypact_value_is_default(Yystate) \
6029 (!!((Yystate) == (-703)))
6030
6031 /** True iff LR state YYSTATE has only a default reduction (regardless
6032 * of token). */
6033 static inline yybool
6034 yyisDefaultedState (yyStateNum yystate)
6035 {
6036 return yypact_value_is_default (yypact[yystate]);
6037 }
6038
6039 /** The default reduction for YYSTATE, assuming it has one. */
6040 static inline yyRuleNum
6041 yydefaultAction (yyStateNum yystate)
6042 {
6043 return yydefact[yystate];
6044 }
6045
6046 #define yytable_value_is_error(Yytable_value) \
6047 0
6048
6049 /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
6050 * Result R means
6051 * R < 0: Reduce on rule -R.
6052 * R = 0: Error.
6053 * R > 0: Shift to state R.
6054 * Set *YYCONFLICTS to a pointer into yyconfl to a 0-terminated list
6055 * of conflicting reductions.
6056 */
6057 static inline void
6058 yygetLRActions (yyStateNum yystate, int yytoken,
6059 int* yyaction, const short int** yyconflicts)
6060 {
6061 int yyindex = yypact[yystate] + yytoken;
6062 if (yypact_value_is_default (yypact[yystate])
6063 || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
6064 {
6065 *yyaction = -yydefact[yystate];
6066 *yyconflicts = yyconfl;
6067 }
6068 else if (! yytable_value_is_error (yytable[yyindex]))
6069 {
6070 *yyaction = yytable[yyindex];
6071 *yyconflicts = yyconfl + yyconflp[yyindex];
6072 }
6073 else
6074 {
6075 *yyaction = 0;
6076 *yyconflicts = yyconfl + yyconflp[yyindex];
6077 }
6078 }
6079
6080 /** Compute post-reduction state.
6081 * \param yystate the current state
6082 * \param yysym the nonterminal to push on the stack
6083 */
6084 static inline yyStateNum
6085 yyLRgotoState (yyStateNum yystate, yySymbol yysym)
6086 {
6087 int yyr = yypgoto[yysym - YYNTOKENS] + yystate;
6088 if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
6089 return yytable[yyr];
6090 else
6091 return yydefgoto[yysym - YYNTOKENS];
6092 }
6093
6094 static inline yybool
6095 yyisShiftAction (int yyaction)
6096 {
6097 return 0 < yyaction;
6098 }
6099
6100 static inline yybool
6101 yyisErrorAction (int yyaction)
6102 {
6103 return yyaction == 0;
6104 }
6105
6106 /* GLRStates */
6107
6108 /** Return a fresh GLRStackItem in YYSTACKP. The item is an LR state
6109 * if YYISSTATE, and otherwise a semantic option. Callers should call
6110 * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
6111 * headroom. */
6112
6113 static inline yyGLRStackItem*
6114 yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
6115 {
6116 yyGLRStackItem* yynewItem = yystackp->yynextFree;
6117 yystackp->yyspaceLeft -= 1;
6118 yystackp->yynextFree += 1;
6119 yynewItem->yystate.yyisState = yyisState;
6120 return yynewItem;
6121 }
6122
6123 /** Add a new semantic action that will execute the action for rule
6124 * YYRULE on the semantic values in YYRHS to the list of
6125 * alternative actions for YYSTATE. Assumes that YYRHS comes from
6126 * stack #YYK of *YYSTACKP. */
6127 static void
6128 yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
6129 yyGLRState* yyrhs, yyRuleNum yyrule)
6130 {
6131 yySemanticOption* yynewOption =
6132 &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
6133 YYASSERT (!yynewOption->yyisState);
6134 yynewOption->yystate = yyrhs;
6135 yynewOption->yyrule = yyrule;
6136 if (yystackp->yytops.yylookaheadNeeds[yyk])
6137 {
6138 yynewOption->yyrawchar = yychar;
6139 yynewOption->yyval = yylval;
6140 }
6141 else
6142 yynewOption->yyrawchar = YYEMPTY;
6143 yynewOption->yynext = yystate->yysemantics.yyfirstVal;
6144 yystate->yysemantics.yyfirstVal = yynewOption;
6145
6146 YY_RESERVE_GLRSTACK (yystackp);
6147 }
6148
6149 /* GLRStacks */
6150
6151 /** Initialize YYSET to a singleton set containing an empty stack. */
6152 static yybool
6153 yyinitStateSet (yyGLRStateSet* yyset)
6154 {
6155 yyset->yysize = 1;
6156 yyset->yycapacity = 16;
6157 yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
6158 if (! yyset->yystates)
6159 return yyfalse;
6160 yyset->yystates[0] = YY_NULLPTR;
6161 yyset->yylookaheadNeeds =
6162 (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
6163 if (! yyset->yylookaheadNeeds)
6164 {
6165 YYFREE (yyset->yystates);
6166 return yyfalse;
6167 }
6168 return yytrue;
6169 }
6170
6171 static void yyfreeStateSet (yyGLRStateSet* yyset)
6172 {
6173 YYFREE (yyset->yystates);
6174 YYFREE (yyset->yylookaheadNeeds);
6175 }
6176
6177 /** Initialize *YYSTACKP to a single empty stack, with total maximum
6178 * capacity for all stacks of YYSIZE. */
6179 static yybool
6180 yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
6181 {
6182 yystackp->yyerrState = 0;
6183 yynerrs = 0;
6184 yystackp->yyspaceLeft = yysize;
6185 yystackp->yyitems =
6186 (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
6187 if (!yystackp->yyitems)
6188 return yyfalse;
6189 yystackp->yynextFree = yystackp->yyitems;
6190 yystackp->yysplitPoint = YY_NULLPTR;
6191 yystackp->yylastDeleted = YY_NULLPTR;
6192 return yyinitStateSet (&yystackp->yytops);
6193 }
6194
6195
6196 #if YYSTACKEXPANDABLE
6197 # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
6198 &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
6199
6200 /** If *YYSTACKP is expandable, extend it. WARNING: Pointers into the
6201 stack from outside should be considered invalid after this call.
6202 We always expand when there are 1 or fewer items left AFTER an
6203 allocation, so that we can avoid having external pointers exist
6204 across an allocation. */
6205 static void
6206 yyexpandGLRStack (yyGLRStack* yystackp)
6207 {
6208 yyGLRStackItem* yynewItems;
6209 yyGLRStackItem* yyp0, *yyp1;
6210 size_t yynewSize;
6211 size_t yyn;
6212 size_t yysize = yystackp->yynextFree - yystackp->yyitems;
6213 if (YYMAXDEPTH - YYHEADROOM < yysize)
6214 yyMemoryExhausted (yystackp);
6215 yynewSize = 2*yysize;
6216 if (YYMAXDEPTH < yynewSize)
6217 yynewSize = YYMAXDEPTH;
6218 yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
6219 if (! yynewItems)
6220 yyMemoryExhausted (yystackp);
6221 for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
6222 0 < yyn;
6223 yyn -= 1, yyp0 += 1, yyp1 += 1)
6224 {
6225 *yyp1 = *yyp0;
6226 if (*(yybool *) yyp0)
6227 {
6228 yyGLRState* yys0 = &yyp0->yystate;
6229 yyGLRState* yys1 = &yyp1->yystate;
6230 if (yys0->yypred != YY_NULLPTR)
6231 yys1->yypred =
6232 YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
6233 if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULLPTR)
6234 yys1->yysemantics.yyfirstVal =
6235 YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
6236 }
6237 else
6238 {
6239 yySemanticOption* yyv0 = &yyp0->yyoption;
6240 yySemanticOption* yyv1 = &yyp1->yyoption;
6241 if (yyv0->yystate != YY_NULLPTR)
6242 yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
6243 if (yyv0->yynext != YY_NULLPTR)
6244 yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
6245 }
6246 }
6247 if (yystackp->yysplitPoint != YY_NULLPTR)
6248 yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
6249 yystackp->yysplitPoint, yystate);
6250
6251 for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
6252 if (yystackp->yytops.yystates[yyn] != YY_NULLPTR)
6253 yystackp->yytops.yystates[yyn] =
6254 YYRELOC (yystackp->yyitems, yynewItems,
6255 yystackp->yytops.yystates[yyn], yystate);
6256 YYFREE (yystackp->yyitems);
6257 yystackp->yyitems = yynewItems;
6258 yystackp->yynextFree = yynewItems + yysize;
6259 yystackp->yyspaceLeft = yynewSize - yysize;
6260 }
6261 #endif
6262
6263 static void
6264 yyfreeGLRStack (yyGLRStack* yystackp)
6265 {
6266 YYFREE (yystackp->yyitems);
6267 yyfreeStateSet (&yystackp->yytops);
6268 }
6269
6270 /** Assuming that YYS is a GLRState somewhere on *YYSTACKP, update the
6271 * splitpoint of *YYSTACKP, if needed, so that it is at least as deep as
6272 * YYS. */
6273 static inline void
6274 yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
6275 {
6276 if (yystackp->yysplitPoint != YY_NULLPTR && yystackp->yysplitPoint > yys)
6277 yystackp->yysplitPoint = yys;
6278 }
6279
6280 /** Invalidate stack #YYK in *YYSTACKP. */
6281 static inline void
6282 yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
6283 {
6284 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6285 yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
6286 yystackp->yytops.yystates[yyk] = YY_NULLPTR;
6287 }
6288
6289 /** Undelete the last stack in *YYSTACKP that was marked as deleted. Can
6290 only be done once after a deletion, and only when all other stacks have
6291 been deleted. */
6292 static void
6293 yyundeleteLastStack (yyGLRStack* yystackp)
6294 {
6295 if (yystackp->yylastDeleted == YY_NULLPTR || yystackp->yytops.yysize != 0)
6296 return;
6297 yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
6298 yystackp->yytops.yysize = 1;
6299 YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
6300 yystackp->yylastDeleted = YY_NULLPTR;
6301 }
6302
6303 static inline void
6304 yyremoveDeletes (yyGLRStack* yystackp)
6305 {
6306 size_t yyi, yyj;
6307 yyi = yyj = 0;
6308 while (yyj < yystackp->yytops.yysize)
6309 {
6310 if (yystackp->yytops.yystates[yyi] == YY_NULLPTR)
6311 {
6312 if (yyi == yyj)
6313 {
6314 YYDPRINTF ((stderr, "Removing dead stacks.\n"));
6315 }
6316 yystackp->yytops.yysize -= 1;
6317 }
6318 else
6319 {
6320 yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
6321 /* In the current implementation, it's unnecessary to copy
6322 yystackp->yytops.yylookaheadNeeds[yyi] since, after
6323 yyremoveDeletes returns, the parser immediately either enters
6324 deterministic operation or shifts a token. However, it doesn't
6325 hurt, and the code might evolve to need it. */
6326 yystackp->yytops.yylookaheadNeeds[yyj] =
6327 yystackp->yytops.yylookaheadNeeds[yyi];
6328 if (yyj != yyi)
6329 {
6330 YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
6331 (unsigned long int) yyi, (unsigned long int) yyj));
6332 }
6333 yyj += 1;
6334 }
6335 yyi += 1;
6336 }
6337 }
6338
6339 /** Shift to a new state on stack #YYK of *YYSTACKP, corresponding to LR
6340 * state YYLRSTATE, at input position YYPOSN, with (resolved) semantic
6341 * value *YYVALP and source location *YYLOCP. */
6342 static inline void
6343 yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6344 size_t yyposn,
6345 YYSTYPE* yyvalp)
6346 {
6347 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6348
6349 yynewState->yylrState = yylrState;
6350 yynewState->yyposn = yyposn;
6351 yynewState->yyresolved = yytrue;
6352 yynewState->yypred = yystackp->yytops.yystates[yyk];
6353 yynewState->yysemantics.yysval = *yyvalp;
6354 yystackp->yytops.yystates[yyk] = yynewState;
6355
6356 YY_RESERVE_GLRSTACK (yystackp);
6357 }
6358
6359 /** Shift stack #YYK of *YYSTACKP, to a new state corresponding to LR
6360 * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
6361 * semantic value of YYRHS under the action for YYRULE. */
6362 static inline void
6363 yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
6364 size_t yyposn, yyGLRState* yyrhs, yyRuleNum yyrule)
6365 {
6366 yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
6367 YYASSERT (yynewState->yyisState);
6368
6369 yynewState->yylrState = yylrState;
6370 yynewState->yyposn = yyposn;
6371 yynewState->yyresolved = yyfalse;
6372 yynewState->yypred = yystackp->yytops.yystates[yyk];
6373 yynewState->yysemantics.yyfirstVal = YY_NULLPTR;
6374 yystackp->yytops.yystates[yyk] = yynewState;
6375
6376 /* Invokes YY_RESERVE_GLRSTACK. */
6377 yyaddDeferredAction (yystackp, yyk, yynewState, yyrhs, yyrule);
6378 }
6379
6380 #if !YYDEBUG
6381 # define YY_REDUCE_PRINT(Args)
6382 #else
6383 # define YY_REDUCE_PRINT(Args) \
6384 do { \
6385 if (yydebug) \
6386 yy_reduce_print Args; \
6387 } while (0)
6388
6389 /*----------------------------------------------------------------------.
6390 | Report that stack #YYK of *YYSTACKP is going to be reduced by YYRULE. |
6391 `----------------------------------------------------------------------*/
6392
6393 static inline void
6394 yy_reduce_print (int yynormal, yyGLRStackItem* yyvsp, size_t yyk,
6395 yyRuleNum yyrule, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6396 {
6397 int yynrhs = yyrhsLength (yyrule);
6398 int yyi;
6399 YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
6400 (unsigned long int) yyk, yyrule - 1,
6401 (unsigned long int) yyrline[yyrule]);
6402 if (! yynormal)
6403 yyfillin (yyvsp, 1, -yynrhs);
6404 /* The symbols being reduced. */
6405 for (yyi = 0; yyi < yynrhs; yyi++)
6406 {
6407 YYFPRINTF (stderr, " $%d = ", yyi + 1);
6408 yy_symbol_print (stderr,
6409 yystos[yyvsp[yyi - yynrhs + 1].yystate.yylrState],
6410 &yyvsp[yyi - yynrhs + 1].yystate.yysemantics.yysval
6411 , P, tokens, index);
6412 if (!yyvsp[yyi - yynrhs + 1].yystate.yyresolved)
6413 YYFPRINTF (stderr, " (unresolved)");
6414 YYFPRINTF (stderr, "\n");
6415 }
6416 }
6417 #endif
6418
6419 /** Pop the symbols consumed by reduction #YYRULE from the top of stack
6420 * #YYK of *YYSTACKP, and perform the appropriate semantic action on their
6421 * semantic values. Assumes that all ambiguities in semantic values
6422 * have been previously resolved. Set *YYVALP to the resulting value,
6423 * and *YYLOCP to the computed location (if any). Return value is as
6424 * for userAction. */
6425 static inline YYRESULTTAG
6426 yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6427 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6428 {
6429 int yynrhs = yyrhsLength (yyrule);
6430
6431 if (yystackp->yysplitPoint == YY_NULLPTR)
6432 {
6433 /* Standard special case: single stack. */
6434 yyGLRStackItem* yyrhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
6435 YYASSERT (yyk == 0);
6436 yystackp->yynextFree -= yynrhs;
6437 yystackp->yyspaceLeft += yynrhs;
6438 yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
6439 YY_REDUCE_PRINT ((1, yyrhs, yyk, yyrule, P, tokens, index));
6440 return yyuserAction (yyrule, yynrhs, yyrhs, yystackp,
6441 yyvalp, P, tokens, index);
6442 }
6443 else
6444 {
6445 int yyi;
6446 yyGLRState* yys;
6447 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6448 yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
6449 = yystackp->yytops.yystates[yyk];
6450 for (yyi = 0; yyi < yynrhs; yyi += 1)
6451 {
6452 yys = yys->yypred;
6453 YYASSERT (yys);
6454 }
6455 yyupdateSplit (yystackp, yys);
6456 yystackp->yytops.yystates[yyk] = yys;
6457 YY_REDUCE_PRINT ((0, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1, yyk, yyrule, P, tokens, index));
6458 return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6459 yystackp, yyvalp, P, tokens, index);
6460 }
6461 }
6462
6463 /** Pop items off stack #YYK of *YYSTACKP according to grammar rule YYRULE,
6464 * and push back on the resulting nonterminal symbol. Perform the
6465 * semantic action associated with YYRULE and store its value with the
6466 * newly pushed state, if YYFORCEEVAL or if *YYSTACKP is currently
6467 * unambiguous. Otherwise, store the deferred semantic action with
6468 * the new state. If the new state would have an identical input
6469 * position, LR state, and predecessor to an existing state on the stack,
6470 * it is identified with that existing state, eliminating stack #YYK from
6471 * *YYSTACKP. In this case, the semantic value is
6472 * added to the options for the existing state's semantic value.
6473 */
6474 static inline YYRESULTTAG
6475 yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
6476 yybool yyforceEval, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6477 {
6478 size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
6479
6480 if (yyforceEval || yystackp->yysplitPoint == YY_NULLPTR)
6481 {
6482 YYSTYPE yysval;
6483
6484 YYRESULTTAG yyflag = yydoAction (yystackp, yyk, yyrule, &yysval, P, tokens, index);
6485 if (yyflag == yyerr && yystackp->yysplitPoint != YY_NULLPTR)
6486 {
6487 YYDPRINTF ((stderr, "Parse on stack %lu rejected by rule #%d.\n",
6488 (unsigned long int) yyk, yyrule - 1));
6489 }
6490 if (yyflag != yyok)
6491 return yyflag;
6492 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
6493 yyglrShift (yystackp, yyk,
6494 yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
6495 yylhsNonterm (yyrule)),
6496 yyposn, &yysval);
6497 }
6498 else
6499 {
6500 size_t yyi;
6501 int yyn;
6502 yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
6503 yyStateNum yynewLRState;
6504
6505 for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
6506 0 < yyn; yyn -= 1)
6507 {
6508 yys = yys->yypred;
6509 YYASSERT (yys);
6510 }
6511 yyupdateSplit (yystackp, yys);
6512 yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
6513 YYDPRINTF ((stderr,
6514 "Reduced stack %lu by rule #%d; action deferred. "
6515 "Now in state %d.\n",
6516 (unsigned long int) yyk, yyrule - 1, yynewLRState));
6517 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
6518 if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULLPTR)
6519 {
6520 yyGLRState *yysplit = yystackp->yysplitPoint;
6521 yyGLRState *yyp = yystackp->yytops.yystates[yyi];
6522 while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
6523 {
6524 if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
6525 {
6526 yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
6527 yymarkStackDeleted (yystackp, yyk);
6528 YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
6529 (unsigned long int) yyk,
6530 (unsigned long int) yyi));
6531 return yyok;
6532 }
6533 yyp = yyp->yypred;
6534 }
6535 }
6536 yystackp->yytops.yystates[yyk] = yys;
6537 yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
6538 }
6539 return yyok;
6540 }
6541
6542 static size_t
6543 yysplitStack (yyGLRStack* yystackp, size_t yyk)
6544 {
6545 if (yystackp->yysplitPoint == YY_NULLPTR)
6546 {
6547 YYASSERT (yyk == 0);
6548 yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
6549 }
6550 if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
6551 {
6552 yyGLRState** yynewStates;
6553 yybool* yynewLookaheadNeeds;
6554
6555 yynewStates = YY_NULLPTR;
6556
6557 if (yystackp->yytops.yycapacity
6558 > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
6559 yyMemoryExhausted (yystackp);
6560 yystackp->yytops.yycapacity *= 2;
6561
6562 yynewStates =
6563 (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
6564 (yystackp->yytops.yycapacity
6565 * sizeof yynewStates[0]));
6566 if (yynewStates == YY_NULLPTR)
6567 yyMemoryExhausted (yystackp);
6568 yystackp->yytops.yystates = yynewStates;
6569
6570 yynewLookaheadNeeds =
6571 (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
6572 (yystackp->yytops.yycapacity
6573 * sizeof yynewLookaheadNeeds[0]));
6574 if (yynewLookaheadNeeds == YY_NULLPTR)
6575 yyMemoryExhausted (yystackp);
6576 yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
6577 }
6578 yystackp->yytops.yystates[yystackp->yytops.yysize]
6579 = yystackp->yytops.yystates[yyk];
6580 yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
6581 = yystackp->yytops.yylookaheadNeeds[yyk];
6582 yystackp->yytops.yysize += 1;
6583 return yystackp->yytops.yysize-1;
6584 }
6585
6586 /** True iff YYY0 and YYY1 represent identical options at the top level.
6587 * That is, they represent the same rule applied to RHS symbols
6588 * that produce the same terminal symbols. */
6589 static yybool
6590 yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
6591 {
6592 if (yyy0->yyrule == yyy1->yyrule)
6593 {
6594 yyGLRState *yys0, *yys1;
6595 int yyn;
6596 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6597 yyn = yyrhsLength (yyy0->yyrule);
6598 yyn > 0;
6599 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6600 if (yys0->yyposn != yys1->yyposn)
6601 return yyfalse;
6602 return yytrue;
6603 }
6604 else
6605 return yyfalse;
6606 }
6607
6608 /** Assuming identicalOptions (YYY0,YYY1), destructively merge the
6609 * alternative semantic values for the RHS-symbols of YYY1 and YYY0. */
6610 static void
6611 yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
6612 {
6613 yyGLRState *yys0, *yys1;
6614 int yyn;
6615 for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
6616 yyn = yyrhsLength (yyy0->yyrule);
6617 yyn > 0;
6618 yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
6619 {
6620 if (yys0 == yys1)
6621 break;
6622 else if (yys0->yyresolved)
6623 {
6624 yys1->yyresolved = yytrue;
6625 yys1->yysemantics.yysval = yys0->yysemantics.yysval;
6626 }
6627 else if (yys1->yyresolved)
6628 {
6629 yys0->yyresolved = yytrue;
6630 yys0->yysemantics.yysval = yys1->yysemantics.yysval;
6631 }
6632 else
6633 {
6634 yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
6635 yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
6636 while (yytrue)
6637 {
6638 if (yyz1 == *yyz0p || yyz1 == YY_NULLPTR)
6639 break;
6640 else if (*yyz0p == YY_NULLPTR)
6641 {
6642 *yyz0p = yyz1;
6643 break;
6644 }
6645 else if (*yyz0p < yyz1)
6646 {
6647 yySemanticOption* yyz = *yyz0p;
6648 *yyz0p = yyz1;
6649 yyz1 = yyz1->yynext;
6650 (*yyz0p)->yynext = yyz;
6651 }
6652 yyz0p = &(*yyz0p)->yynext;
6653 }
6654 yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
6655 }
6656 }
6657 }
6658
6659 /** Y0 and Y1 represent two possible actions to take in a given
6660 * parsing state; return 0 if no combination is possible,
6661 * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
6662 static int
6663 yypreference (yySemanticOption* y0, yySemanticOption* y1)
6664 {
6665 yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
6666 int p0 = yydprec[r0], p1 = yydprec[r1];
6667
6668 if (p0 == p1)
6669 {
6670 if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
6671 return 0;
6672 else
6673 return 1;
6674 }
6675 if (p0 == 0 || p1 == 0)
6676 return 0;
6677 if (p0 < p1)
6678 return 3;
6679 if (p1 < p0)
6680 return 2;
6681 return 0;
6682 }
6683
6684 static YYRESULTTAG yyresolveValue (yyGLRState* yys,
6685 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
6686
6687
6688 /** Resolve the previous YYN states starting at and including state YYS
6689 * on *YYSTACKP. If result != yyok, some states may have been left
6690 * unresolved possibly with empty semantic option chains. Regardless
6691 * of whether result = yyok, each state has been left with consistent
6692 * data so that yydestroyGLRState can be invoked if necessary. */
6693 static YYRESULTTAG
6694 yyresolveStates (yyGLRState* yys, int yyn,
6695 yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6696 {
6697 if (0 < yyn)
6698 {
6699 YYASSERT (yys->yypred);
6700 YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, P, tokens, index));
6701 if (! yys->yyresolved)
6702 YYCHK (yyresolveValue (yys, yystackp, P, tokens, index));
6703 }
6704 return yyok;
6705 }
6706
6707 /** Resolve the states for the RHS of YYOPT on *YYSTACKP, perform its
6708 * user action, and return the semantic value and location in *YYVALP
6709 * and *YYLOCP. Regardless of whether result = yyok, all RHS states
6710 * have been destroyed (assuming the user action destroys all RHS
6711 * semantic values if invoked). */
6712 static YYRESULTTAG
6713 yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
6714 YYSTYPE* yyvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6715 {
6716 yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
6717 int yynrhs = yyrhsLength (yyopt->yyrule);
6718 YYRESULTTAG yyflag =
6719 yyresolveStates (yyopt->yystate, yynrhs, yystackp, P, tokens, index);
6720 if (yyflag != yyok)
6721 {
6722 yyGLRState *yys;
6723 for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
6724 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
6725 return yyflag;
6726 }
6727
6728 yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
6729 {
6730 int yychar_current = yychar;
6731 YYSTYPE yylval_current = yylval;
6732 yychar = yyopt->yyrawchar;
6733 yylval = yyopt->yyval;
6734 yyflag = yyuserAction (yyopt->yyrule, yynrhs,
6735 yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
6736 yystackp, yyvalp, P, tokens, index);
6737 yychar = yychar_current;
6738 yylval = yylval_current;
6739 }
6740 return yyflag;
6741 }
6742
6743 #if YYDEBUG
6744 static void
6745 yyreportTree (yySemanticOption* yyx, int yyindent)
6746 {
6747 int yynrhs = yyrhsLength (yyx->yyrule);
6748 int yyi;
6749 yyGLRState* yys;
6750 yyGLRState* yystates[1 + YYMAXRHS];
6751 yyGLRState yyleftmost_state;
6752
6753 for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
6754 yystates[yyi] = yys;
6755 if (yys == YY_NULLPTR)
6756 {
6757 yyleftmost_state.yyposn = 0;
6758 yystates[0] = &yyleftmost_state;
6759 }
6760 else
6761 yystates[0] = yys;
6762
6763 if (yyx->yystate->yyposn < yys->yyposn + 1)
6764 YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
6765 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6766 yyx->yyrule - 1);
6767 else
6768 YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
6769 yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
6770 yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
6771 (unsigned long int) yyx->yystate->yyposn);
6772 for (yyi = 1; yyi <= yynrhs; yyi += 1)
6773 {
6774 if (yystates[yyi]->yyresolved)
6775 {
6776 if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
6777 YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
6778 yytokenName (yystos[yystates[yyi]->yylrState]));
6779 else
6780 YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
6781 yytokenName (yystos[yystates[yyi]->yylrState]),
6782 (unsigned long int) (yystates[yyi-1]->yyposn + 1),
6783 (unsigned long int) yystates[yyi]->yyposn);
6784 }
6785 else
6786 yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
6787 }
6788 }
6789 #endif
6790
6791 static YYRESULTTAG
6792 yyreportAmbiguity (yySemanticOption* yyx0,
6793 yySemanticOption* yyx1, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6794 {
6795 YYUSE (yyx0);
6796 YYUSE (yyx1);
6797
6798 #if YYDEBUG
6799 YYFPRINTF (stderr, "Ambiguity detected.\n");
6800 YYFPRINTF (stderr, "Option 1,\n");
6801 yyreportTree (yyx0, 2);
6802 YYFPRINTF (stderr, "\nOption 2,\n");
6803 yyreportTree (yyx1, 2);
6804 YYFPRINTF (stderr, "\n");
6805 #endif
6806
6807 yyerror (P, tokens, index, YY_("syntax is ambiguous"));
6808 return yyabort;
6809 }
6810
6811 /** Resolve the ambiguity represented in state YYS in *YYSTACKP,
6812 * perform the indicated actions, and set the semantic value of YYS.
6813 * If result != yyok, the chain of semantic options in YYS has been
6814 * cleared instead or it has been left unmodified except that
6815 * redundant options may have been removed. Regardless of whether
6816 * result = yyok, YYS has been left with consistent data so that
6817 * yydestroyGLRState can be invoked if necessary. */
6818 static YYRESULTTAG
6819 yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6820 {
6821 yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
6822 yySemanticOption* yybest = yyoptionList;
6823 yySemanticOption** yypp;
6824 yybool yymerge = yyfalse;
6825 YYSTYPE yysval;
6826 YYRESULTTAG yyflag;
6827
6828 for (yypp = &yyoptionList->yynext; *yypp != YY_NULLPTR; )
6829 {
6830 yySemanticOption* yyp = *yypp;
6831
6832 if (yyidenticalOptions (yybest, yyp))
6833 {
6834 yymergeOptionSets (yybest, yyp);
6835 *yypp = yyp->yynext;
6836 }
6837 else
6838 {
6839 switch (yypreference (yybest, yyp))
6840 {
6841 case 0:
6842 return yyreportAmbiguity (yybest, yyp, P, tokens, index);
6843 break;
6844 case 1:
6845 yymerge = yytrue;
6846 break;
6847 case 2:
6848 break;
6849 case 3:
6850 yybest = yyp;
6851 yymerge = yyfalse;
6852 break;
6853 default:
6854 /* This cannot happen so it is not worth a YYASSERT (yyfalse),
6855 but some compilers complain if the default case is
6856 omitted. */
6857 break;
6858 }
6859 yypp = &yyp->yynext;
6860 }
6861 }
6862
6863 if (yymerge)
6864 {
6865 yySemanticOption* yyp;
6866 int yyprec = yydprec[yybest->yyrule];
6867 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6868 if (yyflag == yyok)
6869 for (yyp = yybest->yynext; yyp != YY_NULLPTR; yyp = yyp->yynext)
6870 {
6871 if (yyprec == yydprec[yyp->yyrule])
6872 {
6873 YYSTYPE yysval_other;
6874 yyflag = yyresolveAction (yyp, yystackp, &yysval_other, P, tokens, index);
6875 if (yyflag != yyok)
6876 {
6877 yydestruct ("Cleanup: discarding incompletely merged value for",
6878 yystos[yys->yylrState],
6879 &yysval, P, tokens, index);
6880 break;
6881 }
6882 yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
6883 }
6884 }
6885 }
6886 else
6887 yyflag = yyresolveAction (yybest, yystackp, &yysval, P, tokens, index);
6888
6889 if (yyflag == yyok)
6890 {
6891 yys->yyresolved = yytrue;
6892 yys->yysemantics.yysval = yysval;
6893 }
6894 else
6895 yys->yysemantics.yyfirstVal = YY_NULLPTR;
6896 return yyflag;
6897 }
6898
6899 static YYRESULTTAG
6900 yyresolveStack (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6901 {
6902 if (yystackp->yysplitPoint != YY_NULLPTR)
6903 {
6904 yyGLRState* yys;
6905 int yyn;
6906
6907 for (yyn = 0, yys = yystackp->yytops.yystates[0];
6908 yys != yystackp->yysplitPoint;
6909 yys = yys->yypred, yyn += 1)
6910 continue;
6911 YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
6912 , P, tokens, index));
6913 }
6914 return yyok;
6915 }
6916
6917 static void
6918 yycompressStack (yyGLRStack* yystackp)
6919 {
6920 yyGLRState* yyp, *yyq, *yyr;
6921
6922 if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULLPTR)
6923 return;
6924
6925 for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULLPTR;
6926 yyp != yystackp->yysplitPoint;
6927 yyr = yyp, yyp = yyq, yyq = yyp->yypred)
6928 yyp->yypred = yyr;
6929
6930 yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
6931 yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
6932 yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
6933 yystackp->yysplitPoint = YY_NULLPTR;
6934 yystackp->yylastDeleted = YY_NULLPTR;
6935
6936 while (yyr != YY_NULLPTR)
6937 {
6938 yystackp->yynextFree->yystate = *yyr;
6939 yyr = yyr->yypred;
6940 yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
6941 yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
6942 yystackp->yynextFree += 1;
6943 yystackp->yyspaceLeft -= 1;
6944 }
6945 }
6946
6947 static YYRESULTTAG
6948 yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
6949 size_t yyposn, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
6950 {
6951 while (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
6952 {
6953 yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
6954 YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
6955 (unsigned long int) yyk, yystate));
6956
6957 YYASSERT (yystate != YYFINAL);
6958
6959 if (yyisDefaultedState (yystate))
6960 {
6961 YYRESULTTAG yyflag;
6962 yyRuleNum yyrule = yydefaultAction (yystate);
6963 if (yyrule == 0)
6964 {
6965 YYDPRINTF ((stderr, "Stack %lu dies.\n",
6966 (unsigned long int) yyk));
6967 yymarkStackDeleted (yystackp, yyk);
6968 return yyok;
6969 }
6970 yyflag = yyglrReduce (yystackp, yyk, yyrule, yyimmediate[yyrule], P, tokens, index);
6971 if (yyflag == yyerr)
6972 {
6973 YYDPRINTF ((stderr,
6974 "Stack %lu dies "
6975 "(predicate failure or explicit user error).\n",
6976 (unsigned long int) yyk));
6977 yymarkStackDeleted (yystackp, yyk);
6978 return yyok;
6979 }
6980 if (yyflag != yyok)
6981 return yyflag;
6982 }
6983 else
6984 {
6985 yySymbol yytoken;
6986 int yyaction;
6987 const short int* yyconflicts;
6988
6989 yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
6990 if (yychar == YYEMPTY)
6991 {
6992 YYDPRINTF ((stderr, "Reading a token: "));
6993 yychar = yylex (&yylval, P, tokens, index);
6994 }
6995
6996 if (yychar <= YYEOF)
6997 {
6998 yychar = yytoken = YYEOF;
6999 YYDPRINTF ((stderr, "Now at end of input.\n"));
7000 }
7001 else
7002 {
7003 yytoken = YYTRANSLATE (yychar);
7004 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7005 }
7006
7007 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7008
7009 while (*yyconflicts != 0)
7010 {
7011 YYRESULTTAG yyflag;
7012 size_t yynewStack = yysplitStack (yystackp, yyk);
7013 YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
7014 (unsigned long int) yynewStack,
7015 (unsigned long int) yyk));
7016 yyflag = yyglrReduce (yystackp, yynewStack,
7017 *yyconflicts,
7018 yyimmediate[*yyconflicts], P, tokens, index);
7019 if (yyflag == yyok)
7020 YYCHK (yyprocessOneStack (yystackp, yynewStack,
7021 yyposn, P, tokens, index));
7022 else if (yyflag == yyerr)
7023 {
7024 YYDPRINTF ((stderr, "Stack %lu dies.\n",
7025 (unsigned long int) yynewStack));
7026 yymarkStackDeleted (yystackp, yynewStack);
7027 }
7028 else
7029 return yyflag;
7030 yyconflicts += 1;
7031 }
7032
7033 if (yyisShiftAction (yyaction))
7034 break;
7035 else if (yyisErrorAction (yyaction))
7036 {
7037 YYDPRINTF ((stderr, "Stack %lu dies.\n",
7038 (unsigned long int) yyk));
7039 yymarkStackDeleted (yystackp, yyk);
7040 break;
7041 }
7042 else
7043 {
7044 YYRESULTTAG yyflag = yyglrReduce (yystackp, yyk, -yyaction,
7045 yyimmediate[-yyaction], P, tokens, index);
7046 if (yyflag == yyerr)
7047 {
7048 YYDPRINTF ((stderr,
7049 "Stack %lu dies "
7050 "(predicate failure or explicit user error).\n",
7051 (unsigned long int) yyk));
7052 yymarkStackDeleted (yystackp, yyk);
7053 break;
7054 }
7055 else if (yyflag != yyok)
7056 return yyflag;
7057 }
7058 }
7059 }
7060 return yyok;
7061 }
7062
7063 static void
7064 yyreportSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7065 {
7066 if (yystackp->yyerrState != 0)
7067 return;
7068 #if ! YYERROR_VERBOSE
7069 yyerror (P, tokens, index, YY_("syntax error"));
7070 #else
7071 {
7072 yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7073 size_t yysize0 = yytnamerr (YY_NULLPTR, yytokenName (yytoken));
7074 size_t yysize = yysize0;
7075 yybool yysize_overflow = yyfalse;
7076 char* yymsg = YY_NULLPTR;
7077 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
7078 /* Internationalized format string. */
7079 const char *yyformat = YY_NULLPTR;
7080 /* Arguments of yyformat. */
7081 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
7082 /* Number of reported tokens (one for the "unexpected", one per
7083 "expected"). */
7084 int yycount = 0;
7085
7086 /* There are many possibilities here to consider:
7087 - If this state is a consistent state with a default action, then
7088 the only way this function was invoked is if the default action
7089 is an error action. In that case, don't check for expected
7090 tokens because there are none.
7091 - The only way there can be no lookahead present (in yychar) is if
7092 this state is a consistent state with a default action. Thus,
7093 detecting the absence of a lookahead is sufficient to determine
7094 that there is no unexpected or expected token to report. In that
7095 case, just report a simple "syntax error".
7096 - Don't assume there isn't a lookahead just because this state is a
7097 consistent state with a default action. There might have been a
7098 previous inconsistent state, consistent state with a non-default
7099 action, or user semantic action that manipulated yychar.
7100 - Of course, the expected token list depends on states to have
7101 correct lookahead information, and it depends on the parser not
7102 to perform extra reductions after fetching a lookahead from the
7103 scanner and before detecting a syntax error. Thus, state merging
7104 (from LALR or IELR) and default reductions corrupt the expected
7105 token list. However, the list is correct for canonical LR with
7106 one exception: it will still contain any token that will not be
7107 accepted due to an error action in a later state.
7108 */
7109 if (yytoken != YYEMPTY)
7110 {
7111 int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
7112 yyarg[yycount++] = yytokenName (yytoken);
7113 if (!yypact_value_is_default (yyn))
7114 {
7115 /* Start YYX at -YYN if negative to avoid negative indexes in
7116 YYCHECK. In other words, skip the first -YYN actions for this
7117 state because they are default actions. */
7118 int yyxbegin = yyn < 0 ? -yyn : 0;
7119 /* Stay within bounds of both yycheck and yytname. */
7120 int yychecklim = YYLAST - yyn + 1;
7121 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
7122 int yyx;
7123 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
7124 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
7125 && !yytable_value_is_error (yytable[yyx + yyn]))
7126 {
7127 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
7128 {
7129 yycount = 1;
7130 yysize = yysize0;
7131 break;
7132 }
7133 yyarg[yycount++] = yytokenName (yyx);
7134 {
7135 size_t yysz = yysize + yytnamerr (YY_NULLPTR, yytokenName (yyx));
7136 yysize_overflow |= yysz < yysize;
7137 yysize = yysz;
7138 }
7139 }
7140 }
7141 }
7142
7143 switch (yycount)
7144 {
7145 #define YYCASE_(N, S) \
7146 case N: \
7147 yyformat = S; \
7148 break
7149 YYCASE_(0, YY_("syntax error"));
7150 YYCASE_(1, YY_("syntax error, unexpected %s"));
7151 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
7152 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
7153 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
7154 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
7155 #undef YYCASE_
7156 }
7157
7158 {
7159 size_t yysz = yysize + strlen (yyformat);
7160 yysize_overflow |= yysz < yysize;
7161 yysize = yysz;
7162 }
7163
7164 if (!yysize_overflow)
7165 yymsg = (char *) YYMALLOC (yysize);
7166
7167 if (yymsg)
7168 {
7169 char *yyp = yymsg;
7170 int yyi = 0;
7171 while ((*yyp = *yyformat))
7172 {
7173 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
7174 {
7175 yyp += yytnamerr (yyp, yyarg[yyi++]);
7176 yyformat += 2;
7177 }
7178 else
7179 {
7180 yyp++;
7181 yyformat++;
7182 }
7183 }
7184 yyerror (P, tokens, index, yymsg);
7185 YYFREE (yymsg);
7186 }
7187 else
7188 {
7189 yyerror (P, tokens, index, YY_("syntax error"));
7190 yyMemoryExhausted (yystackp);
7191 }
7192 }
7193 #endif /* YYERROR_VERBOSE */
7194 yynerrs += 1;
7195 }
7196
7197 /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
7198 yylval, and yylloc are the syntactic category, semantic value, and location
7199 of the lookahead. */
7200 static void
7201 yyrecoverSyntaxError (yyGLRStack* yystackp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7202 {
7203 size_t yyk;
7204 int yyj;
7205
7206 if (yystackp->yyerrState == 3)
7207 /* We just shifted the error token and (perhaps) took some
7208 reductions. Skip tokens until we can proceed. */
7209 while (yytrue)
7210 {
7211 yySymbol yytoken;
7212 if (yychar == YYEOF)
7213 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7214 if (yychar != YYEMPTY)
7215 {
7216 yytoken = YYTRANSLATE (yychar);
7217 yydestruct ("Error: discarding",
7218 yytoken, &yylval, P, tokens, index);
7219 }
7220 YYDPRINTF ((stderr, "Reading a token: "));
7221 yychar = yylex (&yylval, P, tokens, index);
7222 if (yychar <= YYEOF)
7223 {
7224 yychar = yytoken = YYEOF;
7225 YYDPRINTF ((stderr, "Now at end of input.\n"));
7226 }
7227 else
7228 {
7229 yytoken = YYTRANSLATE (yychar);
7230 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7231 }
7232 yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
7233 if (yypact_value_is_default (yyj))
7234 return;
7235 yyj += yytoken;
7236 if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
7237 {
7238 if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
7239 return;
7240 }
7241 else if (! yytable_value_is_error (yytable[yyj]))
7242 return;
7243 }
7244
7245 /* Reduce to one stack. */
7246 for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
7247 if (yystackp->yytops.yystates[yyk] != YY_NULLPTR)
7248 break;
7249 if (yyk >= yystackp->yytops.yysize)
7250 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7251 for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
7252 yymarkStackDeleted (yystackp, yyk);
7253 yyremoveDeletes (yystackp);
7254 yycompressStack (yystackp);
7255
7256 /* Now pop stack until we find a state that shifts the error token. */
7257 yystackp->yyerrState = 3;
7258 while (yystackp->yytops.yystates[0] != YY_NULLPTR)
7259 {
7260 yyGLRState *yys = yystackp->yytops.yystates[0];
7261 yyj = yypact[yys->yylrState];
7262 if (! yypact_value_is_default (yyj))
7263 {
7264 yyj += YYTERROR;
7265 if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
7266 && yyisShiftAction (yytable[yyj]))
7267 {
7268 /* Shift the error token. */
7269 YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
7270 &yylval, &yyerrloc);
7271 yyglrShift (yystackp, 0, yytable[yyj],
7272 yys->yyposn, &yylval);
7273 yys = yystackp->yytops.yystates[0];
7274 break;
7275 }
7276 }
7277 if (yys->yypred != YY_NULLPTR)
7278 yydestroyGLRState ("Error: popping", yys, P, tokens, index);
7279 yystackp->yytops.yystates[0] = yys->yypred;
7280 yystackp->yynextFree -= 1;
7281 yystackp->yyspaceLeft += 1;
7282 }
7283 if (yystackp->yytops.yystates[0] == YY_NULLPTR)
7284 yyFail (yystackp, P, tokens, index, YY_NULLPTR);
7285 }
7286
7287 #define YYCHK1(YYE) \
7288 do { \
7289 switch (YYE) { \
7290 case yyok: \
7291 break; \
7292 case yyabort: \
7293 goto yyabortlab; \
7294 case yyaccept: \
7295 goto yyacceptlab; \
7296 case yyerr: \
7297 goto yyuser_error; \
7298 default: \
7299 goto yybuglab; \
7300 } \
7301 } while (0)
7302
7303 /*----------.
7304 | yyparse. |
7305 `----------*/
7306
7307 int
7308 yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7309 {
7310 int yyresult;
7311 yyGLRStack yystack;
7312 yyGLRStack* const yystackp = &yystack;
7313 size_t yyposn;
7314
7315 YYDPRINTF ((stderr, "Starting parse\n"));
7316
7317 yychar = YYEMPTY;
7318 yylval = yyval_default;
7319
7320 /* User initialization code. */
7321 #line 144 "src/parser_proc_grammar.y" /* glr.c:2270 */
7322 {
7323 }
7324
7325 #line 7326 "src/parser_proc.c" /* glr.c:2270 */
7326
7327 if (! yyinitGLRStack (yystackp, YYINITDEPTH))
7328 goto yyexhaustedlab;
7329 switch (YYSETJMP (yystack.yyexception_buffer))
7330 {
7331 case 0: break;
7332 case 1: goto yyabortlab;
7333 case 2: goto yyexhaustedlab;
7334 default: goto yybuglab;
7335 }
7336 yyglrShift (&yystack, 0, 0, 0, &yylval);
7337 yyposn = 0;
7338
7339 while (yytrue)
7340 {
7341 /* For efficiency, we have two loops, the first of which is
7342 specialized to deterministic operation (single stack, no
7343 potential ambiguity). */
7344 /* Standard mode */
7345 while (yytrue)
7346 {
7347 yyRuleNum yyrule;
7348 int yyaction;
7349 const short int* yyconflicts;
7350
7351 yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
7352 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
7353 if (yystate == YYFINAL)
7354 goto yyacceptlab;
7355 if (yyisDefaultedState (yystate))
7356 {
7357 yyrule = yydefaultAction (yystate);
7358 if (yyrule == 0)
7359 {
7360
7361 yyreportSyntaxError (&yystack, P, tokens, index);
7362 goto yyuser_error;
7363 }
7364 YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, P, tokens, index));
7365 }
7366 else
7367 {
7368 yySymbol yytoken;
7369 if (yychar == YYEMPTY)
7370 {
7371 YYDPRINTF ((stderr, "Reading a token: "));
7372 yychar = yylex (&yylval, P, tokens, index);
7373 }
7374
7375 if (yychar <= YYEOF)
7376 {
7377 yychar = yytoken = YYEOF;
7378 YYDPRINTF ((stderr, "Now at end of input.\n"));
7379 }
7380 else
7381 {
7382 yytoken = YYTRANSLATE (yychar);
7383 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7384 }
7385
7386 yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
7387 if (*yyconflicts != 0)
7388 break;
7389 if (yyisShiftAction (yyaction))
7390 {
7391 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7392 yychar = YYEMPTY;
7393 yyposn += 1;
7394 yyglrShift (&yystack, 0, yyaction, yyposn, &yylval);
7395 if (0 < yystack.yyerrState)
7396 yystack.yyerrState -= 1;
7397 }
7398 else if (yyisErrorAction (yyaction))
7399 {
7400
7401 yyreportSyntaxError (&yystack, P, tokens, index);
7402 goto yyuser_error;
7403 }
7404 else
7405 YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, P, tokens, index));
7406 }
7407 }
7408
7409 while (yytrue)
7410 {
7411 yySymbol yytoken_to_shift;
7412 size_t yys;
7413
7414 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7415 yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
7416
7417 /* yyprocessOneStack returns one of three things:
7418
7419 - An error flag. If the caller is yyprocessOneStack, it
7420 immediately returns as well. When the caller is finally
7421 yyparse, it jumps to an error label via YYCHK1.
7422
7423 - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
7424 (&yystack, yys), which sets the top state of yys to NULL. Thus,
7425 yyparse's following invocation of yyremoveDeletes will remove
7426 the stack.
7427
7428 - yyok, when ready to shift a token.
7429
7430 Except in the first case, yyparse will invoke yyremoveDeletes and
7431 then shift the next token onto all remaining stacks. This
7432 synchronization of the shift (that is, after all preceding
7433 reductions on all stacks) helps prevent double destructor calls
7434 on yylval in the event of memory exhaustion. */
7435
7436 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7437 YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, P, tokens, index));
7438 yyremoveDeletes (&yystack);
7439 if (yystack.yytops.yysize == 0)
7440 {
7441 yyundeleteLastStack (&yystack);
7442 if (yystack.yytops.yysize == 0)
7443 yyFail (&yystack, P, tokens, index, YY_("syntax error"));
7444 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7445 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7446
7447 yyreportSyntaxError (&yystack, P, tokens, index);
7448 goto yyuser_error;
7449 }
7450
7451 /* If any yyglrShift call fails, it will fail after shifting. Thus,
7452 a copy of yylval will already be on stack 0 in the event of a
7453 failure in the following loop. Thus, yychar is set to YYEMPTY
7454 before the loop to make sure the user destructor for yylval isn't
7455 called twice. */
7456 yytoken_to_shift = YYTRANSLATE (yychar);
7457 yychar = YYEMPTY;
7458 yyposn += 1;
7459 for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
7460 {
7461 int yyaction;
7462 const short int* yyconflicts;
7463 yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
7464 yygetLRActions (yystate, yytoken_to_shift, &yyaction,
7465 &yyconflicts);
7466 /* Note that yyconflicts were handled by yyprocessOneStack. */
7467 YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
7468 YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
7469 yyglrShift (&yystack, yys, yyaction, yyposn,
7470 &yylval);
7471 YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
7472 (unsigned long int) yys,
7473 yystack.yytops.yystates[yys]->yylrState));
7474 }
7475
7476 if (yystack.yytops.yysize == 1)
7477 {
7478 YYCHK1 (yyresolveStack (&yystack, P, tokens, index));
7479 YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
7480 yycompressStack (&yystack);
7481 break;
7482 }
7483 }
7484 continue;
7485 yyuser_error:
7486 yyrecoverSyntaxError (&yystack, P, tokens, index);
7487 yyposn = yystack.yytops.yystates[0]->yyposn;
7488 }
7489
7490 yyacceptlab:
7491 yyresult = 0;
7492 goto yyreturn;
7493
7494 yybuglab:
7495 YYASSERT (yyfalse);
7496 goto yyabortlab;
7497
7498 yyabortlab:
7499 yyresult = 1;
7500 goto yyreturn;
7501
7502 yyexhaustedlab:
7503 yyerror (P, tokens, index, YY_("memory exhausted"));
7504 yyresult = 2;
7505 goto yyreturn;
7506
7507 yyreturn:
7508 if (yychar != YYEMPTY)
7509 yydestruct ("Cleanup: discarding lookahead",
7510 YYTRANSLATE (yychar), &yylval, P, tokens, index);
7511
7512 /* If the stack is well-formed, pop the stack until it is empty,
7513 destroying its entries as we go. But free the stack regardless
7514 of whether it is well-formed. */
7515 if (yystack.yyitems)
7516 {
7517 yyGLRState** yystates = yystack.yytops.yystates;
7518 if (yystates)
7519 {
7520 size_t yysize = yystack.yytops.yysize;
7521 size_t yyk;
7522 for (yyk = 0; yyk < yysize; yyk += 1)
7523 if (yystates[yyk])
7524 {
7525 while (yystates[yyk])
7526 {
7527 yyGLRState *yys = yystates[yyk];
7528 if (yys->yypred != YY_NULLPTR)
7529 yydestroyGLRState ("Cleanup: popping", yys, P, tokens, index);
7530 yystates[yyk] = yys->yypred;
7531 yystack.yynextFree -= 1;
7532 yystack.yyspaceLeft += 1;
7533 }
7534 break;
7535 }
7536 }
7537 yyfreeGLRStack (&yystack);
7538 }
7539
7540 return yyresult;
7541 }
7542
7543 /* DEBUGGING ONLY */
7544 #if YYDEBUG
7545 static void
7546 yy_yypstack (yyGLRState* yys)
7547 {
7548 if (yys->yypred)
7549 {
7550 yy_yypstack (yys->yypred);
7551 YYFPRINTF (stderr, " -> ");
7552 }
7553 YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
7554 (unsigned long int) yys->yyposn);
7555 }
7556
7557 static void
7558 yypstates (yyGLRState* yyst)
7559 {
7560 if (yyst == YY_NULLPTR)
7561 YYFPRINTF (stderr, "<null>");
7562 else
7563 yy_yypstack (yyst);
7564 YYFPRINTF (stderr, "\n");
7565 }
7566
7567 static void
7568 yypstack (yyGLRStack* yystackp, size_t yyk)
7569 {
7570 yypstates (yystackp->yytops.yystates[yyk]);
7571 }
7572
7573 #define YYINDEX(YYX) \
7574 ((YYX) == YY_NULLPTR ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
7575
7576
7577 static void
7578 yypdumpstack (yyGLRStack* yystackp)
7579 {
7580 yyGLRStackItem* yyp;
7581 size_t yyi;
7582 for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
7583 {
7584 YYFPRINTF (stderr, "%3lu. ",
7585 (unsigned long int) (yyp - yystackp->yyitems));
7586 if (*(yybool *) yyp)
7587 {
7588 YYASSERT (yyp->yystate.yyisState);
7589 YYASSERT (yyp->yyoption.yyisState);
7590 YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
7591 yyp->yystate.yyresolved, yyp->yystate.yylrState,
7592 (unsigned long int) yyp->yystate.yyposn,
7593 (long int) YYINDEX (yyp->yystate.yypred));
7594 if (! yyp->yystate.yyresolved)
7595 YYFPRINTF (stderr, ", firstVal: %ld",
7596 (long int) YYINDEX (yyp->yystate
7597 .yysemantics.yyfirstVal));
7598 }
7599 else
7600 {
7601 YYASSERT (!yyp->yystate.yyisState);
7602 YYASSERT (!yyp->yyoption.yyisState);
7603 YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
7604 yyp->yyoption.yyrule - 1,
7605 (long int) YYINDEX (yyp->yyoption.yystate),
7606 (long int) YYINDEX (yyp->yyoption.yynext));
7607 }
7608 YYFPRINTF (stderr, "\n");
7609 }
7610 YYFPRINTF (stderr, "Tops:");
7611 for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
7612 YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
7613 (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
7614 YYFPRINTF (stderr, "\n");
7615 }
7616 #endif
7617
7618 #undef yylval
7619 #undef yychar
7620 #undef yynerrs
7621
7622 /* Substitute the variable and function names. */
7623 #define yyparse psi_parser_proc_parse
7624 #define yylex psi_parser_proc_lex
7625 #define yyerror psi_parser_proc_error
7626 #define yylval psi_parser_proc_lval
7627 #define yychar psi_parser_proc_char
7628 #define yydebug psi_parser_proc_debug
7629 #define yynerrs psi_parser_proc_nerrs
7630
7631 #line 2118 "src/parser_proc_grammar.y" /* glr.c:2584 */
7632
7633
7634 /* epilogue */
7635
7636 static int psi_parser_proc_lex(YYSTYPE *lvalp, struct psi_parser *P, struct psi_plist *tokens, size_t *index)
7637 {
7638 struct psi_token *token;
7639
7640 if (psi_plist_get(tokens, (*index)++, &token)) {
7641 if (P->flags & PSI_DEBUG) {
7642 psi_token_dump(2, token);
7643 }
7644
7645 *((struct psi_token **)lvalp) = token;
7646 return token->type;
7647 } else {
7648 (*index)--;
7649 PSI_DEBUG_PRINT(P, "EOF(%d)\n", PSI_T_EOF);
7650 }
7651
7652 return PSI_T_EOF;
7653 }
7654
7655 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg)
7656 {
7657 struct psi_token *T = NULL;
7658 size_t last;
7659
7660 if (*index == 0) {
7661 last = 0;
7662 } else {
7663 last = --(*index);
7664 }
7665
7666 psi_plist_get(tokens, last, &T);
7667 if (T) {
7668 P->error(PSI_DATA(P), T, PSI_WARNING, "PSI %s at col %u", msg, T->col);
7669 } else {
7670 P->error(PSI_DATA(P), NULL, PSI_WARNING, "PSI %s", msg);
7671 }
7672 P->errors++;
7673 }
7674