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