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