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