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