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