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