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