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