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