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