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