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