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