]> andersk Git - splint.git/blame - src/cgrammar.mod
Updated html and word versions of the manual
[splint.git] / src / cgrammar.mod
CommitLineData
885824d3 1/*
2** Inserted at beginning of c files generated by bison
3** REMEMBER: Change bison.reset too.
4*/
5
6/*@-allmacros@*/
7/*@+boolint@*/
8/*@+charint@*/
9/*@-macroparams@*/
10/*@-macroundef@*/
11/*@-unreachable@*/
12/*@-macrospec@*/
13/*@-varuse@*/
14/*@+ignorequals@*/
15/*@-macrostmt@*/
16/*@-noeffect@*/
17/*@-shadow@*/
18/*@-exitarg@*/
19/*@-macroredef@*/
20/*@-uniondef@*/
21/*@-compdef@*/
22/*@-matchfields@*/
23/*@-exportlocal@*/
24/*@-evalorderuncon@*/
25/*@-exportheader@*/
26/*@-typeuse@*/
27/*@-redecl@*/
28/*@-redef@*/
29/*@-noparams@*/
30/*@-ansireserved@*/
31/*@-fielduse@*/
32/*@-ifblock@*/
33/*@-elseifcomplete@*/
34/*@-whileblock@*/
35/*@-forblock@*/
36/*@-branchstate@*/
37/*@-readonlytrans@*/
38/*@-namechecks@*/
39/*@-usedef@*/
40/*@-systemunrecog@*/
41/*@-dependenttrans@*/
42/*@-unqualifiedtrans@*/
43/*@-nullassign@*/
44
45/* < end of bison.head > */
46
47
48/* A Bison parser, made from cgrammar.y
49 by GNU Bison version 1.28 */
50
51#define YYBISON 1 /* Identify Bison output. */
52
53#define BADTOK 257
54#define SKIPTOK 258
55#define CTOK_ELIPSIS 259
56#define CASE 260
57#define DEFAULT 261
58#define CIF 262
59#define CELSE 263
60#define SWITCH 264
61#define WHILE 265
62#define DO 266
63#define CFOR 267
64#define GOTO 268
65#define CONTINUE 269
66#define BREAK 270
67#define RETURN 271
68#define TSEMI 272
69#define TLBRACE 273
70#define TRBRACE 274
71#define TCOMMA 275
72#define TCOLON 276
73#define TASSIGN 277
74#define TLPAREN 278
75#define TRPAREN 279
76#define TLSQBR 280
77#define TRSQBR 281
78#define TDOT 282
79#define TAMPERSAND 283
80#define TEXCL 284
81#define TTILDE 285
82#define TMINUS 286
83#define TPLUS 287
84#define TMULT 288
85#define TDIV 289
86#define TPERCENT 290
87#define TLT 291
88#define TGT 292
89#define TCIRC 293
90#define TBAR 294
91#define TQUEST 295
92#define CSIZEOF 296
93#define ARROW_OP 297
94#define CTYPEDEF 298
95#define COFFSETOF 299
96#define INC_OP 300
97#define DEC_OP 301
98#define LEFT_OP 302
99#define RIGHT_OP 303
100#define LE_OP 304
101#define GE_OP 305
102#define EQ_OP 306
103#define NE_OP 307
104#define AND_OP 308
105#define OR_OP 309
106#define MUL_ASSIGN 310
107#define DIV_ASSIGN 311
108#define MOD_ASSIGN 312
109#define ADD_ASSIGN 313
110#define SUB_ASSIGN 314
111#define LEFT_ASSIGN 315
112#define RIGHT_ASSIGN 316
113#define AND_ASSIGN 317
114#define XOR_ASSIGN 318
115#define OR_ASSIGN 319
116#define CSTRUCT 320
117#define CUNION 321
118#define CENUM 322
119#define VA_ARG 323
120#define VA_DCL 324
121#define QGLOBALS 325
122#define QMODIFIES 326
123#define QNOMODS 327
124#define QCONSTANT 328
125#define QFUNCTION 329
126#define QITER 330
127#define QDEFINES 331
128#define QUSES 332
129#define QALLOCATES 333
130#define QSETS 334
131#define QRELEASES 335
132#define QPRECLAUSE 336
133#define QPOSTCLAUSE 337
134#define QALT 338
135#define QUNDEF 339
136#define QKILLED 340
137#define QENDMACRO 341
138#define LLMACRO 342
139#define LLMACROITER 343
140#define LLMACROEND 344
141#define TENDMACRO 345
142#define QSWITCHBREAK 346
143#define QLOOPBREAK 347
144#define QINNERBREAK 348
145#define QSAFEBREAK 349
146#define QINNERCONTINUE 350
147#define QFALLTHROUGH 351
148#define QLINTNOTREACHED 352
149#define QLINTFALLTHROUGH 353
150#define QLINTFALLTHRU 354
151#define QARGSUSED 355
152#define QPRINTFLIKE 356
153#define QLINTPRINTFLIKE 357
154#define QSCANFLIKE 358
155#define QMESSAGELIKE 359
156#define QNOTREACHED 360
157#define QCONST 361
158#define QVOLATILE 362
159#define QINLINE 363
160#define QEXTENSION 364
161#define QEXTERN 365
162#define QSTATIC 366
163#define QAUTO 367
164#define QREGISTER 368
165#define QOUT 369
166#define QIN 370
167#define QYIELD 371
168#define QONLY 372
169#define QTEMP 373
170#define QSHARED 374
171#define QREF 375
172#define QUNIQUE 376
173#define QCHECKED 377
174#define QUNCHECKED 378
175#define QCHECKEDSTRICT 379
176#define QCHECKMOD 380
177#define QKEEP 381
178#define QKEPT 382
179#define QPARTIAL 383
180#define QSPECIAL 384
181#define QOWNED 385
182#define QDEPENDENT 386
183#define QRETURNED 387
184#define QEXPOSED 388
185#define QNULL 389
186#define QOBSERVER 390
187#define QISNULL 391
188#define QEXITS 392
189#define QMAYEXIT 393
190#define QNEVEREXIT 394
191#define QTRUEEXIT 395
192#define QFALSEEXIT 396
193#define QLONG 397
194#define QSIGNED 398
195#define QUNSIGNED 399
196#define QSHORT 400
197#define QUNUSED 401
198#define QSEF 402
199#define QNOTNULL 403
200#define QRELNULL 404
201#define QABSTRACT 405
202#define QCONCRETE 406
203#define QMUTABLE 407
204#define QIMMUTABLE 408
205#define QTRUENULL 409
206#define QFALSENULL 410
207#define QEXTERNAL 411
208#define QREFCOUNTED 412
209#define QREFS 413
210#define QNEWREF 414
211#define QTEMPREF 415
212#define QKILLREF 416
213#define QRELDEF 417
214#define CGCHAR 418
215#define CBOOL 419
216#define CINT 420
217#define CGFLOAT 421
218#define CDOUBLE 422
219#define CVOID 423
220#define QANYTYPE 424
221#define QINTEGRALTYPE 425
222#define QUNSIGNEDINTEGRALTYPE 426
223#define QSIGNEDINTEGRALTYPE 427
224#define IDENTIFIER 428
225#define NEW_IDENTIFIER 429
226#define CCONSTANT 430
227#define ITER_NAME 431
228#define ITER_ENDNAME 432
229#define TYPE_NAME 433
230#define TYPE_NAME_OR_ID 434
231
232#line 19 "cgrammar.y"
233
234/*
235**
236** cgrammar.y
237**
238** Yacc/Bison grammar for extended ANSI C used by LCLint.
239**
240** original grammar by Nate Osgood ---
241** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
242**
243** changes for LCLint --- handle typedef names correctly
244** fix struct/union parsing bug (empty struct is accepted)
245** add productions to handle macros --- require
246** error correction --- main source of conflicts in grammar.
247** need to process initializations sequentially, L->R
248**
249** production names are cryptic, so more productions fit on one line
250**
251** conflicts: 87 shift/reduce, 18 reduce/reduce
252** most of these are due to handling macros
253** a few are due to handling type expressions
254*/
255
256/*@=allmacros@*/
257
258extern int yylex ();
259extern void swallowMacro (void);
260
261# include "lclintMacros.nf"
262# include "basic.h"
263# include "cgrammar.h"
264# include "exprChecks.h"
265
266/*@-allmacros@*/
267/*@-matchfields@*/
268
269# define SHOWCSYM FALSE
270void yyerror (char *s);
271
272#line 59 "cgrammar.y"
273typedef union
274{
275 lltok tok;
276 int count;
277 specialClauseKind sck;
278 qual typequal;
279 qualList tquallist;
280 ctype ctyp;
281 sRef sr;
282 /*@only@*/ qtype qtyp;
283 /*@only@*/ cstring cname;
284 /*@only@*/ idDecl ntyp;
285 /*@only@*/ idDeclList ntyplist;
286 /*@only@*/ uentryList flist;
287 /*@owned@*/ uentryList entrylist;
288 /*@observer@*/ /*@dependent@*/ uentry entry;
289 /*@only@*/ uentry oentry;
290 /*@only@*/ exprNode expr;
291 /*@only@*/ enumNameList enumnamelist;
292 /*@only@*/ exprNodeList alist;
293 /*@only@*/ sRefSet srset;
294} YYSTYPE;
295#ifndef YYDEBUG
296#define YYDEBUG 1
297#endif
298
299#include <stdio.h>
300
301#ifndef __cplusplus
302#ifndef __STDC__
303#define const
304#endif
305#endif
306
307
308
309#define YYFINAL 1150
310#define YYFLAG -32768
311#define YYNTBASE 181
312
313#define YYTRANSLATE(x) ((unsigned)(x) <= 434 ? yytranslate[x] : 407)
314
315static const short yytranslate[] = { 0,
316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 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, 1, 3, 4, 5, 6,
342 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
343 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
344 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
345 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
346 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
347 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
348 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
349 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
350 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
351 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
352 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
353 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
354 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
355 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
356 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
357 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
358 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
359 177, 178, 179, 180
360};
361
362#if YYDEBUG != 0
363static const short yyprhs[] = { 0,
364 0, 1, 3, 5, 8, 11, 13, 15, 17, 19,
365 21, 23, 32, 44, 45, 51, 53, 57, 59, 62,
366 64, 71, 75, 82, 83, 90, 91, 99, 101, 108,
367 112, 119, 120, 127, 128, 136, 137, 138, 149, 153,
368 157, 161, 164, 166, 167, 170, 171, 174, 176, 179,
369 181, 184, 186, 189, 191, 195, 198, 200, 202, 204,
370 206, 208, 210, 212, 213, 216, 217, 224, 225, 232,
371 234, 236, 237, 238, 244, 245, 251, 253, 255, 256,
372 258, 259, 260, 264, 265, 269, 271, 273, 275, 277,
373 279, 281, 283, 285, 287, 289, 291, 293, 295, 297,
374 299, 301, 303, 304, 312, 313, 322, 324, 328, 329,
375 333, 334, 338, 341, 345, 348, 351, 353, 355, 357,
376 361, 366, 369, 373, 377, 381, 383, 385, 387, 391,
377 393, 395, 399, 404, 407, 411, 415, 419, 421, 425,
378 427, 429, 431, 435, 437, 439, 441, 446, 450, 455,
379 462, 468, 474, 477, 480, 482, 486, 488, 491, 494,
380 497, 500, 503, 506, 509, 512, 514, 516, 526, 527,
381 531, 536, 539, 541, 546, 548, 552, 556, 560, 562,
382 566, 570, 572, 576, 580, 582, 586, 590, 594, 598,
383 600, 604, 608, 610, 614, 616, 620, 622, 626, 628,
384 629, 634, 636, 637, 642, 644, 645, 646, 654, 656,
385 660, 664, 668, 672, 676, 680, 684, 688, 692, 696,
386 700, 702, 706, 707, 709, 711, 713, 715, 717, 721,
387 722, 732, 733, 745, 748, 749, 756, 757, 765, 770,
388 775, 776, 777, 780, 782, 787, 788, 793, 795, 799,
389 804, 806, 810, 812, 814, 816, 818, 820, 823, 826,
390 829, 832, 835, 838, 841, 844, 847, 850, 853, 856,
391 859, 862, 865, 868, 871, 874, 877, 880, 883, 886,
392 889, 892, 895, 898, 901, 904, 907, 910, 913, 916,
393 919, 922, 925, 928, 931, 934, 937, 940, 943, 946,
394 949, 952, 955, 957, 959, 961, 963, 966, 969, 972,
395 975, 978, 981, 984, 987, 990, 993, 996, 999, 1002,
396 1005, 1009, 1011, 1016, 1018, 1022, 1025, 1028, 1031, 1032,
397 1034, 1035, 1036, 1048, 1049, 1050, 1062, 1069, 1076, 1077,
398 1078, 1089, 1090, 1091, 1102, 1108, 1114, 1119, 1124, 1125,
399 1127, 1129, 1132, 1138, 1142, 1145, 1150, 1152, 1155, 1159,
400 1166, 1167, 1176, 1181, 1183, 1187, 1190, 1192, 1197, 1199,
401 1201, 1204, 1207, 1209, 1212, 1214, 1217, 1219, 1221, 1223,
402 1226, 1228, 1231, 1234, 1238, 1240, 1244, 1246, 1250, 1252,
403 1254, 1258, 1259, 1262, 1263, 1268, 1273, 1275, 1277, 1280,
404 1282, 1284, 1287, 1288, 1290, 1296, 1299, 1303, 1307, 1312,
405 1316, 1321, 1326, 1332, 1334, 1336, 1338, 1340, 1342, 1344,
406 1346, 1348, 1350, 1352, 1354, 1356, 1359, 1362, 1370, 1377,
407 1380, 1381, 1382, 1393, 1394, 1401, 1403, 1405, 1407, 1409,
408 1412, 1414, 1416, 1418, 1420, 1422, 1424, 1426, 1430, 1432,
409 1435, 1438, 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455,
410 1457, 1459, 1461, 1465, 1467, 1469, 1473, 1476, 1477, 1483,
411 1484, 1491, 1492, 1497, 1498, 1504, 1508, 1511, 1515, 1516,
412 1517, 1518, 1519, 1520, 1522, 1525, 1528, 1532, 1535, 1539,
413 1543, 1548, 1551, 1554, 1558, 1562, 1567, 1569, 1572, 1574,
414 1577, 1579, 1582, 1584, 1587, 1589, 1592, 1594, 1599, 1602,
415 1603, 1609, 1610, 1617, 1622, 1627, 1628, 1629, 1640, 1642,
416 1643, 1648, 1650, 1652, 1654, 1656, 1658, 1662, 1664, 1669,
417 1673, 1678, 1685, 1691, 1697, 1700, 1703, 1705, 1708, 1711,
418 1714, 1717, 1720, 1723, 1726, 1729, 1731, 1733, 1738, 1740,
419 1744, 1748, 1752, 1754, 1758, 1762, 1764, 1768, 1772, 1774,
420 1778, 1782, 1786, 1790, 1792, 1796, 1800, 1802, 1806, 1808,
421 1812, 1814, 1818, 1820, 1824, 1826, 1830, 1832, 1833, 1834,
422 1842, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876,
423 1880, 1884, 1888, 1890, 1891, 1893, 1896, 1904, 1907, 1910,
424 1918, 1925, 1928, 1932, 1935, 1939, 1942, 1946, 1950, 1954,
425 1958, 1961, 1965, 1966, 1968, 1970, 1972, 1974, 1976, 1978,
426 1980
427};
428
429static const short yyrhs[] = { -1,
430 182, 0, 183, 0, 182, 183, 0, 235, 403, 0,
431 184, 0, 185, 0, 195, 0, 198, 0, 271, 0,
432 1, 0, 74, 291, 304, 314, 304, 403, 279, 87,
433 0, 74, 291, 304, 314, 304, 23, 279, 284, 283,
434 403, 87, 0, 0, 75, 186, 187, 403, 87, 0,
435 188, 0, 291, 304, 188, 0, 192, 0, 318, 192,
436 0, 405, 0, 279, 24, 304, 314, 279, 25, 0,
437 189, 26, 27, 0, 189, 26, 279, 270, 27, 304,
438 0, 0, 189, 280, 24, 25, 190, 200, 0, 0,
439 189, 280, 24, 315, 25, 191, 200, 0, 405, 0,
440 279, 24, 304, 188, 279, 25, 0, 192, 26, 27,
441 0, 192, 26, 279, 270, 27, 304, 0, 0, 192,
442 280, 24, 25, 193, 202, 0, 0, 192, 280, 24,
443 315, 25, 194, 202, 0, 0, 0, 76, 405, 24,
444 315, 25, 196, 202, 197, 403, 87, 0, 88, 344,
445 91, 0, 89, 331, 91, 0, 90, 332, 91, 0,
446 88, 91, 0, 231, 0, 0, 201, 204, 0, 0,
447 203, 205, 0, 212, 0, 206, 212, 0, 215, 0,
448 206, 215, 0, 228, 0, 228, 206, 0, 208, 0,
449 207, 21, 208, 0, 211, 209, 0, 404, 0, 175,
450 0, 85, 0, 86, 0, 115, 0, 116, 0, 129,
451 0, 0, 210, 211, 0, 0, 71, 213, 364, 403,
452 87, 218, 0, 0, 71, 214, 207, 403, 87, 218,
453 0, 73, 0, 219, 0, 0, 0, 71, 216, 364,
454 403, 218, 0, 0, 71, 217, 207, 403, 218, 0,
455 73, 0, 221, 0, 0, 219, 0, 0, 0, 72,
456 220, 236, 0, 0, 72, 222, 237, 0, 77, 0,
457 78, 0, 79, 0, 80, 0, 81, 0, 87, 0,
458 87, 0, 82, 0, 83, 0, 118, 0, 136, 0,
459 134, 0, 132, 0, 131, 0, 120, 0, 137, 0,
460 149, 0, 0, 223, 304, 229, 242, 403, 225, 279,
461 0, 0, 226, 304, 227, 230, 242, 403, 224, 279,
462 0, 314, 0, 291, 304, 314, 0, 0, 19, 233,
463 360, 0, 0, 364, 234, 353, 0, 199, 232, 0,
464 240, 403, 87, 0, 403, 87, 0, 240, 403, 0,
465 403, 0, 404, 0, 175, 0, 238, 26, 27, 0,
466 238, 26, 239, 27, 0, 34, 238, 0, 24, 238,
467 25, 0, 238, 28, 405, 0, 238, 43, 405, 0,
468 238, 0, 176, 0, 238, 0, 240, 21, 238, 0,
469 404, 0, 175, 0, 241, 26, 27, 0, 241, 26,
470 239, 27, 0, 34, 241, 0, 24, 241, 25, 0,
471 241, 28, 405, 0, 241, 43, 405, 0, 241, 0,
472 242, 21, 241, 0, 404, 0, 175, 0, 176, 0,
473 24, 268, 25, 0, 180, 0, 110, 0, 243, 0,
474 244, 26, 268, 27, 0, 244, 24, 25, 0, 244,
475 24, 245, 25, 0, 69, 24, 267, 21, 326, 25,
476 0, 244, 304, 28, 405, 279, 0, 244, 304, 43,
477 405, 279, 0, 244, 46, 0, 244, 47, 0, 267,
478 0, 245, 21, 267, 0, 244, 0, 46, 246, 0,
479 47, 246, 0, 29, 251, 0, 34, 251, 0, 33,
480 251, 0, 32, 251, 0, 31, 251, 0, 30, 251,
481 0, 248, 0, 247, 0, 45, 279, 24, 326, 304,
482 21, 405, 25, 279, 0, 0, 279, 249, 250, 0,
483 42, 24, 326, 25, 0, 42, 246, 0, 246, 0,
484 24, 326, 25, 251, 0, 251, 0, 252, 34, 251,
485 0, 252, 35, 251, 0, 252, 36, 251, 0, 252,
486 0, 253, 33, 252, 0, 253, 32, 252, 0, 253,
487 0, 254, 48, 253, 0, 254, 49, 253, 0, 254,
488 0, 255, 37, 254, 0, 255, 38, 254, 0, 255,
489 50, 254, 0, 255, 51, 254, 0, 255, 0, 256,
490 52, 255, 0, 256, 53, 255, 0, 256, 0, 257,
491 29, 256, 0, 257, 0, 258, 39, 257, 0, 258,
492 0, 259, 40, 258, 0, 259, 0, 0, 260, 54,
493 261, 259, 0, 260, 0, 0, 262, 55, 263, 260,
494 0, 262, 0, 0, 0, 262, 41, 265, 268, 22,
495 266, 264, 0, 264, 0, 246, 23, 267, 0, 246,
496 56, 267, 0, 246, 57, 267, 0, 246, 58, 267,
497 0, 246, 59, 267, 0, 246, 60, 267, 0, 246,
498 61, 267, 0, 246, 62, 267, 0, 246, 63, 267,
499 0, 246, 64, 267, 0, 246, 65, 267, 0, 267,
500 0, 268, 21, 267, 0, 0, 268, 0, 264, 0,
501 272, 0, 70, 0, 277, 0, 291, 279, 18, 0,
502 0, 291, 304, 314, 304, 273, 279, 283, 18, 279,
503 0, 0, 291, 304, 314, 304, 23, 274, 279, 284,
504 283, 18, 279, 0, 314, 304, 0, 0, 314, 304,
505 23, 276, 279, 284, 0, 0, 44, 291, 278, 304,
506 281, 279, 18, 0, 44, 291, 279, 18, 0, 44,
507 281, 279, 18, 0, 0, 0, 282, 279, 0, 275,
508 0, 281, 21, 304, 275, 0, 0, 283, 21, 304,
509 275, 0, 267, 0, 19, 285, 20, 0, 19, 285,
510 21, 20, 0, 284, 0, 285, 21, 284, 0, 111,
511 0, 109, 0, 112, 0, 113, 0, 114, 0, 107,
512 279, 0, 108, 279, 0, 115, 279, 0, 116, 279,
513 0, 129, 279, 0, 130, 279, 0, 131, 279, 0,
514 132, 279, 0, 117, 279, 0, 119, 279, 0, 118,
515 279, 0, 127, 279, 0, 128, 279, 0, 120, 279,
516 0, 122, 279, 0, 138, 279, 0, 139, 279, 0,
517 141, 279, 0, 142, 279, 0, 140, 279, 0, 135,
518 279, 0, 150, 279, 0, 133, 279, 0, 134, 279,
519 0, 136, 279, 0, 123, 279, 0, 126, 279, 0,
520 124, 279, 0, 125, 279, 0, 155, 279, 0, 156,
521 279, 0, 147, 279, 0, 157, 279, 0, 148, 279,
522 0, 151, 279, 0, 152, 279, 0, 153, 279, 0,
523 154, 279, 0, 149, 279, 0, 158, 279, 0, 159,
524 279, 0, 162, 279, 0, 163, 279, 0, 160, 279,
525 0, 161, 279, 0, 146, 0, 143, 0, 144, 0,
526 145, 0, 164, 304, 0, 166, 304, 0, 165, 304,
527 0, 167, 304, 0, 168, 304, 0, 169, 304, 0,
528 170, 304, 0, 171, 304, 0, 172, 304, 0, 173,
529 304, 0, 406, 304, 0, 295, 304, 0, 309, 304,
530 0, 288, 304, 0, 279, 291, 279, 0, 293, 0,
531 293, 84, 292, 87, 0, 326, 0, 326, 21, 292,
532 0, 286, 294, 0, 287, 294, 0, 289, 294, 0,
533 0, 291, 0, 0, 0, 304, 66, 405, 279, 19,
534 296, 357, 305, 358, 297, 20, 0, 0, 0, 304,
535 67, 405, 279, 19, 298, 357, 305, 358, 299, 20,
536 0, 304, 66, 405, 279, 19, 20, 0, 304, 67,
537 405, 279, 19, 20, 0, 0, 0, 304, 66, 279,
538 19, 300, 357, 305, 358, 301, 20, 0, 0, 0,
539 304, 67, 279, 19, 302, 357, 305, 358, 303, 20,
540 0, 304, 66, 279, 19, 20, 0, 304, 67, 279,
541 19, 20, 0, 304, 66, 405, 304, 0, 304, 67,
542 405, 304, 0, 0, 306, 0, 198, 0, 305, 306,
543 0, 291, 304, 307, 279, 18, 0, 291, 279, 18,
544 0, 308, 304, 0, 307, 21, 308, 304, 0, 314,
545 0, 22, 270, 0, 314, 22, 270, 0, 304, 68,
546 19, 311, 20, 279, 0, 0, 304, 68, 405, 19,
547 310, 311, 20, 279, 0, 304, 68, 405, 279, 0,
548 312, 0, 311, 21, 312, 0, 311, 21, 0, 405,
549 0, 405, 23, 279, 270, 0, 189, 0, 328, 0,
550 318, 179, 0, 318, 313, 0, 189, 0, 318, 189,
551 0, 321, 0, 304, 319, 0, 107, 0, 108, 0,
552 316, 0, 317, 316, 0, 34, 0, 34, 317, 0,
553 34, 318, 0, 34, 317, 318, 0, 320, 0, 320,
554 21, 5, 0, 405, 0, 320, 21, 405, 0, 5,
555 0, 322, 0, 322, 21, 5, 0, 0, 323, 325,
556 0, 0, 322, 21, 324, 325, 0, 279, 291, 313,
557 279, 0, 405, 0, 290, 0, 290, 327, 0, 318,
558 0, 329, 0, 318, 329, 0, 0, 329, 0, 279,
559 24, 304, 327, 25, 0, 26, 27, 0, 26, 270,
560 27, 0, 329, 26, 27, 0, 329, 26, 270, 27,
561 0, 279, 24, 25, 0, 279, 24, 321, 25, 0,
562 329, 279, 24, 25, 0, 329, 279, 24, 321, 25,
563 0, 346, 0, 347, 0, 350, 0, 353, 0, 366,
564 0, 369, 0, 400, 0, 374, 0, 402, 0, 333,
565 0, 331, 0, 340, 0, 333, 340, 0, 373, 333,
566 0, 399, 345, 11, 24, 268, 25, 18, 0, 399,
567 345, 11, 24, 268, 25, 0, 335, 340, 0, 0,
568 0, 13, 24, 269, 18, 269, 18, 336, 269, 337,
569 25, 0, 0, 177, 355, 24, 339, 377, 25, 0,
570 178, 0, 346, 0, 347, 0, 350, 0, 342, 364,
571 0, 342, 0, 343, 0, 366, 0, 341, 0, 334,
572 0, 338, 0, 402, 0, 24, 340, 25, 0, 1,
573 0, 368, 340, 0, 355, 19, 0, 359, 20, 0,
574 345, 0, 363, 0, 346, 0, 347, 0, 350, 0,
575 354, 0, 367, 0, 369, 0, 374, 0, 401, 0,
576 24, 345, 25, 0, 402, 0, 1, 0, 405, 22,
577 330, 0, 106, 330, 0, 0, 6, 270, 348, 22,
578 330, 0, 0, 97, 6, 270, 349, 22, 330, 0,
579 0, 7, 351, 22, 330, 0, 0, 97, 7, 352,
580 22, 330, 0, 24, 353, 25, 0, 355, 361, 0,
581 355, 362, 356, 0, 0, 0, 0, 0, 0, 20,
582 0, 106, 20, 0, 365, 20, 0, 365, 106, 20,
583 0, 364, 20, 0, 364, 106, 20, 0, 364, 365,
584 20, 0, 364, 365, 106, 20, 0, 19, 360, 0,
585 19, 20, 0, 19, 363, 20, 0, 19, 364, 20,
586 0, 19, 364, 365, 20, 0, 345, 0, 363, 345,
587 0, 271, 0, 364, 271, 0, 330, 0, 365, 330,
588 0, 18, 0, 268, 18, 0, 18, 0, 268, 18,
589 0, 268, 0, 8, 24, 268, 25, 0, 368, 330,
590 0, 0, 368, 330, 9, 370, 330, 0, 0, 10,
591 24, 268, 371, 25, 330, 0, 11, 24, 268, 25,
592 0, 11, 24, 268, 25, 0, 0, 0, 177, 375,
593 355, 24, 376, 377, 25, 353, 398, 356, 0, 379,
594 0, 0, 377, 378, 21, 379, 0, 397, 0, 404,
595 0, 180, 0, 175, 0, 176, 0, 24, 268, 25,
596 0, 380, 0, 244, 26, 268, 27, 0, 244, 24,
597 25, 0, 244, 24, 245, 25, 0, 69, 24, 267,
598 21, 326, 25, 0, 244, 304, 28, 405, 279, 0,
599 244, 304, 43, 405, 279, 0, 244, 46, 0, 244,
600 47, 0, 381, 0, 46, 246, 0, 47, 246, 0,
601 29, 251, 0, 34, 251, 0, 33, 251, 0, 32,
602 251, 0, 31, 251, 0, 30, 251, 0, 248, 0,
603 382, 0, 24, 326, 25, 251, 0, 383, 0, 252,
604 34, 251, 0, 252, 35, 251, 0, 252, 36, 251,
605 0, 384, 0, 253, 33, 252, 0, 253, 32, 252,
606 0, 385, 0, 254, 48, 253, 0, 254, 49, 253,
607 0, 386, 0, 255, 37, 254, 0, 255, 38, 254,
608 0, 255, 50, 254, 0, 255, 51, 254, 0, 387,
609 0, 256, 52, 255, 0, 256, 53, 255, 0, 388,
610 0, 257, 29, 256, 0, 389, 0, 258, 39, 257,
611 0, 390, 0, 259, 40, 258, 0, 391, 0, 260,
612 54, 259, 0, 392, 0, 262, 55, 260, 0, 393,
613 0, 0, 0, 262, 41, 395, 268, 22, 396, 264,
614 0, 394, 0, 246, 23, 267, 0, 246, 56, 267,
615 0, 246, 57, 267, 0, 246, 58, 267, 0, 246,
616 59, 267, 0, 246, 60, 267, 0, 246, 61, 267,
617 0, 246, 62, 267, 0, 246, 63, 267, 0, 246,
618 64, 267, 0, 246, 65, 267, 0, 178, 0, 0,
619 12, 0, 372, 330, 0, 399, 330, 11, 24, 268,
620 25, 18, 0, 335, 330, 0, 372, 345, 0, 399,
621 345, 11, 24, 268, 25, 18, 0, 399, 345, 11,
622 24, 268, 25, 0, 335, 345, 0, 14, 405, 18,
623 0, 15, 18, 0, 96, 15, 18, 0, 16, 18,
624 0, 92, 16, 18, 0, 93, 16, 18, 0, 94,
625 16, 18, 0, 95, 16, 18, 0, 17, 18, 0,
626 17, 268, 18, 0, 0, 18, 0, 174, 0, 175,
627 0, 177, 0, 178, 0, 174, 0, 179, 0, 180,
628 0
629};
630
631#endif
632
633#if YYDEBUG != 0
634static const short yyrline[] = { 0,
635 215, 216, 219, 220, 223, 224, 225, 226, 227, 228,
636 229, 232, 234, 238, 238, 243, 249, 253, 254, 258,
637 259, 261, 263, 279, 283, 290, 294, 300, 301, 303,
638 305, 321, 325, 332, 336, 342, 344, 344, 348, 349,
639 350, 351, 354, 357, 358, 361, 362, 365, 366, 369,
640 370, 373, 374, 377, 378, 381, 384, 385, 388, 389,
641 390, 391, 392, 395, 396, 399, 399, 402, 402, 405,
642 409, 410, 413, 413, 416, 416, 419, 423, 424, 427,
643 428, 431, 437, 444, 450, 457, 458, 459, 460, 461,
644 464, 467, 470, 471, 474, 475, 476, 477, 478, 479,
645 480, 481, 484, 490, 497, 503, 512, 518, 522, 524,
646 528, 531, 538, 546, 547, 550, 551, 554, 555, 556,
647 557, 558, 559, 560, 561, 565, 566, 570, 571, 574,
648 576, 578, 579, 580, 581, 582, 584, 588, 592, 604,
649 605, 606, 607, 608, 609, 612, 613, 614, 615, 616,
650 617, 618, 619, 620, 623, 624, 627, 628, 629, 630,
651 631, 632, 633, 634, 635, 636, 637, 640, 644, 645,
652 648, 649, 652, 653, 657, 658, 659, 660, 663, 664,
653 665, 668, 669, 670, 673, 674, 675, 676, 677, 680,
654 681, 682, 685, 686, 689, 690, 694, 695, 698, 699,
655 704, 710, 711, 717, 723, 724, 724, 726, 729, 730,
656 731, 732, 733, 734, 735, 736, 737, 738, 739, 740,
657 743, 744, 747, 748, 751, 756, 757, 758, 761, 774,
658 778, 779, 782, 787, 788, 788, 793, 794, 795, 796,
659 799, 802, 805, 808, 809, 812, 813, 816, 817, 818,
660 822, 824, 833, 834, 835, 836, 837, 840, 841, 842,
661 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
662 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
663 863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
664 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
665 883, 884, 887, 888, 889, 890, 893, 894, 895, 896,
666 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
667 909, 913, 914, 918, 919, 923, 924, 925, 928, 929,
668 932, 934, 936, 937, 939, 941, 942, 944, 946, 948,
669 950, 951, 953, 955, 956, 958, 960, 961, 964, 967,
670 968, 969, 972, 974, 978, 980, 984, 985, 986, 989,
671 991, 991, 993, 996, 998, 1000, 1003, 1008, 1015, 1016,
672 1017, 1024, 1028, 1029, 1033, 1034, 1037, 1038, 1041, 1042,
673 1045, 1046, 1047, 1048, 1051, 1052, 1055, 1056, 1059, 1060,
674 1061, 1064, 1064, 1065, 1066, 1069, 1081, 1097, 1098, 1101,
675 1102, 1103, 1106, 1107, 1110, 1112, 1113, 1114, 1115, 1116,
676 1118, 1120, 1122, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
677 1135, 1136, 1139, 1142, 1145, 1146, 1150, 1152, 1154, 1156,
678 1160, 1161, 1163, 1167, 1169, 1171, 1174, 1175, 1176, 1177,
679 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1189,
680 1195, 1198, 1201, 1202, 1205, 1206, 1207, 1208, 1209, 1210,
681 1211, 1212, 1213, 1214, 1215, 1218, 1219, 1225, 1226, 1227,
682 1228, 1231, 1232, 1233, 1234, 1237, 1238, 1242, 1245, 1248,
683 1251, 1254, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1268,
684 1270, 1277, 1281, 1283, 1285, 1287, 1291, 1292, 1295, 1296,
685 1299, 1300, 1303, 1304, 1307, 1308, 1309, 1312, 1320, 1325,
686 1326, 1330, 1331, 1334, 1339, 1342, 1343, 1344, 1352, 1353,
687 1353, 1357, 1358, 1359, 1370, 1377, 1378, 1381, 1382, 1383,
688 1384, 1385, 1387, 1388, 1389, 1390, 1393, 1394, 1395, 1396,
689 1397, 1398, 1399, 1400, 1401, 1402, 1405, 1406, 1409, 1410,
690 1411, 1412, 1415, 1416, 1417, 1420, 1421, 1422, 1425, 1426,
691 1427, 1428, 1429, 1432, 1433, 1434, 1437, 1438, 1441, 1442,
692 1446, 1447, 1450, 1451, 1454, 1455, 1458, 1459, 1460, 1461,
693 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
694 1474, 1475, 1478, 1479, 1482, 1485, 1487, 1489, 1493, 1494,
695 1496, 1498, 1501, 1502, 1503, 1505, 1506, 1507, 1508, 1509,
696 1510, 1511, 1514, 1515, 1518, 1521, 1522, 1523, 1524, 1527,
697 1528
698};
699#endif
700
701
702#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
703
704static const char * const yytname[] = { "$","error","$undefined.","BADTOK",
705"SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
706"CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
707"TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
708"TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
709"TBAR","TQUEST","CSIZEOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP","DEC_OP",
710"LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP","MUL_ASSIGN",
711"DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN","RIGHT_ASSIGN",
712"AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM","VA_ARG","VA_DCL",
713"QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER","QDEFINES",
714"QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE","QALT","QUNDEF",
715"QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO","QSWITCHBREAK",
716"QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH","QLINTNOTREACHED",
717"QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE","QLINTPRINTFLIKE",
718"QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE","QINLINE","QEXTENSION",
719"QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN","QYIELD","QONLY","QTEMP",
720"QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED","QCHECKEDSTRICT","QCHECKMOD",
721"QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED","QDEPENDENT","QRETURNED","QEXPOSED",
722"QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT","QNEVEREXIT","QTRUEEXIT","QFALSEEXIT",
723"QLONG","QSIGNED","QUNSIGNED","QSHORT","QUNUSED","QSEF","QNOTNULL","QRELNULL",
724"QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE","QTRUENULL","QFALSENULL","QEXTERNAL",
725"QREFCOUNTED","QREFS","QNEWREF","QTEMPREF","QKILLREF","QRELDEF","CGCHAR","CBOOL",
726"CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE","QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE",
727"QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER","CCONSTANT","ITER_NAME",
728"ITER_ENDNAME","TYPE_NAME","TYPE_NAME_OR_ID","file","externalDefs","externalDef",
729"constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2",
730"@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr",
731"optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest","optPlainGlobModsRest",
732"specialClauses","globIdList","globIdListExpr","globId","globQual","optGlobQuals",
733"optGlobModsAux","@10","@11","optPlainGlobModsAux","@12","@13","optMods","fcnMods",
734"@14","fcnPlainMods","@15","specialTag","endStateTag","endSpecialTag","stateSpecialClause",
735"specialClauseType","specialClause","@16","@17","fcnDefHdrAux","fcnBody","@18",
736"@19","fcnDef","locModifies","locPlainModifies","modListExpr","mExpr","modList",
737"specClauseListExpr","specClauseList","primaryExpr","postfixExpr","argumentExprList",
738"unaryExpr","offsetofExpr","sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr",
739"plusExpr","shiftExpr","relationalExpr","equalityExpr","bitandExpr","xorExpr",
740"bitorExpr","andExpr","@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr",
741"expr","optExpr","constantExpr","initializer","instanceDecl","@25","@26","namedInitializer",
742"@27","typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux",
743"optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
744"typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
745"optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType",
746"structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
747"@37","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
748"innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
749"paramList","@38","@39","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
750"abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
751"forPred","@40","@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt",
752"openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43",
753"@44","defaultStmt","@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope",
754"DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
755"compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
756"stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47",
757"@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList","@51",
758"iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
759"timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
760"bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
761"@52","@53","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
762"jumpStmt","optSemi","id","newId","typeName", NULL
763};
764#endif
765
766static const short yyr1[] = { 0,
767 181, 181, 182, 182, 183, 183, 183, 183, 183, 183,
768 183, 184, 184, 186, 185, 187, 187, 188, 188, 189,
769 189, 189, 189, 190, 189, 191, 189, 192, 192, 192,
770 192, 193, 192, 194, 192, 196, 197, 195, 198, 198,
771 198, 198, 199, 201, 200, 203, 202, 204, 204, 205,
772 205, 206, 206, 207, 207, 208, 209, 209, 210, 210,
773 210, 210, 210, 211, 211, 213, 212, 214, 212, 212,
774 212, 212, 216, 215, 217, 215, 215, 215, 215, 218,
775 218, 220, 219, 222, 221, 223, 223, 223, 223, 223,
776 224, 225, 226, 226, 227, 227, 227, 227, 227, 227,
777 227, 227, 229, 228, 230, 228, 231, 231, 233, 232,
778 234, 232, 235, 236, 236, 237, 237, 238, 238, 238,
779 238, 238, 238, 238, 238, 239, 239, 240, 240, 241,
780 241, 241, 241, 241, 241, 241, 241, 242, 242, 243,
781 243, 243, 243, 243, 243, 244, 244, 244, 244, 244,
782 244, 244, 244, 244, 245, 245, 246, 246, 246, 246,
783 246, 246, 246, 246, 246, 246, 246, 247, 249, 248,
784 250, 250, 251, 251, 252, 252, 252, 252, 253, 253,
785 253, 254, 254, 254, 255, 255, 255, 255, 255, 256,
786 256, 256, 257, 257, 258, 258, 259, 259, 260, 261,
787 260, 262, 263, 262, 264, 265, 266, 264, 267, 267,
788 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
789 268, 268, 269, 269, 270, 271, 271, 271, 272, 273,
790 272, 274, 272, 275, 276, 275, 278, 277, 277, 277,
791 279, 280, 281, 282, 282, 283, 283, 284, 284, 284,
792 285, 285, 286, 286, 286, 286, 286, 287, 287, 287,
793 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
794 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
795 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
796 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
797 287, 287, 288, 288, 288, 288, 289, 289, 289, 289,
798 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
799 290, 291, 291, 292, 292, 293, 293, 293, 294, 294,
800 296, 297, 295, 298, 299, 295, 295, 295, 300, 301,
801 295, 302, 303, 295, 295, 295, 295, 295, 304, 305,
802 305, 305, 306, 306, 307, 307, 308, 308, 308, 309,
803 310, 309, 309, 311, 311, 311, 312, 312, 313, 313,
804 313, 313, 314, 314, 315, 315, 316, 316, 317, 317,
805 318, 318, 318, 318, 319, 319, 320, 320, 321, 321,
806 321, 323, 322, 324, 322, 325, 325, 326, 326, 327,
807 327, 327, 328, 328, 329, 329, 329, 329, 329, 329,
808 329, 329, 329, 330, 330, 330, 330, 330, 330, 330,
809 330, 330, 331, 332, 333, 333, 334, 334, 334, 334,
810 336, 337, 335, 339, 338, 338, 340, 340, 340, 340,
811 340, 340, 340, 340, 340, 340, 340, 340, 340, 341,
812 342, 343, 344, 344, 345, 345, 345, 345, 345, 345,
813 345, 345, 345, 345, 345, 346, 346, 348, 347, 349,
814 347, 351, 350, 352, 350, 353, 353, 354, 355, 356,
815 357, 358, 359, 360, 360, 360, 360, 360, 360, 360,
816 360, 361, 362, 362, 362, 362, 363, 363, 364, 364,
817 365, 365, 366, 366, 367, 367, 367, 368, 369, 370,
818 369, 371, 369, 372, 373, 375, 376, 374, 377, 378,
819 377, 379, 379, 379, 379, 380, 380, 381, 381, 381,
820 381, 381, 381, 381, 381, 381, 382, 382, 382, 382,
821 382, 382, 382, 382, 382, 382, 383, 383, 384, 384,
822 384, 384, 385, 385, 385, 386, 386, 386, 387, 387,
823 387, 387, 387, 388, 388, 388, 389, 389, 390, 390,
824 391, 391, 392, 392, 393, 393, 394, 395, 396, 394,
825 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
826 397, 397, 398, 398, 399, 400, 400, 400, 401, 401,
827 401, 401, 402, 402, 402, 402, 402, 402, 402, 402,
828 402, 402, 403, 403, 404, 405, 405, 405, 405, 406,
829 406
830};
831
832static const short yyr2[] = { 0,
833 0, 1, 1, 2, 2, 1, 1, 1, 1, 1,
834 1, 8, 11, 0, 5, 1, 3, 1, 2, 1,
835 6, 3, 6, 0, 6, 0, 7, 1, 6, 3,
836 6, 0, 6, 0, 7, 0, 0, 10, 3, 3,
837 3, 2, 1, 0, 2, 0, 2, 1, 2, 1,
838 2, 1, 2, 1, 3, 2, 1, 1, 1, 1,
839 1, 1, 1, 0, 2, 0, 6, 0, 6, 1,
840 1, 0, 0, 5, 0, 5, 1, 1, 0, 1,
841 0, 0, 3, 0, 3, 1, 1, 1, 1, 1,
842 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
843 1, 1, 0, 7, 0, 8, 1, 3, 0, 3,
844 0, 3, 2, 3, 2, 2, 1, 1, 1, 3,
845 4, 2, 3, 3, 3, 1, 1, 1, 3, 1,
846 1, 3, 4, 2, 3, 3, 3, 1, 3, 1,
847 1, 1, 3, 1, 1, 1, 4, 3, 4, 6,
848 5, 5, 2, 2, 1, 3, 1, 2, 2, 2,
849 2, 2, 2, 2, 2, 1, 1, 9, 0, 3,
850 4, 2, 1, 4, 1, 3, 3, 3, 1, 3,
851 3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
852 3, 3, 1, 3, 1, 3, 1, 3, 1, 0,
853 4, 1, 0, 4, 1, 0, 0, 7, 1, 3,
854 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
855 1, 3, 0, 1, 1, 1, 1, 1, 3, 0,
856 9, 0, 11, 2, 0, 6, 0, 7, 4, 4,
857 0, 0, 2, 1, 4, 0, 4, 1, 3, 4,
858 1, 3, 1, 1, 1, 1, 1, 2, 2, 2,
859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
863 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
865 3, 1, 4, 1, 3, 2, 2, 2, 0, 1,
866 0, 0, 11, 0, 0, 11, 6, 6, 0, 0,
867 10, 0, 0, 10, 5, 5, 4, 4, 0, 1,
868 1, 2, 5, 3, 2, 4, 1, 2, 3, 6,
869 0, 8, 4, 1, 3, 2, 1, 4, 1, 1,
870 2, 2, 1, 2, 1, 2, 1, 1, 1, 2,
871 1, 2, 2, 3, 1, 3, 1, 3, 1, 1,
872 3, 0, 2, 0, 4, 4, 1, 1, 2, 1,
873 1, 2, 0, 1, 5, 2, 3, 3, 4, 3,
874 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
875 1, 1, 1, 1, 1, 2, 2, 7, 6, 2,
876 0, 0, 10, 0, 6, 1, 1, 1, 1, 2,
877 1, 1, 1, 1, 1, 1, 1, 3, 1, 2,
878 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
879 1, 1, 3, 1, 1, 3, 2, 0, 5, 0,
880 6, 0, 4, 0, 5, 3, 2, 3, 0, 0,
881 0, 0, 0, 1, 2, 2, 3, 2, 3, 3,
882 4, 2, 2, 3, 3, 4, 1, 2, 1, 2,
883 1, 2, 1, 2, 1, 2, 1, 4, 2, 0,
884 5, 0, 6, 4, 4, 0, 0, 10, 1, 0,
885 4, 1, 1, 1, 1, 1, 3, 1, 4, 3,
886 4, 6, 5, 5, 2, 2, 1, 2, 2, 2,
887 2, 2, 2, 2, 2, 1, 1, 4, 1, 3,
888 3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
889 3, 3, 3, 1, 3, 3, 1, 3, 1, 3,
890 1, 3, 1, 3, 1, 3, 1, 0, 0, 7,
891 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
892 3, 3, 1, 0, 1, 2, 7, 2, 2, 7,
893 6, 2, 3, 2, 3, 2, 3, 3, 3, 3,
894 2, 3, 0, 1, 1, 1, 1, 1, 1, 1,
895 1
896};
897
898static const short yydefact[] = { 0,
899 11, 381, 349, 227, 349, 14, 0, 0, 0, 0,
900 241, 241, 254, 253, 255, 256, 257, 241, 241, 241,
901 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
902 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
903 241, 241, 241, 304, 305, 306, 303, 241, 241, 241,
904 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
905 241, 241, 241, 241, 349, 349, 349, 349, 349, 349,
906 349, 349, 349, 349, 619, 616, 617, 618, 620, 621,
907 0, 3, 6, 7, 373, 8, 9, 349, 43, 613,
908 10, 226, 228, 0, 329, 329, 349, 329, 349, 322,
909 349, 0, 349, 107, 241, 20, 349, 377, 378, 379,
910 382, 383, 244, 241, 241, 237, 349, 349, 349, 0,
911 465, 241, 472, 0, 0, 0, 595, 0, 0, 0,
912 0, 241, 505, 0, 241, 241, 241, 241, 241, 241,
913 241, 241, 241, 0, 42, 0, 0, 0, 0, 0,
914 0, 241, 145, 615, 141, 142, 516, 144, 146, 157,
915 173, 167, 166, 175, 179, 182, 185, 190, 193, 195,
916 197, 199, 202, 205, 209, 221, 507, 169, 0, 0,
917 497, 455, 456, 457, 458, 0, 0, 459, 241, 460,
918 0, 461, 0, 462, 464, 140, 0, 449, 0, 503,
919 0, 479, 436, 0, 0, 0, 445, 0, 446, 425,
920 444, 441, 442, 437, 438, 439, 0, 0, 443, 0,
921 0, 0, 447, 424, 0, 258, 259, 260, 261, 266,
922 268, 267, 271, 272, 283, 285, 286, 284, 269, 270,
923 262, 263, 264, 265, 280, 281, 278, 282, 273, 274,
924 277, 275, 276, 289, 291, 296, 279, 292, 293, 294,
925 295, 287, 288, 290, 297, 298, 301, 302, 299, 300,
926 307, 309, 308, 310, 311, 312, 313, 314, 315, 316,
927 4, 241, 0, 109, 113, 499, 349, 349, 614, 5,
928 349, 330, 326, 327, 320, 328, 0, 241, 241, 318,
929 241, 241, 0, 319, 374, 317, 380, 384, 349, 0,
930 243, 349, 0, 234, 241, 613, 16, 18, 0, 349,
931 241, 28, 392, 241, 615, 141, 173, 225, 468, 0,
932 241, 241, 241, 223, 0, 604, 606, 611, 0, 0,
933 349, 398, 0, 0, 160, 165, 164, 163, 162, 161,
934 0, 241, 158, 159, 241, 0, 0, 0, 0, 0,
935 241, 474, 241, 467, 241, 414, 415, 416, 417, 0,
936 418, 419, 241, 421, 241, 420, 422, 479, 241, 241,
937 153, 154, 0, 241, 241, 241, 241, 241, 241, 241,
938 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
939 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
940 200, 206, 203, 506, 241, 0, 602, 39, 0, 480,
941 498, 509, 599, 0, 241, 241, 0, 0, 0, 504,
942 40, 426, 430, 440, 451, 452, 450, 0, 0, 41,
943 22, 241, 392, 349, 241, 479, 500, 241, 229, 108,
944 349, 0, 324, 0, 349, 0, 349, 0, 241, 241,
945 240, 241, 239, 235, 349, 0, 241, 0, 349, 241,
946 19, 389, 0, 0, 375, 390, 241, 0, 0, 241,
947 0, 512, 0, 224, 0, 603, 612, 143, 241, 241,
948 0, 400, 399, 401, 241, 463, 241, 0, 607, 608,
949 609, 610, 605, 470, 0, 0, 598, 349, 477, 596,
950 0, 0, 148, 0, 155, 0, 0, 0, 210, 211,
951 212, 213, 214, 215, 216, 217, 218, 219, 220, 176,
952 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
953 191, 192, 194, 196, 198, 241, 241, 241, 222, 241,
954 170, 493, 144, 497, 0, 349, 478, 510, 0, 466,
955 0, 448, 434, 0, 0, 24, 0, 484, 241, 501,
956 110, 349, 241, 349, 479, 112, 241, 230, 323, 241,
957 339, 0, 347, 342, 0, 348, 0, 364, 367, 361,
958 363, 245, 241, 241, 613, 15, 30, 241, 392, 241,
959 17, 376, 385, 387, 36, 394, 349, 393, 397, 241,
960 473, 508, 0, 514, 223, 321, 406, 0, 392, 402,
961 241, 0, 174, 349, 241, 0, 241, 476, 492, 0,
962 517, 241, 149, 147, 241, 241, 201, 0, 204, 241,
963 172, 494, 495, 241, 241, 241, 515, 241, 241, 349,
964 44, 26, 485, 488, 241, 241, 486, 241, 502, 0,
965 232, 241, 325, 345, 481, 331, 346, 481, 334, 241,
966 366, 241, 0, 0, 241, 241, 241, 0, 32, 0,
967 241, 0, 46, 391, 241, 403, 469, 241, 0, 407,
968 410, 241, 0, 408, 0, 392, 0, 0, 241, 475,
969 241, 241, 156, 151, 152, 207, 0, 496, 511, 0,
970 241, 241, 241, 241, 241, 241, 241, 241, 241, 0,
971 141, 142, 144, 157, 173, 166, 179, 182, 185, 190,
972 193, 195, 197, 199, 202, 0, 520, 519, 528, 537,
973 547, 549, 553, 556, 559, 564, 567, 569, 571, 573,
974 575, 577, 581, 522, 140, 0, 23, 25, 72, 44,
975 489, 490, 241, 487, 21, 241, 246, 349, 337, 481,
976 349, 338, 481, 360, 365, 241, 0, 238, 241, 248,
977 236, 241, 0, 349, 46, 34, 0, 386, 388, 37,
978 79, 395, 369, 0, 241, 403, 370, 404, 513, 431,
979 0, 411, 409, 412, 0, 0, 150, 471, 0, 520,
980 241, 171, 601, 0, 0, 160, 165, 164, 163, 162,
981 161, 158, 159, 241, 241, 241, 153, 154, 0, 241,
982 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
983 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
984 241, 241, 241, 241, 241, 241, 200, 578, 203, 435,
985 0, 429, 66, 82, 70, 86, 87, 88, 89, 90,
986 93, 94, 45, 72, 48, 71, 349, 349, 52, 27,
987 491, 241, 0, 351, 349, 349, 350, 349, 349, 349,
988 368, 241, 251, 0, 246, 12, 31, 33, 46, 29,
989 613, 73, 84, 77, 47, 79, 50, 78, 392, 396,
990 371, 372, 223, 405, 413, 0, 0, 479, 208, 600,
991 143, 241, 0, 148, 0, 0, 0, 0, 582, 583,
992 584, 585, 586, 587, 588, 589, 590, 591, 592, 176,
993 177, 178, 181, 180, 183, 184, 186, 187, 188, 189,
994 191, 192, 194, 196, 198, 574, 241, 576, 241, 428,
995 349, 64, 613, 49, 103, 0, 53, 246, 241, 349,
996 0, 241, 352, 340, 349, 343, 349, 362, 249, 241,
997 613, 35, 0, 349, 64, 613, 51, 241, 432, 241,
998 597, 594, 174, 241, 149, 147, 241, 241, 0, 521,
999 349, 59, 60, 61, 62, 63, 613, 54, 64, 0,
1000 0, 0, 119, 83, 128, 613, 0, 118, 0, 95,
1001 100, 99, 98, 97, 96, 101, 102, 105, 0, 231,
1002 241, 354, 241, 241, 349, 357, 0, 332, 0, 335,
1003 250, 252, 0, 38, 613, 613, 85, 613, 117, 241,
1004 0, 168, 593, 480, 0, 151, 152, 579, 0, 64,
1005 0, 65, 58, 56, 57, 0, 122, 0, 0, 0,
1006 0, 0, 115, 0, 0, 131, 138, 613, 130, 0,
1007 241, 247, 358, 241, 0, 355, 241, 341, 0, 344,
1008 0, 13, 81, 81, 116, 433, 518, 150, 241, 81,
1009 55, 81, 123, 120, 127, 126, 0, 124, 125, 129,
1010 114, 0, 134, 0, 0, 0, 0, 0, 613, 233,
1011 349, 353, 359, 333, 336, 74, 80, 76, 580, 67,
1012 69, 121, 135, 132, 0, 136, 137, 139, 92, 241,
1013 0, 356, 133, 104, 91, 241, 106, 0, 0, 0
1014};
1015
1016static const short yydefgoto[] = { 1148,
1017 81, 82, 83, 84, 119, 316, 317, 85, 651, 760,
1018 318, 785, 899, 86, 683, 901, 884, 88, 758, 759,
1019 790, 791, 873, 905, 874, 1007, 1008, 1064, 1009, 1010,
1020 875, 961, 962, 907, 984, 985, 1126, 1127, 963, 908,
1021 986, 877, 1146, 1140, 878, 1028, 879, 1019, 1080, 89,
1022 285, 444, 446, 90, 1014, 1047, 1015, 1107, 1016, 1077,
1023 1078, 159, 160, 514, 161, 162, 163, 416, 551, 164,
1024 165, 166, 167, 168, 169, 170, 171, 172, 173, 546,
1025 174, 548, 175, 547, 811, 176, 204, 485, 329, 286,
1026 92, 662, 766, 113, 594, 93, 312, 178, 283, 114,
1027 115, 883, 781, 894, 95, 96, 97, 98, 342, 287,
1028 452, 100, 293, 101, 770, 1089, 773, 1091, 665, 1037,
1029 668, 1039, 102, 886, 887, 1034, 1035, 103, 673, 587,
1030 588, 795, 117, 474, 110, 111, 105, 602, 603, 475,
1031 476, 477, 685, 608, 343, 801, 797, 494, 364, 205,
1032 225, 206, 207, 365, 913, 1051, 209, 648, 210, 211,
1033 212, 213, 180, 421, 366, 367, 479, 626, 368, 330,
1034 505, 369, 185, 370, 557, 768, 974, 218, 571, 509,
1035 420, 187, 572, 573, 371, 188, 189, 372, 645, 613,
1036 373, 221, 374, 378, 702, 737, 861, 738, 739, 740,
1037 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
1038 751, 752, 753, 957, 1099, 754, 1054, 375, 376, 194,
1039 377, 290, 196, 197, 107
1040};
1041
1042static const short yypact[] = { 1812,
1043-32768, 148, 5048,-32768, 6116,-32768, 432, 2708, 3070, 3070,
1044-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1045-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1046-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1047-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1048-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1049-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1050-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1051 1993,-32768,-32768,-32768, 236,-32768,-32768, 4898,-32768, 67,
1052-32768,-32768,-32768, 71, 5848, 5848,-32768, 5848, 89, 104,
1053-32768, 1025,-32768,-32768, 432,-32768,-32768,-32768,-32768,-32768,
1054 148,-32768,-32768, 178,-32768, 89,-32768,-32768, 5048, 183,
1055-32768, 5313,-32768, 221, 281, 290,-32768, 299, 432, 177,
1056 311, 755,-32768, 2348, 5313, 5313, 5313, 5313, 5313, 5313,
1057-32768, 5338, 5338, 362,-32768, 376, 388, 416, 422, 434,
1058 171, 4350,-32768, 436, 444,-32768, 464,-32768,-32768, 734,
1059 844,-32768,-32768,-32768, 1072, 197, 248, 637, 315, 472,
1060 470, 481, 483, 210,-32768,-32768, 132,-32768, 3112, 459,
1061 485,-32768,-32768,-32768,-32768, 525, 2750,-32768, 4350,-32768,
1062 3112,-32768, 3112,-32768,-32768,-32768, 539,-32768, 566,-32768,
1063 2528, 464, 562, 405, 517, 2889,-32768, 3070,-32768,-32768,
1064-32768, 5610,-32768,-32768,-32768,-32768, 597, 621,-32768, 3070,
1065 3070, 3112,-32768,-32768, 558,-32768,-32768,-32768,-32768,-32768,
1066-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1067-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1068-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1069-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1070-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1071-32768, 629, 640,-32768,-32768,-32768, 89, 4743,-32768,-32768,
1072-32768,-32768,-32768,-32768,-32768,-32768, 665, 381,-32768,-32768,
1073 432, 432, 223,-32768, 236,-32768,-32768,-32768,-32768, 671,
1074-32768,-32768, 700, 701, 381, 67,-32768, 656, 703,-32768,
1075 432,-32768, 169, 5313,-32768,-32768,-32768,-32768,-32768, 712,
1076 5313, 5313, 5313, 5200, 719,-32768,-32768,-32768, 453, 506,
1077 5480, 491, 720, 726,-32768,-32768,-32768,-32768,-32768,-32768,
1078 735, 5313,-32768,-32768, 5313, 753, 786, 791, 794, 797,
1079 5313,-32768, 1381,-32768, 4350,-32768,-32768,-32768,-32768, 810,
1080-32768,-32768, 4350,-32768, 4350,-32768,-32768,-32768, 5219, 5313,
1081-32768,-32768, 112, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1082 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1083 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1084-32768,-32768,-32768,-32768, 5313, 776,-32768,-32768, 2168,-32768,
1085-32768, 831,-32768, 852, 4350, 5313, 603, 833, 853,-32768,
1086-32768,-32768,-32768, 5610,-32768,-32768,-32768, 1684, 861,-32768,
1087-32768, 5313, 253, 3249, 381, 862,-32768, 381,-32768, 530,
1088 6116, 808, 905, 908, 915, 917, 915, 432, 926, 381,
1089-32768, 381,-32768,-32768,-32768, 877, 919, 924,-32768, 381,
1090 656,-32768, 432, 946,-32768, 952, 432, 393, 954, 4350,
1091 642, 963, 648, 963, 968,-32768,-32768,-32768,-32768, 5244,
1092 967, 686,-32768, 691, 5313,-32768,-32768, 971,-32768,-32768,
1093-32768,-32768,-32768,-32768, 989, 976,-32768, 3249,-32768,-32768,
1094 1008, 1009,-32768, 670,-32768, 115, 432, 432,-32768,-32768,
1095-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1096-32768,-32768, 1072, 1072, 197, 197, 248, 248, 248, 248,
1097 637, 637, 315, 472, 470, 5313, 5313, 5313,-32768, 5381,
1098-32768,-32768, 5956,-32768, 2931, 3424,-32768,-32768, 1012,-32768,
1099 727,-32768,-32768, 1028, 998,-32768, 1013,-32768, 3774,-32768,
1100-32768, 3599, 3816,-32768, 862,-32768,-32768, 1049,-32768,-32768,
1101 1035, 1052,-32768, 1062, 1064,-32768, 358,-32768, 1067,-32768,
1102-32768,-32768, 178,-32768, 327,-32768,-32768, 5313, 259, 381,
1103-32768,-32768, 1077,-32768,-32768, 1080, 6116,-32768,-32768, 4350,
1104-32768,-32768, 1079,-32768, 5200,-32768,-32768, 1070, 704, 691,
1105 5269, 1088,-32768,-32768,-32768, 1095, 4350,-32768,-32768, 1098,
1106-32768, 5313,-32768,-32768,-32768,-32768, 481, 451, 483, 5313,
1107-32768,-32768,-32768, 3952, 4350, 5313,-32768, 5406, 5313,-32768,
1108-32768,-32768,-32768,-32768, 3994, 4130,-32768, 4172,-32768, 1101,
1109-32768,-32768,-32768,-32768,-32768, 1081,-32768,-32768, 1082,-32768,
1110 432,-32768, 432, 1109, 4770,-32768,-32768, 1102,-32768, 1103,
1111-32768, 305,-32768,-32768, 432, 548,-32768, 4350, 1112,-32768,
1112-32768, 103, 1106,-32768, 1107, 107, 1114, 1108, 4350,-32768,
1113 5313, 5406,-32768,-32768,-32768,-32768, 1116,-32768,-32768, 740,
1114 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5338, 5338, 1119,
1115 747, 772, 778, 847, 1282, 806, 1075, 668, 799, 795,
1116 730, 1110, 1105, 1111, 1091, 275, 1125,-32768,-32768,-32768,
1117-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1118-32768,-32768,-32768,-32768, 809, 814,-32768,-32768, 1076,-32768,
1119-32768,-32768, 4308,-32768,-32768,-32768,-32768, 6042,-32768,-32768,
1120 6042,-32768,-32768,-32768,-32768, 5313, 840,-32768, 4770,-32768,
1121-32768, 4770, 1074,-32768,-32768,-32768, 1137,-32768,-32768,-32768,
1122 1142,-32768, 236, 1140,-32768, 325,-32768, 691,-32768,-32768,
1123 1157,-32768,-32768,-32768, 1160, 432,-32768,-32768, 817, 1161,
1124 5313,-32768, 1147, 845, 1162, 857, 858, 859, 866, 912,
1125 935, 937, 938, 5313, 5294, 5313, 960, 962, 117, 5313,
1126 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1127 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313, 5313,
1128 5313, 5313, 5313, 5313, 5313, 5313, 5313,-32768, 5313,-32768,
1129 1168, 1173, 95,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1130-32768,-32768,-32768, 1043,-32768,-32768,-32768,-32768, 997,-32768,
1131-32768, 4770, 477,-32768, 89, 4972,-32768, 6042, 4972, 6042,
1132-32768,-32768,-32768, 848,-32768,-32768,-32768,-32768,-32768,-32768,
1133 67, 105,-32768,-32768,-32768, 1048,-32768,-32768, 266,-32768,
1134-32768,-32768, 5200,-32768,-32768, 1167, 1175, 862,-32768,-32768,
1135 979, 5313, 1174, 982, 987, 191, 432, 432,-32768,-32768,
1136-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 999,
1137 1001, 1014, 907, 1007, 443, 594, 76, 521, 617, 742,
1138 609, 669, 570, 749, 313, 481, 5313, 483, 5406,-32768,
1139 5740, 502, 120,-32768,-32768, 674,-32768,-32768,-32768,-32768,
1140 1178, 62,-32768,-32768, 4972,-32768, 4972,-32768,-32768, 920,
1141 542,-32768, 1113, 5740, 502, 120,-32768, 57,-32768,-32768,
1142-32768, 1019, 1023,-32768, 1024, 1026,-32768,-32768, 867,-32768,
1143 4586,-32768,-32768,-32768,-32768,-32768, 550,-32768, 502, 723,
1144 74, 74,-32768,-32768, 382, 560, 1117,-32768, 93,-32768,
1145-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 571,-32768,
1146 381,-32768, 5313, 1177,-32768, 1179, 1183,-32768, 1185,-32768,
1147-32768,-32768, 1120,-32768, 4430, 550,-32768, 560,-32768, 310,
1148 1181,-32768,-32768,-32768, 1184, 1032, 1039,-32768, 1121, 502,
1149 1123,-32768,-32768,-32768,-32768, 283, 382, 186, 432, 432,
1150 74, 1139,-32768, 93, 93,-32768, 396, 580,-32768, 93,
1151-32768,-32768,-32768, 62, 1217,-32768, 5313,-32768, 1216,-32768,
1152 1218,-32768, 1165, 1165,-32768,-32768,-32768, 1041, 5313, 1165,
1153-32768, 1165,-32768,-32768,-32768, 382, 1213,-32768,-32768, 382,
1154-32768, 486, 396, 331, 432, 432, 93, 1154, 580,-32768,
1155-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1156-32768,-32768,-32768,-32768, 1215,-32768,-32768, 396,-32768,-32768,
1157 1156,-32768,-32768,-32768,-32768,-32768,-32768, 1244, 1245,-32768
1158};
1159
1160static const short yypgoto[] = {-32768,
1161-32768, 1169,-32768,-32768,-32768,-32768, -453, -103,-32768,-32768,
1162 925,-32768,-32768,-32768,-32768,-32768, 80,-32768, 488,-32768,
1163 -707,-32768,-32768,-32768, -703, 267, 196,-32768,-32768, 245,
1164 384,-32768,-32768, 353,-32768,-32768, -648, -689,-32768,-32768,
1165-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1166-32768,-32768,-32768,-32768,-32768,-32768, -860, 146, 277, -858,
1167 184,-32768, -602, 442, 515,-32768, -556,-32768,-32768, 137,
1168 -326, -311, -246, -330, -363, -362, -395, -530, -469,-32768,
1169 -554,-32768, -78,-32768,-32768, 787, 836, -607, -355, 1,
1170-32768,-32768,-32768, -456,-32768,-32768,-32768, 0, -244, 811,
1171-32768, -782, -676,-32768,-32768,-32768,-32768,-32768,-32768, 128,
1172 690,-32768, 644,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1173-32768,-32768, 97, -669, -512,-32768, 188,-32768,-32768, 601,
1174 607, 487, 5, -374, 1176,-32768, 11,-32768,-32768, -553,
1175-32768,-32768,-32768, 600, -292, 947,-32768, -483, 1022, 1278,
1176-32768, 1069,-32768, 1060,-32768,-32768,-32768,-32768, -97,-32768,
1177-32768,-32768,-32768, 317, 1078, 1115,-32768,-32768, 1267,-32768,
1178-32768, -353,-32768, 635, 238, -529, -714,-32768, 785,-32768,
1179-32768, 876, -23, -446, 111,-32768, 174, 59,-32768,-32768,
1180 194,-32768, 220,-32768,-32768, 595,-32768, 337,-32768,-32768,
1181-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1182-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1321,-32768,-32768,
1183 1367, -302, -255, 68,-32768
1184};
1185
1186
1187#define YYLAST 6296
1188
1189
1190static const short yytable[] = { 94,
1191 91, 305, 94, 592, 104, 504, 453, 689, 620, 506,
1192 226, 227, 112, 466, 545, 637, 601, 228, 229, 230,
1193 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
1194 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1195 251, 252, 253, 328, 543, 724, 544, 254, 255, 256,
1196 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
1197 267, 268, 269, 270, 288, 693, 190, 106, 567, 876,
1198 106, 533, 534, 468, 120, 541, 542, 898, 639, 87,
1199 94, 91, 490, 1033, 289, 104, 565, 906, 535, 536,
1200 2, 726, 576, 736, 291, 2, -560, 1011, 297, 724,
1201 -560, 889, 893, 428, 94, 895, -241, 1012, 432, 644,
1202 433, 472, 981, 310, 311, 313, 1074, 734, 319, 219,
1203 219, 308, 437, 400, 401, 656, 1075, 99, 490, 321,
1204 116, 804, 118, 341, 618, 415, 2, 289, 771, 517,
1205 351, 634, 805, 1011, 927, 726, 681, 736, 106, 414,
1206 1066, 1067, 415, 1012, 518, 537, 538, 539, 540, 928,
1207 87, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1208 280, 734, 106, 472, 976, 967, 361, 362, 735, -68,
1209 -68, 2, 220, 220, 876, 1029, 322, 299, 434, -75,
1210 -75, 982, 190, 295, 336, 298, 335, 300, 309, 304,
1211 341, 191, 798, 306, 624, 968, 323, 1106, 99, 1011,
1212 1110, 415, 1104, 314, 315, 1112, 1113, 996, 975, 1012,
1213 977, 506, 292, 292, 680, 292, 468, 192, 398, 399,
1214 75, 76, 735, 77, 78, 75, 76, 190, 77, 78,
1215 888, 458, 678, 890, 331, 190, 320, 325, 1013, 190,
1216 412, 190, 733, 1106, 108, 109, 383, 472, 1138, -242,
1217 1038, 282, 1040, 472, 413, 695, 325, 1076, -68, -68,
1218 472, 345, 346, 347, 348, 349, 350, 566, -75, -75,
1219 190, 442, 328, 679, 731, 732, 297, 453, 447, -349,
1220 691, -349, 677, 325, 1013, 400, 401, 94, 451, -349,
1221 454, 456, 450, 1042, 332, 989, 733, 1103, 1068, 788,
1222 1069, 219, 798, 333, 94, 858, 219, 730, 219, 465,
1223 319, 727, 334, 341, 181, 1070, 956, 191, 337, 859,
1224 219, 219, 698, -572, -400, 490, 728, -572, 731, 732,
1225 432, 491, -349, -349, 289, -349, -349, 707, -241, 676,
1226 490, 409, 492, 192, 1011, 693, 724, 1134, 2, 325,
1227 1013, 1105, 341, 328, 1012, 106, 406, 407, 455, 457,
1228 459, 730, 191, 973, 220, 727, 973, 670, 671, 220,
1229 191, 220, 106, 445, 191, 355, 191, 448, 322, 958,
1230 728, 356, 755, 220, 220, 556, 75, 76, 192, 77,
1231 78, 729, 726, 357, 736, 460, 192, 1068, 462, 1069,
1232 192, 328, 192, 415, 2, 191, 470, 488, 815, 473,
1233 891, 1114, 430, 1115, 1070, 415, -349, -349, 734, -349,
1234 -349, 358, -349, -349, 447, -349, -349, 359, 1116, -349,
1235 -349, 192, -349, -349, 94, 1128, 755, 94, 360, 574,
1236 344, 1130, 577, 1131, 582, 729, 585, -619, 591, 94,
1237 955, 94, 973, -557, 973, -616, 598, -557, 489, 319,
1238 487, 415, 706, 415, 398, 399, 607, 190, 75, 76,
1239 321, 77, 78, 75, 76, -617, 77, 78, 616, 735,
1240 953, 491, 954, 622, 969, 417, 451, 970, 75, 76,
1241 408, 77, 78, 911, 325, 1013, 1105, 423, 409, 424,
1242 1133, 1114, 106, 1115, -241, 106, 490, 943, 944, 328,
1243 410, 951, 952, 414, 2, 589, 415, 106, 1116, 106,
1244 488, 530, 531, 532, 945, 946, 411, 322, 439, 473,
1245 604, -561, 328, 419, 609, -561, 578, -349, 219, 418,
1246 -349, 583, -349, 586, 75, 76, 447, 77, 78, 289,
1247 425, 595, 970, 733, 992, 600, 620, 289, 400, 401,
1248 1060, -241, 447, 490, 1082, -453, 660, 289, 489, 451,
1249 1071, 2, 793, -618, 635, 636, 1002, 1003, 1081, 426,
1250 -568, 970, 674, 675, -568, 731, 732, 289, 983, 319,
1251 1117, 947, 948, 949, 950, 75, 76, 431, 77, 78,
1252 321, 220, 191, 190, -558, 435, 1004, 1005, -558, 622,
1253 430, 406, 407, 415, 451, 398, 399, 488, 730, -565,
1254 1006, 623, 727, -565, 704, 705, 327, -562, 192, 341,
1255 436, -562, 186, 217, 217, 402, 403, 728, 440, 327,
1256 327, 327, 327, 327, 327, 441, 353, 354, 404, 405,
1257 1017, 767, 415, 443, 400, 401, 612, 322, 415, 774,
1258 578, 776, 614, 402, 403, 782, 783, 1083, 1043, -242,
1259 787, 467, 449, 1049, 607, 794, 404, 405, 461, -566,
1260 632, 491, 793, -566, 633, 473, 796, 328, 1059, 844,
1261 845, 1055, 492, 755, 1061, 402, 403, 1018, 472, -241,
1262 341, 490, 729, 1072, -241, 692, 621, 463, 404, 405,
1263 697, 75, 76, 464, 77, 78, 469, -349, 691, -349,
1264 1018, 1123, 919, 480, 686, 554, 486, -349, 589, 294,
1265 589, 296, 1093, 1094, 495, 1095, 757, 415, 191, 789,
1266 496, 647, 609, 106, 1065, 1018, 1018, 379, 497, 380,
1267 415, -349, -563, 1079, 813, 882, -563, -525, 186, -570,
1268 499, -525, 338, -570, 192, 1118, -349, 408, 324, 381,
1269 382, 852, 853, 135, 136, 137, 138, 139, 140, 400,
1270 401, 1020, -526, 1021, 910, 794, -526, 622, -524, 141,
1271 142, 143, -524, 500, 1022, 1023, 796, 1024, 501, 1025,
1272 1026, 502, 1018, 186, 503, 1018, 1141, 550, 1079, 1079,
1273 829, 186, 1027, 144, 1079, 186, -546, 186, 508, -523,
1274 -546, 848, 849, -523, 415, 217, 429, 415, 862, 558,
1275 217, 917, 217, 177, 850, 851, 846, 847, 816, 817,
1276 818, 819, 820, 821, 217, 217, 186, 562, 1018, 892,
1277 671, 1079, 559, 106, 153, 415, 384, 979, 980, 921,
1278 825, 564, 826, 916, -349, 327, 563, -540, -545, -544,
1279 897, -540, -545, -544, 971, 575, -543, 415, 1058, -349,
1280 -543, 978, 827, 828, 579, 885, 325, 1063, 885, 385,
1281 386, 387, 388, 389, 390, 391, 392, 393, 394, 327,
1282 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1283 327, 327, 327, 327, 327, 580, 581, -555, 325, 326,
1284 156, -555, -542, -241, 158, 584, -542, 1001, 779, 1041,
1285 395, 396, 397, 324, 590, 597, 305, 599, 135, 136,
1286 137, 138, 139, 140, 328, -541, 327, -538, -539, -541,
1287 1045, -538, -539, 596, 141, 142, 143, 339, 1030, 340,
1288 605, 94, 606, 965, 966, 610, 1036, 940, 941, 942,
1289 -535, 972, -536, 415, -535, 615, -536, 794, 144, 1052,
1290 619, 625, 577, 451, 997, 998, 1056, 1057, 1050, -527,
1291 628, 447, -530, -527, 327, 988, -530, 632, 328, 327,
1292 627, 995, 512, 885, 177, 885, 885, 885, 630, -550,
1293 1129, -551, 177, -550, 650, -551, 177, -554, 177, 153,
1294 94, -554, 631, 1085, -552, 646, 427, 652, -552, 106,
1295 395, 396, 397, -548, -531, 447, -529, -548, -531, 794,
1296 -529, 649, -533, 186, 664, 106, -533, 177, 993, -534,
1297 327, -532, 327, -534, 641, -532, 1031, 179, 208, 208,
1298 666, 661, 217, 866, 867, 868, 869, 870, 871, 872,
1299 1120, 667, 669, 94, 684, 182, 214, 214, 1036, 672,
1300 301, 302, 303, 325, 326, 156, 690, 682, 106, 158,
1301 769, 772, 885, 688, 885, 395, 396, 397, 841, 842,
1302 843, 696, 327, 863, 864, 865, 699, 106, 902, 903,
1303 904, 701, 183, 215, 215, 765, 778, 786, 784, 800,
1304 802, 1086, 807, 803, 806, 327, 1108, 1109, 854, 1144,
1305 812, 498, 824, 855, 857, 1147, 863, 864, 865, 860,
1306 856, 106, 866, 867, 868, 869, 870, 871, 872, 478,
1307 896, 900, 725, 909, 920, 515, 481, 482, 483, 484,
1308 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1309 529, 914, 1136, 1137, 915, 918, 922, 478, 959, 186,
1310 960, 990, 991, 179, 994, 1032, 1053, 1084, 478, 1044,
1311 1087, 549, 1088, 1073, 1090, 1096, 1092, 1100, 1098, 1102,
1312 422, 182, 902, 903, 904, 516, 725, 1142, 866, 867,
1313 868, 869, 870, 871, 872, 1111, 327, 327, 327, 327,
1314 327, 327, 822, 823, 1122, 1124, 864, 1125, 179, 1132,
1315 1139, 1143, 1145, 1149, 1150, 471, 179, 880, 183, 281,
1316 179, 1046, 179, 1062, 177, 1101, 182, 964, 987, 1135,
1317 208, 561, 1048, 1119, 182, 208, 925, 208, 182, 663,
1318 182, 1121, 593, 777, 184, 216, 216, 775, 214, 208,
1319 208, 179, 912, 214, 792, 214, 307, 224, 493, 438,
1320 327, 1097, 629, 183, 555, 1000, 810, 214, 214, 182,
1321 0, 183, 0, 0, 830, 183, 0, 183, 0, 0,
1322 0, 0, 0, 0, 0, 215, 0, 0, 0, 0,
1323 215, 0, 215, 0, 0, 327, 0, 0, 193, 222,
1324 222, 0, 0, 0, 215, 215, 183, 831, 832, 833,
1325 834, 835, 836, 837, 838, 839, 840, 0, 0, 0,
1326 0, 0, 0, 0, 0, 327, 327, 327, 327, 327,
1327 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
1328 327, 327, 0, 327, 195, 223, 223, 0, 0, 0,
1329 0, 0, 638, 0, 0, 0, 507, 0, 0, 0,
1330 177, 0, 0, 0, 510, 0, 511, 0, 0, -479,
1331 184, 0, 0, 0, 363, 0, 0, 0, 0, 135,
1332 136, 137, 138, 139, 140, 0, 0, 0, 703, 0,
1333 0, 0, 0, 0, 0, 141, 142, 143, 0, 0,
1334 0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
1335 0, 0, 0, 0, 0, 184, 560, 0, 0, 144,
1336 484, 0, 0, 184, 193, 0, 0, 184, 0, 184,
1337 0, 780, 0, 0, 0, 570, 0, 216, 0, 0,
1338 0, 0, 216, 725, 216, 478, 0, 0, 179, 0,
1339 0, 710, 0, 0, 756, 0, 216, 216, 184, 0,
1340 153, 0, 0, 0, 0, 0, 182, 208, 0, 193,
1341 195, 611, 0, 0, 0, 0, 0, 193, 0, 0,
1342 0, 193, 0, 193, 0, 214, 0, 0, 0, 0,
1343 0, 222, 0, 0, 0, 0, 222, 0, 222, 570,
1344 0, 0, 0, 183, 0, 0, 809, 0, 0, 0,
1345 222, 222, 193, 0, 0, 195, 814, 327, 0, 0,
1346 0, 0, 215, 195, 325, 326, 156, 195, 0, 195,
1347 158, 0, 0, 0, 0, 780, 0, 223, 780, 0,
1348 0, 0, 223, 0, 223, 0, 0, 570, 0, 0,
1349 0, 0, 0, 0, 0, 0, 223, 223, 195, 0,
1350 0, 0, 0, 570, 659, 0, 0, 0, 0, 0,
1351 0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
1352 923, 515, 0, 327, 179, 0, 929, 930, 931, 932,
1353 933, 934, 935, 936, 937, 938, 939, 0, 0, 0,
1354 0, 687, 182, 0, 0, 0, 0, 0, 0, 0,
1355 0, 0, 0, 0, 0, 0, 0, 0, 700, 0,
1356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1357 0, 926, 0, 0, 0, 659, 709, 0, 780, 183,
1358 0, 0, 0, 0, 0, 0, 0, 659, 0, 0,
1359 0, 0, 0, 0, 198, 184, 0, 0, 0, 122,
1360 123, 124, 0, 0, 199, 127, 128, 129, 130, 131,
1361 132, 200, -427, -427, 216, 0, 0, 201, -427, 799,
1362 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1363 808, 0, 0, 0, 0, -241, 0, 0, 141, 142,
1364 143, 0, 0, 0, 0, 0, 0, 0, 0, 193,
1365 0, 0, 0, 0, 0, 0, 0, 0, 484, 0,
1366 0, 0, 144, 0, 0, 0, 0, 0, 222, 0,
1367 0, 0, 0, 0, 0, 0, 780, 0, 0, 0,
1368 0, 0, 0, 0, -427, 146, 147, 148, 149, 150,
1369 151, 0, 0, 0, 0, 195, 0, 0, 0, 152,
1370 0, 0, 999, 153, 0, 0, 0, 0, 0, 0,
1371 0, 0, 0, 0, 223, 0, 0, 0, 0, 0,
1372 0, -1, 1, 0, 0, 0, 0, 0, 0, 0,
1373 0, 184, 0, 0, 0, 0, 0, 0, 0, 0,
1374 0, 0, 0, 0, 0, -241, 0, 0, 0, 0,
1375 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
1376 0, 0, 0, 0, 0, 3, 0, 154, 155, 156,
1377 202, 203, 0, 158, 0, 0, 0, 0, 0, 0,
1378 0, 0, 0, 0, 0, 193, 0, -349, -349, -349,
1379 0, 4, 0, 0, 0, 5, 6, 7, 0, 0,
1380 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1381 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
1382 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1383 13, 195, 14, 15, 16, 17, 18, 19, 20, 21,
1384 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1385 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1386 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1387 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1388 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1389 70, 71, 72, 73, 74, 75, 76, 0, 77, 78,
1390 79, 80, -2, 1, 0, 0, 0, 0, 0, 0,
1391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1392 0, 0, 0, 0, 0, 0, -241, 0, 0, 0,
1393 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
1394 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 0, 0, 0, 0, 0, 0, -349, -349,
1397 -349, 0, 4, 0, 0, 0, 5, 6, 7, 0,
1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1401 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1402 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1403 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
1404 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1405 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1406 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1407 69, 70, 71, 72, 73, 74, 75, 76, 121, 77,
1408 78, 79, 80, 122, 123, 124, 0, 125, 126, 127,
1409 128, 129, 130, 131, 132, 133, -479, 552, 0, 0,
1410 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1411 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1412 0, 3, 141, 142, 143, 0, 0, 0, 0, 0,
1413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414 0, 0, 0, -349, -349, -349, 144, 4, 0, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1417 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1418 0, 0, 0, 152, 11, 12, 13, 153, 14, 15,
1419 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1420 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1421 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1422 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1423 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1424 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1425 74, 154, 155, 156, 157, 78, 79, 553, 121, 0,
1426 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1427 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1428 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1429 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1430 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1435 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1436 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1437 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1438 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1439 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1440 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1441 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1442 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1443 -241, 154, 155, 156, 157, 78, -241, 158, 198, 0,
1444 0, 0, 0, 122, 123, 124, 0, 0, 199, 127,
1445 128, 129, 130, 131, 132, 200, -479, -483, 0, 0,
1446 0, 201, 0, 0, 0, 0, 135, 136, 137, 138,
1447 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1448 0, 0, 141, 142, 143, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, -241, -241, -241, 144, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
1453 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1454 0, 0, 0, 152, -241, -241, -241, 153, -241, -241,
1455 -241, -241, -241, -241, -241, -241, -241, -241, 0, -241,
1456 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1457 -241, -241, -241, -241, 0, -241, -241, -241, -241, -241,
1458 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1459 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1460 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
1461 -241, 154, 155, 156, 202, 203, -241, 158, 121, 0,
1462 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1463 128, 129, 130, 131, 132, 133, -479, 0, 0, 0,
1464 0, 134, 0, 0, 0, 0, 135, 136, 137, 138,
1465 139, 140, 0, 0, 0, 0, 0, 0, 0, -241,
1466 121, 0, 141, 142, 143, 122, 123, 124, 0, 125,
1467 126, 127, 128, 129, 130, 131, 132, 133, -479, 0,
1468 0, 0, 0, 134, 0, 0, 144, 0, 135, 136,
1469 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1470 0, -241, 0, 0, 141, 142, 143, 0, 145, 146,
1471 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1472 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475 -454, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1476 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 154, 155, 156, 157, 78, 0, 158, 0, 198,
1480 0, 0, 0, 0, 122, 123, 124, 0, 0, 199,
1481 127, 128, 129, 130, 131, 132, 200, -479, -483, 0,
1482 0, 0, 201, 0, 0, 0, 0, 135, 136, 137,
1483 138, 139, 140, 154, 155, 156, 157, 78, 0, 158,
1484 -241, 121, 0, 141, 142, 143, 122, 123, 124, 0,
1485 125, 126, 127, 128, 129, 130, 131, 132, 133, -479,
1486 642, 0, 0, 0, 134, 0, 0, 144, 0, 135,
1487 136, 137, 138, 139, 140, 0, 0, 0, 0, 0,
1488 0, 0, -241, 0, 0, 141, 142, 143, 0, -423,
1489 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1490 0, 0, 0, 0, 152, 0, 0, 0, 153, 144,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1493 0, 0, 146, 147, 148, 149, 150, 151, 0, 0,
1494 0, 0, 0, 0, 0, 0, 152, 0, 0, 0,
1495 153, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497 0, 0, 154, 155, 156, 202, 203, 0, 158, 0,
1498 198, 0, 0, 0, 0, 122, 123, 124, 0, 0,
1499 199, 127, 128, 129, 130, 131, 132, 200, -479, -483,
1500 0, 0, 0, 201, 0, 0, 0, 0, 135, 136,
1501 137, 138, 139, 140, 154, 155, 156, 157, 78, 0,
1502 158, -241, 121, 0, 141, 142, 143, 122, 123, 124,
1503 0, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1504 -479, 0, 0, 0, 0, 134, 0, 0, 144, 0,
1505 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1506 0, 0, 0, -241, 0, 0, 141, 142, 143, 0,
1507 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1508 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1509 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1512 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1513 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 154, 155, 156, 202, 203, 0, 158,
1516 0, 0, 0, 0, 122, 123, 124, 0, 125, 126,
1517 127, 128, 129, 130, 131, 132, 200, -479, 568, 0,
1518 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1519 138, 139, 140, 0, 0, 154, 155, 156, 157, 78,
1520 -241, 158, 3, 141, 142, 143, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1526 0, 0, 0, 0, 569, 11, 12, 13, 153, 14,
1527 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1528 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1529 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1530 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1531 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1532 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1533 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1534 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1535 132, 200, -479, 643, 0, 0, 0, 363, 0, 0,
1536 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1537 0, 0, 0, 0, 0, -241, 0, 3, 141, 142,
1538 143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540 0, 0, 144, 4, 0, 0, 0, 0, 0, 0,
1541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1543 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1544 11, 12, 13, 153, 14, 15, 16, 17, 18, 19,
1545 20, 21, 22, 23, 0, 24, 25, 26, 27, 28,
1546 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1547 0, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1548 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1549 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1550 68, 69, 70, 71, 72, 73, 74, 154, 155, 156,
1551 157, 78, 79, 553, 122, 123, 124, 0, 125, 126,
1552 127, 128, 129, 130, 131, 132, 200, -479, 654, 0,
1553 0, 0, 363, 0, 0, 0, 0, 135, 136, 137,
1554 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1555 -241, 0, 3, 141, 142, 143, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 144, 4, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560 146, 147, 148, 149, 150, 151, 0, 0, 0, 0,
1561 0, 0, 0, 0, 655, 11, 12, 13, 153, 14,
1562 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
1563 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1564 34, 35, 36, 37, 38, 0, 39, 40, 41, 42,
1565 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1566 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
1567 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1568 73, 74, 154, 155, 156, 157, 78, 79, 553, 122,
1569 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1570 132, 200, -479, 653, 0, 0, 0, 363, 0, 0,
1571 0, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1572 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1573 143, 122, 123, 124, 0, 125, 126, 127, 128, 129,
1574 130, 131, 132, 200, -479, 657, 0, 0, 0, 363,
1575 0, 0, 144, 0, 135, 136, 137, 138, 139, 140,
1576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1577 141, 142, 143, 0, 0, 146, 147, 148, 149, 150,
1578 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1579 0, 0, 0, 153, 144, 0, 0, 0, 0, 0,
1580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581 0, 0, 0, 0, 0, 0, 0, 146, 147, 148,
1582 149, 150, 151, 0, 0, 0, 0, 0, 0, 0,
1583 0, 658, 0, 0, 0, 153, 0, 0, 0, 0,
1584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1585 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
1586 157, 78, 0, 158, 0, 0, 0, 122, 123, 124,
1587 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1588 -479, 708, 0, 0, 0, 363, 0, 0, 0, 0,
1589 135, 136, 137, 138, 139, 140, 0, 0, 0, 154,
1590 155, 156, 157, 78, 0, 158, 141, 142, 143, 122,
1591 123, 124, 0, 125, 126, 127, 128, 129, 130, 131,
1592 132, 200, -479, 761, 0, 0, 0, 363, 0, 0,
1593 144, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0, 141, 142,
1595 143, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1596 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1597 0, 153, 144, 0, 0, 0, 0, 0, 0, 0,
1598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599 0, 0, 0, 0, 0, 146, 147, 148, 149, 150,
1600 151, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1601 0, 0, 0, 153, 0, 0, 0, 0, 0, 0,
1602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603 0, 0, 0, 0, 0, 154, 155, 156, 157, 78,
1604 0, 158, 0, 0, 0, 122, 123, 124, 0, 125,
1605 126, 127, 128, 129, 130, 131, 132, 200, -479, 762,
1606 0, 0, 0, 363, 0, 0, 0, 0, 135, 136,
1607 137, 138, 139, 140, 0, 0, 0, 154, 155, 156,
1608 157, 78, 0, 158, 141, 142, 143, 122, 123, 124,
1609 0, 125, 126, 127, 128, 129, 130, 131, 132, 200,
1610 -479, 764, 0, 0, 0, 363, 0, 0, 144, 0,
1611 135, 136, 137, 138, 139, 140, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 141, 142, 143, 0,
1613 0, 146, 147, 148, 149, 150, 151, 0, 0, 0,
1614 0, 0, 0, 0, 0, 763, 0, 0, 0, 153,
1615 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1617 0, 0, 0, 146, 147, 148, 149, 150, 151, 0,
1618 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
1619 0, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1622 0, 0, 0, 122, 123, 124, 0, 125, 126, 127,
1623 128, 129, 130, 131, 132, 200, -479, 881, 0, 0,
1624 0, 363, 0, 0, 0, 0, 135, 136, 137, 138,
1625 139, 140, 0, 0, 0, 154, 155, 156, 157, 78,
1626 0, 158, 141, 142, 143, 122, 123, 124, 0, 125,
1627 126, 127, 128, 129, 130, 131, 132, 200, -479, 0,
1628 0, 0, 0, 363, 0, 0, 144, 0, 135, 136,
1629 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1630 0, 0, 0, 0, 141, 142, 143, 0, 0, 146,
1631 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
1632 0, 0, 0, 152, 0, 0, 0, 153, 144, 0,
1633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 146, 147, 148, 149, 150, 151, 289, 0, 0,
1636 0, 0, 0, 0, 0, 152, 0, 0, 0, 153,
1637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
1639 0, 154, 155, 156, 157, 78, 0, 158, 0, 0,
1640 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
1641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 154, 155, 156, 157, 78, 0, 158,
1644 0, 0, 0, 0, 0, 0, 11, 12, 13, 0,
1645 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1646 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1647 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1648 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1649 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1650 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1651 72, 73, 74, 289, 0, 0, 0, 0, 79, 80,
1652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
1654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
1657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658 0, 0, -613, 0, 0, 0, 0, 0, 0, 0,
1659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660 0, 0, 11, 12, 13, 0, 14, 15, 16, 17,
1661 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1662 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1663 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1664 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1665 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1666 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1667 0, -111, 0, 0, 79, 80, -111, 0, 0, 0,
1668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669 0, 0, 0, 0, 0, 0, 3, 0, 779, 0,
1670 0, 0, 0, 324, 0, 0, 0, 0, 135, 136,
1671 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1672 0, 0, 4, 0, 141, 142, 143, 0, 0, 0,
1673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674 0, 0, 0, 0, 0, 0, 0, 0, 144, 0,
1675 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
1676 12, 13, 0, 14, 15, 16, 17, 18, 19, 20,
1677 21, 22, 23, 0, 24, 25, 26, 27, 28, 29,
1678 30, 31, 32, 33, 34, 35, 36, 37, 38, 153,
1679 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1680 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1681 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1682 69, 70, 71, 72, 73, 74, 284, 0, 0, 0,
1683 0, 79, 80, 0, 0, 0, 0, 0, 0, 0,
1684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685 0, 3, 0, 325, 326, 156, 0, 0, 0, 158,
1686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
1688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690 0, -482, 0, 0, 0, 0, 0, 0, 0, 0,
1691 0, 0, 0, 0, 11, 12, 13, 0, 14, 15,
1692 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1693 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1694 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1695 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1696 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1697 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1698 74, -241, 0, 0, 0, 0, 79, 80, 11, 12,
1699 13, 2, 14, 15, 16, 17, 18, 19, 20, 21,
1700 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1701 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1702 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1703 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1704 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1705 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1706 79, 80, 0, 0, 11, 12, 13, 0, 14, 15,
1707 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1708 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1709 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1710 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1711 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1712 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1713 74, 75, 76, 324, 77, 78, 79, 80, 135, 136,
1714 137, 138, 139, 140, 0, 0, 0, 0, 0, 0,
1715 0, -241, 324, 513, 141, 142, 143, 135, 136, 137,
1716 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 141, 142, 143, 0, 324, 144, 0,
1718 617, 0, 135, 136, 137, 138, 139, 140, 0, 0,
1719 0, 0, 0, 0, 0, 0, 0, 144, 141, 142,
1720 143, 0, 324, 0, 0, 694, 0, 135, 136, 137,
1721 138, 139, 140, 0, 0, 0, 0, 0, 0, 153,
1722 0, 0, 144, 141, 142, 143, 0, 324, 924, 0,
1723 0, 0, 135, 136, 137, 138, 139, 140, 153, 0,
1724 0, 0, 0, 0, 0, 0, 324, 144, 141, 142,
1725 143, 135, 136, 137, 138, 139, 140, 0, 0, 0,
1726 0, 0, 0, 153, 0, 0, 0, 141, 142, 143,
1727 0, 352, 144, 0, 0, 0, 135, 136, 137, 138,
1728 139, 140, 0, 325, 326, 156, 0, 0, 153, 158,
1729 0, 144, 141, 142, 143, 0, 0, 0, 0, 0,
1730 0, 0, 325, 326, 156, 0, 0, 0, 158, 0,
1731 0, 0, 0, 153, 640, 0, 144, 0, 0, 135,
1732 136, 137, 138, 139, 140, 0, 0, 325, 326, 156,
1733 0, 0, 153, 158, 0, 141, 142, 143, 0, 711,
1734 0, 0, 0, 0, 712, 713, 714, 715, 716, 717,
1735 0, 0, 325, 326, 156, 0, 0, 153, 158, 144,
1736 141, 718, 719, 0, 0, 0, 0, 0, 0, 0,
1737 0, 0, 0, 0, 0, 0, 0, 325, 326, 156,
1738 0, 0, 0, 158, 720, 0, 0, 0, 0, 0,
1739 0, 0, 0, 0, 0, 0, 325, 326, 156, 0,
1740 153, 0, 158, 0, 0, 0, 0, 0, 0, 0,
1741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742 0, 325, 326, 156, 0, 153, 0, 158, 0, 0,
1743 0, -169, 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, 325, 326, 156, 0, 0, 0,
1747 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
1749 721, 722, 0, 0, 0, 723, 11, 12, 13, 0,
1750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1751 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1752 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1753 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1754 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1755 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1756 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, -349, -349, -349, 0, 4,
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, 11, 12, 13, 0,
1763 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1764 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1765 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1766 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1767 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1768 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1769 72, 73, 74, 3, 0, 0, 0, 0, 79, 80,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
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, 11, 12, 13, 0,
1776 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1777 0, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1778 33, 34, 35, 36, 37, 38, 0, 39, 40, 41,
1779 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1780 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1781 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1782 72, 73, 74, -349, -349, -349, 0, 0, 79, 80,
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, 11, 12, 13, 0, 14, 15,
1787 16, 17, 18, 19, 20, 21, 22, 23, 0, 24,
1788 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1789 35, 36, 37, 38, 0, 39, 40, 41, 42, 43,
1790 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1791 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1792 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1793 74, -621, -621, -621, 0, 0, 79, 80, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, -621,
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, -621, -621, -621, 0, -621, -621, -621, -621,
1798 -621, -621, -621, -621, -621, -621, 0, -621, -621, -621,
1799 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1800 -621, -621, 0, -621, -621, -621, -621, -621, -621, -621,
1801 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1802 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1803 -621, -621, -621, -621, -621, -621, -621, -621, -621, 8,
1804 9, 10, 0, 0, -621, 0, 0, 0, 0, 0,
1805 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
1806 13, 0, 14, 15, 16, 17, 18, 19, 20, 21,
1807 22, 23, 0, 24, 25, 26, 27, 28, 29, 30,
1808 31, 32, 33, 34, 35, 36, 37, 38, 0, 39,
1809 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1810 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1811 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1812 70, 71, 72, 73, 74, 0, 0, 0, 0, 0,
1813 79, 80, 11, 12, 13, 0, 14, 15, 16, 17,
1814 18, 19, 20, 21, 22, 23, 0, 24, 25, 26,
1815 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1816 37, 38, 0, 39, 40, 41, 42, 43, 44, 45,
1817 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1818 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1819 66, 67, 68, 69, 70, 71, 72, 73, 74, 0,
1820 0, 0, 0, 0, 79, 80
1821};
1822
1823static const short yycheck[] = { 0,
1824 0, 105, 3, 460, 0, 361, 299, 615, 492, 363,
1825 11, 12, 2, 316, 410, 546, 470, 18, 19, 20,
1826 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1827 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1828 41, 42, 43, 122, 408, 648, 409, 48, 49, 50,
1829 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1830 61, 62, 63, 64, 88, 619, 8, 0, 443, 759,
1831 3, 398, 399, 318, 7, 406, 407, 785, 548, 0,
1832 81, 81, 26, 22, 18, 81, 442, 791, 400, 401,
1833 34, 648, 446, 648, 24, 34, 21, 24, 99, 702,
1834 25, 771, 779, 201, 105, 782, 18, 34, 206, 556,
1835 208, 5, 895, 114, 115, 116, 24, 648, 119, 9,
1836 10, 111, 220, 48, 49, 572, 34, 0, 26, 119,
1837 3, 25, 5, 134, 490, 21, 34, 18, 668, 28,
1838 141, 27, 696, 24, 28, 702, 600, 702, 81, 18,
1839 1011, 1012, 21, 34, 43, 402, 403, 404, 405, 43,
1840 81, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1841 74, 702, 105, 5, 889, 879, 6, 7, 648, 85,
1842 86, 34, 9, 10, 874, 968, 119, 84, 212, 85,
1843 86, 899, 134, 97, 18, 99, 129, 101, 21, 103,
1844 201, 8, 686, 107, 497, 882, 24, 1068, 81, 24,
1845 1071, 21, 27, 117, 118, 1074, 1075, 27, 888, 34,
1846 890, 575, 95, 96, 599, 98, 471, 8, 32, 33,
1847 174, 175, 702, 177, 178, 174, 175, 179, 177, 178,
1848 770, 19, 598, 773, 24, 187, 119, 174, 175, 191,
1849 41, 193, 648, 1114, 107, 108, 160, 5, 1117, 24,
1850 975, 26, 977, 5, 55, 621, 174, 175, 174, 175,
1851 5, 135, 136, 137, 138, 139, 140, 25, 174, 175,
1852 222, 282, 361, 25, 648, 648, 287, 580, 288, 24,
1853 25, 26, 595, 174, 175, 48, 49, 298, 299, 34,
1854 301, 302, 298, 980, 24, 913, 702, 25, 26, 5,
1855 28, 201, 796, 24, 315, 41, 206, 648, 208, 315,
1856 321, 648, 24, 324, 8, 43, 857, 134, 18, 55,
1857 220, 221, 625, 21, 25, 26, 648, 25, 702, 702,
1858 438, 342, 174, 175, 18, 177, 178, 640, 24, 23,
1859 26, 39, 342, 134, 24, 909, 959, 27, 34, 174,
1860 175, 176, 363, 442, 34, 298, 52, 53, 301, 302,
1861 303, 702, 179, 886, 201, 702, 889, 20, 21, 206,
1862 187, 208, 315, 287, 191, 24, 193, 291, 321, 859,
1863 702, 16, 648, 220, 221, 419, 174, 175, 179, 177,
1864 178, 648, 959, 16, 959, 309, 187, 26, 312, 28,
1865 191, 490, 193, 21, 34, 222, 320, 25, 711, 323,
1866 776, 26, 18, 28, 43, 21, 174, 175, 959, 177,
1867 178, 16, 174, 175, 434, 177, 178, 16, 43, 174,
1868 175, 222, 177, 178, 445, 1094, 702, 448, 15, 445,
1869 134, 1100, 448, 1102, 455, 702, 457, 22, 459, 460,
1870 856, 462, 975, 21, 977, 22, 467, 25, 341, 470,
1871 18, 21, 22, 21, 32, 33, 477, 419, 174, 175,
1872 470, 177, 178, 174, 175, 22, 177, 178, 489, 959,
1873 854, 492, 855, 494, 18, 179, 497, 21, 174, 175,
1874 29, 177, 178, 179, 174, 175, 176, 191, 39, 193,
1875 25, 26, 445, 28, 24, 448, 26, 844, 845, 598,
1876 40, 852, 853, 18, 34, 458, 21, 460, 43, 462,
1877 25, 395, 396, 397, 846, 847, 54, 470, 222, 443,
1878 473, 21, 621, 19, 477, 25, 450, 18, 438, 91,
1879 21, 455, 23, 457, 174, 175, 556, 177, 178, 18,
1880 22, 465, 21, 959, 918, 469, 1050, 18, 48, 49,
1881 21, 24, 572, 26, 1031, 91, 577, 18, 451, 580,
1882 21, 34, 686, 22, 517, 518, 85, 86, 18, 24,
1883 21, 21, 593, 594, 25, 959, 959, 18, 901, 600,
1884 21, 848, 849, 850, 851, 174, 175, 91, 177, 178,
1885 600, 438, 419, 555, 21, 19, 115, 116, 25, 620,
1886 18, 52, 53, 21, 625, 32, 33, 25, 959, 21,
1887 129, 495, 959, 25, 635, 636, 122, 21, 419, 640,
1888 20, 25, 8, 9, 10, 37, 38, 959, 91, 135,
1889 136, 137, 138, 139, 140, 27, 142, 143, 50, 51,
1890 963, 662, 21, 24, 48, 49, 25, 600, 21, 670,
1891 574, 672, 25, 37, 38, 676, 677, 1033, 981, 24,
1892 681, 26, 18, 986, 685, 686, 50, 51, 18, 21,
1893 21, 692, 796, 25, 25, 599, 686, 776, 1001, 32,
1894 33, 994, 692, 959, 1007, 37, 38, 963, 5, 24,
1895 711, 26, 959, 1016, 24, 619, 26, 18, 50, 51,
1896 624, 174, 175, 23, 177, 178, 24, 24, 25, 26,
1897 986, 1087, 811, 22, 607, 419, 18, 34, 671, 96,
1898 673, 98, 1045, 1046, 25, 1048, 650, 21, 555, 682,
1899 25, 25, 685, 686, 1010, 1011, 1012, 24, 24, 26,
1900 21, 28, 21, 1019, 25, 766, 25, 21, 134, 21,
1901 18, 25, 18, 25, 555, 1078, 43, 29, 24, 46,
1902 47, 52, 53, 29, 30, 31, 32, 33, 34, 48,
1903 49, 118, 21, 120, 795, 796, 25, 798, 21, 45,
1904 46, 47, 25, 18, 131, 132, 796, 134, 18, 136,
1905 137, 18, 1068, 179, 18, 1071, 1119, 42, 1074, 1075,
1906 724, 187, 149, 69, 1080, 191, 21, 193, 19, 21,
1907 25, 37, 38, 25, 21, 201, 202, 21, 25, 9,
1908 206, 25, 208, 8, 50, 51, 48, 49, 712, 713,
1909 714, 715, 716, 717, 220, 221, 222, 25, 1114, 20,
1910 21, 1117, 11, 796, 110, 21, 23, 20, 21, 25,
1911 24, 11, 26, 806, 28, 361, 24, 21, 21, 21,
1912 784, 25, 25, 25, 885, 24, 21, 21, 22, 43,
1913 25, 892, 46, 47, 87, 768, 174, 175, 771, 56,
1914 57, 58, 59, 60, 61, 62, 63, 64, 65, 395,
1915 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
1916 406, 407, 408, 409, 410, 21, 19, 21, 174, 175,
1917 176, 25, 21, 19, 180, 19, 25, 961, 19, 20,
1918 34, 35, 36, 24, 19, 27, 1050, 24, 29, 30,
1919 31, 32, 33, 34, 1033, 21, 442, 21, 21, 25,
1920 984, 25, 25, 87, 45, 46, 47, 132, 969, 134,
1921 25, 972, 21, 877, 878, 22, 972, 841, 842, 843,
1922 21, 885, 21, 21, 25, 18, 25, 988, 69, 990,
1923 24, 21, 988, 994, 927, 928, 997, 998, 988, 21,
1924 25, 1001, 21, 25, 490, 909, 25, 21, 1087, 495,
1925 22, 25, 378, 886, 179, 888, 889, 890, 11, 21,
1926 1099, 21, 187, 25, 27, 25, 191, 21, 193, 110,
1927 1031, 25, 24, 1034, 21, 24, 201, 25, 25, 972,
1928 34, 35, 36, 21, 21, 1045, 21, 25, 25, 1050,
1929 25, 24, 21, 419, 20, 988, 25, 222, 922, 21,
1930 546, 21, 548, 25, 550, 25, 970, 8, 9, 10,
1931 19, 23, 438, 77, 78, 79, 80, 81, 82, 83,
1932 1081, 20, 19, 1084, 5, 8, 9, 10, 1084, 23,
1933 66, 67, 68, 174, 175, 176, 27, 21, 1031, 180,
1934 20, 20, 975, 25, 977, 34, 35, 36, 34, 35,
1935 36, 24, 598, 71, 72, 73, 22, 1050, 71, 72,
1936 73, 24, 8, 9, 10, 25, 18, 25, 27, 18,
1937 25, 1035, 25, 27, 21, 621, 1069, 1070, 29, 1140,
1938 25, 355, 24, 39, 54, 1146, 71, 72, 73, 25,
1939 40, 1084, 77, 78, 79, 80, 81, 82, 83, 324,
1940 87, 25, 648, 24, 18, 379, 331, 332, 333, 334,
1941 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
1942 394, 25, 1115, 1116, 25, 25, 25, 352, 21, 555,
1943 18, 25, 18, 134, 21, 18, 178, 21, 363, 87,
1944 22, 415, 20, 87, 20, 25, 87, 87, 25, 87,
1945 189, 134, 71, 72, 73, 380, 702, 1121, 77, 78,
1946 79, 80, 81, 82, 83, 87, 712, 713, 714, 715,
1947 716, 717, 718, 719, 18, 20, 72, 20, 179, 27,
1948 87, 27, 87, 0, 0, 321, 187, 760, 134, 81,
1949 191, 985, 193, 1009, 419, 1060, 179, 874, 906, 1114,
1950 201, 426, 986, 1080, 187, 206, 825, 208, 191, 580,
1951 193, 1084, 462, 673, 8, 9, 10, 671, 201, 220,
1952 221, 222, 796, 206, 685, 208, 111, 10, 342, 221,
1953 776, 1054, 508, 179, 419, 959, 702, 220, 221, 222,
1954 -1, 187, -1, -1, 23, 191, -1, 193, -1, -1,
1955 -1, -1, -1, -1, -1, 201, -1, -1, -1, -1,
1956 206, -1, 208, -1, -1, 811, -1, -1, 8, 9,
1957 10, -1, -1, -1, 220, 221, 222, 56, 57, 58,
1958 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
1959 -1, -1, -1, -1, -1, 841, 842, 843, 844, 845,
1960 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
1961 856, 857, -1, 859, 8, 9, 10, -1, -1, -1,
1962 -1, -1, 547, -1, -1, -1, 365, -1, -1, -1,
1963 555, -1, -1, -1, 373, -1, 375, -1, -1, 19,
1964 134, -1, -1, -1, 24, -1, -1, -1, -1, 29,
1965 30, 31, 32, 33, 34, -1, -1, -1, 632, -1,
1966 -1, -1, -1, -1, -1, 45, 46, 47, -1, -1,
1967 -1, -1, -1, -1, -1, -1, 922, -1, -1, -1,
1968 -1, -1, -1, -1, -1, 179, 425, -1, -1, 69,
1969 615, -1, -1, 187, 134, -1, -1, 191, -1, 193,
1970 -1, 675, -1, -1, -1, 444, -1, 201, -1, -1,
1971 -1, -1, 206, 959, 208, 640, -1, -1, 419, -1,
1972 -1, 646, -1, -1, 649, -1, 220, 221, 222, -1,
1973 110, -1, -1, -1, -1, -1, 419, 438, -1, 179,
1974 134, 480, -1, -1, -1, -1, -1, 187, -1, -1,
1975 -1, 191, -1, 193, -1, 438, -1, -1, -1, -1,
1976 -1, 201, -1, -1, -1, -1, 206, -1, 208, 508,
1977 -1, -1, -1, 419, -1, -1, 701, -1, -1, -1,
1978 220, 221, 222, -1, -1, 179, 711, 1033, -1, -1,
1979 -1, -1, 438, 187, 174, 175, 176, 191, -1, 193,
1980 180, -1, -1, -1, -1, 779, -1, 201, 782, -1,
1981 -1, -1, 206, -1, 208, -1, -1, 556, -1, -1,
1982 -1, -1, -1, -1, -1, -1, 220, 221, 222, -1,
1983 -1, -1, -1, 572, 573, -1, -1, -1, -1, -1,
1984 -1, 1087, -1, -1, -1, -1, -1, -1, -1, -1,
1985 824, 825, -1, 1099, 555, -1, 830, 831, 832, 833,
1986 834, 835, 836, 837, 838, 839, 840, -1, -1, -1,
1987 -1, 610, 555, -1, -1, -1, -1, -1, -1, -1,
1988 -1, -1, -1, -1, -1, -1, -1, -1, 627, -1,
1989 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1990 -1, 826, -1, -1, -1, 644, 645, -1, 882, 555,
1991 -1, -1, -1, -1, -1, -1, -1, 656, -1, -1,
1992 -1, -1, -1, -1, 1, 419, -1, -1, -1, 6,
1993 7, 8, -1, -1, 11, 12, 13, 14, 15, 16,
1994 17, 18, 19, 20, 438, -1, -1, 24, 25, 688,
1995 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
1996 699, -1, -1, -1, -1, 42, -1, -1, 45, 46,
1997 47, -1, -1, -1, -1, -1, -1, -1, -1, 419,
1998 -1, -1, -1, -1, -1, -1, -1, -1, 913, -1,
1999 -1, -1, 69, -1, -1, -1, -1, -1, 438, -1,
2000 -1, -1, -1, -1, -1, -1, 980, -1, -1, -1,
2001 -1, -1, -1, -1, 91, 92, 93, 94, 95, 96,
2002 97, -1, -1, -1, -1, 419, -1, -1, -1, 106,
2003 -1, -1, 957, 110, -1, -1, -1, -1, -1, -1,
2004 -1, -1, -1, -1, 438, -1, -1, -1, -1, -1,
2005 -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
2006 -1, 555, -1, -1, -1, -1, -1, -1, -1, -1,
2007 -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2008 -1, -1, -1, -1, -1, 34, -1, -1, -1, -1,
2009 -1, -1, -1, -1, -1, 44, -1, 174, 175, 176,
2010 177, 178, -1, 180, -1, -1, -1, -1, -1, -1,
2011 -1, -1, -1, -1, -1, 555, -1, 66, 67, 68,
2012 -1, 70, -1, -1, -1, 74, 75, 76, -1, -1,
2013 -1, -1, -1, -1, -1, -1, -1, -1, -1, 88,
2014 89, 90, -1, -1, -1, -1, -1, -1, -1, -1,
2015 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2016 109, 555, 111, 112, 113, 114, 115, 116, 117, 118,
2017 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2018 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2019 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2020 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2021 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2022 169, 170, 171, 172, 173, 174, 175, -1, 177, 178,
2023 179, 180, 0, 1, -1, -1, -1, -1, -1, -1,
2024 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2025 -1, -1, -1, -1, -1, -1, 24, -1, -1, -1,
2026 -1, -1, -1, -1, -1, -1, 34, -1, -1, -1,
2027 -1, -1, -1, -1, -1, -1, 44, -1, -1, -1,
2028 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2029 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
2030 68, -1, 70, -1, -1, -1, 74, 75, 76, -1,
2031 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2032 88, 89, 90, -1, -1, -1, -1, -1, -1, -1,
2033 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2034 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2035 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2036 128, 129, 130, 131, 132, 133, 134, 135, 136, -1,
2037 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2038 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2039 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2040 168, 169, 170, 171, 172, 173, 174, 175, 1, 177,
2041 178, 179, 180, 6, 7, 8, -1, 10, 11, 12,
2042 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2043 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2044 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2045 -1, 44, 45, 46, 47, -1, -1, -1, -1, -1,
2046 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2047 -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
2048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2049 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2050 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2051 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2052 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2053 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2054 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2055 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2056 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2057 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2058 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2059 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2060 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2061 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2062 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2063 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2065 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2066 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2067 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2068 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2069 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2070 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2071 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2072 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2073 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2074 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2075 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2076 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2077 -1, -1, -1, 6, 7, 8, -1, -1, 11, 12,
2078 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2079 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2080 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2081 -1, -1, 45, 46, 47, -1, -1, -1, -1, -1,
2082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2083 -1, -1, -1, 66, 67, 68, 69, -1, -1, -1,
2084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2085 -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
2086 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2087 -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2088 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2089 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2090 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2091 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2092 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2093 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2094 173, 174, 175, 176, 177, 178, 179, 180, 1, -1,
2095 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2096 13, 14, 15, 16, 17, 18, 19, -1, -1, -1,
2097 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2098 33, 34, -1, -1, -1, -1, -1, -1, -1, 42,
2099 1, -1, 45, 46, 47, 6, 7, 8, -1, 10,
2100 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2101 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2102 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2103 -1, 42, -1, -1, 45, 46, 47, -1, 91, 92,
2104 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2105 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2108 91, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2109 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2111 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2112 -1, 174, 175, 176, 177, 178, -1, 180, -1, 1,
2113 -1, -1, -1, -1, 6, 7, 8, -1, -1, 11,
2114 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2115 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2116 32, 33, 34, 174, 175, 176, 177, 178, -1, 180,
2117 42, 1, -1, 45, 46, 47, 6, 7, 8, -1,
2118 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2119 20, -1, -1, -1, 24, -1, -1, 69, -1, 29,
2120 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
2121 -1, -1, 42, -1, -1, 45, 46, 47, -1, 91,
2122 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2123 -1, -1, -1, -1, 106, -1, -1, -1, 110, 69,
2124 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2125 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2126 -1, -1, 92, 93, 94, 95, 96, 97, -1, -1,
2127 -1, -1, -1, -1, -1, -1, 106, -1, -1, -1,
2128 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2129 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2130 -1, -1, 174, 175, 176, 177, 178, -1, 180, -1,
2131 1, -1, -1, -1, -1, 6, 7, 8, -1, -1,
2132 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2133 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2134 31, 32, 33, 34, 174, 175, 176, 177, 178, -1,
2135 180, 42, 1, -1, 45, 46, 47, 6, 7, 8,
2136 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2137 19, -1, -1, -1, -1, 24, -1, -1, 69, -1,
2138 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2139 -1, -1, -1, 42, -1, -1, 45, 46, 47, -1,
2140 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2141 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2142 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2143 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2144 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2145 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2146 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2147 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2148 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2149 -1, -1, -1, -1, 6, 7, 8, -1, 10, 11,
2150 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2151 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2152 32, 33, 34, -1, -1, 174, 175, 176, 177, 178,
2153 42, 180, 44, 45, 46, 47, -1, -1, -1, -1,
2154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2155 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2158 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2159 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2160 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2161 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2162 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2163 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2164 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2165 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2166 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2167 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2168 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2169 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2170 -1, -1, -1, -1, -1, 42, -1, 44, 45, 46,
2171 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2173 -1, -1, 69, 70, -1, -1, -1, -1, -1, -1,
2174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2175 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2176 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2177 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2178 117, 118, 119, 120, -1, 122, 123, 124, 125, 126,
2179 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2180 -1, 138, 139, 140, 141, 142, 143, 144, 145, 146,
2181 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
2182 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
2183 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
2184 177, 178, 179, 180, 6, 7, 8, -1, 10, 11,
2185 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
2186 -1, -1, 24, -1, -1, -1, -1, 29, 30, 31,
2187 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2188 42, -1, 44, 45, 46, 47, -1, -1, -1, -1,
2189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2190 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1,
2191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2193 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2194 -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2195 112, 113, 114, 115, 116, 117, 118, 119, 120, -1,
2196 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2197 132, 133, 134, 135, 136, -1, 138, 139, 140, 141,
2198 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
2199 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
2200 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
2201 172, 173, 174, 175, 176, 177, 178, 179, 180, 6,
2202 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2203 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2204 -1, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2205 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2206 47, 6, 7, 8, -1, 10, 11, 12, 13, 14,
2207 15, 16, 17, 18, 19, 20, -1, -1, -1, 24,
2208 -1, -1, 69, -1, 29, 30, 31, 32, 33, 34,
2209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2210 45, 46, 47, -1, -1, 92, 93, 94, 95, 96,
2211 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2212 -1, -1, -1, 110, 69, -1, -1, -1, -1, -1,
2213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2214 -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
2215 95, 96, 97, -1, -1, -1, -1, -1, -1, -1,
2216 -1, 106, -1, -1, -1, 110, -1, -1, -1, -1,
2217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2218 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2219 177, 178, -1, 180, -1, -1, -1, 6, 7, 8,
2220 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2221 19, 20, -1, -1, -1, 24, -1, -1, -1, -1,
2222 29, 30, 31, 32, 33, 34, -1, -1, -1, 174,
2223 175, 176, 177, 178, -1, 180, 45, 46, 47, 6,
2224 7, 8, -1, 10, 11, 12, 13, 14, 15, 16,
2225 17, 18, 19, 20, -1, -1, -1, 24, -1, -1,
2226 69, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2227 -1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
2228 47, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2229 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2230 -1, 110, 69, -1, -1, -1, -1, -1, -1, -1,
2231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2232 -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
2233 97, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2234 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
2235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, -1, -1, 174, 175, 176, 177, 178,
2237 -1, 180, -1, -1, -1, 6, 7, 8, -1, 10,
2238 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2239 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2240 31, 32, 33, 34, -1, -1, -1, 174, 175, 176,
2241 177, 178, -1, 180, 45, 46, 47, 6, 7, 8,
2242 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2243 19, 20, -1, -1, -1, 24, -1, -1, 69, -1,
2244 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, 45, 46, 47, -1,
2246 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2247 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2248 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2250 -1, -1, -1, 92, 93, 94, 95, 96, 97, -1,
2251 -1, -1, -1, -1, -1, -1, -1, 106, -1, -1,
2252 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2255 -1, -1, -1, 6, 7, 8, -1, 10, 11, 12,
2256 13, 14, 15, 16, 17, 18, 19, 20, -1, -1,
2257 -1, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2258 33, 34, -1, -1, -1, 174, 175, 176, 177, 178,
2259 -1, 180, 45, 46, 47, 6, 7, 8, -1, 10,
2260 11, 12, 13, 14, 15, 16, 17, 18, 19, -1,
2261 -1, -1, -1, 24, -1, -1, 69, -1, 29, 30,
2262 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2263 -1, -1, -1, -1, 45, 46, 47, -1, -1, 92,
2264 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2265 -1, -1, -1, 106, -1, -1, -1, 110, 69, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2268 -1, 92, 93, 94, 95, 96, 97, 18, -1, -1,
2269 -1, -1, -1, -1, -1, 106, -1, -1, -1, 110,
2270 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2271 -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
2272 -1, 174, 175, 176, 177, 178, -1, 180, -1, -1,
2273 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2276 -1, -1, -1, 174, 175, 176, 177, 178, -1, 180,
2277 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2278 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2279 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2280 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2281 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2282 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2283 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2284 171, 172, 173, 18, -1, -1, -1, -1, 179, 180,
2285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
2287 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
2290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2294 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2295 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2296 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2297 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2298 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2299 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2300 -1, 19, -1, -1, 179, 180, 24, -1, -1, -1,
2301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, -1, -1, -1, -1, 44, -1, 19, -1,
2303 -1, -1, -1, 24, -1, -1, -1, -1, 29, 30,
2304 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2305 -1, -1, 70, -1, 45, 46, 47, -1, -1, -1,
2306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1,
2308 -1, -1, -1, -1, -1, -1, -1, -1, -1, 107,
2309 108, 109, -1, 111, 112, 113, 114, 115, 116, 117,
2310 118, 119, 120, -1, 122, 123, 124, 125, 126, 127,
2311 128, 129, 130, 131, 132, 133, 134, 135, 136, 110,
2312 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
2313 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
2314 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
2315 168, 169, 170, 171, 172, 173, 19, -1, -1, -1,
2316 -1, 179, 180, -1, -1, -1, -1, -1, -1, -1,
2317 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2318 -1, 44, -1, 174, 175, 176, -1, -1, -1, 180,
2319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2320 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
2321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2322 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2323 -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
2324 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2325 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2326 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2327 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2328 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2329 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2330 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2331 173, 24, -1, -1, -1, -1, 179, 180, 107, 108,
2332 109, 34, 111, 112, 113, 114, 115, 116, 117, 118,
2333 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2334 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2335 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2336 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2337 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2338 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2339 179, 180, -1, -1, 107, 108, 109, -1, 111, 112,
2340 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2341 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2342 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2343 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2344 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2345 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2346 173, 174, 175, 24, 177, 178, 179, 180, 29, 30,
2347 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
2348 -1, 42, 24, 25, 45, 46, 47, 29, 30, 31,
2349 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
2350 -1, -1, -1, 45, 46, 47, -1, 24, 69, -1,
2351 27, -1, 29, 30, 31, 32, 33, 34, -1, -1,
2352 -1, -1, -1, -1, -1, -1, -1, 69, 45, 46,
2353 47, -1, 24, -1, -1, 27, -1, 29, 30, 31,
2354 32, 33, 34, -1, -1, -1, -1, -1, -1, 110,
2355 -1, -1, 69, 45, 46, 47, -1, 24, 25, -1,
2356 -1, -1, 29, 30, 31, 32, 33, 34, 110, -1,
2357 -1, -1, -1, -1, -1, -1, 24, 69, 45, 46,
2358 47, 29, 30, 31, 32, 33, 34, -1, -1, -1,
2359 -1, -1, -1, 110, -1, -1, -1, 45, 46, 47,
2360 -1, 24, 69, -1, -1, -1, 29, 30, 31, 32,
2361 33, 34, -1, 174, 175, 176, -1, -1, 110, 180,
2362 -1, 69, 45, 46, 47, -1, -1, -1, -1, -1,
2363 -1, -1, 174, 175, 176, -1, -1, -1, 180, -1,
2364 -1, -1, -1, 110, 24, -1, 69, -1, -1, 29,
2365 30, 31, 32, 33, 34, -1, -1, 174, 175, 176,
2366 -1, -1, 110, 180, -1, 45, 46, 47, -1, 24,
2367 -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2368 -1, -1, 174, 175, 176, -1, -1, 110, 180, 69,
2369 45, 46, 47, -1, -1, -1, -1, -1, -1, -1,
2370 -1, -1, -1, -1, -1, -1, -1, 174, 175, 176,
2371 -1, -1, -1, 180, 69, -1, -1, -1, -1, -1,
2372 -1, -1, -1, -1, -1, -1, 174, 175, 176, -1,
2373 110, -1, 180, -1, -1, -1, -1, -1, -1, -1,
2374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375 -1, 174, 175, 176, -1, 110, -1, 180, -1, -1,
2376 -1, 42, -1, -1, -1, -1, -1, -1, -1, -1,
2377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2379 -1, -1, -1, -1, 174, 175, 176, -1, -1, -1,
2380 180, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381 -1, -1, -1, -1, -1, -1, -1, -1, -1, 174,
2382 175, 176, -1, -1, -1, 180, 107, 108, 109, -1,
2383 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2384 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2385 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2386 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2387 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2388 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2389 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391 -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2396 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2397 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2398 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2399 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2400 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2401 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2402 171, 172, 173, 44, -1, -1, -1, -1, 179, 180,
2403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2404 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
2405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
2409 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
2410 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2411 131, 132, 133, 134, 135, 136, -1, 138, 139, 140,
2412 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2413 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
2414 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2415 171, 172, 173, 66, 67, 68, -1, -1, 179, 180,
2416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2418 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2419 -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
2420 113, 114, 115, 116, 117, 118, 119, 120, -1, 122,
2421 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2422 133, 134, 135, 136, -1, 138, 139, 140, 141, 142,
2423 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
2424 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
2425 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
2426 173, 66, 67, 68, -1, -1, 179, 180, -1, -1,
2427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
2428 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2429 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430 -1, -1, 107, 108, 109, -1, 111, 112, 113, 114,
2431 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2432 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2433 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2434 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2435 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2436 165, 166, 167, 168, 169, 170, 171, 172, 173, 88,
2437 89, 90, -1, -1, 179, -1, -1, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2439 109, -1, 111, 112, 113, 114, 115, 116, 117, 118,
2440 119, 120, -1, 122, 123, 124, 125, 126, 127, 128,
2441 129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2442 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2443 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2444 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
2445 169, 170, 171, 172, 173, -1, -1, -1, -1, -1,
2446 179, 180, 107, 108, 109, -1, 111, 112, 113, 114,
2447 115, 116, 117, 118, 119, 120, -1, 122, 123, 124,
2448 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2449 135, 136, -1, 138, 139, 140, 141, 142, 143, 144,
2450 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
2451 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
2452 165, 166, 167, 168, 169, 170, 171, 172, 173, -1,
2453 -1, -1, -1, -1, 179, 180
2454};
2455/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
2456#line 3 "/af9/evans/bison-1.28/share/bison.simple"
2457/* This file comes from bison-1.28. */
2458
2459/* Skeleton output parser for bison,
2460 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
2461
2462 This program is free software; you can redistribute it and/or modify
2463 it under the terms of the GNU General Public License as published by
2464 the Free Software Foundation; either version 2, or (at your option)
2465 any later version.
2466
2467 This program is distributed in the hope that it will be useful,
2468 but WITHOUT ANY WARRANTY; without even the implied warranty of
2469 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2470 GNU General Public License for more details.
2471
2472 You should have received a copy of the GNU General Public License
2473 along with this program; if not, write to the Free Software
2474 Foundation, Inc., 59 Temple Place - Suite 330,
2475 Boston, MA 02111-1307, USA. */
2476
2477/* As a special exception, when this file is copied by Bison into a
2478 Bison output file, you may use that output file without restriction.
2479 This special exception was added by the Free Software Foundation
2480 in version 1.24 of Bison. */
2481
2482/* This is the parser code that is written into each bison parser
2483 when the %semantic_parser declaration is not specified in the grammar.
2484 It was written by Richard Stallman by simplifying the hairy parser
2485 used when %semantic_parser is specified. */
2486
2487#ifndef YYSTACK_USE_ALLOCA
2488#ifdef alloca
2489#define YYSTACK_USE_ALLOCA
2490#else /* alloca not defined */
2491#ifdef __GNUC__
2492#define YYSTACK_USE_ALLOCA
2493#define alloca __builtin_alloca
2494#else /* not GNU C. */
2495#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
2496#define YYSTACK_USE_ALLOCA
2497#include <alloca.h>
2498#else /* not sparc */
2499/* We think this test detects Watcom and Microsoft C. */
2500/* This used to test MSDOS, but that is a bad idea
2501 since that symbol is in the user namespace. */
2502#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
2503#if 0 /* No need for malloc.h, which pollutes the namespace;
2504 instead, just don't use alloca. */
2505#include <malloc.h>
2506#endif
2507#else /* not MSDOS, or __TURBOC__ */
2508#if defined(_AIX)
2509/* I don't know what this was needed for, but it pollutes the namespace.
2510 So I turned it off. rms, 2 May 1997. */
2511/* #include <malloc.h> */
2512 #pragma alloca
2513#define YYSTACK_USE_ALLOCA
2514#else /* not MSDOS, or __TURBOC__, or _AIX */
2515#if 0
2516#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
2517 and on HPUX 10. Eventually we can turn this on. */
2518#define YYSTACK_USE_ALLOCA
2519#define alloca __builtin_alloca
2520#endif /* __hpux */
2521#endif
2522#endif /* not _AIX */
2523#endif /* not MSDOS, or __TURBOC__ */
2524#endif /* not sparc */
2525#endif /* not GNU C */
2526#endif /* alloca not defined */
2527#endif /* YYSTACK_USE_ALLOCA not defined */
2528
2529#ifdef YYSTACK_USE_ALLOCA
2530#define YYSTACK_ALLOC alloca
2531#else
2532#define YYSTACK_ALLOC malloc
2533#endif
2534
2535/* Note: there must be only one dollar sign in this file.
2536 It is replaced by the list of actions, each action
2537 as one case of the switch. */
2538
2539#define yyerrok (yyerrstatus = 0)
2540#define yyclearin (yychar = YYEMPTY)
2541#define YYEMPTY -2
2542#define YYEOF 0
2543#define YYACCEPT goto yyacceptlab
2544#define YYABORT goto yyabortlab
2545#define YYERROR goto yyerrlab1
2546/* Like YYERROR except do call yyerror.
2547 This remains here temporarily to ease the
2548 transition to the new meaning of YYERROR, for GCC.
2549 Once GCC version 2 has supplanted version 1, this can go. */
2550#define YYFAIL goto yyerrlab
2551#define YYRECOVERING() (!!yyerrstatus)
2552#define YYBACKUP(token, value) \
2553do \
2554 if (yychar == YYEMPTY && yylen == 1) \
2555 { yychar = (token), yylval = (value); \
2556 yychar1 = YYTRANSLATE (yychar); \
2557 YYPOPSTACK; \
2558 goto yybackup; \
2559 } \
2560 else \
2561 { yyerror ("syntax error: cannot back up"); YYERROR; } \
2562while (0)
2563
2564#define YYTERROR 1
2565#define YYERRCODE 256
2566
2567#ifndef YYPURE
2568#define YYLEX yylex()
2569#endif
2570
2571#ifdef YYPURE
2572#ifdef YYLSP_NEEDED
2573#ifdef YYLEX_PARAM
2574#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
2575#else
2576#define YYLEX yylex(&yylval, &yylloc)
2577#endif
2578#else /* not YYLSP_NEEDED */
2579#ifdef YYLEX_PARAM
2580#define YYLEX yylex(&yylval, YYLEX_PARAM)
2581#else
2582#define YYLEX yylex(&yylval)
2583#endif
2584#endif /* not YYLSP_NEEDED */
2585#endif
2586
2587/* If nonreentrant, generate the variables here */
2588
2589#ifndef YYPURE
2590
2591int yychar; /* the lookahead symbol */
2592YYSTYPE yylval; /* the semantic value of the */
2593 /* lookahead symbol */
2594
2595#ifdef YYLSP_NEEDED
2596YYLTYPE yylloc; /* location data for the lookahead */
2597 /* symbol */
2598#endif
2599
2600int yynerrs; /* number of parse errors so far */
2601#endif /* not YYPURE */
2602
2603#if YYDEBUG != 0
2604int yydebug; /* nonzero means print parse trace */
2605/* Since this is uninitialized, it does not stop multiple parsers
2606 from coexisting. */
2607#endif
2608
2609/* YYINITDEPTH indicates the initial size of the parser's stacks */
2610
2611#ifndef YYINITDEPTH
2612#define YYINITDEPTH 200
2613#endif
2614
2615/* YYMAXDEPTH is the maximum size the stacks can grow to
2616 (effective only if the built-in stack extension method is used). */
2617
2618#if YYMAXDEPTH == 0
2619#undef YYMAXDEPTH
2620#endif
2621
2622#ifndef YYMAXDEPTH
2623#define YYMAXDEPTH 10000
2624#endif
2625\f
2626/* Define __yy_memcpy. Note that the size argument
2627 should be passed with type unsigned int, because that is what the non-GCC
2628 definitions require. With GCC, __builtin_memcpy takes an arg
2629 of type size_t, but it can handle unsigned int. */
2630
2631#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
2632#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
2633#else /* not GNU C or C++ */
2634#ifndef __cplusplus
2635
2636/* This is the most reliable way to avoid incompatibilities
2637 in available built-in functions on various systems. */
2638static void
2639__yy_memcpy (to, from, count)
2640 char *to;
2641 char *from;
2642 unsigned int count;
2643{
2644 register char *f = from;
2645 register char *t = to;
2646 register int i = count;
2647
2648 while (i-- > 0)
2649 *t++ = *f++;
2650}
2651
2652#else /* __cplusplus */
2653
2654/* This is the most reliable way to avoid incompatibilities
2655 in available built-in functions on various systems. */
2656static void
2657__yy_memcpy (char *to, char *from, unsigned int count)
2658{
2659 register char *t = to;
2660 register char *f = from;
2661 register int i = count;
2662
2663 while (i-- > 0)
2664 *t++ = *f++;
2665}
2666
2667#endif
2668#endif
2669\f
2670#line 217 "/af9/evans/bison-1.28/share/bison.simple"
2671
2672/* The user can define YYPARSE_PARAM as the name of an argument to be passed
2673 into yyparse. The argument should have type void *.
2674 It should actually point to an object.
2675 Grammar actions can access the variable by casting it
2676 to the proper pointer type. */
2677
2678#ifdef YYPARSE_PARAM
2679#ifdef __cplusplus
2680#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2681#define YYPARSE_PARAM_DECL
2682#else /* not __cplusplus */
2683#define YYPARSE_PARAM_ARG YYPARSE_PARAM
2684#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2685#endif /* not __cplusplus */
2686#else /* not YYPARSE_PARAM */
2687#define YYPARSE_PARAM_ARG
2688#define YYPARSE_PARAM_DECL
2689#endif /* not YYPARSE_PARAM */
2690
2691/* Prevent warning if -Wstrict-prototypes. */
2692#ifdef __GNUC__
2693#ifdef YYPARSE_PARAM
2694int yyparse (void *);
2695#else
2696int yyparse (void);
2697#endif
2698#endif
2699
2700int
2701yyparse(YYPARSE_PARAM_ARG)
2702 YYPARSE_PARAM_DECL
2703{
2704 register int yystate;
2705 register int yyn;
2706 register short *yyssp;
2707 register YYSTYPE *yyvsp;
2708 int yyerrstatus; /* number of tokens to shift before error messages enabled */
2709 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
2710
2711 short yyssa[YYINITDEPTH]; /* the state stack */
2712 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
2713
2714 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
2715 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
2716
2717#ifdef YYLSP_NEEDED
2718 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
2719 YYLTYPE *yyls = yylsa;
2720 YYLTYPE *yylsp;
2721
2722#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2723#else
2724#define YYPOPSTACK (yyvsp--, yyssp--)
2725#endif
2726
2727 int yystacksize = YYINITDEPTH;
2728 int yyfree_stacks = 0;
2729
2730#ifdef YYPURE
2731 int yychar;
2732 YYSTYPE yylval;
2733 int yynerrs;
2734#ifdef YYLSP_NEEDED
2735 YYLTYPE yylloc;
2736#endif
2737#endif
2738
2739 YYSTYPE yyval; /* the variable used to return */
2740 /* semantic values from the action */
2741 /* routines */
2742
2743 int yylen;
2744
2745#if YYDEBUG != 0
2746 if (yydebug)
2747 fprintf(stderr, "Starting parse\n");
2748#endif
2749
2750 yystate = 0;
2751 yyerrstatus = 0;
2752 yynerrs = 0;
2753 yychar = YYEMPTY; /* Cause a token to be read. */
2754
2755 /* Initialize stack pointers.
2756 Waste one element of value and location stack
2757 so that they stay on the same level as the state stack.
2758 The wasted elements are never initialized. */
2759
2760 yyssp = yyss - 1;
2761 yyvsp = yyvs;
2762#ifdef YYLSP_NEEDED
2763 yylsp = yyls;
2764#endif
2765
2766/* Push a new state, which is found in yystate . */
2767/* In all cases, when you get here, the value and location stacks
2768 have just been pushed. so pushing a state here evens the stacks. */
2769yynewstate:
2770
2771 *++yyssp = yystate;
2772
2773 if (yyssp >= yyss + yystacksize - 1)
2774 {
2775 /* Give user a chance to reallocate the stack */
2776 /* Use copies of these so that the &'s don't force the real ones into memory. */
2777 YYSTYPE *yyvs1 = yyvs;
2778 short *yyss1 = yyss;
2779#ifdef YYLSP_NEEDED
2780 YYLTYPE *yyls1 = yyls;
2781#endif
2782
2783 /* Get the current used size of the three stacks, in elements. */
2784 int size = yyssp - yyss + 1;
2785
2786#ifdef yyoverflow
2787 /* Each stack pointer address is followed by the size of
2788 the data in use in that stack, in bytes. */
2789#ifdef YYLSP_NEEDED
2790 /* This used to be a conditional around just the two extra args,
2791 but that might be undefined if yyoverflow is a macro. */
2792 yyoverflow("parser stack overflow",
2793 &yyss1, size * sizeof (*yyssp),
2794 &yyvs1, size * sizeof (*yyvsp),
2795 &yyls1, size * sizeof (*yylsp),
2796 &yystacksize);
2797#else
2798 yyoverflow("parser stack overflow",
2799 &yyss1, size * sizeof (*yyssp),
2800 &yyvs1, size * sizeof (*yyvsp),
2801 &yystacksize);
2802#endif
2803
2804 yyss = yyss1; yyvs = yyvs1;
2805#ifdef YYLSP_NEEDED
2806 yyls = yyls1;
2807#endif
2808#else /* no yyoverflow */
2809 /* Extend the stack our own way. */
2810 if (yystacksize >= YYMAXDEPTH)
2811 {
2812 yyerror("parser stack overflow");
2813 if (yyfree_stacks)
2814 {
2815 sfree (yyss);
2816 sfree (yyvs);
2817#ifdef YYLSP_NEEDED
2818 sfree (yyls);
2819#endif
2820 }
2821 return 2;
2822 }
2823 yystacksize *= 2;
2824 if (yystacksize > YYMAXDEPTH)
2825 yystacksize = YYMAXDEPTH;
2826#ifndef YYSTACK_USE_ALLOCA
2827 yyfree_stacks = 1;
2828#endif
2829 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2830 __yy_memcpy ((char *)yyss, (char *)yyss1,
2831 size * (unsigned int) sizeof (*yyssp));
2832 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2833 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2834 size * (unsigned int) sizeof (*yyvsp));
2835#ifdef YYLSP_NEEDED
2836 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2837 __yy_memcpy ((char *)yyls, (char *)yyls1,
2838 size * (unsigned int) sizeof (*yylsp));
2839#endif
2840#endif /* no yyoverflow */
2841
2842 yyssp = yyss + size - 1;
2843 yyvsp = yyvs + size - 1;
2844#ifdef YYLSP_NEEDED
2845 yylsp = yyls + size - 1;
2846#endif
2847
2848#if YYDEBUG != 0
2849 if (yydebug)
2850 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2851#endif
2852
2853 if (yyssp >= yyss + yystacksize - 1)
2854 YYABORT;
2855 }
2856
2857#if YYDEBUG != 0
2858 if (yydebug)
2859 fprintf(stderr, "Entering state %d\n", yystate);
2860#endif
2861
2862 goto yybackup;
2863 yybackup:
2864
2865/* Do appropriate processing given the current state. */
2866/* Read a lookahead token if we need one and don't already have one. */
2867/* yyresume: */
2868
2869 /* First try to decide what to do without reference to lookahead token. */
2870
2871 yyn = yypact[yystate];
2872 if (yyn == YYFLAG)
2873 goto yydefault;
2874
2875 /* Not known => get a lookahead token if don't already have one. */
2876
2877 /* yychar is either YYEMPTY or YYEOF
2878 or a valid token in external form. */
2879
2880 if (yychar == YYEMPTY)
2881 {
2882#if YYDEBUG != 0
2883 if (yydebug)
2884 fprintf(stderr, "Reading a token: ");
2885#endif
2886 yychar = YYLEX;
2887 }
2888
2889 /* Convert token to internal form (in yychar1) for indexing tables with */
2890
2891 if (yychar <= 0) /* This means end of input. */
2892 {
2893 yychar1 = 0;
2894 yychar = YYEOF; /* Don't call YYLEX any more */
2895
2896#if YYDEBUG != 0
2897 if (yydebug)
2898 fprintf(stderr, "Now at end of input.\n");
2899#endif
2900 }
2901 else
2902 {
2903 yychar1 = YYTRANSLATE(yychar);
2904
2905#if YYDEBUG != 0
2906 if (yydebug)
2907 {
2908 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2909 /* Give the individual parser a way to print the precise meaning
2910 of a token, for further debugging info. */
2911#ifdef YYPRINT
2912 YYPRINT (stderr, yychar, yylval);
2913#endif
2914 fprintf (stderr, ")\n");
2915 }
2916#endif
2917 }
2918
2919 yyn += yychar1;
2920 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2921 goto yydefault;
2922
2923 yyn = yytable[yyn];
2924
2925 /* yyn is what to do for this token type in this state.
2926 Negative => reduce, -yyn is rule number.
2927 Positive => shift, yyn is new state.
2928 New state is final state => don't bother to shift,
2929 just return success.
2930 0, or most negative number => error. */
2931
2932 if (yyn < 0)
2933 {
2934 if (yyn == YYFLAG)
2935 goto yyerrlab;
2936 yyn = -yyn;
2937 goto yyreduce;
2938 }
2939 else if (yyn == 0)
2940 goto yyerrlab;
2941
2942 if (yyn == YYFINAL)
2943 YYACCEPT;
2944
2945 /* Shift the lookahead token. */
2946
2947#if YYDEBUG != 0
2948 if (yydebug)
2949 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2950#endif
2951
2952 /* Discard the token being shifted unless it is eof. */
2953 if (yychar != YYEOF)
2954 yychar = YYEMPTY;
2955
2956 *++yyvsp = yylval;
2957#ifdef YYLSP_NEEDED
2958 *++yylsp = yylloc;
2959#endif
2960
2961 /* count tokens shifted since error; after three, turn off error status. */
2962 if (yyerrstatus) yyerrstatus--;
2963
2964 yystate = yyn;
2965 goto yynewstate;
2966
2967/* Do the default action for the current state. */
2968yydefault:
2969
2970 yyn = yydefact[yystate];
2971 if (yyn == 0)
2972 goto yyerrlab;
2973
2974/* Do a reduction. yyn is the number of a rule to reduce with. */
2975yyreduce:
2976 yylen = yyr2[yyn];
2977 if (yylen > 0)
2978 yyval = yyvsp[1-yylen]; /* implement default value of the action */
2979
2980#if YYDEBUG != 0
2981 if (yydebug)
2982 {
2983 int i;
2984
2985 fprintf (stderr, "Reducing via rule %d (line %d), ",
2986 yyn, yyrline[yyn]);
2987
2988 /* Print the symbols being reduced, and their result. */
2989 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2990 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2991 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2992 }
2993#endif
2994
2995
2996 switch (yyn) {
2997
2998case 5:
2999#line 223 "cgrammar.y"
3000{ uentry_clearDecl (); ;
3001 break;}
3002case 6:
3003#line 224 "cgrammar.y"
3004{ uentry_clearDecl (); ;
3005 break;}
3006case 7:
3007#line 225 "cgrammar.y"
3008{ uentry_clearDecl (); ;
3009 break;}
3010case 8:
3011#line 226 "cgrammar.y"
3012{ uentry_clearDecl (); ;
3013 break;}
3014case 9:
3015#line 227 "cgrammar.y"
3016{ uentry_clearDecl (); ;
3017 break;}
3018case 10:
3019#line 228 "cgrammar.y"
3020{ uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
3021 break;}
3022case 11:
3023#line 229 "cgrammar.y"
3024{ uentry_clearDecl (); ;
3025 break;}
3026case 12:
3027#line 233 "cgrammar.y"
3028{ checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
3029 break;}
3030case 13:
3031#line 235 "cgrammar.y"
3032{ checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
3033 break;}
3034case 14:
3035#line 238 "cgrammar.y"
3036{ context_enterFunctionDecl (); ;
3037 break;}
3038case 15:
3039#line 239 "cgrammar.y"
3040{ declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction ();
3041 context_exitFunctionDecl (); ;
3042 break;}
3043case 16:
3044#line 244 "cgrammar.y"
3045{
3046 qtype qint = qtype_create (ctype_int);
3047 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3048 qtype_free (qint);
3049 ;
3050 break;}
3051case 17:
3052#line 250 "cgrammar.y"
3053{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3054 break;}
3055case 19:
3056#line 255 "cgrammar.y"
3057{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
3058 break;}
3059case 20:
3060#line 258 "cgrammar.y"
3061{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3062 break;}
3063case 21:
3064#line 260 "cgrammar.y"
3065{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3066 break;}
3067case 22:
3068#line 262 "cgrammar.y"
3069{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3070 break;}
3071case 23:
3072#line 264 "cgrammar.y"
3073{
3074 int value;
3075
3076 if (exprNode_hasValue (yyvsp[-2].expr)
3077 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3078 {
3079 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3080 }
3081 else
3082 {
3083 value = 0;
3084 }
3085
3086 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3087 ;
3088 break;}
3089case 24:
3090#line 280 "cgrammar.y"
3091{ setCurrentParams (uentryList_missingParams);
3092 ;
3093 break;}
3094case 25:
3095#line 283 "cgrammar.y"
3096{ /* need to support globals and modifies here! */
3097 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3098 uentryList_makeMissingParams ());
3099
3100 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3101 context_popLoc ();
3102 ;
3103 break;}
3104case 26:
3105#line 291 "cgrammar.y"
3106{ setCurrentParams (yyvsp[-1].entrylist);
3107 ;
3108 break;}
3109case 27:
3110#line 294 "cgrammar.y"
3111{ clearCurrentParams ();
3112 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3113 context_popLoc ();
3114 ;
3115 break;}
3116case 28:
3117#line 300 "cgrammar.y"
3118{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
3119 break;}
3120case 29:
3121#line 302 "cgrammar.y"
3122{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
3123 break;}
3124case 30:
3125#line 304 "cgrammar.y"
3126{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
3127 break;}
3128case 31:
3129#line 306 "cgrammar.y"
3130{
3131 int value;
3132
3133 if (exprNode_hasValue (yyvsp[-2].expr)
3134 && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
3135 {
3136 value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
3137 }
3138 else
3139 {
3140 value = 0;
3141 }
3142
3143 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
3144 ;
3145 break;}
3146case 32:
3147#line 322 "cgrammar.y"
3148{ setCurrentParams (uentryList_missingParams);
3149 ;
3150 break;}
3151case 33:
3152#line 325 "cgrammar.y"
3153{ /* need to support globals and modifies here! */
3154 ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp),
3155 uentryList_makeMissingParams ());
3156
3157 yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
3158 context_popLoc ();
3159 ;
3160 break;}
3161case 34:
3162#line 333 "cgrammar.y"
3163{ setCurrentParams (yyvsp[-1].entrylist);
3164 ;
3165 break;}
3166case 35:
3167#line 336 "cgrammar.y"
3168{ clearCurrentParams ();
3169 yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
3170 context_popLoc ();
3171 ;
3172 break;}
3173case 36:
3174#line 343 "cgrammar.y"
3175{ setCurrentParams (yyvsp[-1].entrylist); ;
3176 break;}
3177case 37:
3178#line 344 "cgrammar.y"
3179{ clearCurrentParams (); ;
3180 break;}
3181case 38:
3182#line 345 "cgrammar.y"
3183{ declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
3184 break;}
3185case 39:
3186#line 348 "cgrammar.y"
3187{ exprNode_checkMacroBody (yyvsp[-1].expr); ;
3188 break;}
3189case 40:
3190#line 349 "cgrammar.y"
3191{ exprNode_checkIterBody (yyvsp[-1].expr); ;
3192 break;}
3193case 41:
3194#line 350 "cgrammar.y"
3195{ exprNode_checkIterEnd (yyvsp[-1].expr); ;
3196 break;}
3197case 42:
3198#line 351 "cgrammar.y"
3199{ exprChecks_checkEmptyMacroBody (); ;
3200 break;}
3201case 43:
3202#line 354 "cgrammar.y"
3203{ declareFunction (yyvsp[0].ntyp); ;
3204 break;}
3205case 44:
3206#line 357 "cgrammar.y"
3207{ setProcessingGlobMods (); ;
3208 break;}
3209case 45:
3210#line 358 "cgrammar.y"
3211{ clearProcessingGlobMods (); ;
3212 break;}
3213case 46:
3214#line 361 "cgrammar.y"
3215{ setProcessingGlobMods (); ;
3216 break;}
3217case 47:
3218#line 362 "cgrammar.y"
3219{ clearProcessingGlobMods (); ;
3220 break;}
3221case 54:
3222#line 377 "cgrammar.y"
3223{ ; ;
3224 break;}
3225case 55:
3226#line 378 "cgrammar.y"
3227{ ; ;
3228 break;}
3229case 56:
3230#line 381 "cgrammar.y"
3231{ globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
3232 break;}
3233case 57:
3234#line 384 "cgrammar.y"
3235{ yyval.sr = uentry_getSref (yyvsp[0].entry); ;
3236 break;}
3237case 58:
3238#line 385 "cgrammar.y"
3239{ yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
3240 break;}
3241case 59:
3242#line 388 "cgrammar.y"
3243{ yyval.typequal = qual_createUndef (); ;
3244 break;}
3245case 60:
3246#line 389 "cgrammar.y"
3247{ yyval.typequal = qual_createKilled (); ;
3248 break;}
3249case 61:
3250#line 390 "cgrammar.y"
3251{ yyval.typequal = qual_createOut (); ;
3252 break;}
3253case 62:
3254#line 391 "cgrammar.y"
3255{ yyval.typequal = qual_createIn (); ;
3256 break;}
3257case 63:
3258#line 392 "cgrammar.y"
3259{ yyval.typequal = qual_createPartial (); ;
3260 break;}
3261case 64:
3262#line 395 "cgrammar.y"
3263{ yyval.tquallist = qualList_undefined; ;
3264 break;}
3265case 65:
3266#line 396 "cgrammar.y"
3267{ yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
3268 break;}
3269case 66:
3270#line 399 "cgrammar.y"
3271{ setProcessingGlobalsList (); ;
3272 break;}
3273case 67:
3274#line 401 "cgrammar.y"
3275{ unsetProcessingGlobals (); ;
3276 break;}
3277case 68:
3278#line 402 "cgrammar.y"
3279{ setProcessingGlobalsList (); ;
3280 break;}
3281case 69:
3282#line 404 "cgrammar.y"
3283{ unsetProcessingGlobals (); ;
3284 break;}
3285case 70:
3286#line 406 "cgrammar.y"
3287{ setFunctionNoGlobals ();
3288 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3289 ;
3290 break;}
3291case 73:
3292#line 413 "cgrammar.y"
3293{ setProcessingGlobalsList (); ;
3294 break;}
3295case 74:
3296#line 415 "cgrammar.y"
3297{ unsetProcessingGlobals (); ;
3298 break;}
3299case 75:
3300#line 416 "cgrammar.y"
3301{ setProcessingGlobalsList (); ;
3302 break;}
3303case 76:
3304#line 418 "cgrammar.y"
3305{ unsetProcessingGlobals (); ;
3306 break;}
3307case 77:
3308#line 420 "cgrammar.y"
3309{ setFunctionNoGlobals ();
3310 setFunctionModifies (sRefSet_single (sRef_makeNothing ()));
3311 ;
3312 break;}
3313case 82:
3314#line 432 "cgrammar.y"
3315{
3316 context_setProtectVars (); enterParamsTemp ();
3317 sRef_setGlobalScopeSafe ();
3318 ;
3319 break;}
3320case 83:
3321#line 437 "cgrammar.y"
3322{
3323 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3324 sRef_clearGlobalScopeSafe ();
3325 context_releaseVars ();
3326 ;
3327 break;}
3328case 84:
3329#line 445 "cgrammar.y"
3330{
3331 context_setProtectVars (); enterParamsTemp ();
3332 sRef_setGlobalScopeSafe ();
3333 ;
3334 break;}
3335case 85:
3336#line 450 "cgrammar.y"
3337{
3338 setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
3339 sRef_clearGlobalScopeSafe ();
3340 context_releaseVars ();
3341 ;
3342 break;}
3343case 95:
3344#line 474 "cgrammar.y"
3345{ yyval.sck = SP_ISONLY; ;
3346 break;}
3347case 96:
3348#line 475 "cgrammar.y"
3349{ yyval.sck = SP_ISOBSERVER; ;
3350 break;}
3351case 97:
3352#line 476 "cgrammar.y"
3353{ yyval.sck = SP_ISEXPOSED; ;
3354 break;}
3355case 98:
3356#line 477 "cgrammar.y"
3357{ yyval.sck = SP_ISDEPENDENT; ;
3358 break;}
3359case 99:
3360#line 478 "cgrammar.y"
3361{ yyval.sck = SP_ISOWNED; ;
3362 break;}
3363case 100:
3364#line 479 "cgrammar.y"
3365{ yyval.sck = SP_ISSHARED; ;
3366 break;}
3367case 101:
3368#line 480 "cgrammar.y"
3369{ yyval.sck = SP_ISNULL; ;
3370 break;}
3371case 102:
3372#line 481 "cgrammar.y"
3373{ yyval.sck = SP_ISNOTNULL; ;
3374 break;}
3375case 103:
3376#line 485 "cgrammar.y"
3377{
3378 context_setProtectVars ();
3379 enterParamsTemp ();
3380 sRef_setGlobalScopeSafe ();
3381 ;
3382 break;}
3383case 104:
3384#line 491 "cgrammar.y"
3385{
3386 setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok);
3387 exitParamsTemp ();
3388 sRef_clearGlobalScopeSafe ();
3389 context_releaseVars ();
3390 ;
3391 break;}
3392case 105:
3393#line 498 "cgrammar.y"
3394{
3395 context_setProtectVars ();
3396 enterParamsTemp ();
3397 sRef_setGlobalScopeSafe ();
3398 ;
3399 break;}
3400case 106:
3401#line 504 "cgrammar.y"
3402{
3403 setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok);
3404 exitParamsTemp ();
3405 sRef_clearGlobalScopeSafe ();
3406 context_releaseVars ();
3407 ;
3408 break;}
3409case 107:
3410#line 513 "cgrammar.y"
3411{
3412 qtype qint = qtype_create (ctype_int);
3413 yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
3414 qtype_free (qint);
3415 ;
3416 break;}
3417case 108:
3418#line 519 "cgrammar.y"
3419{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
3420 break;}
3421case 109:
3422#line 522 "cgrammar.y"
3423{ checkDoneParams (); context_enterInnerContext (); ;
3424 break;}
3425case 110:
3426#line 524 "cgrammar.y"
3427{
3428 exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr;
3429 context_exitInner (yyvsp[0].expr);
3430 ;
3431 break;}
3432case 111:
3433#line 529 "cgrammar.y"
3434{ doneParams (); context_enterInnerContext (); ;
3435 break;}
3436case 112:
3437#line 531 "cgrammar.y"
3438{
3439 context_exitInner (yyvsp[0].expr);
3440 exprNode_checkFunctionBody (yyvsp[0].expr);
3441 yyval.expr = yyvsp[0].expr; /* old style */
3442 ;
3443 break;}
3444case 113:
3445#line 539 "cgrammar.y"
3446{
3447 context_setFunctionDefined (exprNode_loc (yyvsp[0].expr));
3448 exprNode_checkFunction (context_getHeader (), yyvsp[0].expr);
3449 context_exitFunction ();
3450 ;
3451 break;}
3452case 114:
3453#line 546 "cgrammar.y"
3454{ yyval.srset = yyvsp[-2].srset; ;
3455 break;}
3456case 115:
3457#line 547 "cgrammar.y"
3458{ yyval.srset = sRefSet_new (); ;
3459 break;}
3460case 116:
3461#line 550 "cgrammar.y"
3462{ yyval.srset = yyvsp[-1].srset; ;
3463 break;}
3464case 117:
3465#line 551 "cgrammar.y"
3466{ yyval.srset = sRefSet_new (); ;
3467 break;}
3468case 118:
3469#line 554 "cgrammar.y"
3470{ yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
3471 break;}
3472case 119:
3473#line 555 "cgrammar.y"
3474{ yyval.sr = fixModifiesId (yyvsp[0].cname); ;
3475 break;}
3476case 120:
3477#line 556 "cgrammar.y"
3478{ yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
3479 break;}
3480case 121:
3481#line 557 "cgrammar.y"
3482{ yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
3483 break;}
3484case 122:
3485#line 558 "cgrammar.y"
3486{ yyval.sr = modListPointer (yyvsp[0].sr); ;
3487 break;}
3488case 123:
3489#line 559 "cgrammar.y"
3490{ yyval.sr = yyvsp[-1].sr; ;
3491 break;}
3492case 124:
3493#line 560 "cgrammar.y"
3494{ yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3495 break;}
3496case 125:
3497#line 561 "cgrammar.y"
3498{ yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
3499 break;}
3500case 126:
3501#line 565 "cgrammar.y"
3502{ yyval.sr = yyvsp[0].sr; ;
3503 break;}
3504case 127:
3505#line 566 "cgrammar.y"
3506{ yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
3507 break;}
3508case 128:
3509#line 570 "cgrammar.y"
3510{ yyval.srset = sRefSet_single (yyvsp[0].sr); ;
3511 break;}
3512case 129:
3513#line 571 "cgrammar.y"
3514{ yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
3515 break;}
3516case 130:
3517#line 575 "cgrammar.y"
3518{ yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
3519 break;}
3520case 131:
3521#line 577 "cgrammar.y"
3522{ yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
3523 break;}
3524case 132:
3525#line 578 "cgrammar.y"
3526{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
3527 break;}
3528case 133:
3529#line 579 "cgrammar.y"
3530{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
3531 break;}
3532case 134:
3533#line 580 "cgrammar.y"
3534{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
3535 break;}
3536case 135:
3537#line 581 "cgrammar.y"
3538{ yyval.sr = yyvsp[-1].sr; ;
3539 break;}
3540case 136:
3541#line 582 "cgrammar.y"
3542{ cstring_markOwned (yyvsp[0].cname);
3543 yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
3544 break;}
3545case 137:
3546#line 584 "cgrammar.y"
3547{ cstring_markOwned (yyvsp[0].cname);
3548 yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
3549 break;}
3550case 138:
3551#line 589 "cgrammar.y"
3552{ if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); }
3553 else { yyval.srset = sRefSet_undefined; }
3554 ;
3555 break;}
3556case 139:
3557#line 593 "cgrammar.y"
3558{ if (sRef_isValid (yyvsp[0].sr))
3559 {
3560 yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr);
3561 }
3562 else
3563 {
3564 yyval.srset = yyvsp[-2].srset;
3565 }
3566 ;
3567 break;}
3568case 140:
3569#line 604 "cgrammar.y"
3570{ yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
3571 break;}
3572case 141:
3573#line 605 "cgrammar.y"
3574{ yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
3575 break;}
3576case 143:
3577#line 607 "cgrammar.y"
3578{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
3579 break;}
3580case 144:
3581#line 608 "cgrammar.y"
3582{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].ctyp)); ;
3583 break;}
3584case 145:
3585#line 609 "cgrammar.y"
3586{ yyval.expr = exprNode_makeError (); ;
3587 break;}
3588case 147:
3589#line 613 "cgrammar.y"
3590{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
3591 break;}
3592case 148:
3593#line 614 "cgrammar.y"
3594{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
3595 break;}
3596case 149:
3597#line 615 "cgrammar.y"
3598{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
3599 break;}
3600case 150:
3601#line 616 "cgrammar.y"
3602{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
3603 break;}
3604case 151:
3605#line 617 "cgrammar.y"
3606{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3607 break;}
3608case 152:
3609#line 618 "cgrammar.y"
3610{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
3611 break;}
3612case 153:
3613#line 619 "cgrammar.y"
3614{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3615 break;}
3616case 154:
3617#line 620 "cgrammar.y"
3618{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
3619 break;}
3620case 155:
3621#line 623 "cgrammar.y"
3622{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3623 break;}
3624case 156:
3625#line 624 "cgrammar.y"
3626{ yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3627 break;}
3628case 158:
3629#line 628 "cgrammar.y"
3630{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3631 break;}
3632case 159:
3633#line 629 "cgrammar.y"
3634{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3635 break;}
3636case 160:
3637#line 630 "cgrammar.y"
3638{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3639 break;}
3640case 161:
3641#line 631 "cgrammar.y"
3642{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3643 break;}
3644case 162:
3645#line 632 "cgrammar.y"
3646{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3647 break;}
3648case 163:
3649#line 633 "cgrammar.y"
3650{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3651 break;}
3652case 164:
3653#line 634 "cgrammar.y"
3654{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3655 break;}
3656case 165:
3657#line 635 "cgrammar.y"
3658{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
3659 break;}
3660case 166:
3661#line 636 "cgrammar.y"
3662{ yyval.expr = yyvsp[0].expr; ;
3663 break;}
3664case 167:
3665#line 637 "cgrammar.y"
3666{ yyval.expr = yyvsp[0].expr; ;
3667 break;}
3668case 168:
3669#line 641 "cgrammar.y"
3670{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cname); ;
3671 break;}
3672case 169:
3673#line 644 "cgrammar.y"
3674{ context_setProtectVars (); ;
3675 break;}
3676case 170:
3677#line 645 "cgrammar.y"
3678{ context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
3679 break;}
3680case 171:
3681#line 648 "cgrammar.y"
3682{ yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
3683 break;}
3684case 172:
3685#line 649 "cgrammar.y"
3686{ yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
3687 break;}
3688case 174:
3689#line 654 "cgrammar.y"
3690{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
3691 break;}
3692case 176:
3693#line 658 "cgrammar.y"
3694{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3695 break;}
3696case 177:
3697#line 659 "cgrammar.y"
3698{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3699 break;}
3700case 178:
3701#line 660 "cgrammar.y"
3702{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3703 break;}
3704case 180:
3705#line 664 "cgrammar.y"
3706{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3707 break;}
3708case 181:
3709#line 665 "cgrammar.y"
3710{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3711 break;}
3712case 183:
3713#line 669 "cgrammar.y"
3714{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3715 break;}
3716case 184:
3717#line 670 "cgrammar.y"
3718{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3719 break;}
3720case 186:
3721#line 674 "cgrammar.y"
3722{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3723 break;}
3724case 187:
3725#line 675 "cgrammar.y"
3726{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3727 break;}
3728case 188:
3729#line 676 "cgrammar.y"
3730{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3731 break;}
3732case 189:
3733#line 677 "cgrammar.y"
3734{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3735 break;}
3736case 191:
3737#line 681 "cgrammar.y"
3738{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3739 break;}
3740case 192:
3741#line 682 "cgrammar.y"
3742{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3743 break;}
3744case 194:
3745#line 686 "cgrammar.y"
3746{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3747 break;}
3748case 196:
3749#line 690 "cgrammar.y"
3750{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3751 break;}
3752case 198:
3753#line 695 "cgrammar.y"
3754{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3755 break;}
3756case 200:
3757#line 700 "cgrammar.y"
3758{ exprNode_produceGuards (yyvsp[-1].expr);
3759 context_enterAndClause (yyvsp[-1].expr);
3760 ;
3761 break;}
3762case 201:
3763#line 704 "cgrammar.y"
3764{
3765 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3766 context_exitAndClause (yyval.expr, yyvsp[0].expr);
3767 ;
3768 break;}
3769case 203:
3770#line 712 "cgrammar.y"
3771{
3772 exprNode_produceGuards (yyvsp[-1].expr);
3773 context_enterOrClause (yyvsp[-1].expr);
3774 ;
3775 break;}
3776case 204:
3777#line 717 "cgrammar.y"
3778{
3779 yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok);
3780 context_exitOrClause (yyval.expr, yyvsp[0].expr);
3781 ;
3782 break;}
3783case 206:
3784#line 724 "cgrammar.y"
3785{ exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
3786 break;}
3787case 207:
3788#line 725 "cgrammar.y"
3789{ context_enterFalseClause (yyvsp[-4].expr); ;
3790 break;}
3791case 208:
3792#line 726 "cgrammar.y"
3793{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
3794 break;}
3795case 210:
3796#line 730 "cgrammar.y"
3797{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3798 break;}
3799case 211:
3800#line 731 "cgrammar.y"
3801{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3802 break;}
3803case 212:
3804#line 732 "cgrammar.y"
3805{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3806 break;}
3807case 213:
3808#line 733 "cgrammar.y"
3809{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3810 break;}
3811case 214:
3812#line 734 "cgrammar.y"
3813{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3814 break;}
3815case 215:
3816#line 735 "cgrammar.y"
3817{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3818 break;}
3819case 216:
3820#line 736 "cgrammar.y"
3821{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3822 break;}
3823case 217:
3824#line 737 "cgrammar.y"
3825{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3826 break;}
3827case 218:
3828#line 738 "cgrammar.y"
3829{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3830 break;}
3831case 219:
3832#line 739 "cgrammar.y"
3833{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3834 break;}
3835case 220:
3836#line 740 "cgrammar.y"
3837{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
3838 break;}
3839case 222:
3840#line 744 "cgrammar.y"
3841{ yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
3842 break;}
3843case 223:
3844#line 747 "cgrammar.y"
3845{ yyval.expr = exprNode_undefined; ;
3846 break;}
3847case 226:
3848#line 756 "cgrammar.y"
3849{ yyval.expr = yyvsp[0].expr; ;
3850 break;}
3851case 227:
3852#line 757 "cgrammar.y"
3853{ doVaDcl (); yyval.expr = exprNode_makeError (); ;
3854 break;}
3855case 228:
3856#line 758 "cgrammar.y"
3857{ yyval.expr = exprNode_makeError (); ;
3858 break;}
3859case 229:
3860#line 761 "cgrammar.y"
3861{ yyval.expr = exprNode_makeError (); ;
3862 break;}
3863case 230:
3864#line 775 "cgrammar.y"
3865{
3866 setProcessingVars (yyvsp[-3].qtyp);
3867 processNamedDecl (yyvsp[-1].ntyp); ;
3868 break;}
3869case 231:
3870#line 778 "cgrammar.y"
3871{ unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
3872 break;}
3873case 232:
3874#line 780 "cgrammar.y"
3875{ setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp);
3876 ;
3877 break;}
3878case 233:
3879#line 783 "cgrammar.y"
3880{ yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr));
3881 unsetProcessingVars ();
3882 ;
3883 break;}
3884case 234:
3885#line 787 "cgrammar.y"
3886{ processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
3887 break;}
3888case 235:
3889#line 788 "cgrammar.y"
3890{ processNamedDecl (yyvsp[-2].ntyp); ;
3891 break;}
3892case 236:
3893#line 789 "cgrammar.y"
3894{ yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
3895 break;}
3896case 237:
3897#line 793 "cgrammar.y"
3898{ setProcessingTypedef (yyvsp[0].qtyp); ;
3899 break;}
3900case 238:
3901#line 794 "cgrammar.y"
3902{ unsetProcessingTypedef (); ;
3903 break;}
3904case 239:
3905#line 795 "cgrammar.y"
3906{ /* in the ANSI grammar, semantics unclear */ ;
3907 break;}
3908case 240:
3909#line 796 "cgrammar.y"
3910{ /* in the ANSI grammar, semantics unclear */ ;
3911 break;}
3912case 241:
3913#line 799 "cgrammar.y"
3914{ g_expectingTypeName = TRUE; ;
3915 break;}
3916case 242:
3917#line 802 "cgrammar.y"
3918{ g_expectingTypeName = TRUE; context_pushLoc (); ;
3919 break;}
3920case 243:
3921#line 805 "cgrammar.y"
3922{ ; ;
3923 break;}
3924case 244:
3925#line 808 "cgrammar.y"
3926{ ; ;
3927 break;}
3928case 245:
3929#line 809 "cgrammar.y"
3930{ ; ;
3931 break;}
3932case 246:
3933#line 812 "cgrammar.y"
3934{ yyval.expr = exprNode_makeError (); ;
3935 break;}
3936case 247:
3937#line 813 "cgrammar.y"
3938{ yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
3939 break;}
3940case 249:
3941#line 817 "cgrammar.y"
3942{ yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
3943 break;}
3944case 250:
3945#line 818 "cgrammar.y"
3946{ yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
3947 break;}
3948case 251:
3949#line 823 "cgrammar.y"
3950{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
3951 break;}
3952case 252:
3953#line 825 "cgrammar.y"
3954{ yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
3955 break;}
3956case 253:
3957#line 833 "cgrammar.y"
3958{ setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
3959 break;}
3960case 254:
3961#line 834 "cgrammar.y"
3962{ yyval.typequal = qual_createInline (); ;
3963 break;}
3964case 255:
3965#line 835 "cgrammar.y"
3966{ setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
3967 break;}
3968case 256:
3969#line 836 "cgrammar.y"
3970{ yyval.typequal = qual_createAuto (); ;
3971 break;}
3972case 257:
3973#line 837 "cgrammar.y"
3974{ yyval.typequal = qual_createRegister (); ;
3975 break;}
3976case 258:
3977#line 840 "cgrammar.y"
3978{ yyval.typequal = qual_createConst (); ;
3979 break;}
3980case 259:
3981#line 841 "cgrammar.y"
3982{ yyval.typequal = qual_createVolatile (); ;
3983 break;}
3984case 260:
3985#line 842 "cgrammar.y"
3986{ yyval.typequal = qual_createOut (); ;
3987 break;}
3988case 261:
3989#line 843 "cgrammar.y"
3990{ yyval.typequal = qual_createIn (); ;
3991 break;}
3992case 262:
3993#line 844 "cgrammar.y"
3994{ yyval.typequal = qual_createPartial (); ;
3995 break;}
3996case 263:
3997#line 845 "cgrammar.y"
3998{ yyval.typequal = qual_createSpecial (); ;
3999 break;}
4000case 264:
4001#line 846 "cgrammar.y"
4002{ yyval.typequal = qual_createOwned (); ;
4003 break;}
4004case 265:
4005#line 847 "cgrammar.y"
4006{ yyval.typequal = qual_createDependent (); ;
4007 break;}
4008case 266:
4009#line 848 "cgrammar.y"
4010{ yyval.typequal = qual_createYield (); ;
4011 break;}
4012case 267:
4013#line 849 "cgrammar.y"
4014{ yyval.typequal = qual_createTemp (); ;
4015 break;}
4016case 268:
4017#line 850 "cgrammar.y"
4018{ yyval.typequal = qual_createOnly (); ;
4019 break;}
4020case 269:
4021#line 851 "cgrammar.y"
4022{ yyval.typequal = qual_createKeep (); ;
4023 break;}
4024case 270:
4025#line 852 "cgrammar.y"
4026{ yyval.typequal = qual_createKept (); ;
4027 break;}
4028case 271:
4029#line 853 "cgrammar.y"
4030{ yyval.typequal = qual_createShared (); ;
4031 break;}
4032case 272:
4033#line 854 "cgrammar.y"
4034{ yyval.typequal = qual_createUnique (); ;
4035 break;}
4036case 273:
4037#line 855 "cgrammar.y"
4038{ yyval.typequal = qual_createExits (); ;
4039 break;}
4040case 274:
4041#line 856 "cgrammar.y"
4042{ yyval.typequal = qual_createMayExit (); ;
4043 break;}
4044case 275:
4045#line 857 "cgrammar.y"
4046{ yyval.typequal = qual_createTrueExit (); ;
4047 break;}
4048case 276:
4049#line 858 "cgrammar.y"
4050{ yyval.typequal = qual_createFalseExit (); ;
4051 break;}
4052case 277:
4053#line 859 "cgrammar.y"
4054{ yyval.typequal = qual_createNeverExit (); ;
4055 break;}
4056case 278:
4057#line 860 "cgrammar.y"
4058{ yyval.typequal = qual_createNull (); ;
4059 break;}
4060case 279:
4061#line 861 "cgrammar.y"
4062{ yyval.typequal = qual_createRelNull (); ;
4063 break;}
4064case 280:
4065#line 862 "cgrammar.y"
4066{ yyval.typequal = qual_createReturned (); ;
4067 break;}
4068case 281:
4069#line 863 "cgrammar.y"
4070{ yyval.typequal = qual_createExposed (); ;
4071 break;}
4072case 282:
4073#line 864 "cgrammar.y"
4074{ yyval.typequal = qual_createObserver (); ;
4075 break;}
4076case 283:
4077#line 865 "cgrammar.y"
4078{ yyval.typequal = qual_createChecked (); ;
4079 break;}
4080case 284:
4081#line 866 "cgrammar.y"
4082{ yyval.typequal = qual_createCheckMod (); ;
4083 break;}
4084case 285:
4085#line 867 "cgrammar.y"
4086{ yyval.typequal = qual_createUnchecked (); ;
4087 break;}
4088case 286:
4089#line 868 "cgrammar.y"
4090{ yyval.typequal = qual_createCheckedStrict (); ;
4091 break;}
4092case 287:
4093#line 869 "cgrammar.y"
4094{ yyval.typequal = qual_createTrueNull (); ;
4095 break;}
4096case 288:
4097#line 870 "cgrammar.y"
4098{ yyval.typequal = qual_createFalseNull (); ;
4099 break;}
4100case 289:
4101#line 871 "cgrammar.y"
4102{ yyval.typequal = qual_createUnused (); ;
4103 break;}
4104case 290:
4105#line 872 "cgrammar.y"
4106{ yyval.typequal = qual_createExternal (); ;
4107 break;}
4108case 291:
4109#line 873 "cgrammar.y"
4110{ yyval.typequal = qual_createSef (); ;
4111 break;}
4112case 292:
4113#line 874 "cgrammar.y"
4114{ yyval.typequal = qual_createAbstract (); ;
4115 break;}
4116case 293:
4117#line 875 "cgrammar.y"
4118{ yyval.typequal = qual_createConcrete (); ;
4119 break;}
4120case 294:
4121#line 876 "cgrammar.y"
4122{ yyval.typequal = qual_createMutable (); ;
4123 break;}
4124case 295:
4125#line 877 "cgrammar.y"
4126{ yyval.typequal = qual_createImmutable (); ;
4127 break;}
4128case 296:
4129#line 878 "cgrammar.y"
4130{ yyval.typequal = qual_createNotNull (); ;
4131 break;}
4132case 297:
4133#line 879 "cgrammar.y"
4134{ yyval.typequal = qual_createRefCounted (); ;
4135 break;}
4136case 298:
4137#line 880 "cgrammar.y"
4138{ yyval.typequal = qual_createRefs (); ;
4139 break;}
4140case 299:
4141#line 881 "cgrammar.y"
4142{ yyval.typequal = qual_createKillRef (); ;
4143 break;}
4144case 300:
4145#line 882 "cgrammar.y"
4146{ yyval.typequal = qual_createRelDef (); ;
4147 break;}
4148case 301:
4149#line 883 "cgrammar.y"
4150{ yyval.typequal = qual_createNewRef (); ;
4151 break;}
4152case 302:
4153#line 884 "cgrammar.y"
4154{ yyval.typequal = qual_createTempRef (); ;
4155 break;}
4156case 303:
4157#line 887 "cgrammar.y"
4158{ yyval.typequal = qual_createShort (); ;
4159 break;}
4160case 304:
4161#line 888 "cgrammar.y"
4162{ yyval.typequal = qual_createLong (); ;
4163 break;}
4164case 305:
4165#line 889 "cgrammar.y"
4166{ yyval.typequal = qual_createSigned (); ;
4167 break;}
4168case 306:
4169#line 890 "cgrammar.y"
4170{ yyval.typequal = qual_createUnsigned (); ;
4171 break;}
4172case 313:
4173#line 899 "cgrammar.y"
4174{ yyval.ctyp = ctype_unknown; ;
4175 break;}
4176case 314:
4177#line 900 "cgrammar.y"
4178{ yyval.ctyp = ctype_anyintegral; ;
4179 break;}
4180case 315:
4181#line 901 "cgrammar.y"
4182{ yyval.ctyp = ctype_unsignedintegral; ;
4183 break;}
4184case 316:
4185#line 902 "cgrammar.y"
4186{ yyval.ctyp = ctype_signedintegral; ;
4187 break;}
4188case 320:
4189#line 906 "cgrammar.y"
4190{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
4191 break;}
4192case 321:
4193#line 910 "cgrammar.y"
4194{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
4195 break;}
4196case 322:
4197#line 913 "cgrammar.y"
4198{ yyval.qtyp = yyvsp[0].qtyp; ;
4199 break;}
4200case 323:
4201#line 915 "cgrammar.y"
4202{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
4203 break;}
4204case 325:
4205#line 920 "cgrammar.y"
4206{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
4207 break;}
4208case 326:
4209#line 923 "cgrammar.y"
4210{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4211 break;}
4212case 327:
4213#line 924 "cgrammar.y"
4214{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
4215 break;}
4216case 328:
4217#line 925 "cgrammar.y"
4218{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
4219 break;}
4220case 329:
4221#line 928 "cgrammar.y"
4222{ yyval.qtyp = qtype_unknown (); ;
4223 break;}
4224case 330:
4225#line 929 "cgrammar.y"
4226{ yyval.qtyp = yyvsp[0].qtyp; ;
4227 break;}
4228case 331:
4229#line 932 "cgrammar.y"
4230{ sRef_setGlobalScopeSafe (); ;
4231 break;}
4232case 332:
4233#line 934 "cgrammar.y"
4234{ sRef_clearGlobalScopeSafe (); ;
4235 break;}
4236case 333:
4237#line 936 "cgrammar.y"
4238{ yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
4239 break;}
4240case 334:
4241#line 937 "cgrammar.y"
4242{ sRef_setGlobalScopeSafe (); ;
4243 break;}
4244case 335:
4245#line 939 "cgrammar.y"
4246{ sRef_clearGlobalScopeSafe (); ;
4247 break;}
4248case 336:
4249#line 941 "cgrammar.y"
4250{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
4251 break;}
4252case 337:
4253#line 943 "cgrammar.y"
4254{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
4255 break;}
4256case 338:
4257#line 945 "cgrammar.y"
4258{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
4259 break;}
4260case 339:
4261#line 946 "cgrammar.y"
4262{ sRef_setGlobalScopeSafe (); ;
4263 break;}
4264case 340:
4265#line 948 "cgrammar.y"
4266{ sRef_clearGlobalScopeSafe (); ;
4267 break;}
4268case 341:
4269#line 950 "cgrammar.y"
4270{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
4271 break;}
4272case 342:
4273#line 951 "cgrammar.y"
4274{ sRef_setGlobalScopeSafe (); ;
4275 break;}
4276case 343:
4277#line 953 "cgrammar.y"
4278{ sRef_clearGlobalScopeSafe (); ;
4279 break;}
4280case 344:
4281#line 955 "cgrammar.y"
4282{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
4283 break;}
4284case 345:
4285#line 957 "cgrammar.y"
4286{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
4287 break;}
4288case 346:
4289#line 959 "cgrammar.y"
4290{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
4291 break;}
4292case 347:
4293#line 960 "cgrammar.y"
4294{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
4295 break;}
4296case 348:
4297#line 961 "cgrammar.y"
4298{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
4299 break;}
4300case 349:
4301#line 964 "cgrammar.y"
4302{ g_expectingTypeName = FALSE; ;
4303 break;}
4304case 351:
4305#line 968 "cgrammar.y"
4306{ yyval.flist = uentryList_undefined; /* bogus! */ ;
4307 break;}
4308case 352:
4309#line 969 "cgrammar.y"
4310{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
4311 break;}
4312case 353:
4313#line 973 "cgrammar.y"
4314{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
4315 break;}
4316case 354:
4317#line 975 "cgrammar.y"
4318{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
4319 break;}
4320case 355:
4321#line 979 "cgrammar.y"
4322{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
4323 break;}
4324case 356:
4325#line 981 "cgrammar.y"
4326{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
4327 break;}
4328case 357:
4329#line 984 "cgrammar.y"
4330{ yyval.ntyp = yyvsp[0].ntyp; ;
4331 break;}
4332case 358:
4333#line 985 "cgrammar.y"
4334{ yyval.ntyp = idDecl_undefined; ;
4335 break;}
4336case 359:
4337#line 986 "cgrammar.y"
4338{ yyval.ntyp = yyvsp[-2].ntyp; ;
4339 break;}
4340case 360:
4341#line 990 "cgrammar.y"
4342{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
4343 break;}
4344case 361:
4345#line 991 "cgrammar.y"
4346{ context_pushLoc (); ;
4347 break;}
4348case 362:
4349#line 992 "cgrammar.y"
4350{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
4351 break;}
4352case 363:
4353#line 993 "cgrammar.y"
4354{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
4355 break;}
4356case 364:
4357#line 997 "cgrammar.y"
4358{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
4359 break;}
4360case 365:
4361#line 999 "cgrammar.y"
4362{ yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
4363 break;}
4364case 367:
4365#line 1004 "cgrammar.y"
4366{ uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
4367 usymtab_supGlobalEntry (ue);
4368 yyval.cname = yyvsp[0].cname;
4369 ;
4370 break;}
4371case 368:
4372#line 1009 "cgrammar.y"
4373{ uentry ue = uentry_makeEnumConstant (yyvsp[-3].cname, ctype_unknown);
4374 usymtab_supGlobalEntry (ue);
4375 yyval.cname = yyvsp[-3].cname;
4376 ;
4377 break;}
4378case 370:
4379#line 1016 "cgrammar.y"
4380{ yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
4381 break;}
4382case 371:
4383#line 1018 "cgrammar.y"
4384{
4385 qtype qt = qtype_unknown ();
4386
4387 qtype_adjustPointers (yyvsp[-1].count, qt);
4388 yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
4389 ;
4390 break;}
4391case 372:
4392#line 1025 "cgrammar.y"
4393{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4394 break;}
4395case 374:
4396#line 1030 "cgrammar.y"
4397{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
4398 break;}
4399case 375:
4400#line 1033 "cgrammar.y"
4401{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
4402 break;}
4403case 376:
4404#line 1034 "cgrammar.y"
4405{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
4406 break;}
4407case 377:
4408#line 1037 "cgrammar.y"
4409{ /* ignored for now */; ;
4410 break;}
4411case 378:
4412#line 1038 "cgrammar.y"
4413{ ; ;
4414 break;}
4415case 379:
4416#line 1041 "cgrammar.y"
4417{ ; ;
4418 break;}
4419case 380:
4420#line 1042 "cgrammar.y"
4421{ ; ;
4422 break;}
4423case 381:
4424#line 1045 "cgrammar.y"
4425{ yyval.count = 1; ;
4426 break;}
4427case 382:
4428#line 1046 "cgrammar.y"
4429{ yyval.count = 1; ;
4430 break;}
4431case 383:
4432#line 1047 "cgrammar.y"
4433{ yyval.count = 1 + yyvsp[0].count; ;
4434 break;}
4435case 384:
4436#line 1048 "cgrammar.y"
4437{ yyval.count = 1 + yyvsp[0].count; ;
4438 break;}
4439case 386:
4440#line 1052 "cgrammar.y"
4441{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4442 break;}
4443case 387:
4444#line 1055 "cgrammar.y"
4445{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4446 break;}
4447case 388:
4448#line 1056 "cgrammar.y"
4449{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
4450 break;}
4451case 389:
4452#line 1059 "cgrammar.y"
4453{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
4454 break;}
4455case 391:
4456#line 1061 "cgrammar.y"
4457{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
4458 break;}
4459case 392:
4460#line 1064 "cgrammar.y"
4461{ storeLoc (); ;
4462 break;}
4463case 393:
4464#line 1064 "cgrammar.y"
4465{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
4466 break;}
4467case 394:
4468#line 1065 "cgrammar.y"
4469{ storeLoc (); ;
4470 break;}
4471case 395:
4472#line 1066 "cgrammar.y"
4473{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
4474 break;}
4475case 396:
4476#line 1070 "cgrammar.y"
4477{
4478 if (isFlipOldStyle ())
4479 {
4480 llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)"));
4481 }
4482 else
4483 {
4484 setNewStyle ();
4485 }
4486 yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp));
4487 ;
4488 break;}
4489case 397:
4490#line 1082 "cgrammar.y"
4491{
4492 idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
4493
4494 if (isNewStyle ())
4495 {
4496 llparseerror (message ("Inconsistent function parameter syntax: %q",
4497 idDecl_unparse (tparam)));
4498 }
4499
4500 setFlipOldStyle ();
4501 yyval.oentry = makeCurrentParam (tparam);
4502 idDecl_free (tparam);
4503 ;
4504 break;}
4505case 399:
4506#line 1098 "cgrammar.y"
4507{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
4508 break;}
4509case 400:
4510#line 1101 "cgrammar.y"
4511{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
4512 break;}
4513case 402:
4514#line 1103 "cgrammar.y"
4515{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
4516 break;}
4517case 403:
4518#line 1106 "cgrammar.y"
4519{ yyval.ctyp = ctype_unknown; ;
4520 break;}
4521case 405:
4522#line 1111 "cgrammar.y"
4523{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
4524 break;}
4525case 406:
4526#line 1112 "cgrammar.y"
4527{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4528 break;}
4529case 407:
4530#line 1113 "cgrammar.y"
4531{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
4532 break;}
4533case 408:
4534#line 1114 "cgrammar.y"
4535{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
4536 break;}
4537case 409:
4538#line 1115 "cgrammar.y"
4539{ yyval.ctyp = ctype_makeArray (yyvsp[-3].ctyp); ;
4540 break;}
4541case 410:
4542#line 1117 "cgrammar.y"
4543{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
4544 break;}
4545case 411:
4546#line 1119 "cgrammar.y"
4547{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
4548 break;}
4549case 412:
4550#line 1121 "cgrammar.y"
4551{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
4552 break;}
4553case 413:
4554#line 1123 "cgrammar.y"
4555{ yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
4556 break;}
4557case 423:
4558#line 1139 "cgrammar.y"
4559{ yyval.expr = yyvsp[0].expr; ;
4560 break;}
4561case 426:
4562#line 1147 "cgrammar.y"
4563{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4564 break;}
4565case 427:
4566#line 1151 "cgrammar.y"
4567{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
4568 break;}
4569case 428:
4570#line 1153 "cgrammar.y"
4571{ yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
4572 break;}
4573case 429:
4574#line 1155 "cgrammar.y"
4575{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
4576 break;}
4577case 430:
4578#line 1157 "cgrammar.y"
4579{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
4580 break;}
4581case 431:
4582#line 1161 "cgrammar.y"
4583{ context_setProtectVars (); ;
4584 break;}
4585case 432:
4586#line 1161 "cgrammar.y"
4587{ context_sizeofReleaseVars (); ;
4588 break;}
4589case 433:
4590#line 1163 "cgrammar.y"
4591{ yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr);
4592 context_enterForClause (yyvsp[-5].expr); ;
4593 break;}
4594case 434:
4595#line 1168 "cgrammar.y"
4596{ setProcessingIterVars (yyvsp[-2].entry); ;
4597 break;}
4598case 435:
4599#line 1170 "cgrammar.y"
4600{ yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
4601 break;}
4602case 436:
4603#line 1171 "cgrammar.y"
4604{ yyval.expr = exprNode_createId (yyvsp[0].entry); ;
4605 break;}
4606case 440:
4607#line 1177 "cgrammar.y"
4608{ yyval.expr = yyvsp[0].expr; ;
4609 break;}
4610case 448:
4611#line 1185 "cgrammar.y"
4612{ yyval.expr = yyvsp[-1].expr; ;
4613 break;}
4614case 449:
4615#line 1186 "cgrammar.y"
4616{ yyval.expr = exprNode_makeError (); ;
4617 break;}
4618case 450:
4619#line 1190 "cgrammar.y"
4620{ /* don't: context_exitTrueClause ($1, $2); */
4621 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4622 ;
4623 break;}
4624case 451:
4625#line 1195 "cgrammar.y"
4626{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4627 break;}
4628case 452:
4629#line 1198 "cgrammar.y"
4630{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4631 break;}
4632case 463:
4633#line 1213 "cgrammar.y"
4634{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4635 break;}
4636case 465:
4637#line 1215 "cgrammar.y"
4638{ yyval.expr = exprNode_makeError (); ;
4639 break;}
4640case 466:
4641#line 1218 "cgrammar.y"
4642{ yyval.expr = exprNode_labelStatement (yyvsp[-2].cname, yyvsp[0].expr); ;
4643 break;}
4644case 467:
4645#line 1219 "cgrammar.y"
4646{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
4647 break;}
4648case 468:
4649#line 1225 "cgrammar.y"
4650{ context_enterCaseClause (yyvsp[0].expr); ;
4651 break;}
4652case 469:
4653#line 1226 "cgrammar.y"
4654{ yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, FALSE); ;
4655 break;}
4656case 470:
4657#line 1227 "cgrammar.y"
4658{ context_enterCaseClause (yyvsp[0].expr); ;
4659 break;}
4660case 471:
4661#line 1228 "cgrammar.y"
4662{ yyval.expr = exprNode_caseStatement (yyvsp[-3].expr, yyvsp[0].expr, TRUE); ;
4663 break;}
4664case 472:
4665#line 1231 "cgrammar.y"
4666{ context_enterCaseClause (exprNode_undefined); ;
4667 break;}
4668case 473:
4669#line 1232 "cgrammar.y"
4670{ yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, FALSE); ;
4671 break;}
4672case 474:
4673#line 1233 "cgrammar.y"
4674{ context_enterCaseClause (exprNode_undefined); ;
4675 break;}
4676case 475:
4677#line 1234 "cgrammar.y"
4678{ yyval.expr = exprNode_defaultStatement (yyvsp[-3].tok, yyvsp[0].expr, TRUE); ;
4679 break;}
4680case 476:
4681#line 1237 "cgrammar.y"
4682{ yyval.expr = yyvsp[-1].expr; ;
4683 break;}
4684case 477:
4685#line 1239 "cgrammar.y"
4686{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
4687 break;}
4688case 478:
4689#line 1242 "cgrammar.y"
4690{ yyval.expr = yyvsp[-1].expr; ;
4691 break;}
4692case 479:
4693#line 1245 "cgrammar.y"
4694{ context_enterInnerContext (); ;
4695 break;}
4696case 480:
4697#line 1248 "cgrammar.y"
4698{ context_exitInnerPlain (); ;
4699 break;}
4700case 481:
4701#line 1251 "cgrammar.y"
4702{ context_enterStructInnerContext (); ;
4703 break;}
4704case 482:
4705#line 1254 "cgrammar.y"
4706{ context_exitStructInnerContext (); ;
4707 break;}
4708case 483:
4709#line 1257 "cgrammar.y"
4710{ context_exitInnerSafe (); ;
4711 break;}
4712case 484:
4713#line 1260 "cgrammar.y"
4714{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4715 break;}
4716case 485:
4717#line 1261 "cgrammar.y"
4718{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
4719 break;}
4720case 486:
4721#line 1262 "cgrammar.y"
4722{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4723 break;}
4724case 487:
4725#line 1264 "cgrammar.y"
4726{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4727 break;}
4728case 488:
4729#line 1265 "cgrammar.y"
4730{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4731 break;}
4732case 489:
4733#line 1267 "cgrammar.y"
4734{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
4735 break;}
4736case 490:
4737#line 1269 "cgrammar.y"
4738{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4739 break;}
4740case 491:
4741#line 1271 "cgrammar.y"
4742{ yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr),
4743 lltok_getLoc (yyvsp[-1].tok)));
4744 ;
4745 break;}
4746case 492:
4747#line 1278 "cgrammar.y"
4748{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
4749 break;}
4750case 493:
4751#line 1282 "cgrammar.y"
4752{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4753 break;}
4754case 494:
4755#line 1284 "cgrammar.y"
4756{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4757 break;}
4758case 495:
4759#line 1286 "cgrammar.y"
4760{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
4761 break;}
4762case 496:
4763#line 1288 "cgrammar.y"
4764{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
4765 break;}
4766case 498:
4767#line 1292 "cgrammar.y"
4768{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4769 break;}
4770case 499:
4771#line 1295 "cgrammar.y"
4772{ yyval.expr = yyvsp[0].expr; ;
4773 break;}
4774case 500:
4775#line 1296 "cgrammar.y"
4776{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4777 break;}
4778case 501:
4779#line 1299 "cgrammar.y"
4780{ yyval.expr = yyvsp[0].expr; ;
4781 break;}
4782case 502:
4783#line 1300 "cgrammar.y"
4784{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
4785 break;}
4786case 503:
4787#line 1303 "cgrammar.y"
4788{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4789 break;}
4790case 504:
4791#line 1304 "cgrammar.y"
4792{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4793 break;}
4794case 505:
4795#line 1307 "cgrammar.y"
4796{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
4797 break;}
4798case 506:
4799#line 1308 "cgrammar.y"
4800{ yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
4801 break;}
4802case 507:
4803#line 1309 "cgrammar.y"
4804{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
4805 break;}
4806case 508:
4807#line 1313 "cgrammar.y"
4808{ yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
4809 break;}
4810case 509:
4811#line 1321 "cgrammar.y"
4812{
4813 context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
4814 yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr);
4815 ;
4816 break;}
4817case 510:
4818#line 1325 "cgrammar.y"
4819{ context_enterFalseClause (yyvsp[-2].expr); ;
4820 break;}
4821case 511:
4822#line 1326 "cgrammar.y"
4823{
4824 context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4825 yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
4826 ;
4827 break;}
4828case 512:
4829#line 1330 "cgrammar.y"
4830{ context_enterSwitch (yyvsp[0].expr); ;
4831 break;}
4832case 513:
4833#line 1331 "cgrammar.y"
4834{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
4835 break;}
4836case 514:
4837#line 1335 "cgrammar.y"
4838{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
4839 break;}
4840case 515:
4841#line 1339 "cgrammar.y"
4842{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
4843 break;}
4844case 516:
4845#line 1342 "cgrammar.y"
4846{ context_enterIterClause (); ;
4847 break;}
4848case 517:
4849#line 1343 "cgrammar.y"
4850{ setProcessingIterVars (yyvsp[-3].entry); ;
4851 break;}
4852case 518:
4853#line 1346 "cgrammar.y"
4854{
4855 yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry);
4856
4857 ;
4858 break;}
4859case 519:
4860#line 1352 "cgrammar.y"
4861{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
4862 break;}
4863case 520:
4864#line 1353 "cgrammar.y"
4865{ nextIterParam (); ;
4866 break;}
4867case 521:
4868#line 1354 "cgrammar.y"
4869{ yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
4870 break;}
4871case 522:
4872#line 1357 "cgrammar.y"
4873{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
4874 break;}
4875case 523:
4876#line 1358 "cgrammar.y"
4877{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
4878 break;}
4879case 524:
4880#line 1359 "cgrammar.y"
4881{ uentry ue = coerceIterId (yyvsp[0].ctyp);
4882
4883 if (uentry_isValid (ue))
4884 {
4885 yyval.expr = exprNode_iterId (ue);
4886 }
4887 else
4888 {
4889 yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
4890 }
4891 ;
4892 break;}
4893case 525:
4894#line 1370 "cgrammar.y"
4895{ yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
4896 break;}
4897case 527:
4898#line 1378 "cgrammar.y"
4899{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
4900 break;}
4901case 529:
4902#line 1382 "cgrammar.y"
4903{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
4904 break;}
4905case 530:
4906#line 1383 "cgrammar.y"
4907{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
4908 break;}
4909case 531:
4910#line 1384 "cgrammar.y"
4911{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
4912 break;}
4913case 532:
4914#line 1386 "cgrammar.y"
4915{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
4916 break;}
4917case 533:
4918#line 1387 "cgrammar.y"
4919{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4920 break;}
4921case 534:
4922#line 1388 "cgrammar.y"
4923{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
4924 break;}
4925case 535:
4926#line 1389 "cgrammar.y"
4927{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4928 break;}
4929case 536:
4930#line 1390 "cgrammar.y"
4931{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
4932 break;}
4933case 538:
4934#line 1394 "cgrammar.y"
4935{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4936 break;}
4937case 539:
4938#line 1395 "cgrammar.y"
4939{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4940 break;}
4941case 540:
4942#line 1396 "cgrammar.y"
4943{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4944 break;}
4945case 541:
4946#line 1397 "cgrammar.y"
4947{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4948 break;}
4949case 542:
4950#line 1398 "cgrammar.y"
4951{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4952 break;}
4953case 543:
4954#line 1399 "cgrammar.y"
4955{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4956 break;}
4957case 544:
4958#line 1400 "cgrammar.y"
4959{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4960 break;}
4961case 545:
4962#line 1401 "cgrammar.y"
4963{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
4964 break;}
4965case 546:
4966#line 1402 "cgrammar.y"
4967{ yyval.expr = yyvsp[0].expr; ;
4968 break;}
4969case 548:
4970#line 1406 "cgrammar.y"
4971{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
4972 break;}
4973case 550:
4974#line 1410 "cgrammar.y"
4975{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4976 break;}
4977case 551:
4978#line 1411 "cgrammar.y"
4979{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4980 break;}
4981case 552:
4982#line 1412 "cgrammar.y"
4983{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4984 break;}
4985case 554:
4986#line 1416 "cgrammar.y"
4987{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4988 break;}
4989case 555:
4990#line 1417 "cgrammar.y"
4991{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4992 break;}
4993case 557:
4994#line 1421 "cgrammar.y"
4995{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
4996 break;}
4997case 558:
4998#line 1422 "cgrammar.y"
4999{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5000 break;}
5001case 560:
5002#line 1426 "cgrammar.y"
5003{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5004 break;}
5005case 561:
5006#line 1427 "cgrammar.y"
5007{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5008 break;}
5009case 562:
5010#line 1428 "cgrammar.y"
5011{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5012 break;}
5013case 563:
5014#line 1429 "cgrammar.y"
5015{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5016 break;}
5017case 565:
5018#line 1433 "cgrammar.y"
5019{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5020 break;}
5021case 566:
5022#line 1434 "cgrammar.y"
5023{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5024 break;}
5025case 568:
5026#line 1438 "cgrammar.y"
5027{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5028 break;}
5029case 570:
5030#line 1442 "cgrammar.y"
5031{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5032 break;}
5033case 572:
5034#line 1447 "cgrammar.y"
5035{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5036 break;}
5037case 574:
5038#line 1451 "cgrammar.y"
5039{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5040 break;}
5041case 576:
5042#line 1455 "cgrammar.y"
5043{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5044 break;}
5045case 578:
5046#line 1459 "cgrammar.y"
5047{ context_enterTrueClause (yyvsp[-1].expr); ;
5048 break;}
5049case 579:
5050#line 1460 "cgrammar.y"
5051{ context_enterFalseClause (yyvsp[-4].expr); ;
5052 break;}
5053case 580:
5054#line 1461 "cgrammar.y"
5055{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
5056 break;}
5057case 582:
5058#line 1465 "cgrammar.y"
5059{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5060 break;}
5061case 583:
5062#line 1466 "cgrammar.y"
5063{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5064 break;}
5065case 584:
5066#line 1467 "cgrammar.y"
5067{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5068 break;}
5069case 585:
5070#line 1468 "cgrammar.y"
5071{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5072 break;}
5073case 586:
5074#line 1469 "cgrammar.y"
5075{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5076 break;}
5077case 587:
5078#line 1470 "cgrammar.y"
5079{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5080 break;}
5081case 588:
5082#line 1471 "cgrammar.y"
5083{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5084 break;}
5085case 589:
5086#line 1472 "cgrammar.y"
5087{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5088 break;}
5089case 590:
5090#line 1473 "cgrammar.y"
5091{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5092 break;}
5093case 591:
5094#line 1474 "cgrammar.y"
5095{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5096 break;}
5097case 592:
5098#line 1475 "cgrammar.y"
5099{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
5100 break;}
5101case 593:
5102#line 1478 "cgrammar.y"
5103{ yyval.entry = yyvsp[0].entry; ;
5104 break;}
5105case 594:
5106#line 1479 "cgrammar.y"
5107{ yyval.entry = uentry_undefined; ;
5108 break;}
5109case 595:
5110#line 1482 "cgrammar.y"
5111{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
5112 break;}
5113case 596:
5114#line 1486 "cgrammar.y"
5115{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5116 break;}
5117case 597:
5118#line 1488 "cgrammar.y"
5119{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5120 break;}
5121case 598:
5122#line 1490 "cgrammar.y"
5123{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5124 break;}
5125case 599:
5126#line 1493 "cgrammar.y"
5127{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5128 break;}
5129case 600:
5130#line 1495 "cgrammar.y"
5131{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
5132 break;}
5133case 601:
5134#line 1497 "cgrammar.y"
5135{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
5136 break;}
5137case 602:
5138#line 1498 "cgrammar.y"
5139{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
5140 break;}
5141case 603:
5142#line 1501 "cgrammar.y"
5143{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
5144 break;}
5145case 604:
5146#line 1502 "cgrammar.y"
5147{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
5148 break;}
5149case 605:
5150#line 1504 "cgrammar.y"
5151{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
5152 break;}
5153case 606:
5154#line 1505 "cgrammar.y"
5155{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
5156 break;}
5157case 607:
5158#line 1506 "cgrammar.y"
5159{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
5160 break;}
5161case 608:
5162#line 1507 "cgrammar.y"
5163{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
5164 break;}
5165case 609:
5166#line 1508 "cgrammar.y"
5167{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
5168 break;}
5169case 610:
5170#line 1509 "cgrammar.y"
5171{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
5172 break;}
5173case 611:
5174#line 1510 "cgrammar.y"
5175{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
5176 break;}
5177case 612:
5178#line 1511 "cgrammar.y"
5179{ yyval.expr = exprNode_return (yyvsp[-1].expr); ;
5180 break;}
5181case 614:
5182#line 1515 "cgrammar.y"
5183{ ; ;
5184 break;}
5185case 617:
5186#line 1522 "cgrammar.y"
5187{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5188 break;}
5189case 618:
5190#line 1523 "cgrammar.y"
5191{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5192 break;}
5193case 619:
5194#line 1524 "cgrammar.y"
5195{ yyval.cname = uentry_getName (yyvsp[0].entry); ;
5196 break;}
5197}
5198 /* the action file gets copied in in place of this dollarsign */
5199#line 543 "/af9/evans/bison-1.28/share/bison.simple"
5200\f
5201 yyvsp -= yylen;
5202 yyssp -= yylen;
5203#ifdef YYLSP_NEEDED
5204 yylsp -= yylen;
5205#endif
5206
5207#if YYDEBUG != 0
5208 if (yydebug)
5209 {
5210 short *ssp1 = yyss - 1;
5211 fprintf (stderr, "state stack now");
5212 while (ssp1 != yyssp)
5213 fprintf (stderr, " %d", *++ssp1);
5214 fprintf (stderr, "\n");
5215 }
5216#endif
5217
5218 *++yyvsp = yyval;
5219
5220#ifdef YYLSP_NEEDED
5221 yylsp++;
5222 if (yylen == 0)
5223 {
5224 yylsp->first_line = yylloc.first_line;
5225 yylsp->first_column = yylloc.first_column;
5226 yylsp->last_line = (yylsp-1)->last_line;
5227 yylsp->last_column = (yylsp-1)->last_column;
5228 yylsp->text = 0;
5229 }
5230 else
5231 {
5232 yylsp->last_line = (yylsp+yylen-1)->last_line;
5233 yylsp->last_column = (yylsp+yylen-1)->last_column;
5234 }
5235#endif
5236
5237 /* Now "shift" the result of the reduction.
5238 Determine what state that goes to,
5239 based on the state we popped back to
5240 and the rule number reduced by. */
5241
5242 yyn = yyr1[yyn];
5243
5244 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5245 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5246 yystate = yytable[yystate];
5247 else
5248 yystate = yydefgoto[yyn - YYNTBASE];
5249
5250 goto yynewstate;
5251
5252yyerrlab: /* here on detecting error */
5253
5254 if (! yyerrstatus)
5255 /* If not already recovering from an error, report this error. */
5256 {
5257 ++yynerrs;
5258
5259#ifdef YYERROR_VERBOSE
5260 yyn = yypact[yystate];
5261
5262 if (yyn > YYFLAG && yyn < YYLAST)
5263 {
5264 int size = 0;
5265 char *msg;
5266 int x, count;
5267
5268 count = 0;
5269 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5270 for (x = (yyn < 0 ? -yyn : 0);
5271 x < (sizeof(yytname) / sizeof(char *)); x++)
5272 if (yycheck[x + yyn] == x)
5273 size += strlen(yytname[x]) + 15, count++;
5274 msg = (char *) malloc(size + 15);
5275 if (msg != 0)
5276 {
5277 strcpy(msg, "parse error");
5278
5279 if (count < 5)
5280 {
5281 count = 0;
5282 for (x = (yyn < 0 ? -yyn : 0);
5283 x < (sizeof(yytname) / sizeof(char *)); x++)
5284 if (yycheck[x + yyn] == x)
5285 {
5286 strcat(msg, count == 0 ? ", expecting `" : " or `");
5287 strcat(msg, yytname[x]);
5288 strcat(msg, "'");
5289 count++;
5290 }
5291 }
5292 yyerror(msg);
5293 sfree(msg);
5294 }
5295 else
5296 yyerror ("parse error; also virtual memory exceeded");
5297 }
5298 else
5299#endif /* YYERROR_VERBOSE */
5300 yyerror("parse error");
5301 }
5302
5303 goto yyerrlab1;
5304yyerrlab1: /* here on error raised explicitly by an action */
5305
5306 if (yyerrstatus == 3)
5307 {
5308 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5309
5310 /* return failure if at end of input */
5311 if (yychar == YYEOF)
5312 YYABORT;
5313
5314#if YYDEBUG != 0
5315 if (yydebug)
5316 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5317#endif
5318
5319 yychar = YYEMPTY;
5320 }
5321
5322 /* Else will try to reuse lookahead token
5323 after shifting the error token. */
5324
5325 yyerrstatus = 3; /* Each real token shifted decrements this */
5326
5327 goto yyerrhandle;
5328
5329yyerrdefault: /* current state does not do anything special for the error token. */
5330
5331#if 0
5332 /* This is wrong; only states that explicitly want error tokens
5333 should shift them. */
5334 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5335 if (yyn) goto yydefault;
5336#endif
5337
5338yyerrpop: /* pop the current state because it cannot handle the error token */
5339
5340 if (yyssp == yyss) YYABORT;
5341 yyvsp--;
5342 yystate = *--yyssp;
5343#ifdef YYLSP_NEEDED
5344 yylsp--;
5345#endif
5346
5347#if YYDEBUG != 0
5348 if (yydebug)
5349 {
5350 short *ssp1 = yyss - 1;
5351 fprintf (stderr, "Error: state stack now");
5352 while (ssp1 != yyssp)
5353 fprintf (stderr, " %d", *++ssp1);
5354 fprintf (stderr, "\n");
5355 }
5356#endif
5357
5358yyerrhandle:
5359
5360 yyn = yypact[yystate];
5361 if (yyn == YYFLAG)
5362 goto yyerrdefault;
5363
5364 yyn += YYTERROR;
5365 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5366 goto yyerrdefault;
5367
5368 yyn = yytable[yyn];
5369 if (yyn < 0)
5370 {
5371 if (yyn == YYFLAG)
5372 goto yyerrpop;
5373 yyn = -yyn;
5374 goto yyreduce;
5375 }
5376 else if (yyn == 0)
5377 goto yyerrpop;
5378
5379 if (yyn == YYFINAL)
5380 YYACCEPT;
5381
5382#if YYDEBUG != 0
5383 if (yydebug)
5384 fprintf(stderr, "Shifting error token, ");
5385#endif
5386
5387 *++yyvsp = yylval;
5388#ifdef YYLSP_NEEDED
5389 *++yylsp = yylloc;
5390#endif
5391
5392 yystate = yyn;
5393 goto yynewstate;
5394
5395 yyacceptlab:
5396 /* YYACCEPT comes here. */
5397 if (yyfree_stacks)
5398 {
5399 sfree (yyss);
5400 sfree (yyvs);
5401#ifdef YYLSP_NEEDED
5402 sfree (yyls);
5403#endif
5404 }
5405 return 0;
5406
5407 yyabortlab:
5408 /* YYABORT comes here. */
5409 if (yyfree_stacks)
5410 {
5411 sfree (yyss);
5412 sfree (yyvs);
5413#ifdef YYLSP_NEEDED
5414 sfree (yyls);
5415#endif
5416 }
5417 return 1;
5418}
5419#line 1530 "cgrammar.y"
5420
5421
5422/*@-redecl@*/
5423extern char *yytext;
5424/*@=redecl@*/
5425
5426# include "bison.reset"
5427
5428void yyerror (/*@unused@*/ char *s)
5429{
5430 static bool givehint = FALSE;
5431
5432 if (context_inIterDef ())
5433 {
5434 llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s",
5435 context_inFunctionName ()));
5436 }
5437 else if (context_inIterEnd ())
5438 {
5439 llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s",
5440 context_inFunctionName ()));
5441 }
5442 else if (context_inMacro ())
5443 {
5444 llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s",
5445 context_inFunctionName ()));
5446
5447 if (context_inMacroUnknown ())
5448 {
5449 if (!givehint)
5450 {
5451 llhint (cstring_makeLiteral
5452 ("Precede macro definition with /*@notfunction@*/ "
5453 "to suppress checking and force expansion"));
5454 givehint = TRUE;
5455 }
5456 }
5457
5458 swallowMacro ();
5459 }
5460 else
5461 {
5462 llparseerror (cstring_undefined);
5463 }
5464}
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
This page took 0.758512 seconds and 5 git commands to generate.