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