Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

cgrammar.tab.c

Go to the documentation of this file.
00001 
00002 /*  A Bison parser, made from cgrammar.y
00003     by GNU Bison version 1.28  */
00004 
00005 #define YYBISON 1  /* Identify Bison output.  */
00006 
00007 #define BADTOK  257
00008 #define SKIPTOK 258
00009 #define CTOK_ELIPSIS    259
00010 #define CASE    260
00011 #define DEFAULT 261
00012 #define CIF     262
00013 #define CELSE   263
00014 #define SWITCH  264
00015 #define WHILE   265
00016 #define DO      266
00017 #define CFOR    267
00018 #define GOTO    268
00019 #define CONTINUE        269
00020 #define BREAK   270
00021 #define RETURN  271
00022 #define TSEMI   272
00023 #define TLBRACE 273
00024 #define TRBRACE 274
00025 #define TCOMMA  275
00026 #define TCOLON  276
00027 #define TASSIGN 277
00028 #define TLPAREN 278
00029 #define TRPAREN 279
00030 #define TLSQBR  280
00031 #define TRSQBR  281
00032 #define TDOT    282
00033 #define TAMPERSAND      283
00034 #define TEXCL   284
00035 #define TTILDE  285
00036 #define TMINUS  286
00037 #define TPLUS   287
00038 #define TMULT   288
00039 #define TDIV    289
00040 #define TPERCENT        290
00041 #define TLT     291
00042 #define TGT     292
00043 #define TCIRC   293
00044 #define TBAR    294
00045 #define TQUEST  295
00046 #define CSIZEOF 296
00047 #define CALIGNOF        297
00048 #define ARROW_OP        298
00049 #define CTYPEDEF        299
00050 #define COFFSETOF       300
00051 #define INC_OP  301
00052 #define DEC_OP  302
00053 #define LEFT_OP 303
00054 #define RIGHT_OP        304
00055 #define LE_OP   305
00056 #define GE_OP   306
00057 #define EQ_OP   307
00058 #define NE_OP   308
00059 #define AND_OP  309
00060 #define OR_OP   310
00061 #define MUL_ASSIGN      311
00062 #define DIV_ASSIGN      312
00063 #define MOD_ASSIGN      313
00064 #define ADD_ASSIGN      314
00065 #define SUB_ASSIGN      315
00066 #define LEFT_ASSIGN     316
00067 #define RIGHT_ASSIGN    317
00068 #define AND_ASSIGN      318
00069 #define XOR_ASSIGN      319
00070 #define OR_ASSIGN       320
00071 #define CSTRUCT 321
00072 #define CUNION  322
00073 #define CENUM   323
00074 #define VA_ARG  324
00075 #define VA_DCL  325
00076 #define QGLOBALS        326
00077 #define QMODIFIES       327
00078 #define QNOMODS 328
00079 #define QCONSTANT       329
00080 #define QFUNCTION       330
00081 #define QITER   331
00082 #define QDEFINES        332
00083 #define QUSES   333
00084 #define QALLOCATES      334
00085 #define QSETS   335
00086 #define QRELEASES       336
00087 #define QPRECLAUSE      337
00088 #define QPOSTCLAUSE     338
00089 #define QALT    339
00090 #define QUNDEF  340
00091 #define QKILLED 341
00092 #define QENDMACRO       342
00093 #define LLMACRO 343
00094 #define LLMACROITER     344
00095 #define LLMACROEND      345
00096 #define TENDMACRO       346
00097 #define QSWITCHBREAK    347
00098 #define QLOOPBREAK      348
00099 #define QINNERBREAK     349
00100 #define QSAFEBREAK      350
00101 #define QINNERCONTINUE  351
00102 #define QFALLTHROUGH    352
00103 #define QLINTNOTREACHED 353
00104 #define QLINTFALLTHROUGH        354
00105 #define QLINTFALLTHRU   355
00106 #define QARGSUSED       356
00107 #define QPRINTFLIKE     357
00108 #define QLINTPRINTFLIKE 358
00109 #define QSCANFLIKE      359
00110 #define QMESSAGELIKE    360
00111 #define QNOTREACHED     361
00112 #define QCONST  362
00113 #define QVOLATILE       363
00114 #define QINLINE 364
00115 #define QEXTENSION      365
00116 #define QEXTERN 366
00117 #define QSTATIC 367
00118 #define QAUTO   368
00119 #define QREGISTER       369
00120 #define QOUT    370
00121 #define QIN     371
00122 #define QYIELD  372
00123 #define QONLY   373
00124 #define QTEMP   374
00125 #define QSHARED 375
00126 #define QREF    376
00127 #define QUNIQUE 377
00128 #define QCHECKED        378
00129 #define QUNCHECKED      379
00130 #define QCHECKEDSTRICT  380
00131 #define QCHECKMOD       381
00132 #define QKEEP   382
00133 #define QKEPT   383
00134 #define QPARTIAL        384
00135 #define QSPECIAL        385
00136 #define QOWNED  386
00137 #define QDEPENDENT      387
00138 #define QRETURNED       388
00139 #define QEXPOSED        389
00140 #define QNULL   390
00141 #define QOBSERVER       391
00142 #define QISNULL 392
00143 #define QEXITS  393
00144 #define QMAYEXIT        394
00145 #define QNEVEREXIT      395
00146 #define QTRUEEXIT       396
00147 #define QFALSEEXIT      397
00148 #define QLONG   398
00149 #define QSIGNED 399
00150 #define QUNSIGNED       400
00151 #define QSHORT  401
00152 #define QUNUSED 402
00153 #define QSEF    403
00154 #define QNOTNULL        404
00155 #define QRELNULL        405
00156 #define QABSTRACT       406
00157 #define QCONCRETE       407
00158 #define QMUTABLE        408
00159 #define QIMMUTABLE      409
00160 #define QTRUENULL       410
00161 #define QFALSENULL      411
00162 #define QEXTERNAL       412
00163 #define QREFCOUNTED     413
00164 #define QREFS   414
00165 #define QNEWREF 415
00166 #define QTEMPREF        416
00167 #define QKILLREF        417
00168 #define QRELDEF 418
00169 #define CGCHAR  419
00170 #define CBOOL   420
00171 #define CINT    421
00172 #define CGFLOAT 422
00173 #define CDOUBLE 423
00174 #define CVOID   424
00175 #define QANYTYPE        425
00176 #define QINTEGRALTYPE   426
00177 #define QUNSIGNEDINTEGRALTYPE   427
00178 #define QSIGNEDINTEGRALTYPE     428
00179 #define IDENTIFIER      429
00180 #define NEW_IDENTIFIER  430
00181 #define TYPE_NAME_OR_ID 431
00182 #define CCONSTANT       432
00183 #define ITER_NAME       433
00184 #define ITER_ENDNAME    434
00185 #define TYPE_NAME       435
00186 
00187 #line 19 "cgrammar.y"
00188 
00189 /*
00190 **
00191 ** cgrammar.y
00192 **
00193 ** Yacc/Bison grammar for extended ANSI C used by LCLint.
00194 **
00195 ** original grammar by Nate Osgood ---
00196 **    hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993
00197 **
00198 ** changes for LCLint --- handle typedef names correctly
00199 ** fix struct/union parsing bug (empty struct is accepted)
00200 ** add productions to handle macros --- require
00201 ** error correction --- main source of conflicts in grammar.
00202 ** need to process initializations sequentially, L->R
00203 **
00204 ** production names are cryptic, so more productions fit on one line
00205 **
00206 ** conflicts:  87 shift/reduce, 18 reduce/reduce
00207 ** most of these are due to handling macros
00208 ** a few are due to handling type expressions
00209 */
00210 
00211 /*@=allmacros@*/
00212 
00213 extern int yylex ();
00214 extern void swallowMacro (void);
00215 
00216 # include "lclintMacros.nf"
00217 # include "basic.h"
00218 # include "cgrammar.h"
00219 # include "exprChecks.h"
00220 
00221 /*@-allmacros@*/
00222 /*@-matchfields@*/
00223 
00224 # define SHOWCSYM FALSE
00225 void yyerror (char *s);
00226 
00227 /*
00228 ** This is necessary, or else when the bison-generated code #include's malloc.h,
00229 ** there will be a parse error.
00230 **
00231 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
00232 ** in bison-generated files under Win32.
00233 */
00234 
00235 # ifdef WIN32
00236 # undef malloc
00237 # undef calloc
00238 # undef realloc
00239 # endif
00240 
00241 
00242 #line 74 "cgrammar.y"
00243 typedef union
00244 {
00245  lltok tok;
00246  int count;
00247  specialClauseKind sck;
00248  qual typequal;
00249  qualList tquallist;
00250  ctype ctyp;
00251  sRef sr;
00252  /*@only@*/ qtype qtyp;
00253  /*@only@*/ cstring cname;
00254  /*@only@*/ idDecl ntyp;
00255  /*@only@*/ idDeclList ntyplist;
00256  /*@only@*/ uentryList flist;
00257  /*@owned@*/ uentryList entrylist;
00258  /*@observer@*/ /*@dependent@*/ uentry entry;
00259  /*@only@*/ uentry oentry;
00260  /*@only@*/ exprNode expr;
00261  /*@only@*/ enumNameList enumnamelist;
00262  /*@only@*/ exprNodeList alist;
00263  /*@only@*/ sRefSet srset; 
00264  /*@only@*/ cstringList cstringlist;
00265 } YYSTYPE;
00266 #ifndef YYDEBUG
00267 #define YYDEBUG 1
00268 #endif
00269 
00270 #include <stdio.h>
00271 
00272 #ifndef __cplusplus
00273 #ifndef __STDC__
00274 #define const
00275 #endif
00276 #endif
00277 
00278 
00279 
00280 #define YYFINAL         1158
00281 #define YYFLAG          -32768
00282 #define YYNTBASE        182
00283 
00284 #define YYTRANSLATE(x) ((unsigned)(x) <= 435 ? yytranslate[x] : 409)
00285 
00286 static const short yytranslate[] = {     0,
00287      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00288      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00289      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00290      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00291      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00292      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00293      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00294      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00295      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00296      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00297      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00298      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00299      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00300      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00301      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00302      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00303      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00304      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00305      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00306      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00307      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00308      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00309      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00310      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00311      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00312      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
00313      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
00314     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
00315     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
00316     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
00317     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
00318     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
00319     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
00320     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
00321     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
00322     97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
00323    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
00324    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
00325    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
00326    137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
00327    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
00328    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
00329    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
00330    177,   178,   179,   180,   181
00331 };
00332 
00333 #if YYDEBUG != 0
00334 static const short yyprhs[] = {     0,
00335      0,     1,     3,     5,     8,    11,    13,    15,    17,    19,
00336     21,    23,    32,    44,    45,    51,    53,    57,    59,    62,
00337     64,    71,    75,    82,    83,    90,    91,    99,   101,   108,
00338    112,   119,   120,   127,   128,   136,   137,   138,   149,   153,
00339    157,   161,   164,   166,   167,   170,   171,   174,   176,   179,
00340    181,   184,   186,   189,   191,   195,   198,   200,   202,   204,
00341    206,   208,   210,   212,   213,   216,   217,   224,   225,   232,
00342    234,   236,   237,   238,   244,   245,   251,   253,   255,   256,
00343    258,   259,   260,   264,   265,   269,   271,   273,   275,   277,
00344    279,   281,   283,   285,   287,   289,   291,   293,   295,   297,
00345    299,   301,   303,   304,   312,   313,   322,   324,   328,   329,
00346    333,   334,   338,   341,   345,   348,   351,   353,   355,   357,
00347    361,   366,   369,   373,   377,   381,   383,   385,   387,   391,
00348    393,   395,   399,   404,   407,   411,   415,   419,   421,   425,
00349    427,   429,   431,   435,   437,   439,   441,   446,   450,   455,
00350    462,   468,   474,   477,   480,   482,   486,   488,   491,   494,
00351    497,   500,   503,   506,   509,   512,   514,   516,   520,   522,
00352    532,   533,   537,   542,   545,   550,   553,   555,   560,   562,
00353    566,   570,   574,   576,   580,   584,   586,   590,   594,   596,
00354    600,   604,   608,   612,   614,   618,   622,   624,   628,   630,
00355    634,   636,   640,   642,   643,   648,   650,   651,   656,   658,
00356    659,   660,   668,   670,   674,   678,   682,   686,   690,   694,
00357    698,   702,   706,   710,   714,   716,   720,   721,   723,   725,
00358    727,   729,   731,   735,   736,   746,   747,   759,   762,   763,
00359    770,   771,   779,   784,   789,   790,   791,   794,   796,   801,
00360    802,   807,   809,   813,   818,   820,   824,   826,   828,   830,
00361    832,   834,   837,   840,   843,   846,   849,   852,   855,   858,
00362    861,   864,   867,   870,   873,   876,   879,   882,   885,   888,
00363    891,   894,   897,   900,   903,   906,   909,   912,   915,   918,
00364    921,   924,   927,   930,   933,   936,   939,   942,   945,   948,
00365    951,   954,   957,   960,   963,   966,   969,   971,   973,   975,
00366    977,   980,   983,   986,   989,   992,   995,   998,  1001,  1004,
00367   1007,  1010,  1013,  1016,  1019,  1023,  1025,  1030,  1032,  1036,
00368   1039,  1042,  1045,  1046,  1048,  1049,  1050,  1062,  1063,  1064,
00369   1076,  1083,  1090,  1091,  1092,  1103,  1104,  1105,  1116,  1122,
00370   1128,  1133,  1138,  1139,  1141,  1143,  1146,  1152,  1156,  1159,
00371   1164,  1166,  1170,  1175,  1182,  1183,  1192,  1197,  1199,  1203,
00372   1206,  1208,  1213,  1215,  1217,  1220,  1223,  1225,  1228,  1230,
00373   1233,  1235,  1237,  1239,  1242,  1244,  1247,  1250,  1254,  1256,
00374   1260,  1262,  1266,  1268,  1270,  1274,  1275,  1278,  1279,  1284,
00375   1289,  1291,  1293,  1296,  1298,  1300,  1303,  1304,  1306,  1312,
00376   1315,  1319,  1323,  1328,  1332,  1337,  1342,  1348,  1350,  1352,
00377   1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
00378   1375,  1378,  1386,  1393,  1396,  1397,  1398,  1409,  1410,  1417,
00379   1419,  1421,  1423,  1425,  1428,  1430,  1432,  1434,  1436,  1438,
00380   1440,  1442,  1446,  1448,  1451,  1454,  1457,  1459,  1461,  1463,
00381   1465,  1467,  1469,  1471,  1473,  1475,  1477,  1481,  1483,  1485,
00382   1488,  1491,  1492,  1497,  1498,  1504,  1505,  1509,  1510,  1515,
00383   1519,  1522,  1526,  1527,  1528,  1529,  1530,  1531,  1533,  1536,
00384   1539,  1543,  1546,  1550,  1554,  1559,  1562,  1565,  1569,  1573,
00385   1578,  1580,  1583,  1585,  1588,  1590,  1593,  1595,  1598,  1600,
00386   1603,  1605,  1610,  1613,  1614,  1620,  1621,  1628,  1633,  1638,
00387   1639,  1640,  1651,  1653,  1654,  1659,  1661,  1663,  1665,  1667,
00388   1669,  1673,  1675,  1680,  1684,  1689,  1696,  1702,  1708,  1711,
00389   1714,  1716,  1719,  1722,  1725,  1728,  1731,  1734,  1737,  1740,
00390   1742,  1744,  1749,  1751,  1755,  1759,  1763,  1765,  1769,  1773,
00391   1775,  1779,  1783,  1785,  1789,  1793,  1797,  1801,  1803,  1807,
00392   1811,  1813,  1817,  1819,  1823,  1825,  1829,  1831,  1835,  1837,
00393   1841,  1843,  1844,  1845,  1853,  1855,  1859,  1863,  1867,  1871,
00394   1875,  1879,  1883,  1887,  1891,  1895,  1899,  1901,  1902,  1904,
00395   1907,  1915,  1918,  1921,  1929,  1936,  1939,  1943,  1946,  1950,
00396   1953,  1957,  1961,  1965,  1969,  1972,  1976,  1977,  1979,  1981,
00397   1983,  1985,  1987,  1989,  1991,  1993
00398 };
00399 
00400 static const short yyrhs[] = {    -1,
00401    183,     0,   184,     0,   183,   184,     0,   236,   405,     0,
00402    185,     0,   186,     0,   196,     0,   199,     0,   273,     0,
00403      1,     0,    75,   293,   306,   316,   306,   405,   281,    88,
00404      0,    75,   293,   306,   316,   306,    23,   281,   286,   285,
00405    405,    88,     0,     0,    76,   187,   188,   405,    88,     0,
00406    189,     0,   293,   306,   189,     0,   193,     0,   320,   193,
00407      0,   407,     0,   281,    24,   306,   316,   281,    25,     0,
00408    190,    26,    27,     0,   190,    26,   281,   272,    27,   306,
00409      0,     0,   190,   282,    24,    25,   191,   201,     0,     0,
00410    190,   282,    24,   317,    25,   192,   201,     0,   407,     0,
00411    281,    24,   306,   189,   281,    25,     0,   193,    26,    27,
00412      0,   193,    26,   281,   272,    27,   306,     0,     0,   193,
00413    282,    24,    25,   194,   203,     0,     0,   193,   282,    24,
00414    317,    25,   195,   203,     0,     0,     0,    77,   407,    24,
00415    317,    25,   197,   203,   198,   405,    88,     0,    89,   346,
00416     92,     0,    90,   333,    92,     0,    91,   334,    92,     0,
00417     89,    92,     0,   232,     0,     0,   202,   205,     0,     0,
00418    204,   206,     0,   213,     0,   207,   213,     0,   216,     0,
00419    207,   216,     0,   229,     0,   229,   207,     0,   209,     0,
00420    208,    21,   209,     0,   212,   210,     0,   406,     0,   176,
00421      0,    86,     0,    87,     0,   116,     0,   117,     0,   130,
00422      0,     0,   211,   212,     0,     0,    72,   214,   366,   405,
00423     88,   219,     0,     0,    72,   215,   208,   405,    88,   219,
00424      0,    74,     0,   220,     0,     0,     0,    72,   217,   366,
00425    405,   219,     0,     0,    72,   218,   208,   405,   219,     0,
00426     74,     0,   222,     0,     0,   220,     0,     0,     0,    73,
00427    221,   237,     0,     0,    73,   223,   238,     0,    78,     0,
00428     79,     0,    80,     0,    81,     0,    82,     0,    88,     0,
00429     88,     0,    83,     0,    84,     0,   119,     0,   137,     0,
00430    135,     0,   133,     0,   132,     0,   121,     0,   138,     0,
00431    150,     0,     0,   224,   306,   230,   243,   405,   226,   281,
00432      0,     0,   227,   306,   228,   231,   243,   405,   225,   281,
00433      0,   316,     0,   293,   306,   316,     0,     0,    19,   234,
00434    362,     0,     0,   366,   235,   355,     0,   200,   233,     0,
00435    241,   405,    88,     0,   405,    88,     0,   241,   405,     0,
00436    405,     0,   406,     0,   176,     0,   239,    26,    27,     0,
00437    239,    26,   240,    27,     0,    34,   239,     0,    24,   239,
00438     25,     0,   239,    28,   407,     0,   239,    44,   407,     0,
00439    239,     0,   178,     0,   239,     0,   241,    21,   239,     0,
00440    406,     0,   176,     0,   242,    26,    27,     0,   242,    26,
00441    240,    27,     0,    34,   242,     0,    24,   242,    25,     0,
00442    242,    28,   407,     0,   242,    44,   407,     0,   242,     0,
00443    243,    21,   242,     0,   406,     0,   176,     0,   178,     0,
00444     24,   270,    25,     0,   177,     0,   111,     0,   244,     0,
00445    245,    26,   270,    27,     0,   245,    24,    25,     0,   245,
00446     24,   246,    25,     0,    70,    24,   269,    21,   328,    25,
00447      0,   245,   306,    28,   407,   281,     0,   245,   306,    44,
00448    407,   281,     0,   245,    47,     0,   245,    48,     0,   269,
00449      0,   246,    21,   269,     0,   245,     0,    47,   247,     0,
00450     48,   247,     0,    29,   253,     0,    34,   253,     0,    33,
00451    253,     0,    32,   253,     0,    31,   253,     0,    30,   253,
00452      0,   250,     0,   249,     0,   248,    28,   407,     0,   407,
00453      0,    46,   281,    24,   328,   306,    21,   248,    25,   281,
00454      0,     0,   281,   251,   252,     0,    42,    24,   328,    25,
00455      0,    42,   247,     0,    43,    24,   328,    25,     0,    43,
00456    247,     0,   247,     0,    24,   328,    25,   253,     0,   253,
00457      0,   254,    34,   253,     0,   254,    35,   253,     0,   254,
00458     36,   253,     0,   254,     0,   255,    33,   254,     0,   255,
00459     32,   254,     0,   255,     0,   256,    49,   255,     0,   256,
00460     50,   255,     0,   256,     0,   257,    37,   256,     0,   257,
00461     38,   256,     0,   257,    51,   256,     0,   257,    52,   256,
00462      0,   257,     0,   258,    53,   257,     0,   258,    54,   257,
00463      0,   258,     0,   259,    29,   258,     0,   259,     0,   260,
00464     39,   259,     0,   260,     0,   261,    40,   260,     0,   261,
00465      0,     0,   262,    55,   263,   261,     0,   262,     0,     0,
00466    264,    56,   265,   262,     0,   264,     0,     0,     0,   264,
00467     41,   267,   270,    22,   268,   266,     0,   266,     0,   247,
00468     23,   269,     0,   247,    57,   269,     0,   247,    58,   269,
00469      0,   247,    59,   269,     0,   247,    60,   269,     0,   247,
00470     61,   269,     0,   247,    62,   269,     0,   247,    63,   269,
00471      0,   247,    64,   269,     0,   247,    65,   269,     0,   247,
00472     66,   269,     0,   269,     0,   270,    21,   269,     0,     0,
00473    270,     0,   266,     0,   274,     0,    71,     0,   279,     0,
00474    293,   281,    18,     0,     0,   293,   306,   316,   306,   275,
00475    281,   285,    18,   281,     0,     0,   293,   306,   316,   306,
00476     23,   276,   281,   286,   285,    18,   281,     0,   316,   306,
00477      0,     0,   316,   306,    23,   278,   281,   286,     0,     0,
00478     45,   293,   280,   306,   283,   281,    18,     0,    45,   293,
00479    281,    18,     0,    45,   283,   281,    18,     0,     0,     0,
00480    284,   281,     0,   277,     0,   283,    21,   306,   277,     0,
00481      0,   285,    21,   306,   277,     0,   269,     0,    19,   287,
00482     20,     0,    19,   287,    21,    20,     0,   286,     0,   287,
00483     21,   286,     0,   112,     0,   110,     0,   113,     0,   114,
00484      0,   115,     0,   108,   281,     0,   109,   281,     0,   116,
00485    281,     0,   117,   281,     0,   130,   281,     0,   131,   281,
00486      0,   132,   281,     0,   133,   281,     0,   118,   281,     0,
00487    120,   281,     0,   119,   281,     0,   128,   281,     0,   129,
00488    281,     0,   121,   281,     0,   123,   281,     0,   139,   281,
00489      0,   140,   281,     0,   142,   281,     0,   143,   281,     0,
00490    141,   281,     0,   136,   281,     0,   151,   281,     0,   134,
00491    281,     0,   135,   281,     0,   137,   281,     0,   124,   281,
00492      0,   127,   281,     0,   125,   281,     0,   126,   281,     0,
00493    156,   281,     0,   157,   281,     0,   148,   281,     0,   158,
00494    281,     0,   149,   281,     0,   152,   281,     0,   153,   281,
00495      0,   154,   281,     0,   155,   281,     0,   150,   281,     0,
00496    159,   281,     0,   160,   281,     0,   163,   281,     0,   164,
00497    281,     0,   161,   281,     0,   162,   281,     0,   147,     0,
00498    144,     0,   145,     0,   146,     0,   165,   306,     0,   167,
00499    306,     0,   166,   306,     0,   168,   306,     0,   169,   306,
00500      0,   170,   306,     0,   171,   306,     0,   172,   306,     0,
00501    173,   306,     0,   174,   306,     0,   408,   306,     0,   297,
00502    306,     0,   311,   306,     0,   290,   306,     0,   281,   293,
00503    281,     0,   295,     0,   295,    85,   294,    88,     0,   328,
00504      0,   328,    21,   294,     0,   288,   296,     0,   289,   296,
00505      0,   291,   296,     0,     0,   293,     0,     0,     0,   306,
00506     67,   407,   281,    19,   298,   359,   307,   360,   299,    20,
00507      0,     0,     0,   306,    68,   407,   281,    19,   300,   359,
00508    307,   360,   301,    20,     0,   306,    67,   407,   281,    19,
00509     20,     0,   306,    68,   407,   281,    19,    20,     0,     0,
00510      0,   306,    67,   281,    19,   302,   359,   307,   360,   303,
00511     20,     0,     0,     0,   306,    68,   281,    19,   304,   359,
00512    307,   360,   305,    20,     0,   306,    67,   281,    19,    20,
00513      0,   306,    68,   281,    19,    20,     0,   306,    67,   407,
00514    306,     0,   306,    68,   407,   306,     0,     0,   308,     0,
00515    199,     0,   307,   308,     0,   293,   306,   309,   281,    18,
00516      0,   293,   281,    18,     0,   310,   306,     0,   309,    21,
00517    310,   306,     0,   316,     0,    22,   281,   272,     0,   316,
00518     22,   281,   272,     0,   306,    69,    19,   313,    20,   281,
00519      0,     0,   306,    69,   407,    19,   312,   313,    20,   281,
00520      0,   306,    69,   407,   281,     0,   314,     0,   313,    21,
00521    314,     0,   313,    21,     0,   407,     0,   407,    23,   281,
00522    272,     0,   190,     0,   330,     0,   320,   181,     0,   320,
00523    315,     0,   190,     0,   320,   190,     0,   323,     0,   306,
00524    321,     0,   108,     0,   109,     0,   318,     0,   319,   318,
00525      0,    34,     0,    34,   319,     0,    34,   320,     0,    34,
00526    319,   320,     0,   322,     0,   322,    21,     5,     0,   407,
00527      0,   322,    21,   407,     0,     5,     0,   324,     0,   324,
00528     21,     5,     0,     0,   325,   327,     0,     0,   324,    21,
00529    326,   327,     0,   281,   293,   315,   281,     0,   407,     0,
00530    292,     0,   292,   329,     0,   320,     0,   331,     0,   320,
00531    331,     0,     0,   331,     0,   281,    24,   306,   329,    25,
00532      0,    26,    27,     0,    26,   272,    27,     0,   331,    26,
00533     27,     0,   331,    26,   272,    27,     0,   281,    24,    25,
00534      0,   281,    24,   323,    25,     0,   331,   281,    24,    25,
00535      0,   331,   281,    24,   323,    25,     0,   348,     0,   349,
00536      0,   352,     0,   355,     0,   368,     0,   371,     0,   402,
00537      0,   376,     0,   404,     0,   335,     0,   333,     0,   342,
00538      0,   335,   342,     0,   375,   335,     0,   401,   347,    11,
00539     24,   270,    25,    18,     0,   401,   347,    11,    24,   270,
00540     25,     0,   337,   342,     0,     0,     0,    13,    24,   271,
00541     18,   271,    18,   338,   271,   339,    25,     0,     0,   179,
00542    357,    24,   341,   379,    25,     0,   180,     0,   348,     0,
00543    349,     0,   352,     0,   344,   366,     0,   344,     0,   345,
00544      0,   368,     0,   343,     0,   336,     0,   340,     0,   404,
00545      0,    24,   342,    25,     0,     1,     0,   370,   342,     0,
00546    357,    19,     0,   361,    20,     0,   347,     0,   365,     0,
00547    348,     0,   349,     0,   352,     0,   356,     0,   369,     0,
00548    371,     0,   376,     0,   403,     0,    24,   347,    25,     0,
00549    404,     0,     1,     0,   407,    22,     0,   107,   332,     0,
00550      0,     6,   272,   350,    22,     0,     0,    98,     6,   272,
00551    351,    22,     0,     0,     7,   353,    22,     0,     0,    98,
00552      7,   354,    22,     0,    24,   355,    25,     0,   357,   363,
00553      0,   357,   364,   358,     0,     0,     0,     0,     0,     0,
00554     20,     0,   107,    20,     0,   367,    20,     0,   367,   107,
00555     20,     0,   366,    20,     0,   366,   107,    20,     0,   366,
00556    367,    20,     0,   366,   367,   107,    20,     0,    19,   362,
00557      0,    19,    20,     0,    19,   365,    20,     0,    19,   366,
00558     20,     0,    19,   366,   367,    20,     0,   347,     0,   365,
00559    347,     0,   273,     0,   366,   273,     0,   332,     0,   367,
00560    332,     0,    18,     0,   270,    18,     0,    18,     0,   270,
00561     18,     0,   270,     0,     8,    24,   270,    25,     0,   370,
00562    332,     0,     0,   370,   332,     9,   372,   332,     0,     0,
00563     10,    24,   270,   373,    25,   332,     0,    11,    24,   270,
00564     25,     0,    11,    24,   270,    25,     0,     0,     0,   179,
00565    377,   357,    24,   378,   379,    25,   355,   400,   358,     0,
00566    381,     0,     0,   379,   380,    21,   381,     0,   399,     0,
00567    406,     0,   177,     0,   176,     0,   178,     0,    24,   270,
00568     25,     0,   382,     0,   245,    26,   270,    27,     0,   245,
00569     24,    25,     0,   245,    24,   246,    25,     0,    70,    24,
00570    269,    21,   328,    25,     0,   245,   306,    28,   407,   281,
00571      0,   245,   306,    44,   407,   281,     0,   245,    47,     0,
00572    245,    48,     0,   383,     0,    47,   247,     0,    48,   247,
00573      0,    29,   253,     0,    34,   253,     0,    33,   253,     0,
00574     32,   253,     0,    31,   253,     0,    30,   253,     0,   250,
00575      0,   384,     0,    24,   328,    25,   253,     0,   385,     0,
00576    254,    34,   253,     0,   254,    35,   253,     0,   254,    36,
00577    253,     0,   386,     0,   255,    33,   254,     0,   255,    32,
00578    254,     0,   387,     0,   256,    49,   255,     0,   256,    50,
00579    255,     0,   388,     0,   257,    37,   256,     0,   257,    38,
00580    256,     0,   257,    51,   256,     0,   257,    52,   256,     0,
00581    389,     0,   258,    53,   257,     0,   258,    54,   257,     0,
00582    390,     0,   259,    29,   258,     0,   391,     0,   260,    39,
00583    259,     0,   392,     0,   261,    40,   260,     0,   393,     0,
00584    262,    55,   261,     0,   394,     0,   264,    56,   262,     0,
00585    395,     0,     0,     0,   264,    41,   397,   270,    22,   398,
00586    266,     0,   396,     0,   247,    23,   269,     0,   247,    57,
00587    269,     0,   247,    58,   269,     0,   247,    59,   269,     0,
00588    247,    60,   269,     0,   247,    61,   269,     0,   247,    62,
00589    269,     0,   247,    63,   269,     0,   247,    64,   269,     0,
00590    247,    65,   269,     0,   247,    66,   269,     0,   180,     0,
00591      0,    12,     0,   374,   332,     0,   401,   332,    11,    24,
00592    270,    25,    18,     0,   337,   332,     0,   374,   347,     0,
00593    401,   347,    11,    24,   270,    25,    18,     0,   401,   347,
00594     11,    24,   270,    25,     0,   337,   347,     0,    14,   407,
00595     18,     0,    15,    18,     0,    97,    15,    18,     0,    16,
00596     18,     0,    93,    16,    18,     0,    94,    16,    18,     0,
00597     95,    16,    18,     0,    96,    16,    18,     0,    17,    18,
00598      0,    17,   270,    18,     0,     0,    18,     0,   175,     0,
00599    176,     0,   179,     0,   180,     0,   406,     0,   177,     0,
00600    181,     0,   177,     0
00601 };
00602 
00603 #endif
00604 
00605 #if YYDEBUG != 0
00606 static const short yyrline[] = { 0,
00607    232,   233,   236,   237,   240,   241,   242,   243,   244,   245,
00608    246,   249,   251,   255,   255,   260,   266,   270,   271,   275,
00609    276,   278,   280,   284,   288,   295,   299,   305,   306,   308,
00610    310,   326,   330,   337,   341,   347,   349,   349,   353,   354,
00611    355,   356,   359,   362,   363,   366,   367,   370,   371,   374,
00612    375,   378,   379,   382,   383,   386,   389,   390,   393,   394,
00613    395,   396,   397,   400,   401,   404,   404,   407,   407,   410,
00614    414,   415,   418,   418,   421,   421,   424,   428,   429,   432,
00615    433,   436,   442,   449,   455,   462,   463,   464,   465,   466,
00616    469,   472,   475,   476,   479,   480,   481,   482,   483,   484,
00617    485,   486,   489,   495,   502,   508,   517,   523,   527,   529,
00618    533,   536,   543,   551,   552,   555,   556,   559,   560,   561,
00619    562,   563,   564,   565,   566,   570,   571,   575,   576,   579,
00620    581,   583,   584,   585,   586,   587,   589,   593,   597,   609,
00621    610,   611,   612,   613,   614,   617,   618,   619,   620,   621,
00622    622,   623,   624,   625,   628,   629,   632,   633,   634,   635,
00623    636,   637,   638,   639,   640,   641,   642,   645,   646,   649,
00624    653,   654,   657,   658,   659,   660,   663,   664,   668,   669,
00625    670,   671,   674,   675,   676,   679,   680,   681,   684,   685,
00626    686,   687,   688,   691,   692,   693,   696,   697,   700,   701,
00627    705,   706,   709,   710,   715,   721,   722,   728,   734,   735,
00628    735,   737,   740,   741,   742,   743,   744,   745,   746,   747,
00629    748,   749,   750,   751,   754,   755,   758,   759,   762,   767,
00630    768,   769,   772,   785,   789,   790,   793,   798,   799,   799,
00631    804,   805,   806,   807,   810,   813,   816,   819,   820,   823,
00632    824,   827,   828,   829,   833,   835,   844,   845,   846,   847,
00633    848,   851,   852,   853,   854,   855,   856,   857,   858,   859,
00634    860,   861,   862,   863,   864,   865,   866,   867,   868,   869,
00635    870,   871,   872,   873,   874,   875,   876,   877,   878,   879,
00636    880,   881,   882,   883,   884,   885,   886,   887,   888,   889,
00637    890,   891,   892,   893,   894,   895,   898,   899,   900,   901,
00638    904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
00639    914,   915,   916,   917,   920,   924,   925,   929,   930,   934,
00640    935,   936,   939,   940,   943,   945,   947,   948,   950,   952,
00641    953,   955,   957,   959,   961,   962,   964,   966,   967,   969,
00642    971,   972,   975,   978,   979,   980,   983,   985,   989,   991,
00643    995,   996,   997,  1001,  1003,  1003,  1005,  1008,  1010,  1012,
00644   1015,  1020,  1027,  1028,  1029,  1036,  1040,  1041,  1045,  1046,
00645   1049,  1050,  1053,  1054,  1057,  1058,  1059,  1060,  1063,  1064,
00646   1067,  1068,  1071,  1072,  1073,  1076,  1076,  1077,  1078,  1081,
00647   1093,  1109,  1110,  1113,  1114,  1115,  1118,  1119,  1122,  1124,
00648   1125,  1127,  1128,  1130,  1132,  1134,  1136,  1142,  1143,  1144,
00649   1145,  1146,  1147,  1148,  1149,  1150,  1153,  1156,  1159,  1160,
00650   1164,  1166,  1168,  1170,  1174,  1175,  1177,  1181,  1183,  1185,
00651   1188,  1189,  1190,  1191,  1192,  1193,  1194,  1195,  1196,  1197,
00652   1198,  1199,  1200,  1203,  1209,  1212,  1215,  1216,  1219,  1220,
00653   1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1232,
00654   1233,  1239,  1240,  1241,  1242,  1245,  1246,  1247,  1248,  1251,
00655   1252,  1256,  1259,  1262,  1265,  1268,  1271,  1274,  1275,  1276,
00656   1277,  1279,  1280,  1282,  1284,  1291,  1295,  1297,  1299,  1301,
00657   1305,  1306,  1309,  1310,  1313,  1314,  1317,  1318,  1321,  1322,
00658   1323,  1326,  1334,  1339,  1340,  1344,  1345,  1348,  1353,  1356,
00659   1357,  1358,  1366,  1367,  1367,  1371,  1372,  1373,  1384,  1391,
00660   1392,  1395,  1396,  1397,  1398,  1399,  1401,  1402,  1403,  1404,
00661   1407,  1408,  1409,  1410,  1411,  1412,  1413,  1414,  1415,  1416,
00662   1419,  1420,  1423,  1424,  1425,  1426,  1429,  1430,  1431,  1434,
00663   1435,  1436,  1439,  1440,  1441,  1442,  1443,  1446,  1447,  1448,
00664   1451,  1452,  1455,  1456,  1460,  1461,  1464,  1465,  1468,  1469,
00665   1472,  1473,  1474,  1475,  1478,  1479,  1480,  1481,  1482,  1483,
00666   1484,  1485,  1486,  1487,  1488,  1489,  1492,  1493,  1496,  1499,
00667   1501,  1503,  1507,  1508,  1510,  1512,  1515,  1516,  1517,  1519,
00668   1520,  1521,  1522,  1523,  1524,  1525,  1528,  1529,  1532,  1535,
00669   1536,  1537,  1538,  1539,  1542,  1543
00670 };
00671 #endif
00672 
00673 
00674 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
00675 
00676 static const char * const yytname[] = {   "$","error","$undefined.","BADTOK",
00677 "SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO",
00678 "CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA",
00679 "TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND",
00680 "TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC",
00681 "TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP",
00682 "DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP",
00683 "MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN",
00684 "RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM",
00685 "VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER",
00686 "QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE",
00687 "QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO",
00688 "QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH",
00689 "QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE",
00690 "QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE",
00691 "QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN",
00692 "QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED",
00693 "QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED",
00694 "QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT",
00695 "QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT",
00696 "QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE",
00697 "QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF",
00698 "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE",
00699 "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","IDENTIFIER","NEW_IDENTIFIER",
00700 "TYPE_NAME_OR_ID","CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file",
00701 "externalDefs","externalDef","constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl",
00702 "namedDeclBase","@2","@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7",
00703 "macroDef","fcnDefHdr","optGlobMods","@8","optPlainGlobMods","@9","optGlobModsRest",
00704 "optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr","globId",
00705 "globQual","optGlobQuals","optGlobModsAux","@10","@11","optPlainGlobModsAux",
00706 "@12","@13","optMods","fcnMods","@14","fcnPlainMods","@15","specialTag","endStateTag",
00707 "endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@16",
00708 "@17","fcnDefHdrAux","fcnBody","@18","@19","fcnDef","locModifies","locPlainModifies",
00709 "modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr",
00710 "postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr",
00711 "sizeofExpr","@20","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr",
00712 "relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr",
00713 "@21","orExpr","@22","conditionalExpr","@23","@24","assignExpr","expr","optExpr",
00714 "constantExpr","initializer","instanceDecl","@25","@26","namedInitializer","@27",
00715 "typeDecl","@28","IsType","PushType","namedInitializerList","namedInitializerListAux",
00716 "optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier",
00717 "typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux",
00718 "optCompleteType","suSpc","@29","@30","@31","@32","@33","@34","@35","@36","NotType",
00719 "structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc",
00720 "@37","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList",
00721 "innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList",
00722 "paramList","@38","@39","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase",
00723 "abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt",
00724 "forPred","@40","@41","partialIterStmt","@42","iterDefStmt","iterSelectionStmt",
00725 "openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@43",
00726 "@44","defaultStmt","@45","@46","compoundStmt","compoundStmtErr","CreateInnerScope",
00727 "DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe",
00728 "compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList",
00729 "stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@47",
00730 "@48","whilePred","iterWhilePred","iterStmt","@49","@50","iterArgList","@51",
00731 "iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr",
00732 "timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr",
00733 "bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr",
00734 "@52","@53","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr",
00735 "jumpStmt","optSemi","id","newId","typeName", NULL
00736 };
00737 #endif
00738 
00739 static const short yyr1[] = {     0,
00740    182,   182,   183,   183,   184,   184,   184,   184,   184,   184,
00741    184,   185,   185,   187,   186,   188,   188,   189,   189,   190,
00742    190,   190,   190,   191,   190,   192,   190,   193,   193,   193,
00743    193,   194,   193,   195,   193,   197,   198,   196,   199,   199,
00744    199,   199,   200,   202,   201,   204,   203,   205,   205,   206,
00745    206,   207,   207,   208,   208,   209,   210,   210,   211,   211,
00746    211,   211,   211,   212,   212,   214,   213,   215,   213,   213,
00747    213,   213,   217,   216,   218,   216,   216,   216,   216,   219,
00748    219,   221,   220,   223,   222,   224,   224,   224,   224,   224,
00749    225,   226,   227,   227,   228,   228,   228,   228,   228,   228,
00750    228,   228,   230,   229,   231,   229,   232,   232,   234,   233,
00751    235,   233,   236,   237,   237,   238,   238,   239,   239,   239,
00752    239,   239,   239,   239,   239,   240,   240,   241,   241,   242,
00753    242,   242,   242,   242,   242,   242,   242,   243,   243,   244,
00754    244,   244,   244,   244,   244,   245,   245,   245,   245,   245,
00755    245,   245,   245,   245,   246,   246,   247,   247,   247,   247,
00756    247,   247,   247,   247,   247,   247,   247,   248,   248,   249,
00757    251,   250,   252,   252,   252,   252,   253,   253,   254,   254,
00758    254,   254,   255,   255,   255,   256,   256,   256,   257,   257,
00759    257,   257,   257,   258,   258,   258,   259,   259,   260,   260,
00760    261,   261,   262,   263,   262,   264,   265,   264,   266,   267,
00761    268,   266,   269,   269,   269,   269,   269,   269,   269,   269,
00762    269,   269,   269,   269,   270,   270,   271,   271,   272,   273,
00763    273,   273,   274,   275,   274,   276,   274,   277,   278,   277,
00764    280,   279,   279,   279,   281,   282,   283,   284,   284,   285,
00765    285,   286,   286,   286,   287,   287,   288,   288,   288,   288,
00766    288,   289,   289,   289,   289,   289,   289,   289,   289,   289,
00767    289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
00768    289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
00769    289,   289,   289,   289,   289,   289,   289,   289,   289,   289,
00770    289,   289,   289,   289,   289,   289,   290,   290,   290,   290,
00771    291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
00772    291,   291,   291,   291,   292,   293,   293,   294,   294,   295,
00773    295,   295,   296,   296,   298,   299,   297,   300,   301,   297,
00774    297,   297,   302,   303,   297,   304,   305,   297,   297,   297,
00775    297,   297,   306,   307,   307,   307,   308,   308,   309,   309,
00776    310,   310,   310,   311,   312,   311,   311,   313,   313,   313,
00777    314,   314,   315,   315,   315,   315,   316,   316,   317,   317,
00778    318,   318,   319,   319,   320,   320,   320,   320,   321,   321,
00779    322,   322,   323,   323,   323,   325,   324,   326,   324,   327,
00780    327,   328,   328,   329,   329,   329,   330,   330,   331,   331,
00781    331,   331,   331,   331,   331,   331,   331,   332,   332,   332,
00782    332,   332,   332,   332,   332,   332,   333,   334,   335,   335,
00783    336,   336,   336,   336,   338,   339,   337,   341,   340,   340,
00784    342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
00785    342,   342,   342,   343,   344,   345,   346,   346,   347,   347,
00786    347,   347,   347,   347,   347,   347,   347,   347,   347,   348,
00787    348,   350,   349,   351,   349,   353,   352,   354,   352,   355,
00788    355,   356,   357,   358,   359,   360,   361,   362,   362,   362,
00789    362,   362,   362,   362,   362,   363,   364,   364,   364,   364,
00790    365,   365,   366,   366,   367,   367,   368,   368,   369,   369,
00791    369,   370,   371,   372,   371,   373,   371,   374,   375,   377,
00792    378,   376,   379,   380,   379,   381,   381,   381,   381,   382,
00793    382,   383,   383,   383,   383,   383,   383,   383,   383,   383,
00794    384,   384,   384,   384,   384,   384,   384,   384,   384,   384,
00795    385,   385,   386,   386,   386,   386,   387,   387,   387,   388,
00796    388,   388,   389,   389,   389,   389,   389,   390,   390,   390,
00797    391,   391,   392,   392,   393,   393,   394,   394,   395,   395,
00798    396,   397,   398,   396,   399,   399,   399,   399,   399,   399,
00799    399,   399,   399,   399,   399,   399,   400,   400,   401,   402,
00800    402,   402,   403,   403,   403,   403,   404,   404,   404,   404,
00801    404,   404,   404,   404,   404,   404,   405,   405,   406,   407,
00802    407,   407,   407,   407,   408,   408
00803 };
00804 
00805 static const short yyr2[] = {     0,
00806      0,     1,     1,     2,     2,     1,     1,     1,     1,     1,
00807      1,     8,    11,     0,     5,     1,     3,     1,     2,     1,
00808      6,     3,     6,     0,     6,     0,     7,     1,     6,     3,
00809      6,     0,     6,     0,     7,     0,     0,    10,     3,     3,
00810      3,     2,     1,     0,     2,     0,     2,     1,     2,     1,
00811      2,     1,     2,     1,     3,     2,     1,     1,     1,     1,
00812      1,     1,     1,     0,     2,     0,     6,     0,     6,     1,
00813      1,     0,     0,     5,     0,     5,     1,     1,     0,     1,
00814      0,     0,     3,     0,     3,     1,     1,     1,     1,     1,
00815      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00816      1,     1,     0,     7,     0,     8,     1,     3,     0,     3,
00817      0,     3,     2,     3,     2,     2,     1,     1,     1,     3,
00818      4,     2,     3,     3,     3,     1,     1,     1,     3,     1,
00819      1,     3,     4,     2,     3,     3,     3,     1,     3,     1,
00820      1,     1,     3,     1,     1,     1,     4,     3,     4,     6,
00821      5,     5,     2,     2,     1,     3,     1,     2,     2,     2,
00822      2,     2,     2,     2,     2,     1,     1,     3,     1,     9,
00823      0,     3,     4,     2,     4,     2,     1,     4,     1,     3,
00824      3,     3,     1,     3,     3,     1,     3,     3,     1,     3,
00825      3,     3,     3,     1,     3,     3,     1,     3,     1,     3,
00826      1,     3,     1,     0,     4,     1,     0,     4,     1,     0,
00827      0,     7,     1,     3,     3,     3,     3,     3,     3,     3,
00828      3,     3,     3,     3,     1,     3,     0,     1,     1,     1,
00829      1,     1,     3,     0,     9,     0,    11,     2,     0,     6,
00830      0,     7,     4,     4,     0,     0,     2,     1,     4,     0,
00831      4,     1,     3,     4,     1,     3,     1,     1,     1,     1,
00832      1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00833      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00834      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00835      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00836      2,     2,     2,     2,     2,     2,     1,     1,     1,     1,
00837      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00838      2,     2,     2,     2,     3,     1,     4,     1,     3,     2,
00839      2,     2,     0,     1,     0,     0,    11,     0,     0,    11,
00840      6,     6,     0,     0,    10,     0,     0,    10,     5,     5,
00841      4,     4,     0,     1,     1,     2,     5,     3,     2,     4,
00842      1,     3,     4,     6,     0,     8,     4,     1,     3,     2,
00843      1,     4,     1,     1,     2,     2,     1,     2,     1,     2,
00844      1,     1,     1,     2,     1,     2,     2,     3,     1,     3,
00845      1,     3,     1,     1,     3,     0,     2,     0,     4,     4,
00846      1,     1,     2,     1,     1,     2,     0,     1,     5,     2,
00847      3,     3,     4,     3,     4,     4,     5,     1,     1,     1,
00848      1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
00849      2,     7,     6,     2,     0,     0,    10,     0,     6,     1,
00850      1,     1,     1,     2,     1,     1,     1,     1,     1,     1,
00851      1,     3,     1,     2,     2,     2,     1,     1,     1,     1,
00852      1,     1,     1,     1,     1,     1,     3,     1,     1,     2,
00853      2,     0,     4,     0,     5,     0,     3,     0,     4,     3,
00854      2,     3,     0,     0,     0,     0,     0,     1,     2,     2,
00855      3,     2,     3,     3,     4,     2,     2,     3,     3,     4,
00856      1,     2,     1,     2,     1,     2,     1,     2,     1,     2,
00857      1,     4,     2,     0,     5,     0,     6,     4,     4,     0,
00858      0,    10,     1,     0,     4,     1,     1,     1,     1,     1,
00859      3,     1,     4,     3,     4,     6,     5,     5,     2,     2,
00860      1,     2,     2,     2,     2,     2,     2,     2,     2,     1,
00861      1,     4,     1,     3,     3,     3,     1,     3,     3,     1,
00862      3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
00863      1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
00864      1,     0,     0,     7,     1,     3,     3,     3,     3,     3,
00865      3,     3,     3,     3,     3,     3,     1,     0,     1,     2,
00866      7,     2,     2,     7,     6,     2,     3,     2,     3,     2,
00867      3,     3,     3,     3,     2,     3,     0,     1,     1,     1,
00868      1,     1,     1,     1,     1,     1
00869 };
00870 
00871 static const short yydefact[] = {     0,
00872     11,   385,   353,   231,   353,    14,     0,     0,     0,     0,
00873    245,   245,   258,   257,   259,   260,   261,   245,   245,   245,
00874    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00875    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00876    245,   245,   245,   308,   309,   310,   307,   245,   245,   245,
00877    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00878    245,   245,   245,   245,   353,   353,   353,   353,   353,   353,
00879    353,   353,   353,   353,   619,   620,   624,   621,   622,   625,
00880      0,     3,     6,     7,   377,     8,     9,   353,    43,   617,
00881     10,   230,   232,     0,   333,   333,   353,   333,   353,   326,
00882    353,     0,   353,   107,   245,   623,    20,   353,   381,   382,
00883    383,   386,   387,   248,   245,   245,   241,   353,   626,   353,
00884    353,   624,     0,   469,   245,   476,     0,     0,     0,   599,
00885      0,     0,     0,     0,   245,   509,     0,   245,   245,   245,
00886    245,   245,   245,   245,   245,   245,     0,    42,     0,     0,
00887      0,     0,     0,     0,   245,   145,   141,   144,   142,   520,
00888    146,   157,   177,   167,   166,   179,   183,   186,   189,   194,
00889    197,   199,   201,   203,   206,   209,   213,   225,   511,   171,
00890      0,     0,   501,   459,   460,   461,   462,     0,     0,   463,
00891    245,   464,     0,   465,     0,   466,   468,   140,     0,   453,
00892      0,   507,     0,   483,   440,     0,     0,     0,   449,     0,
00893    450,   429,   448,   445,   446,   441,   442,   443,     0,     0,
00894    447,     0,     0,     0,   451,   428,     0,   262,   263,   264,
00895    265,   270,   272,   271,   275,   276,   287,   289,   290,   288,
00896    273,   274,   266,   267,   268,   269,   284,   285,   282,   286,
00897    277,   278,   281,   279,   280,   293,   295,   300,   283,   296,
00898    297,   298,   299,   291,   292,   294,   301,   302,   305,   306,
00899    303,   304,   311,   313,   312,   314,   315,   316,   317,   318,
00900    319,   320,     4,   245,     0,   109,   113,   503,   353,   353,
00901    618,     5,   353,   334,   330,   331,   324,   332,     0,   245,
00902    245,   322,   245,   245,     0,   323,   378,   321,   384,   388,
00903    353,     0,   247,   353,     0,   238,   245,   617,    16,    18,
00904      0,   353,   245,    28,   396,   245,   141,   144,   177,   229,
00905    472,   140,     0,   245,   245,   245,   245,     0,   608,   610,
00906    615,     0,     0,   353,   402,     0,     0,   160,   165,   164,
00907    163,   162,   161,     0,   245,   158,   159,   245,     0,     0,
00908      0,     0,     0,   245,   478,   245,   471,   245,   418,   419,
00909    420,   421,     0,   422,   423,   245,   425,   245,   424,   426,
00910    483,   245,   245,   153,   154,     0,   245,   245,   245,   245,
00911    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00912    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00913    245,   245,   245,   204,   210,   207,   510,   245,     0,   606,
00914     39,     0,   484,   502,   513,   603,     0,   470,   245,     0,
00915      0,     0,   508,    40,   430,   434,   444,   455,   456,   454,
00916      0,     0,    41,    22,   245,   396,   353,   245,   483,   504,
00917    245,   233,   108,   353,     0,   328,     0,   353,     0,   353,
00918      0,   245,   245,   244,   245,   243,   239,   353,     0,   245,
00919      0,   353,   245,    19,   393,     0,     0,   379,   394,   245,
00920      0,     0,   477,     0,   516,     0,   228,     0,   607,   616,
00921    143,   245,   245,     0,   404,   403,   405,   245,   467,   245,
00922      0,   611,   612,   613,   614,   609,   474,     0,     0,   602,
00923    353,   481,   600,     0,     0,   148,     0,   155,     0,     0,
00924      0,   214,   215,   216,   217,   218,   219,   220,   221,   222,
00925    223,   224,   180,   181,   182,   185,   184,   187,   188,   190,
00926    191,   192,   193,   195,   196,   198,   200,   202,   245,   245,
00927    245,   226,   245,   245,   172,   497,   144,   501,     0,   353,
00928    482,   514,     0,     0,   452,   438,     0,     0,    24,     0,
00929    488,   245,   505,   110,   353,   245,   353,   483,   112,   245,
00930    234,   327,   245,   343,     0,   351,   346,     0,   352,     0,
00931    368,   371,   365,   367,   249,   245,   245,   617,    15,    30,
00932    245,   396,   245,    17,   380,   389,   391,    36,   398,   353,
00933    397,   401,   473,   512,     0,   518,   245,   325,   410,     0,
00934    396,   406,   245,     0,   178,   353,   245,     0,   479,   480,
00935    496,     0,   521,   245,   149,   147,   245,   245,   205,     0,
00936    208,   245,   174,   245,   176,   498,   499,   245,   245,   245,
00937    519,   245,   245,   353,    44,    26,   489,   492,   245,   245,
00938    490,   245,   506,     0,   236,   245,   329,   349,   485,   335,
00939    350,   485,   338,   245,   370,   245,     0,     0,   245,   245,
00940    245,     0,    32,     0,   245,     0,    46,   395,   245,   407,
00941    245,     0,   411,   414,   245,     0,   412,     0,   396,     0,
00942      0,   475,   245,   245,   156,   151,   152,   211,     0,     0,
00943    500,   515,     0,   245,   245,   245,   245,   245,   245,   245,
00944    245,   245,     0,   141,   144,   142,   157,   177,   166,   183,
00945    186,   189,   194,   197,   199,   201,   203,   206,     0,   524,
00946    523,   532,   541,   551,   553,   557,   560,   563,   568,   571,
00947    573,   575,   577,   579,   581,   585,   526,   140,     0,    23,
00948     25,    72,    44,   493,   494,   245,   491,    21,   245,   250,
00949    353,   341,   485,   353,   342,   485,   364,   369,   245,     0,
00950    242,   245,   252,   240,   245,     0,   353,    46,    34,     0,
00951    390,   392,    37,    79,   399,   373,     0,   245,   407,   374,
00952    408,   517,   435,     0,   415,   413,   416,     0,     0,   150,
00953      0,   524,   245,   173,   175,   605,     0,     0,   160,   165,
00954    164,   163,   162,   161,   158,   159,   245,   245,   245,   153,
00955    154,     0,   245,   245,   245,   245,   245,   245,   245,   245,
00956    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
00957    245,   245,   245,   245,   245,   245,   245,   245,   245,   204,
00958    582,   207,   439,     0,   433,    66,    82,    70,    86,    87,
00959     88,    89,    90,    93,    94,    45,    72,    48,    71,   353,
00960    353,    52,    27,   495,   245,     0,   355,   353,   353,   354,
00961    353,   353,   353,   372,   245,   255,     0,   250,    12,    31,
00962     33,    46,    29,   617,    73,    84,    77,    47,    79,    50,
00963     78,   396,   400,   375,   376,   245,   409,   417,     0,   169,
00964      0,   483,   212,   604,   143,   245,     0,   148,     0,     0,
00965      0,     0,   586,   587,   588,   589,   590,   591,   592,   593,
00966    594,   595,   596,   180,   181,   182,   185,   184,   187,   188,
00967    190,   191,   192,   193,   195,   196,   198,   200,   202,   578,
00968    245,   580,   245,   432,   353,    64,   617,    49,   103,     0,
00969     53,   250,   245,   353,     0,   245,   356,   344,   353,   347,
00970    353,   366,   253,   245,   617,    35,     0,   353,    64,   617,
00971     51,   245,   436,   245,     0,   601,   598,   178,   245,   149,
00972    147,   245,   245,     0,   525,   353,    59,    60,    61,    62,
00973     63,   617,    54,    64,     0,     0,     0,   119,    83,   128,
00974    617,     0,   118,     0,    95,   100,    99,    98,    97,    96,
00975    101,   102,   105,     0,   235,   245,   358,   245,   245,   353,
00976    361,     0,   336,     0,   339,   254,   256,     0,    38,   617,
00977    617,    85,   617,   117,   245,     0,   170,   168,   597,   484,
00978      0,   151,   152,   583,     0,    64,     0,    65,    58,    56,
00979     57,     0,   122,     0,     0,     0,     0,     0,   115,     0,
00980      0,   131,   138,   617,   130,     0,   245,   251,   245,   245,
00981      0,   359,   245,   345,     0,   348,     0,    13,    81,    81,
00982    116,   437,   522,   150,   245,    81,    55,    81,   123,   120,
00983    127,   126,     0,   124,   125,   129,   114,     0,   134,     0,
00984      0,     0,     0,     0,   617,   237,   362,   353,   357,   245,
00985    337,   340,    74,    80,    76,   584,    67,    69,   121,   135,
00986    132,     0,   136,   137,   139,    92,   245,     0,   360,   363,
00987    133,   104,    91,   245,   106,     0,     0,     0
00988 };
00989 
00990 static const short yydefgoto[] = {  1156,
00991     81,    82,    83,    84,   121,   318,   319,    85,   655,   763,
00992    320,   788,   902,    86,   687,   904,   887,    88,   761,   762,
00993    793,   794,   876,   908,   877,  1012,  1013,  1070,  1014,  1015,
00994    878,   965,   966,   910,   988,   989,  1133,  1134,   967,   911,
00995    990,   880,  1154,  1147,   881,  1033,   882,  1024,  1086,    89,
00996    287,   447,   449,    90,  1019,  1052,  1020,  1113,  1021,  1083,
00997   1084,   161,   162,   517,   163,   919,   164,   165,   419,   555,
00998    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
00999    549,   176,   551,   177,   550,   813,   178,   206,   488,   331,
01000    288,    92,   666,   769,   114,   597,    93,   314,   180,   285,
01001    115,   116,   886,   784,   897,    95,    96,    97,    98,   345,
01002    289,   455,   100,   295,   101,   773,  1095,   776,  1097,   669,
01003   1042,   672,  1044,   102,   889,   890,  1039,  1040,   103,   677,
01004    590,   591,   798,   118,   477,   111,   112,   105,   605,   606,
01005    478,   479,   480,   689,   611,   346,   804,   800,   497,   367,
01006    207,   227,   208,   209,   368,   916,  1056,   211,   652,   212,
01007    213,   214,   215,   182,   424,   369,   370,   482,   628,   371,
01008    333,   508,   372,   187,   373,   561,   771,   978,   220,   574,
01009    512,   423,   189,   575,   576,   374,   190,   191,   375,   649,
01010    615,   376,   223,   377,   381,   704,   740,   864,   741,   742,
01011    743,   744,   745,   746,   747,   748,   749,   750,   751,   752,
01012    753,   754,   755,   756,   961,  1105,   757,  1060,   378,   379,
01013    196,   380,   292,   332,   199,   108
01014 };
01015 
01016 static const short yypact[] = {  2004,
01017 -32768,   118,  5457,-32768,  6254,-32768,   781,  2949,  3313,  3313,
01018 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01019 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01020 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01021 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01022 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01023 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01024 -32768,-32768,-32768,-32768,-32768,-32768,   460,-32768,-32768,-32768,
01025   2186,-32768,-32768,-32768,   350,-32768,-32768,  5201,-32768,   123,
01026 -32768,-32768,-32768,   145,  6095,  6095,-32768,  6095,   176,    51,
01027 -32768,   557,-32768,-32768,   781,-32768,-32768,-32768,-32768,-32768,
01028 -32768,   118,-32768,-32768,   183,-32768,   176,-32768,-32768,-32768,
01029   5457,-32768,   208,-32768,  5072,-32768,   264,   271,   330,-32768,
01030    345,   781,   257,   366,  1104,-32768,  2544,  5072,  5072,  5072,
01031   5072,  5072,  5072,-32768,  5611,  5611,   382,-32768,   400,   429,
01032    436,   441,   451,   326,  4659,-32768,   483,   496,-32768,   501,
01033 -32768,   502,   884,-32768,-32768,-32768,   747,   601,   724,   650,
01034    807,   498,   459,   492,   485,   121,-32768,-32768,   313,-32768,
01035   3452,   477,   482,-32768,-32768,-32768,-32768,   533,  3088,-32768,
01036   4659,-32768,  3452,-32768,  3452,-32768,-32768,   569,   584,-32768,
01037    577,-32768,  2725,   501,   596,   338,   576,  3131,-32768,  3313,
01038 -32768,-32768,-32768,  5854,-32768,-32768,-32768,-32768,   656,   657,
01039 -32768,  3313,  3313,  3452,-32768,-32768,   592,-32768,-32768,-32768,
01040 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01041 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01042 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01043 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01044 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01045 -32768,-32768,-32768,   664,   673,-32768,-32768,-32768,   176,  5045,
01046 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   690,   559,
01047 -32768,-32768,   781,   781,    76,-32768,   350,-32768,-32768,-32768,
01048 -32768,   695,-32768,-32768,   697,   680,   559,   123,-32768,   373,
01049    693,-32768,   781,-32768,    91,  5072,-32768,-32768,-32768,-32768,
01050 -32768,-32768,   711,  5072,  5072,  5072,  1907,   735,-32768,-32768,
01051 -32768,   469,   443,  5724,   186,   718,   741,-32768,-32768,-32768,
01052 -32768,-32768,-32768,   737,  5072,-32768,-32768,  5072,   768,   770,
01053    777,   784,   802,  5072,-32768,  1933,-32768,  4659,-32768,-32768,
01054 -32768,-32768,   812,-32768,-32768,  4659,-32768,  4659,-32768,-32768,
01055 -32768,  3481,  5072,-32768,-32768,   106,  5072,  5072,  5072,  5072,
01056   5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01057   5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01058   5072,  5072,  5072,-32768,-32768,-32768,-32768,  5072,   842,-32768,
01059 -32768,  2363,-32768,-32768,   828,-32768,   840,-32768,  5072,   629,
01060    814,   830,-32768,-32768,-32768,-32768,  5854,-32768,-32768,-32768,
01061   2906,   847,-32768,-32768,  5072,    97,  3554,   559,   851,-32768,
01062    559,-32768,   284,  6254,   778,   856,   868,   878,   886,   878,
01063    781,   900,   559,-32768,   559,-32768,-32768,-32768,   806,   905,
01064    929,-32768,   559,   373,-32768,   781,   912,-32768,   919,   781,
01065     98,   940,-32768,   446,   946,   512,   946,   951,-32768,-32768,
01066 -32768,-32768,  1472,   948,   404,-32768,   450,  5072,-32768,-32768,
01067    954,-32768,-32768,-32768,-32768,-32768,-32768,   955,   957,-32768,
01068   3554,-32768,-32768,   975,   969,-32768,   537,-32768,   371,   781,
01069    781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01070 -32768,-32768,-32768,-32768,-32768,   747,   747,   601,   601,   724,
01071    724,   724,   724,   650,   650,   807,   498,   459,  5072,  5072,
01072   5072,-32768,  5622,  5642,-32768,-32768,  5387,-32768,  3270,  3730,
01073 -32768,-32768,   974,   561,-32768,-32768,   977,   984,-32768,   989,
01074 -32768,  4082,-32768,-32768,  3906,  4125,-32768,   851,-32768,-32768,
01075    965,-32768,-32768,  1006,  1022,-32768,  1011,  1028,-32768,   882,
01076 -32768,  1000,-32768,-32768,-32768,   183,-32768,   137,-32768,-32768,
01077   5072,   171,   559,-32768,-32768,  1044,-32768,-32768,  1070,  6254,
01078 -32768,-32768,-32768,-32768,  1052,-32768,  1907,-32768,-32768,  1061,
01079    723,   450,  4217,  1056,-32768,-32768,-32768,  1067,-32768,-32768,
01080 -32768,  1071,-32768,  5072,-32768,-32768,-32768,-32768,   492,   888,
01081    485,  5072,-32768,  5072,-32768,-32768,-32768,  4260,  4659,  5072,
01082 -32768,  5653,  5072,-32768,-32768,-32768,-32768,-32768,  4303,  4438,
01083 -32768,  4481,-32768,  1069,-32768,-32768,-32768,-32768,-32768,  1076,
01084 -32768,-32768,  1077,-32768,   781,-32768,   781,  1087,  3366,-32768,
01085 -32768,  1081,-32768,  1084,-32768,   103,-32768,-32768,   781,   736,
01086   4659,  1092,-32768,-32768,   309,  1086,-32768,  1085,   126,  1093,
01087   1088,-32768,  5072,  5653,-32768,-32768,-32768,-32768,  1094,  1095,
01088 -32768,-32768,   563,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01089   5611,  5611,  1097,   587,   631,   634,   761,  1125,   642,   783,
01090    963,  1003,   726,  1015,  1089,  1078,  1083,  1074,   201,  1099,
01091 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01092 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   684,   685,-32768,
01093 -32768,  1157,-32768,-32768,-32768,  4616,-32768,-32768,-32768,-32768,
01094   6184,-32768,-32768,  6184,-32768,-32768,-32768,-32768,  5072,  1051,
01095 -32768,  3366,-32768,-32768,  3366,  1037,-32768,-32768,-32768,  1105,
01096 -32768,-32768,-32768,  1306,-32768,   350,  1107,-32768,   692,-32768,
01097    450,-32768,-32768,  1114,-32768,-32768,-32768,  1115,   781,-32768,
01098    704,  1124,  5072,-32768,-32768,  1135,   719,  1130,   720,   725,
01099    779,   817,   819,   825,   831,   857,  5072,  4395,  5072,   875,
01100    913,   139,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01101   5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01102   5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,  5072,
01103 -32768,  5072,-32768,  1111,  1138,    72,-32768,-32768,-32768,-32768,
01104 -32768,-32768,-32768,-32768,-32768,-32768,   987,-32768,-32768,-32768,
01105 -32768,   845,-32768,-32768,  3366,   478,-32768,   176,  5271,-32768,
01106   6184,  5271,  6184,-32768,-32768,-32768,  1053,-32768,-32768,-32768,
01107 -32768,-32768,-32768,   123,   138,-32768,-32768,-32768,   990,-32768,
01108 -32768,   636,-32768,-32768,-32768,  4916,-32768,-32768,   514,-32768,
01109   1139,   851,-32768,-32768,   938,  5072,  1140,   964,   966,   390,
01110    781,   781,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01111 -32768,-32768,-32768,   985,   988,   991,   543,   983,   212,   456,
01112    354,   360,   393,   522,   398,   811,   132,   408,   260,   492,
01113   5072,   485,  5653,-32768,  5984,    62,   122,-32768,-32768,   833,
01114 -32768,-32768,-32768,-32768,  1141,   327,-32768,-32768,  5271,-32768,
01115   5271,-32768,-32768,  3227,   571,-32768,  1072,  5984,    62,   122,
01116 -32768,   617,-32768,-32768,   781,-32768,   992,   999,-32768,  1004,
01117   1007,-32768,-32768,  1062,-32768,  4889,-32768,-32768,-32768,-32768,
01118 -32768,   628,-32768,    62,   916,    60,    60,-32768,-32768,   266,
01119    665,  1079,-32768,   140,-32768,-32768,-32768,-32768,-32768,-32768,
01120 -32768,-32768,-32768,   709,-32768,   559,-32768,-32768,  1143,-32768,
01121   1146,  1149,-32768,  1150,-32768,-32768,-32768,  1090,-32768,  4732,
01122    628,-32768,   665,-32768,   579,  1148,-32768,-32768,-32768,-32768,
01123   1151,  1012,  1023,-32768,  1091,    62,  1108,-32768,-32768,-32768,
01124 -32768,   117,   266,   381,   781,   781,    60,  1109,-32768,   140,
01125    140,-32768,   336,   750,-32768,   140,-32768,-32768,  5072,   327,
01126   1153,-32768,-32768,-32768,  1155,-32768,  1161,-32768,  1119,  1119,
01127 -32768,-32768,-32768,  1025,  5072,  1119,-32768,  1119,-32768,-32768,
01128 -32768,   266,  1166,-32768,-32768,   266,-32768,   457,   336,   445,
01129    781,   781,   140,  1112,   750,-32768,-32768,-32768,-32768,  5072,
01130 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01131 -32768,  1168,-32768,-32768,   336,-32768,-32768,  1113,-32768,-32768,
01132 -32768,-32768,-32768,-32768,-32768,  1177,  1199,-32768
01133 };
01134 
01135 static const short yypgoto[] = {-32768,
01136 -32768,  1123,-32768,-32768,-32768,-32768,  -388,  -100,-32768,-32768,
01137    883,-32768,-32768,-32768,-32768,-32768,   112,-32768,   447,-32768,
01138   -679,-32768,-32768,-32768,  -693,   219,   147,-32768,-32768,   203,
01139    341,-32768,-32768,   310,-32768,-32768,  -918,  -659,-32768,-32768,
01140 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01141 -32768,-32768,-32768,-32768,-32768,-32768,  -890,   100,   232,  -942,
01142    141,-32768,  -586,   397,   961,-32768,-32768,  -580,-32768,-32768,
01143    581,  -334,  -333,  -332,  -331,  -346,  -365,  -315,  -532,  -538,
01144 -32768,  -572,-32768,  -115,-32768,-32768,  1073,  1068,  -534,  -358,
01145      1,-32768,-32768,-32768,  -461,-32768,-32768,-32768,     0,  -274,
01146    767,-32768,  -765,  -694,-32768,-32768,-32768,-32768,-32768,-32768,
01147    165,   651,-32768,   414,-32768,-32768,-32768,-32768,-32768,-32768,
01148 -32768,-32768,-32768,   756,  -674,  -782,-32768,   143,-32768,-32768,
01149    565,   568,   452,     8,  -401,  1132,-32768,    42,-32768,-32768,
01150   -552,-32768,-32768,-32768,   556,  -287,   907,-32768,  -488,   467,
01151   1240,-32768,  1030,-32768,   392,-32768,-32768,-32768,-32768,   -97,
01152 -32768,-32768,-32768,-32768,   172,  1133,  1411,-32768,-32768,  1435,
01153 -32768,-32768,  -357,-32768,  1336,   194,  -568,  -806,-32768,   745,
01154 -32768,-32768,   836,   -84,  -306,     6,-32768,   119,    69,-32768,
01155 -32768,   251,-32768,   476,-32768,-32768,   555,-32768,   297,-32768,
01156 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
01157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1556,-32768,
01158 -32768,  1646,  -120,   231,    90,-32768
01159 };
01160 
01161 
01162 #define YYLAST          6435
01163 
01164 
01165 static const short yytable[] = {    94,
01166     91,   595,    94,   290,   307,   507,   622,   104,   509,   330,
01167    228,   229,   641,   456,   221,   221,   639,   230,   231,   232,
01168    233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
01169    243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
01170    253,   254,   255,   113,   570,   471,   547,   256,   257,   258,
01171    259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
01172    269,   270,   271,   272,   546,   727,   536,   537,   696,   538,
01173    539,   729,   540,   541,   542,   543,   192,   544,   545,   739,
01174     94,    91,   692,  1016,   604,   980,   568,   896,   104,   107,
01175    898,   579,   107,  1017,   461,   475,   123,   548,   299,   892,
01176    909,   475,   879,   774,    94,   431,   977,   791,   901,   977,
01177    435,    87,   436,   738,   312,   313,   315,   727,   418,   737,
01178    321,   569,   491,   729,   440,  1072,  1073,   222,   222,   437,
01179    475,   739,   985,   520,   620,   301,   344,  1118,  1119,   291,
01180    291,  1109,  1074,   354,  1075,  1016,   808,  1007,  1008,   521,
01181    807,     2,  -572,   310,   291,  1017,  -572,   -68,   -68,   680,
01182   1076,   415,   323,  1080,    99,   738,   931,   117,   293,   120,
01183    107,   737,  1043,  1081,  1045,   475,   416,  1009,  1010,   183,
01184   1145,  1135,   932,  1112,   409,   410,  1116,  1137,   971,  1138,
01185    972,  1011,    87,  -245,   107,   683,   977,   469,   977,   471,
01186    684,   801,   344,   311,   891,   192,  1034,   893,   221,  -245,
01187    324,   493,   626,   221,   685,   221,   979,   879,   981,     2,
01188    509,   338,   986,   -75,   -75,   109,   110,   221,   221,  1112,
01189    106,   325,  -561,   106,    75,  1018,  -561,   106,   198,   198,
01190    198,   861,   682,   401,   402,    99,   -68,   -68,   330,   192,
01191     75,    76,   122,   648,    78,    79,   862,   192,   193,   294,
01192    294,   192,   294,   192,   698,  -353,  -353,  -353,   660,  -353,
01193   -353,  -353,  -353,  -353,   339,  -353,  -353,    75,    76,   122,
01194   -576,    78,    79,   445,  -576,   322,   735,   334,   299,  1047,
01195    450,  1074,   192,  1075,   335,   456,    75,  1018,   412,    94,
01196    454,  -353,   457,   459,  -353,   734,  -353,   453,   347,  1076,
01197    801,   106,   -75,   -75,    75,  1082,    94,   730,   731,   732,
01198    733,   222,   321,   962,   468,   344,   222,   960,   222,   330,
01199    417,   364,   365,   418,   493,   106,   736,   560,   735,   701,
01200    222,   222,     2,   435,   494,  -353,  -353,  -353,  1038,  -353,
01201   -353,   106,   420,   336,   709,   433,   710,   734,   418,   696,
01202      2,  1120,   106,  1121,   426,   344,   427,   198,   337,   730,
01203    731,   732,   733,  -246,  -564,   284,   727,   330,  -564,  1122,
01204   -565,   993,   729,   340,  -565,   198,   495,   193,   736,   107,
01205    739,   418,   458,   460,   462,   442,  -246,   636,   470,   181,
01206    210,   210,   403,   404,  1016,   358,   107,  1110,   403,   404,
01207    418,   198,   324,  -566,  1017,   359,  1001,  -566,  -569,   198,
01208    894,   198,  -569,   198,   738,   198,   818,  -245,  -574,   493,
01209    737,   193,  -574,   198,   405,   406,   411,   450,   198,   193,
01210    198,   403,   404,   193,   360,   193,   221,    94,   407,   408,
01211     94,   361,   198,   198,   198,   577,   362,   585,   580,   588,
01212    417,   594,    94,   418,    94,   363,   418,   491,  1016,   601,
01213    614,  1141,   321,  -245,   193,   623,  -562,   681,  1017,   610,
01214   -562,  1140,  1120,   194,  1121,   330,   490,   401,   402,   418,
01215    192,   618,   958,  -626,   494,   973,   624,   412,   974,   454,
01216   1122,    75,    76,   122,  -620,    78,    79,   330,   492,   296,
01217    957,   298,   947,   948,   323,   949,   950,  -624,   951,   952,
01218    953,   954,  -621,   955,   956,   382,   411,   383,   181,  -353,
01219    106,   413,   418,   106,   106,   106,   616,   107,   994,   414,
01220    107,   995,  -567,   959,  -626,  -353,  -567,   106,   384,   385,
01221    592,   422,   107,   106,   107,    75,  1018,   634,  1111,   222,
01222    450,   635,   324,  -559,   997,   607,   622,  -559,   421,   612,
01223    403,   404,   181,  -457,  1088,   450,   398,   399,   400,   664,
01224    181,   418,   454,   418,   181,   651,   181,   816,   291,   796,
01225   -623,   974,     2,   558,   210,   678,   679,   735,   198,   210,
01226    429,   210,   321,  -404,   493,   428,   198,  -529,   198,   637,
01227    638,  -529,   194,   210,   210,   181,   734,  -622,   492,    75,
01228   1018,   624,  1111,   303,   304,   305,   454,   192,   730,   731,
01229    732,   733,   401,   402,  -626,  -626,   706,   707,  -626,  -626,
01230    475,   344,   493,   344,   323,   291,   433,   736,  1066,   418,
01231      2,  -528,   198,   491,  -530,  -528,   194,   425,  -530,  -353,
01232    694,  -353,  -550,   330,   194,   770,  -550,   434,   194,  -353,
01233    194,   198,   193,   777,   438,   779,   439,   198,   106,   785,
01234    786,   106,   291,   443,   790,  1077,   405,   406,   610,   797,
01235    444,   106,   324,   106,   494,   106,   446,   923,   796,   194,
01236    407,   408,   467,   106,  -527,   418,   106,   452,  -527,   865,
01237    106,  1061,   464,   344,   466,  -245,   472,   493,   348,   349,
01238    350,   351,   352,   353,   418,     2,  1087,   475,   921,   974,
01239   1127,   799,   483,    75,    76,   122,   495,    78,    79,   418,
01240   -544,   198,   498,   925,  -544,  -549,  -353,   694,  -353,  -549,
01241    106,   106,   489,    75,    76,   122,  -353,    78,    79,  -245,
01242    500,   493,   851,   852,   592,   499,   592,   291,   885,     2,
01243   1123,  1150,   403,   404,   690,   792,   853,   854,   612,   107,
01244    398,   399,   400,   987,   828,   502,   829,   503,  -353,   198,
01245    198,    75,    76,   122,   504,    78,    79,   913,   797,  -548,
01246    624,   505,   198,  -548,  -353,   198,   198,   830,   831,   193,
01247   -353,  -353,  -353,   181,  -353,  -353,   844,   845,   846,   506,
01248    273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
01249    511,  -570,   210,   106,   510,  -570,   562,  -547,   565,  -546,
01250    799,  -547,   513,  -546,   514,  -545,  1022,   405,   406,  -545,
01251    563,  -542,   297,   566,   300,  -542,   302,   567,   306,   409,
01252    410,   407,   408,   308,  1048,   582,    75,    76,   122,  1054,
01253     78,    79,   914,   316,   578,   317,   583,  -543,   198,   198,
01254   1006,  -543,   758,   553,   554,  1065,   584,   975,   107,   198,
01255    198,  1067,   198,   599,   982,  -539,  -245,   194,   920,  -539,
01256   1078,   674,   675,  1050,   587,   106,   387,   106,   418,   708,
01257     75,    76,   122,   573,    78,    79,   106,   386,   593,   106,
01258    106,   198,   869,   870,   871,   872,   873,   874,   875,  1099,
01259   1100,   600,  1101,  -540,   758,   888,   608,  -540,   888,   609,
01260    388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
01261    181,  1025,   602,  1026,   307,    75,    76,   122,  -531,    78,
01262     79,   613,  -531,  1124,  1027,  1028,   418,  1029,   617,  1030,
01263   1031,   621,  1035,   330,   627,    94,   629,   573,   533,   534,
01264    535,   630,  1032,  1041,  -534,   632,   634,   665,  -534,  1136,
01265   1000,   797,   633,  1057,   847,   848,   198,   650,   454,   580,
01266    653,  1062,  1063,  -558,  1148,  -554,   450,  -558,  -555,  -554,
01267    654,  -556,  -555,   656,   330,  -556,   398,   399,   400,  -552,
01268   1002,  1003,   676,  -552,  -535,   668,   573,  -533,  -535,   106,
01269    671,  -533,  -537,  1055,   194,    94,  -537,  1089,  1091,   106,
01270    670,   573,   663,  -538,   448,  -536,   673,  -538,   451,  -536,
01271    450,   849,   850,   888,   797,   888,   888,   888,   866,   867,
01272    868,   905,   906,   907,   686,   107,   463,   855,   856,   465,
01273    895,   675,   983,   984,   688,   179,   691,   473,   625,   699,
01274    476,   107,   418,  1064,  1058,   329,  1126,   693,   702,    94,
01275     75,  1069,  1130,   768,   703,   772,   775,  1041,   329,   329,
01276    329,   329,   329,   329,   781,   356,   357,   787,   789,   803,
01277    805,   806,   810,   809,   663,   712,   858,   857,   814,   815,
01278    827,   341,   859,   863,   899,   107,   663,   326,   860,   903,
01279    912,   963,   138,   139,   140,   141,   142,   143,   917,   918,
01280    184,   216,   216,   888,   107,   888,  1152,   833,   922,   144,
01281    145,   146,   924,  1155,   926,   964,   996,   802,  1037,  1049,
01282    999,   106,   106,  1090,  1114,  1115,  1079,  1093,  1094,  1096,
01283   1129,  1059,  1102,   147,  1131,  1104,  1157,  1098,  1106,   107,
01284   1132,   834,   835,   836,   837,   838,   839,   840,   841,   842,
01285    843,   867,  1139,   758,  1151,  1108,  1117,  1023,  1158,  1146,
01286   1153,   476,   342,   283,   343,   474,   106,  1051,   581,   883,
01287   1143,  1144,  1107,   586,   156,   589,  1068,   968,   991,  1142,
01288   1023,  1053,   106,   598,   929,   106,  1125,   603,   866,   867,
01289    868,   596,  1128,   667,   869,   870,   871,   872,   873,   874,
01290    875,   780,   778,   309,   795,  1071,  1023,  1023,   179,   226,
01291    915,   496,   441,  1103,  1085,   631,   179,   559,   812,  1005,
01292    179,     0,   179,     0,     0,     0,   106,     0,     0,   184,
01293    430,     0,     0,     0,     0,     0,     0,     0,    75,   327,
01294    328,   159,     0,     0,     0,   106,     0,     0,     0,     0,
01295      0,   179,     0,     0,     0,   819,   820,   821,   822,   823,
01296    824,     0,     0,     0,  1023,   106,   106,  1023,     0,     0,
01297   1085,  1085,     0,   184,     0,     0,  1085,     0,     0,     0,
01298    106,   184,     0,     0,   329,   184,     0,   184,     0,     0,
01299      0,     0,   581,     0,     0,   216,     0,     0,     0,     0,
01300    216,     0,   216,   188,   219,   219,     0,     0,     0,     0,
01301   1023,   106,   106,  1085,   216,   216,   184,   476,   329,   329,
01302    329,   329,   329,   329,   329,   329,   329,   329,   329,   329,
01303    329,   329,   329,   329,     0,     0,   695,   905,   906,   907,
01304      0,   700,     0,   869,   870,   871,   872,   873,   874,   875,
01305      0,     0,     0,   481,     0,     0,     0,     0,     0,     0,
01306      0,   484,   485,   486,   487,   329,     0,     0,     0,   760,
01307      0,     0,     0,     0,     0,     0,     0,     0,   185,   217,
01308    217,     0,   481,     0,   944,   945,   946,     0,     0,     0,
01309    501,     0,     0,   481,     0,     0,     0,     0,     0,     0,
01310      0,     0,   186,   218,   218,     0,     0,     0,     0,     0,
01311    519,     0,     0,   329,   518,     0,     0,     0,   329,   522,
01312    523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
01313      0,     0,   188,     0,     0,     0,     0,     0,     0,     0,
01314      0,     0,   832,     0,     0,     0,     0,     0,     0,   179,
01315    552,     0,     0,     0,     0,   326,   564,     0,   619,     0,
01316    138,   139,   140,   141,   142,   143,   998,     0,     0,   329,
01317      0,   329,     0,   643,   645,     0,   188,   144,   145,   146,
01318      0,     0,     0,     0,   188,     0,     0,     0,   188,     0,
01319    188,     0,     0,     0,     0,     0,     0,     0,   219,   432,
01320      0,   147,   900,   219,     0,   219,     0,   185,     0,     0,
01321      0,     0,     0,     0,   184,     0,     0,   219,   219,   188,
01322      0,   329,     0,   195,   224,   224,     0,     0,     0,     0,
01323      0,   186,     0,   216,     0,     0,     0,     0,     0,     0,
01324      0,     0,   156,   329,     0,     0,     0,     0,     0,     0,
01325      0,   185,     0,     0,     0,     0,     0,     0,     0,   185,
01326      0,     0,     0,   185,     0,   185,     0,     0,     0,     0,
01327      0,     0,   728,   217,     0,   186,     0,   640,   217,     0,
01328    217,     0,     0,   186,     0,     0,   179,   186,     0,   186,
01329      0,     0,   217,   217,   185,   969,   970,   218,     0,     0,
01330      0,     0,   218,   976,   218,     0,    75,   327,   328,   159,
01331      0,     0,     0,   197,   225,   225,   218,   218,   186,     0,
01332      0,     0,     0,     0,   728,     0,     0,   992,     0,     0,
01333      0,     0,     0,     0,     0,   329,   329,   329,   329,   329,
01334    329,   825,   826,     0,   487,     0,     0,     0,     0,     0,
01335      0,   184,   195,     0,     0,     0,     0,     0,     0,     0,
01336      0,     0,     0,     0,     0,     0,   705,     0,     0,   481,
01337      0,   481,     0,     0,     0,     0,   515,   713,     0,     0,
01338    759,     0,     0,     0,     0,     0,     0,     0,     0,  1036,
01339      0,     0,     0,     0,     0,     0,   195,     0,     0,   329,
01340      0,     0,     0,     0,   195,     0,     0,     0,   195,     0,
01341    195,   783,     0,     0,     0,     0,     0,   188,   224,     0,
01342      0,     0,     0,   224,     0,   224,     0,     0,     0,     0,
01343    811,     0,     0,   329,     0,     0,   219,   224,   224,   195,
01344      0,   817,   197,     0,     0,     0,     0,     0,     0,     0,
01345      0,     0,     0,     0,     0,  1092,     0,     0,     0,     0,
01346      0,     0,     0,     0,   329,   329,   329,   329,   329,   329,
01347    329,   329,   329,   329,   329,   329,   329,   329,   329,   329,
01348    329,     0,   329,     0,     0,     0,   197,     0,     0,     0,
01349      0,     0,   185,     0,   197,     0,     0,     0,   197,     0,
01350    197,     0,     0,     0,     0,     0,     0,     0,   225,     0,
01351      0,   217,     0,   225,   783,   225,   186,   783,     0,     0,
01352      0,     0,     0,     0,     0,     0,     0,   225,   225,   197,
01353      0,     0,     0,     0,     0,   218,     0,     0,     0,     0,
01354      0,     0,     0,  1149,     0,     0,   329,     0,     0,     0,
01355      0,     0,     0,     0,   188,     0,   930,     0,     0,   927,
01356    518,     0,     0,     0,     0,   933,   934,   935,   936,   937,
01357    938,   939,   940,   941,   942,   943,     0,     0,     0,     0,
01358      0,     0,     0,   728,  -227,     0,     0,     0,     0,     0,
01359    326,     0,     0,     0,     0,   138,   139,   140,   141,   142,
01360    143,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01361      0,  -483,   144,   145,   146,     0,   366,   783,     0,     0,
01362      0,   138,   139,   140,   141,   142,   143,     0,     0,   185,
01363      0,     0,     0,     0,     0,     0,   147,   195,   144,   145,
01364    146,     0,     0,   487,     0,     0,     0,     0,     0,     0,
01365      0,     0,     0,   186,     0,     0,   224,     0,     0,     0,
01366      0,     0,   147,    -1,     1,     0,     0,     0,     0,     0,
01367      0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
01368      0,     0,     0,     0,     0,     0,     0,  -245,  1004,     0,
01369      0,     0,     0,     0,     0,     0,     0,     2,     0,     0,
01370      0,     0,     0,   156,     0,     0,     0,     0,     3,   329,
01371      0,     0,     0,     0,     0,     0,   783,     0,     0,     0,
01372      0,     0,     0,     0,     0,   329,     0,   197,     0,     0,
01373   -353,  -353,  -353,     0,     4,     0,     0,     0,     5,     6,
01374      7,    75,   327,   328,   159,     0,   225,     0,     0,     0,
01375    329,     0,     8,     9,    10,     0,     0,     0,     0,     0,
01376      0,     0,     0,     0,     0,     0,     0,    75,   327,   328,
01377    159,    11,    12,    13,   195,    14,    15,    16,    17,    18,
01378     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01379     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01380     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01381     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01382     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01383     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
01384     77,     0,    78,    79,    80,    -2,     1,     0,     0,     0,
01385      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01386      0,     0,     0,     0,   197,     0,     0,     0,     0,  -245,
01387      0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
01388      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01389      3,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01390      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01391      0,     0,  -353,  -353,  -353,     0,     4,     0,     0,     0,
01392      5,     6,     7,     0,     0,     0,     0,     0,     0,     0,
01393      0,     0,     0,     0,     8,     9,    10,     0,     0,     0,
01394      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01395      0,     0,     0,    11,    12,    13,     0,    14,    15,    16,
01396     17,    18,    19,    20,    21,    22,    23,     0,    24,    25,
01397     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
01398     36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
01399     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
01400     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
01401     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01402     75,    76,    77,   124,    78,    79,    80,     0,   125,   126,
01403    127,     0,   128,   129,   130,   131,   132,   133,   134,   135,
01404    136,  -483,   556,     0,     0,     0,   137,     0,     0,     0,
01405      0,   138,   139,   140,   141,   142,   143,     0,     0,     0,
01406      0,     0,     0,     0,  -245,  -245,     0,     3,   144,   145,
01407    146,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01408      0,     0,     0,     0,     0,     0,     0,     0,     0,  -353,
01409   -353,  -353,   147,     4,     0,     0,     0,     0,     0,     0,
01410      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01411      0,     0,     0,     0,     0,   149,   150,   151,   152,   153,
01412    154,     0,     0,     0,     0,     0,     0,     0,     0,   155,
01413     11,    12,    13,   156,    14,    15,    16,    17,    18,    19,
01414     20,    21,    22,    23,     0,    24,    25,    26,    27,    28,
01415     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
01416      0,    39,    40,    41,    42,    43,    44,    45,    46,    47,
01417     48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
01418     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
01419     68,    69,    70,    71,    72,    73,    74,    75,   157,   557,
01420    159,   160,    79,    80,   124,     0,     0,     0,     0,   125,
01421    126,   127,     0,   128,   129,   130,   131,   132,   133,   134,
01422    135,   136,  -483,     0,     0,     0,     0,   137,     0,     0,
01423      0,     0,   138,   139,   140,   141,   142,   143,     0,     0,
01424      0,     0,     0,     0,     0,  -245,  -245,     0,     0,   144,
01425    145,   146,     0,     0,     0,     0,     0,     0,     0,     0,
01426      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01427   -245,  -245,  -245,   147,     0,     0,     0,     0,     0,     0,
01428      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01429      0,     0,     0,     0,     0,     0,   149,   150,   151,   152,
01430    153,   154,     0,     0,     0,     0,     0,     0,     0,     0,
01431    155,  -245,  -245,  -245,   156,  -245,  -245,  -245,  -245,  -245,
01432   -245,  -245,  -245,  -245,  -245,     0,  -245,  -245,  -245,  -245,
01433   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01434   -245,     0,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01435   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01436   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01437   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,    75,   157,
01438    158,   159,   160,    79,  -245,   200,     0,     0,     0,     0,
01439    125,   126,   127,     0,     0,   201,   130,   131,   132,   133,
01440    134,   135,   202,  -483,  -487,     0,     0,     0,   203,     0,
01441      0,     0,     0,   138,   139,   140,   141,   142,   143,     0,
01442      0,     0,     0,     0,     0,     0,  -245,  -245,     0,     0,
01443    144,   145,   146,     0,     0,     0,     0,     0,     0,     0,
01444      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01445      0,  -245,  -245,  -245,   147,     0,     0,     0,     0,     0,
01446      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01447      0,     0,     0,     0,     0,     0,     0,   149,   150,   151,
01448    152,   153,   154,     0,     0,     0,     0,     0,     0,     0,
01449      0,   155,  -245,  -245,  -245,   156,  -245,  -245,  -245,  -245,
01450   -245,  -245,  -245,  -245,  -245,  -245,     0,  -245,  -245,  -245,
01451   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01452   -245,  -245,     0,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01453   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01454   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
01455   -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,    75,
01456    157,   158,   159,   204,   205,  -245,   200,     0,     0,     0,
01457      0,   125,   126,   127,     0,     0,   201,   130,   131,   132,
01458    133,   134,   135,   202,  -431,  -431,     0,     0,     0,   203,
01459   -431,     0,     0,     0,   138,   139,   140,   141,   142,   143,
01460      0,     0,     0,     0,     0,     0,     0,  -245,  -245,   124,
01461      0,   144,   145,   146,   125,   126,   127,     0,   128,   129,
01462    130,   131,   132,   133,   134,   135,   136,  -483,     0,     0,
01463      0,     0,   137,     0,     0,   147,     0,   138,   139,   140,
01464    141,   142,   143,     0,     0,     0,     0,     0,     0,     0,
01465   -245,  -245,     0,     0,   144,   145,   146,  -431,   149,   150,
01466    151,   152,   153,   154,     0,     0,     0,     0,     0,     0,
01467      0,     0,   155,     0,     0,     0,   156,     0,   147,     0,
01468      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01469      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01470    148,   149,   150,   151,   152,   153,   154,     0,     0,     0,
01471      0,     0,     0,     0,     0,   155,     0,     0,     0,   156,
01472      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01473      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01474     75,   157,   158,   159,   204,   205,     0,     0,   124,     0,
01475      0,     0,     0,   125,   126,   127,     0,   128,   129,   130,
01476    131,   132,   133,   134,   135,   136,  -483,     0,     0,     0,
01477      0,   137,     0,     0,     0,     0,   138,   139,   140,   141,
01478    142,   143,     0,    75,   157,   158,   159,   160,    79,  -245,
01479   -245,   200,     0,   144,   145,   146,   125,   126,   127,     0,
01480      0,   201,   130,   131,   132,   133,   134,   135,   202,  -483,
01481   -487,     0,     0,     0,   203,     0,     0,   147,     0,   138,
01482    139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
01483      0,     0,  -245,  -245,     0,     0,   144,   145,   146,  -458,
01484    149,   150,   151,   152,   153,   154,     0,     0,     0,     0,
01485      0,     0,     0,     0,   155,     0,     0,     0,   156,     0,
01486    147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01487      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01488      0,     0,  -427,   149,   150,   151,   152,   153,   154,     0,
01489      0,     0,     0,     0,     0,     0,     0,   155,     0,     0,
01490      0,   156,     0,     0,     0,   782,  1046,     0,     0,     0,
01491    326,     0,     0,     0,     0,   138,   139,   140,   141,   142,
01492    143,     0,    75,   157,   158,   159,   160,    79,     0,     0,
01493    124,     0,   144,   145,   146,   125,   126,   127,     0,   128,
01494    129,   130,   131,   132,   133,   134,   135,   136,  -483,   646,
01495      0,     0,     0,   137,     0,     0,   147,     0,   138,   139,
01496    140,   141,   142,   143,     0,    75,   157,   158,   159,   204,
01497    205,  -245,  -245,   200,     0,   144,   145,   146,   125,   126,
01498    127,     0,     0,   201,   130,   131,   132,   133,   134,   135,
01499    202,  -483,  -487,     0,     0,     0,   203,   156,     0,   147,
01500      0,   138,   139,   140,   141,   142,   143,     0,     0,     0,
01501      0,     0,     0,     0,  -245,  -245,     0,     0,   144,   145,
01502    146,     0,   149,   150,   151,   152,   153,   154,     0,     0,
01503      0,     0,     0,     0,     0,     0,   155,     0,     0,     0,
01504    156,     0,   147,     0,   782,     0,     0,     0,     0,   326,
01505      0,     0,     0,     0,   138,   139,   140,   141,   142,   143,
01506      0,    75,   327,   328,   159,   149,   150,   151,   152,   153,
01507    154,   144,   145,   146,     0,     0,     0,     0,     0,   155,
01508      0,     0,     0,   156,     0,     0,     0,     0,     0,     0,
01509      0,     0,     0,     0,     0,   147,     0,     0,     0,     0,
01510      0,     0,     0,     0,    75,   157,   158,   159,   160,    79,
01511      0,     0,   124,     0,     0,     0,     0,   125,   126,   127,
01512      0,   128,   129,   130,   131,   132,   133,   134,   135,   136,
01513   -483,     0,     0,     0,     0,   137,   156,     0,     0,     0,
01514    138,   139,   140,   141,   142,   143,     0,    75,   157,   158,
01515    159,   204,   205,  -245,  -245,     0,     0,   144,   145,   146,
01516      0,     0,     0,     0,   326,   516,     0,     0,     0,   138,
01517    139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
01518      0,   147,     0,     0,     0,     0,   144,   145,   146,     0,
01519      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01520     75,   327,   328,   159,   149,   150,   151,   152,   153,   154,
01521    147,     0,     0,     0,     0,     0,     0,     0,   155,   125,
01522    126,   127,   156,   128,   129,   130,   131,   132,   133,   134,
01523    135,   202,  -483,   571,     0,     0,     0,   366,     0,     0,
01524      0,     0,   138,   139,   140,   141,   142,   143,     0,     0,
01525      0,   156,     0,     0,     0,  -245,  -245,     0,     3,   144,
01526    145,   146,     0,     0,     0,     0,     0,     0,     0,     0,
01527      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01528      0,     0,     0,   147,     4,     0,    75,   157,   158,   159,
01529    160,    79,     0,     0,     0,     0,     0,     0,     0,     0,
01530      0,     0,     0,     0,     0,     0,   149,   150,   151,   152,
01531    153,   154,     0,     0,     0,    75,   327,   328,   159,     0,
01532    572,    11,    12,    13,   156,    14,    15,    16,    17,    18,
01533     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01534     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01535     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01536     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01537     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01538     67,    68,    69,    70,    71,    72,    73,    74,    75,   157,
01539    557,   159,   160,    79,    80,   125,   126,   127,     0,   128,
01540    129,   130,   131,   132,   133,   134,   135,   202,  -483,   647,
01541      0,     0,     0,   366,     0,     0,     0,     0,   138,   139,
01542    140,   141,   142,   143,     0,     0,     0,     0,     0,     0,
01543      0,  -245,  -245,     0,     3,   144,   145,   146,     0,     0,
01544      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01545      0,     0,     0,     0,     0,     0,     0,     0,     0,   147,
01546      4,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01547      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01548      0,     0,   149,   150,   151,   152,   153,   154,     0,     0,
01549      0,     0,     0,     0,     0,     0,   155,    11,    12,    13,
01550    156,    14,    15,    16,    17,    18,    19,    20,    21,    22,
01551     23,     0,    24,    25,    26,    27,    28,    29,    30,    31,
01552     32,    33,    34,    35,    36,    37,    38,     0,    39,    40,
01553     41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
01554     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
01555     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
01556     71,    72,    73,    74,    75,   157,   557,   159,   160,    79,
01557     80,   125,   126,   127,     0,   128,   129,   130,   131,   132,
01558    133,   134,   135,   202,  -483,   658,     0,     0,     0,   366,
01559      0,     0,     0,     0,   138,   139,   140,   141,   142,   143,
01560      0,     0,     0,     0,     0,     0,     0,  -245,  -245,     0,
01561      3,   144,   145,   146,     0,     0,     0,     0,     0,     0,
01562      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01563      0,     0,     0,     0,     0,   147,     4,     0,     0,     0,
01564      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01565      0,     0,     0,     0,     0,     0,     0,     0,   149,   150,
01566    151,   152,   153,   154,     0,     0,     0,     0,     0,     0,
01567      0,     0,   659,    11,    12,    13,   156,    14,    15,    16,
01568     17,    18,    19,    20,    21,    22,    23,     0,    24,    25,
01569     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
01570     36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
01571     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
01572     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
01573     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01574     75,   157,   557,   159,   160,    79,    80,   125,   126,   127,
01575      0,   128,   129,   130,   131,   132,   133,   134,   135,   202,
01576   -483,   657,     0,     0,     0,   366,     0,     0,     0,     0,
01577    138,   139,   140,   141,   142,   143,     0,     0,     0,     0,
01578      0,     0,     0,     0,     0,     0,     0,   144,   145,   146,
01579    125,   126,   127,     0,   128,   129,   130,   131,   132,   133,
01580    134,   135,   202,  -483,   661,     0,     0,     0,   366,     0,
01581      0,   147,     0,   138,   139,   140,   141,   142,   143,     0,
01582      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01583    144,   145,   146,     0,   149,   150,   151,   152,   153,   154,
01584      0,     0,     0,     0,     0,     0,     0,     0,   155,     0,
01585      0,     0,   156,     0,   147,     0,     0,     0,     0,     0,
01586      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01587      0,     0,     0,     0,     0,     0,     0,   149,   150,   151,
01588    152,   153,   154,     0,     0,     0,     0,     0,     0,     0,
01589      0,   662,     0,     0,     0,   156,     0,     0,     0,     0,
01590    326,     0,     0,   697,     0,   138,   139,   140,   141,   142,
01591    143,     0,     0,     0,     0,     0,    75,   157,   158,   159,
01592    160,    79,   144,   145,   146,   125,   126,   127,     0,   128,
01593    129,   130,   131,   132,   133,   134,   135,   202,  -483,   711,
01594      0,     0,     0,   366,     0,     0,   147,     0,   138,   139,
01595    140,   141,   142,   143,     0,     0,     0,     0,     0,    75,
01596    157,   158,   159,   160,    79,   144,   145,   146,   125,   126,
01597    127,     0,   128,   129,   130,   131,   132,   133,   134,   135,
01598    202,  -483,   764,     0,     0,     0,   366,   156,     0,   147,
01599      0,   138,   139,   140,   141,   142,   143,     0,     0,     0,
01600      0,     0,     0,     0,     0,     0,     0,     0,   144,   145,
01601    146,     0,   149,   150,   151,   152,   153,   154,     0,     0,
01602      0,     0,     0,     0,     0,     0,   155,     0,     0,     0,
01603    156,     0,   147,     0,     0,     0,     0,     0,     0,     0,
01604      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01605      0,    75,   327,   328,   159,   149,   150,   151,   152,   153,
01606    154,     0,     0,     0,     0,     0,     0,     0,     0,   155,
01607      0,     0,     0,   156,     0,     0,     0,     0,   326,   928,
01608      0,     0,     0,   138,   139,   140,   141,   142,   143,     0,
01609      0,     0,     0,     0,    75,   157,   158,   159,   160,    79,
01610    144,   145,   146,   125,   126,   127,     0,   128,   129,   130,
01611    131,   132,   133,   134,   135,   202,  -483,   765,     0,     0,
01612      0,   366,     0,     0,   147,     0,   138,   139,   140,   141,
01613    142,   143,     0,     0,     0,     0,     0,    75,   157,   158,
01614    159,   160,    79,   144,   145,   146,   125,   126,   127,     0,
01615    128,   129,   130,   131,   132,   133,   134,   135,   202,  -483,
01616    767,     0,     0,     0,   366,   156,     0,   147,     0,   138,
01617    139,   140,   141,   142,   143,     0,     0,     0,     0,     0,
01618      0,     0,     0,     0,     0,     0,   144,   145,   146,     0,
01619    149,   150,   151,   152,   153,   154,     0,     0,     0,     0,
01620      0,     0,     0,     0,   766,     0,     0,     0,   156,     0,
01621    147,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01622      0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
01623    327,   328,   159,   149,   150,   151,   152,   153,   154,     0,
01624      0,     0,     0,     0,     0,     0,     0,   155,     0,     0,
01625      0,   156,     0,     0,     0,     0,     0,     0,     0,     0,
01626      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01627      0,     0,    75,   157,   158,   159,   160,    79,     0,     0,
01628      0,   125,   126,   127,     0,   128,   129,   130,   131,   132,
01629    133,   134,   135,   202,  -483,   884,     0,     0,     0,   366,
01630      0,     0,     0,     0,   138,   139,   140,   141,   142,   143,
01631      0,     0,     0,     0,     0,    75,   157,   158,   159,   160,
01632     79,   144,   145,   146,   125,   126,   127,     0,   128,   129,
01633    130,   131,   132,   133,   134,   135,   202,  -483,     0,     0,
01634      0,     0,   366,     0,     0,   147,     0,   138,   139,   140,
01635    141,   142,   143,     0,     0,     0,     0,     0,     0,     0,
01636      0,     0,     0,     0,   144,   145,   146,     0,   149,   150,
01637    151,   152,   153,   154,     0,     0,     0,     0,     0,     0,
01638      0,     0,   155,     0,     0,     0,   156,     0,   147,     0,
01639      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01640      0,     0,     0,     0,     0,     0,     0,     0,     0,   291,
01641      0,   149,   150,   151,   152,   153,   154,     0,     0,     0,
01642      0,     0,     0,     0,     0,   155,     0,     0,     0,   156,
01643      0,     0,     0,     0,     0,     0,     3,     0,     0,     0,
01644      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01645     75,   157,   158,   159,   160,    79,     0,     0,  -353,  -353,
01646   -353,     0,     4,     0,     0,     0,     0,     0,     0,     0,
01647      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01648      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01649      0,     0,     0,    75,   157,   158,   159,   160,    79,    11,
01650     12,    13,     0,    14,    15,    16,    17,    18,    19,    20,
01651     21,    22,    23,     0,    24,    25,    26,    27,    28,    29,
01652     30,    31,    32,    33,    34,    35,    36,    37,    38,     0,
01653     39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
01654     49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
01655     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
01656     69,    70,    71,    72,    73,    74,   291,     0,   119,     0,
01657      0,     0,    80,     0,     0,     0,     0,     0,     0,     0,
01658      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01659      0,     0,     0,     3,     0,     0,     0,     0,     0,   326,
01660   -227,     0,     0,     0,   138,   139,   140,   141,   142,   143,
01661      0,     0,     0,     0,     0,     0,     0,     0,     0,     4,
01662      0,   144,   145,   146,     0,     0,     0,     0,     0,     0,
01663      0,     0,     0,     0,     0,     0,  -617,     0,     0,     0,
01664      0,     0,     0,     0,     0,   147,     0,     0,     0,     0,
01665      0,     0,     0,     0,     0,     0,    11,    12,    13,     0,
01666     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01667      0,    24,    25,    26,    27,    28,    29,    30,    31,    32,
01668     33,    34,    35,    36,    37,    38,   156,    39,    40,    41,
01669     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
01670     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
01671     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
01672     72,    73,    74,  -111,     0,   119,     0,     0,  -111,    80,
01673      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01674      0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
01675     75,   327,   328,   159,     0,   326,     0,     0,     0,     0,
01676    138,   139,   140,   141,   142,   143,     0,     0,     0,     0,
01677      0,     0,     0,     0,     0,     4,     0,   144,   145,   146,
01678      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01679      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01680      0,   147,     0,     0,     0,     0,     0,     0,     0,     0,
01681      0,     0,    11,    12,    13,     0,    14,    15,    16,    17,
01682     18,    19,    20,    21,    22,    23,     0,    24,    25,    26,
01683     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
01684     37,    38,   156,    39,    40,    41,    42,    43,    44,    45,
01685     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
01686     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
01687     66,    67,    68,    69,    70,    71,    72,    73,    74,   286,
01688      0,   119,     0,     0,     0,    80,     0,     0,     0,     0,
01689      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01690      0,     0,     0,     0,     0,     3,    75,   327,   328,   159,
01691      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01692      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01693      0,     4,     0,     0,     0,     0,     0,     0,     0,     0,
01694      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01695   -486,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01696      0,     0,     0,     0,     0,     0,     0,     0,    11,    12,
01697     13,     0,    14,    15,    16,    17,    18,    19,    20,    21,
01698     22,    23,     0,    24,    25,    26,    27,    28,    29,    30,
01699     31,    32,    33,    34,    35,    36,    37,    38,     0,    39,
01700     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
01701     50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
01702     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
01703     70,    71,    72,    73,    74,     0,     0,   119,    11,    12,
01704     13,    80,    14,    15,    16,    17,    18,    19,    20,    21,
01705     22,    23,     0,    24,    25,    26,    27,    28,    29,    30,
01706     31,    32,    33,    34,    35,    36,    37,    38,  -624,    39,
01707     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
01708     50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
01709     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
01710     70,    71,    72,    73,    74,     0,     0,   119,     0,     0,
01711      0,    80,     0,  -626,  -626,  -626,     0,     0,     0,     0,
01712      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01713      0,  -626,     0,     0,     0,     0,     0,     0,     0,     0,
01714   -245,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01715      2,     0,     0,     0,  -626,  -626,  -626,     0,  -626,  -626,
01716   -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,     0,  -626,
01717   -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
01718   -626,  -626,  -626,  -626,     0,  -626,  -626,  -626,  -626,  -626,
01719   -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
01720   -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
01721   -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,  -626,
01722   -626,     0,     0,     0,    11,    12,    13,  -626,    14,    15,
01723     16,    17,    18,    19,    20,    21,    22,    23,     0,    24,
01724     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
01725     35,    36,    37,    38,     0,    39,    40,    41,    42,    43,
01726     44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
01727     54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
01728     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
01729     74,    75,    76,    77,   355,    78,    79,    80,     0,   138,
01730    139,   140,   141,   142,   143,   642,     0,     0,     0,     0,
01731    138,   139,   140,   141,   142,   143,   144,   145,   146,     0,
01732      0,     0,     0,     0,     0,   644,     0,   144,   145,   146,
01733    138,   139,   140,   141,   142,   143,   714,     0,     0,     0,
01734    147,   715,   716,   717,   718,   719,   720,   144,   145,   146,
01735      0,   147,     0,     0,     0,     0,     0,     0,   144,   721,
01736    722,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01737      0,   147,     0,     0,     0,     0,     0,     0,     0,     0,
01738      0,   156,   723,     0,     0,     0,     0,     0,     0,     0,
01739      0,     0,   156,     0,     0,     0,     0,     0,     0,     0,
01740      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01741      0,     0,   156,     0,     0,     0,     0,     0,     0,     0,
01742      0,     0,     0,   156,     0,  -171,  -171,     0,     0,     0,
01743      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01744      0,     0,     0,     0,     0,    75,   327,   328,   159,     0,
01745      0,     0,     0,     0,     0,     0,    75,   327,   328,   159,
01746      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01747      0,     0,     0,     0,     0,     0,    75,   327,   328,   159,
01748      0,     0,     0,     0,     0,     0,     0,    75,   724,   725,
01749    726,    11,    12,    13,     0,    14,    15,    16,    17,    18,
01750     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01751     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01752     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01753     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01754     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01755     67,    68,    69,    70,    71,    72,    73,    74,     3,     0,
01756    119,     0,     0,     0,    80,     0,     0,     0,     0,     0,
01757      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01758   -353,  -353,  -353,     0,     4,     0,     0,     0,     0,     0,
01759      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01760      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01761      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01762      0,    11,    12,    13,     0,    14,    15,    16,    17,    18,
01763     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01764     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01765     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01766     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01767     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01768     67,    68,    69,    70,    71,    72,    73,    74,     3,     0,
01769    119,     0,     0,     0,    80,     0,     0,     0,     0,     0,
01770      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01771      0,     0,     0,     0,     4,     0,     0,     0,     0,     0,
01772      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01773      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01774      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01775      0,    11,    12,    13,     0,    14,    15,    16,    17,    18,
01776     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01777     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01778     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01779     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01780     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01781     67,    68,    69,    70,    71,    72,    73,    74,     0,     0,
01782    119,  -353,  -353,  -353,    80,     0,     0,     0,     0,     0,
01783      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01784      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01785      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01786      0,     0,    11,    12,    13,     0,    14,    15,    16,    17,
01787     18,    19,    20,    21,    22,    23,     0,    24,    25,    26,
01788     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
01789     37,    38,     0,    39,    40,    41,    42,    43,    44,    45,
01790     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
01791     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
01792     66,    67,    68,    69,    70,    71,    72,    73,    74,     0,
01793      0,   119,     8,     9,    10,    80,     0,     0,     0,     0,
01794      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01795      0,    11,    12,    13,     0,    14,    15,    16,    17,    18,
01796     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01797     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01798     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01799     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01800     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01801     67,    68,    69,    70,    71,    72,    73,    74,     0,     0,
01802    119,    11,    12,    13,    80,    14,    15,    16,    17,    18,
01803     19,    20,    21,    22,    23,     0,    24,    25,    26,    27,
01804     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01805     38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
01806     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01807     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01808     67,    68,    69,    70,    71,    72,    73,    74,     0,     0,
01809    119,     0,     0,     0,    80
01810 };
01811 
01812 static const short yycheck[] = {     0,
01813      0,   463,     3,    88,   105,   364,   495,     0,   366,   125,
01814     11,    12,   551,   301,     9,    10,   549,    18,    19,    20,
01815     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
01816     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
01817     41,    42,    43,     2,   446,   320,   412,    48,    49,    50,
01818     51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
01819     61,    62,    63,    64,   411,   652,   401,   402,   621,   403,
01820    404,   652,   405,   406,   407,   408,     8,   409,   410,   652,
01821     81,    81,   617,    24,   473,   892,   445,   782,    81,     0,
01822    785,   449,     3,    34,    19,     5,     7,   413,    99,   774,
01823    794,     5,   762,   672,   105,   203,   889,     5,   788,   892,
01824    208,     0,   210,   652,   115,   116,   117,   704,    21,   652,
01825    121,    25,    25,   704,   222,  1016,  1017,     9,    10,   214,
01826      5,   704,   898,    28,   493,    85,   137,  1080,  1081,    18,
01827     18,    25,    26,   144,    28,    24,   699,    86,    87,    44,
01828     25,    34,    21,   112,    18,    34,    25,    86,    87,    23,
01829     44,    41,   121,    24,     0,   704,    28,     3,    24,     5,
01830     81,   704,   979,    34,   981,     5,    56,   116,   117,     8,
01831   1123,  1100,    44,  1074,    53,    54,  1077,  1106,   882,  1108,
01832    885,   130,    81,    18,   105,    25,   979,   318,   981,   474,
01833    602,   690,   203,    21,   773,   137,   972,   776,   203,    24,
01834    121,    26,   500,   208,   603,   210,   891,   877,   893,    34,
01835    578,   132,   902,    86,    87,   108,   109,   222,   223,  1120,
01836      0,    24,    21,     3,   175,   176,    25,     7,     8,     9,
01837     10,    41,   601,    32,    33,    81,   175,   176,   364,   181,
01838    175,   176,   177,   560,   179,   180,    56,   189,     8,    95,
01839     96,   193,    98,   195,   623,   175,   176,   177,   575,   179,
01840    180,   175,   176,   177,    18,   179,   180,   175,   176,   177,
01841     21,   179,   180,   284,    25,   121,   652,    24,   289,   984,
01842    290,    26,   224,    28,    24,   583,   175,   176,    39,   300,
01843    301,    18,   303,   304,    21,   652,    23,   300,   137,    44,
01844    799,    81,   175,   176,   175,   176,   317,   652,   652,   652,
01845    652,   203,   323,   862,   317,   326,   208,   860,   210,   445,
01846     18,     6,     7,    21,    26,   105,   652,   422,   704,   627,
01847    222,   223,    34,   441,   345,   175,   176,   177,    22,   179,
01848    180,   121,   181,    24,   642,    18,   644,   704,    21,   912,
01849     34,    26,   132,    28,   193,   366,   195,   137,    24,   704,
01850    704,   704,   704,    24,    21,    26,   963,   493,    25,    44,
01851     21,   916,   963,    18,    25,   155,   345,   137,   704,   300,
01852    963,    21,   303,   304,   305,   224,    24,    27,    26,     8,
01853      9,    10,    49,    50,    24,    24,   317,    27,    49,    50,
01854     21,   181,   323,    21,    34,    16,    27,    25,    21,   189,
01855    779,   191,    25,   193,   963,   195,   714,    24,    21,    26,
01856    963,   181,    25,   203,    37,    38,    29,   437,   208,   189,
01857    210,    49,    50,   193,    16,   195,   441,   448,    51,    52,
01858    451,    16,   222,   223,   224,   448,    16,   458,   451,   460,
01859     18,   462,   463,    21,   465,    15,    21,    25,    24,   470,
01860     25,    27,   473,    24,   224,    26,    21,   598,    34,   480,
01861     25,    25,    26,     8,    28,   601,    18,    32,    33,    21,
01862    422,   492,   858,    34,   495,    18,   497,    39,    21,   500,
01863     44,   175,   176,   177,    22,   179,   180,   623,   344,    96,
01864    857,    98,   847,   848,   473,   849,   850,    22,   851,   852,
01865    853,   854,    22,   855,   856,    24,    29,    26,   137,    28,
01866    300,    40,    21,   303,   304,   305,    25,   448,    25,    55,
01867    451,    28,    21,   859,    85,    44,    25,   317,    47,    48,
01868    461,    19,   463,   323,   465,   175,   176,    21,   178,   441,
01869    560,    25,   473,    21,   922,   476,  1055,    25,    92,   480,
01870     49,    50,   181,    92,  1036,   575,    34,    35,    36,   580,
01871    189,    21,   583,    21,   193,    25,   195,    25,    18,   690,
01872     22,    21,    34,   422,   203,   596,   597,   963,   368,   208,
01873     24,   210,   603,    25,    26,    22,   376,    21,   378,   520,
01874    521,    25,   137,   222,   223,   224,   963,    22,   454,   175,
01875    176,   622,   178,    67,    68,    69,   627,   559,   963,   963,
01876    963,   963,    32,    33,   175,   176,   637,   638,   179,   180,
01877      5,   642,    26,   644,   603,    18,    18,   963,    21,    21,
01878     34,    21,   422,    25,    21,    25,   181,   191,    25,    24,
01879     25,    26,    21,   779,   189,   666,    25,    92,   193,    34,
01880    195,   441,   422,   674,    19,   676,    20,   447,   448,   680,
01881    681,   451,    18,    92,   685,    21,    37,    38,   689,   690,
01882     27,   461,   603,   463,   695,   465,    24,   813,   799,   224,
01883     51,    52,    23,   473,    21,    21,   476,    18,    25,    25,
01884    480,   999,    18,   714,    18,    24,    24,    26,   138,   139,
01885    140,   141,   142,   143,    21,    34,    18,     5,    25,    21,
01886   1089,   690,    22,   175,   176,   177,   695,   179,   180,    21,
01887     21,   511,    25,    25,    25,    21,    24,    25,    26,    25,
01888    520,   521,    18,   175,   176,   177,    34,   179,   180,    24,
01889     24,    26,    37,    38,   675,    25,   677,    18,   769,    34,
01890     21,  1130,    49,    50,   610,   686,    51,    52,   689,   690,
01891     34,    35,    36,   904,    24,    18,    26,    18,    28,   559,
01892    560,   175,   176,   177,    18,   179,   180,   798,   799,    21,
01893    801,    18,   572,    25,    44,   575,   576,    47,    48,   559,
01894    175,   176,   177,   422,   179,   180,    34,    35,    36,    18,
01895     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01896     19,    21,   441,   603,   368,    25,     9,    21,    25,    21,
01897    799,    25,   376,    25,   378,    21,   967,    37,    38,    25,
01898     11,    21,    97,    24,    99,    25,   101,    11,   103,    53,
01899     54,    51,    52,   108,   985,    88,   175,   176,   177,   990,
01900    179,   180,   181,   118,    24,   120,    21,    21,   648,   649,
01901    965,    25,   652,    42,    43,  1006,    19,   888,   799,   659,
01902    660,  1012,   662,    88,   895,    21,    19,   422,   809,    25,
01903   1021,    20,    21,   988,    19,   675,    23,   677,    21,    22,
01904    175,   176,   177,   447,   179,   180,   686,   162,    19,   689,
01905    690,   691,    78,    79,    80,    81,    82,    83,    84,  1050,
01906   1051,    27,  1053,    21,   704,   771,    25,    25,   774,    21,
01907     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
01908    559,   119,    24,   121,  1055,   175,   176,   177,    21,   179,
01909    180,    22,    25,  1084,   132,   133,    21,   135,    18,   137,
01910    138,    24,   973,  1089,    21,   976,    22,   511,   398,   399,
01911    400,    25,   150,   976,    21,    11,    21,    23,    25,  1105,
01912     25,   992,    24,   994,    32,    33,   766,    24,   999,   992,
01913     24,  1002,  1003,    21,  1125,    21,  1006,    25,    21,    25,
01914     27,    21,    25,    25,  1130,    25,    34,    35,    36,    21,
01915    931,   932,    23,    25,    21,    20,   560,    21,    25,   799,
01916     20,    25,    21,   992,   559,  1036,    25,  1038,  1039,   809,
01917     19,   575,   576,    21,   289,    21,    19,    25,   293,    25,
01918   1050,    49,    50,   889,  1055,   891,   892,   893,    72,    73,
01919     74,    72,    73,    74,    21,   976,   311,    53,    54,   314,
01920     20,    21,    20,    21,     5,     8,    25,   322,   498,    24,
01921    325,   992,    21,    22,   995,   125,  1087,    27,    22,  1090,
01922    175,   176,  1093,    25,    24,    20,    20,  1090,   138,   139,
01923    140,   141,   142,   143,    18,   145,   146,    27,    25,    18,
01924     25,    27,    25,    21,   648,   649,    39,    29,    25,    25,
01925     24,    18,    40,    25,    88,  1036,   660,    24,    55,    25,
01926     24,    21,    29,    30,    31,    32,    33,    34,    25,    25,
01927      8,     9,    10,   979,  1055,   981,  1147,    23,    25,    46,
01928     47,    48,    18,  1154,    25,    18,    18,   691,    18,    88,
01929     21,   931,   932,    21,  1075,  1076,    88,    22,    20,    20,
01930     18,   180,    25,    70,    20,    25,     0,    88,    88,  1090,
01931     20,    57,    58,    59,    60,    61,    62,    63,    64,    65,
01932     66,    73,    27,   963,    27,    88,    88,   967,     0,    88,
01933     88,   446,   135,    81,   137,   323,   976,   989,   453,   763,
01934   1121,  1122,  1066,   458,   111,   460,  1014,   877,   909,  1120,
01935    990,   990,   992,   468,   828,   995,  1086,   472,    72,    73,
01936     74,   465,  1090,   583,    78,    79,    80,    81,    82,    83,
01937     84,   677,   675,   112,   689,  1015,  1016,  1017,   181,    10,
01938    799,   345,   223,  1060,  1024,   511,   189,   422,   704,   963,
01939    193,    -1,   195,    -1,    -1,    -1,  1036,    -1,    -1,   137,
01940    203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   175,   176,
01941    177,   178,    -1,    -1,    -1,  1055,    -1,    -1,    -1,    -1,
01942     -1,   224,    -1,    -1,    -1,   715,   716,   717,   718,   719,
01943    720,    -1,    -1,    -1,  1074,  1075,  1076,  1077,    -1,    -1,
01944   1080,  1081,    -1,   181,    -1,    -1,  1086,    -1,    -1,    -1,
01945   1090,   189,    -1,    -1,   364,   193,    -1,   195,    -1,    -1,
01946     -1,    -1,   577,    -1,    -1,   203,    -1,    -1,    -1,    -1,
01947    208,    -1,   210,     8,     9,    10,    -1,    -1,    -1,    -1,
01948   1120,  1121,  1122,  1123,   222,   223,   224,   602,   398,   399,
01949    400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
01950    410,   411,   412,   413,    -1,    -1,   621,    72,    73,    74,
01951     -1,   626,    -1,    78,    79,    80,    81,    82,    83,    84,
01952     -1,    -1,    -1,   326,    -1,    -1,    -1,    -1,    -1,    -1,
01953     -1,   334,   335,   336,   337,   445,    -1,    -1,    -1,   654,
01954     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,     9,
01955     10,    -1,   355,    -1,   844,   845,   846,    -1,    -1,    -1,
01956    358,    -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,
01957     -1,    -1,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,
01958    383,    -1,    -1,   493,   382,    -1,    -1,    -1,   498,   387,
01959    388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
01960     -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01961     -1,    -1,   727,    -1,    -1,    -1,    -1,    -1,    -1,   422,
01962    418,    -1,    -1,    -1,    -1,    24,   429,    -1,    27,    -1,
01963     29,    30,    31,    32,    33,    34,   926,    -1,    -1,   549,
01964     -1,   551,    -1,   553,   554,    -1,   181,    46,    47,    48,
01965     -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,   193,    -1,
01966    195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   204,
01967     -1,    70,   787,   208,    -1,   210,    -1,   137,    -1,    -1,
01968     -1,    -1,    -1,    -1,   422,    -1,    -1,   222,   223,   224,
01969     -1,   601,    -1,     8,     9,    10,    -1,    -1,    -1,    -1,
01970     -1,   137,    -1,   441,    -1,    -1,    -1,    -1,    -1,    -1,
01971     -1,    -1,   111,   623,    -1,    -1,    -1,    -1,    -1,    -1,
01972     -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   189,
01973     -1,    -1,    -1,   193,    -1,   195,    -1,    -1,    -1,    -1,
01974     -1,    -1,   652,   203,    -1,   181,    -1,   550,   208,    -1,
01975    210,    -1,    -1,   189,    -1,    -1,   559,   193,    -1,   195,
01976     -1,    -1,   222,   223,   224,   880,   881,   203,    -1,    -1,
01977     -1,    -1,   208,   888,   210,    -1,   175,   176,   177,   178,
01978     -1,    -1,    -1,     8,     9,    10,   222,   223,   224,    -1,
01979     -1,    -1,    -1,    -1,   704,    -1,    -1,   912,    -1,    -1,
01980     -1,    -1,    -1,    -1,    -1,   715,   716,   717,   718,   719,
01981    720,   721,   722,    -1,   617,    -1,    -1,    -1,    -1,    -1,
01982     -1,   559,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01983     -1,    -1,    -1,    -1,    -1,    -1,   634,    -1,    -1,   642,
01984     -1,   644,    -1,    -1,    -1,    -1,   381,   650,    -1,    -1,
01985    653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   974,
01986     -1,    -1,    -1,    -1,    -1,    -1,   181,    -1,    -1,   779,
01987     -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,   193,    -1,
01988    195,   679,    -1,    -1,    -1,    -1,    -1,   422,   203,    -1,
01989     -1,    -1,    -1,   208,    -1,   210,    -1,    -1,    -1,    -1,
01990    703,    -1,    -1,   813,    -1,    -1,   441,   222,   223,   224,
01991     -1,   714,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01992     -1,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
01993     -1,    -1,    -1,    -1,   844,   845,   846,   847,   848,   849,
01994    850,   851,   852,   853,   854,   855,   856,   857,   858,   859,
01995    860,    -1,   862,    -1,    -1,    -1,   181,    -1,    -1,    -1,
01996     -1,    -1,   422,    -1,   189,    -1,    -1,    -1,   193,    -1,
01997    195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,    -1,
01998     -1,   441,    -1,   208,   782,   210,   422,   785,    -1,    -1,
01999     -1,    -1,    -1,    -1,    -1,    -1,    -1,   222,   223,   224,
02000     -1,    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,    -1,
02001     -1,    -1,    -1,  1128,    -1,    -1,   926,    -1,    -1,    -1,
02002     -1,    -1,    -1,    -1,   559,    -1,   829,    -1,    -1,   827,
02003    828,    -1,    -1,    -1,    -1,   833,   834,   835,   836,   837,
02004    838,   839,   840,   841,   842,   843,    -1,    -1,    -1,    -1,
02005     -1,    -1,    -1,   963,    18,    -1,    -1,    -1,    -1,    -1,
02006     24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
02007     34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02008     -1,    19,    46,    47,    48,    -1,    24,   885,    -1,    -1,
02009     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,   559,
02010     -1,    -1,    -1,    -1,    -1,    -1,    70,   422,    46,    47,
02011     48,    -1,    -1,   916,    -1,    -1,    -1,    -1,    -1,    -1,
02012     -1,    -1,    -1,   559,    -1,    -1,   441,    -1,    -1,    -1,
02013     -1,    -1,    70,     0,     1,    -1,    -1,    -1,    -1,    -1,
02014     -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
02015     -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,   961,    -1,
02016     -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,
02017     -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    45,  1089,
02018     -1,    -1,    -1,    -1,    -1,    -1,   984,    -1,    -1,    -1,
02019     -1,    -1,    -1,    -1,    -1,  1105,    -1,   422,    -1,    -1,
02020     67,    68,    69,    -1,    71,    -1,    -1,    -1,    75,    76,
02021     77,   175,   176,   177,   178,    -1,   441,    -1,    -1,    -1,
02022   1130,    -1,    89,    90,    91,    -1,    -1,    -1,    -1,    -1,
02023     -1,    -1,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,
02024    178,   108,   109,   110,   559,   112,   113,   114,   115,   116,
02025    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02026    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02027    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02028    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02029    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02030    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
02031    177,    -1,   179,   180,   181,     0,     1,    -1,    -1,    -1,
02032     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02033     -1,    -1,    -1,    -1,   559,    -1,    -1,    -1,    -1,    24,
02034     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,
02035     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02036     45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02037     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02038     -1,    -1,    67,    68,    69,    -1,    71,    -1,    -1,    -1,
02039     75,    76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02040     -1,    -1,    -1,    -1,    89,    90,    91,    -1,    -1,    -1,
02041     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02042     -1,    -1,    -1,   108,   109,   110,    -1,   112,   113,   114,
02043    115,   116,   117,   118,   119,   120,   121,    -1,   123,   124,
02044    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
02045    135,   136,   137,    -1,   139,   140,   141,   142,   143,   144,
02046    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
02047    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
02048    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
02049    175,   176,   177,     1,   179,   180,   181,    -1,     6,     7,
02050      8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
02051     18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,
02052     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
02053     -1,    -1,    -1,    -1,    42,    43,    -1,    45,    46,    47,
02054     48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02055     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
02056     68,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,
02057     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02058     -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,    97,
02059     98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
02060    108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
02061    118,   119,   120,   121,    -1,   123,   124,   125,   126,   127,
02062    128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
02063     -1,   139,   140,   141,   142,   143,   144,   145,   146,   147,
02064    148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
02065    158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
02066    168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
02067    178,   179,   180,   181,     1,    -1,    -1,    -1,    -1,     6,
02068      7,     8,    -1,    10,    11,    12,    13,    14,    15,    16,
02069     17,    18,    19,    -1,    -1,    -1,    -1,    24,    -1,    -1,
02070     -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
02071     -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    46,
02072     47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02073     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02074     67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,
02075     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02076     -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,
02077     97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02078    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
02079    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02080    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02081    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02082    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02083    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02084    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
02085    177,   178,   179,   180,   181,     1,    -1,    -1,    -1,    -1,
02086      6,     7,     8,    -1,    -1,    11,    12,    13,    14,    15,
02087     16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
02088     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
02089     -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
02090     46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02091     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02092     -1,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
02093     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02094     -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,
02095     96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02096     -1,   107,   108,   109,   110,   111,   112,   113,   114,   115,
02097    116,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
02098    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
02099    136,   137,    -1,   139,   140,   141,   142,   143,   144,   145,
02100    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
02101    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
02102    166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
02103    176,   177,   178,   179,   180,   181,     1,    -1,    -1,    -1,
02104     -1,     6,     7,     8,    -1,    -1,    11,    12,    13,    14,
02105     15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
02106     25,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
02107     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,     1,
02108     -1,    46,    47,    48,     6,     7,     8,    -1,    10,    11,
02109     12,    13,    14,    15,    16,    17,    18,    19,    -1,    -1,
02110     -1,    -1,    24,    -1,    -1,    70,    -1,    29,    30,    31,
02111     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02112     42,    43,    -1,    -1,    46,    47,    48,    92,    93,    94,
02113     95,    96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,
02114     -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    70,    -1,
02115     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02116     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02117     92,    93,    94,    95,    96,    97,    98,    -1,    -1,    -1,
02118     -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
02119     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02120     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02121    175,   176,   177,   178,   179,   180,    -1,    -1,     1,    -1,
02122     -1,    -1,    -1,     6,     7,     8,    -1,    10,    11,    12,
02123     13,    14,    15,    16,    17,    18,    19,    -1,    -1,    -1,
02124     -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
02125     33,    34,    -1,   175,   176,   177,   178,   179,   180,    42,
02126     43,     1,    -1,    46,    47,    48,     6,     7,     8,    -1,
02127     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
02128     20,    -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,
02129     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
02130     -1,    -1,    42,    43,    -1,    -1,    46,    47,    48,    92,
02131     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
02132     -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
02133     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02134     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02135     -1,    -1,    92,    93,    94,    95,    96,    97,    98,    -1,
02136     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
02137     -1,   111,    -1,    -1,    -1,    19,    20,    -1,    -1,    -1,
02138     24,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
02139     34,    -1,   175,   176,   177,   178,   179,   180,    -1,    -1,
02140      1,    -1,    46,    47,    48,     6,     7,     8,    -1,    10,
02141     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
02142     -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,    30,
02143     31,    32,    33,    34,    -1,   175,   176,   177,   178,   179,
02144    180,    42,    43,     1,    -1,    46,    47,    48,     6,     7,
02145      8,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
02146     18,    19,    20,    -1,    -1,    -1,    24,   111,    -1,    70,
02147     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
02148     -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    46,    47,
02149     48,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
02150     -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,
02151    111,    -1,    70,    -1,    19,    -1,    -1,    -1,    -1,    24,
02152     -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
02153     -1,   175,   176,   177,   178,    93,    94,    95,    96,    97,
02154     98,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,   107,
02155     -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
02156     -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,
02157     -1,    -1,    -1,    -1,   175,   176,   177,   178,   179,   180,
02158     -1,    -1,     1,    -1,    -1,    -1,    -1,     6,     7,     8,
02159     -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
02160     19,    -1,    -1,    -1,    -1,    24,   111,    -1,    -1,    -1,
02161     29,    30,    31,    32,    33,    34,    -1,   175,   176,   177,
02162    178,   179,   180,    42,    43,    -1,    -1,    46,    47,    48,
02163     -1,    -1,    -1,    -1,    24,    25,    -1,    -1,    -1,    29,
02164     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
02165     -1,    70,    -1,    -1,    -1,    -1,    46,    47,    48,    -1,
02166     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02167    175,   176,   177,   178,    93,    94,    95,    96,    97,    98,
02168     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,     6,
02169      7,     8,   111,    10,    11,    12,    13,    14,    15,    16,
02170     17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,    -1,
02171     -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
02172     -1,   111,    -1,    -1,    -1,    42,    43,    -1,    45,    46,
02173     47,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02174     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02175     -1,    -1,    -1,    70,    71,    -1,   175,   176,   177,   178,
02176    179,   180,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02177     -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,
02178     97,    98,    -1,    -1,    -1,   175,   176,   177,   178,    -1,
02179    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
02180    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02181    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02182    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02183    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02184    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02185    167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
02186    177,   178,   179,   180,   181,     6,     7,     8,    -1,    10,
02187     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
02188     -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,
02189     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
02190     -1,    42,    43,    -1,    45,    46,    47,    48,    -1,    -1,
02191     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02192     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,
02193     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02194     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02195     -1,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
02196     -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
02197    111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
02198    121,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
02199    131,   132,   133,   134,   135,   136,   137,    -1,   139,   140,
02200    141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
02201    151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
02202    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
02203    171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
02204    181,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
02205     15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
02206     -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
02207     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
02208     45,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,
02209     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02210     -1,    -1,    -1,    -1,    -1,    70,    71,    -1,    -1,    -1,
02211     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02212     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,
02213     95,    96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,
02214     -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
02215    115,   116,   117,   118,   119,   120,   121,    -1,   123,   124,
02216    125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
02217    135,   136,   137,    -1,   139,   140,   141,   142,   143,   144,
02218    145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
02219    155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
02220    165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
02221    175,   176,   177,   178,   179,   180,   181,     6,     7,     8,
02222     -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
02223     19,    20,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
02224     29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
02225     -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,
02226      6,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
02227     16,    17,    18,    19,    20,    -1,    -1,    -1,    24,    -1,
02228     -1,    70,    -1,    29,    30,    31,    32,    33,    34,    -1,
02229     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02230     46,    47,    48,    -1,    93,    94,    95,    96,    97,    98,
02231     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,
02232     -1,    -1,   111,    -1,    70,    -1,    -1,    -1,    -1,    -1,
02233     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02234     -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,
02235     96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02236     -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
02237     24,    -1,    -1,    27,    -1,    29,    30,    31,    32,    33,
02238     34,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,   178,
02239    179,   180,    46,    47,    48,     6,     7,     8,    -1,    10,
02240     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
02241     -1,    -1,    -1,    24,    -1,    -1,    70,    -1,    29,    30,
02242     31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,   175,
02243    176,   177,   178,   179,   180,    46,    47,    48,     6,     7,
02244      8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
02245     18,    19,    20,    -1,    -1,    -1,    24,   111,    -1,    70,
02246     -1,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
02247     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,
02248     48,    -1,    93,    94,    95,    96,    97,    98,    -1,    -1,
02249     -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,
02250    111,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02251     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02252     -1,   175,   176,   177,   178,    93,    94,    95,    96,    97,
02253     98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
02254     -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    24,    25,
02255     -1,    -1,    -1,    29,    30,    31,    32,    33,    34,    -1,
02256     -1,    -1,    -1,    -1,   175,   176,   177,   178,   179,   180,
02257     46,    47,    48,     6,     7,     8,    -1,    10,    11,    12,
02258     13,    14,    15,    16,    17,    18,    19,    20,    -1,    -1,
02259     -1,    24,    -1,    -1,    70,    -1,    29,    30,    31,    32,
02260     33,    34,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,
02261    178,   179,   180,    46,    47,    48,     6,     7,     8,    -1,
02262     10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
02263     20,    -1,    -1,    -1,    24,   111,    -1,    70,    -1,    29,
02264     30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,
02265     -1,    -1,    -1,    -1,    -1,    -1,    46,    47,    48,    -1,
02266     93,    94,    95,    96,    97,    98,    -1,    -1,    -1,    -1,
02267     -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,    -1,
02268     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02269     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   175,
02270    176,   177,   178,    93,    94,    95,    96,    97,    98,    -1,
02271     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,
02272     -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02273     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02274     -1,    -1,   175,   176,   177,   178,   179,   180,    -1,    -1,
02275     -1,     6,     7,     8,    -1,    10,    11,    12,    13,    14,
02276     15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    24,
02277     -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
02278     -1,    -1,    -1,    -1,    -1,   175,   176,   177,   178,   179,
02279    180,    46,    47,    48,     6,     7,     8,    -1,    10,    11,
02280     12,    13,    14,    15,    16,    17,    18,    19,    -1,    -1,
02281     -1,    -1,    24,    -1,    -1,    70,    -1,    29,    30,    31,
02282     32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02283     -1,    -1,    -1,    -1,    46,    47,    48,    -1,    93,    94,
02284     95,    96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,
02285     -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    70,    -1,
02286     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02287     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,
02288     -1,    93,    94,    95,    96,    97,    98,    -1,    -1,    -1,
02289     -1,    -1,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
02290     -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,
02291     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02292    175,   176,   177,   178,   179,   180,    -1,    -1,    67,    68,
02293     69,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02294     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02295     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02296     -1,    -1,    -1,   175,   176,   177,   178,   179,   180,   108,
02297    109,   110,    -1,   112,   113,   114,   115,   116,   117,   118,
02298    119,   120,   121,    -1,   123,   124,   125,   126,   127,   128,
02299    129,   130,   131,   132,   133,   134,   135,   136,   137,    -1,
02300    139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
02301    149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
02302    159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
02303    169,   170,   171,   172,   173,   174,    18,    -1,   177,    -1,
02304     -1,    -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02305     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02306     -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    24,
02307     25,    -1,    -1,    -1,    29,    30,    31,    32,    33,    34,
02308     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
02309     -1,    46,    47,    48,    -1,    -1,    -1,    -1,    -1,    -1,
02310     -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,
02311     -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,
02312     -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,    -1,
02313    112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
02314     -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
02315    132,   133,   134,   135,   136,   137,   111,   139,   140,   141,
02316    142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
02317    152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
02318    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
02319    172,   173,   174,    19,    -1,   177,    -1,    -1,    24,   181,
02320     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02321     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
02322    175,   176,   177,   178,    -1,    24,    -1,    -1,    -1,    -1,
02323     29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,
02324     -1,    -1,    -1,    -1,    -1,    71,    -1,    46,    47,    48,
02325     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02326     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02327     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02328     -1,    -1,   108,   109,   110,    -1,   112,   113,   114,   115,
02329    116,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
02330    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
02331    136,   137,   111,   139,   140,   141,   142,   143,   144,   145,
02332    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
02333    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
02334    166,   167,   168,   169,   170,   171,   172,   173,   174,    19,
02335     -1,   177,    -1,    -1,    -1,   181,    -1,    -1,    -1,    -1,
02336     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02337     -1,    -1,    -1,    -1,    -1,    45,   175,   176,   177,   178,
02338     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02339     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02340     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02341     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02342     20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02343     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,   109,
02344    110,    -1,   112,   113,   114,   115,   116,   117,   118,   119,
02345    120,   121,    -1,   123,   124,   125,   126,   127,   128,   129,
02346    130,   131,   132,   133,   134,   135,   136,   137,    -1,   139,
02347    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
02348    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
02349    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
02350    170,   171,   172,   173,   174,    -1,    -1,   177,   108,   109,
02351    110,   181,   112,   113,   114,   115,   116,   117,   118,   119,
02352    120,   121,    -1,   123,   124,   125,   126,   127,   128,   129,
02353    130,   131,   132,   133,   134,   135,   136,   137,    22,   139,
02354    140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
02355    150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
02356    160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
02357    170,   171,   172,   173,   174,    -1,    -1,   177,    -1,    -1,
02358     -1,   181,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
02359     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02360     -1,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02361     24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02362     34,    -1,    -1,    -1,   108,   109,   110,    -1,   112,   113,
02363    114,   115,   116,   117,   118,   119,   120,   121,    -1,   123,
02364    124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
02365    134,   135,   136,   137,    -1,   139,   140,   141,   142,   143,
02366    144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
02367    154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
02368    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
02369    174,    -1,    -1,    -1,   108,   109,   110,   181,   112,   113,
02370    114,   115,   116,   117,   118,   119,   120,   121,    -1,   123,
02371    124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
02372    134,   135,   136,   137,    -1,   139,   140,   141,   142,   143,
02373    144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
02374    154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
02375    164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
02376    174,   175,   176,   177,    24,   179,   180,   181,    -1,    29,
02377     30,    31,    32,    33,    34,    24,    -1,    -1,    -1,    -1,
02378     29,    30,    31,    32,    33,    34,    46,    47,    48,    -1,
02379     -1,    -1,    -1,    -1,    -1,    24,    -1,    46,    47,    48,
02380     29,    30,    31,    32,    33,    34,    24,    -1,    -1,    -1,
02381     70,    29,    30,    31,    32,    33,    34,    46,    47,    48,
02382     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,
02383     48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02384     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02385     -1,   111,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02386     -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02387     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02388     -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02389     -1,    -1,    -1,   111,    -1,    42,    43,    -1,    -1,    -1,
02390     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02391     -1,    -1,    -1,    -1,    -1,   175,   176,   177,   178,    -1,
02392     -1,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,   178,
02393     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02394     -1,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,   178,
02395     -1,    -1,    -1,    -1,    -1,    -1,    -1,   175,   176,   177,
02396    178,   108,   109,   110,    -1,   112,   113,   114,   115,   116,
02397    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02398    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02399    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02400    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02401    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02402    167,   168,   169,   170,   171,   172,   173,   174,    45,    -1,
02403    177,    -1,    -1,    -1,   181,    -1,    -1,    -1,    -1,    -1,
02404     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02405     67,    68,    69,    -1,    71,    -1,    -1,    -1,    -1,    -1,
02406     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02407     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02408     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02409     -1,   108,   109,   110,    -1,   112,   113,   114,   115,   116,
02410    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02411    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02412    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02413    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02414    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02415    167,   168,   169,   170,   171,   172,   173,   174,    45,    -1,
02416    177,    -1,    -1,    -1,   181,    -1,    -1,    -1,    -1,    -1,
02417     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02418     -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
02419     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02420     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02421     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02422     -1,   108,   109,   110,    -1,   112,   113,   114,   115,   116,
02423    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02424    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02425    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02426    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02427    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02428    167,   168,   169,   170,   171,   172,   173,   174,    -1,    -1,
02429    177,    67,    68,    69,   181,    -1,    -1,    -1,    -1,    -1,
02430     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02431     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02432     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02433     -1,    -1,   108,   109,   110,    -1,   112,   113,   114,   115,
02434    116,   117,   118,   119,   120,   121,    -1,   123,   124,   125,
02435    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
02436    136,   137,    -1,   139,   140,   141,   142,   143,   144,   145,
02437    146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
02438    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
02439    166,   167,   168,   169,   170,   171,   172,   173,   174,    -1,
02440     -1,   177,    89,    90,    91,   181,    -1,    -1,    -1,    -1,
02441     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
02442     -1,   108,   109,   110,    -1,   112,   113,   114,   115,   116,
02443    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02444    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02445    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02446    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02447    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02448    167,   168,   169,   170,   171,   172,   173,   174,    -1,    -1,
02449    177,   108,   109,   110,   181,   112,   113,   114,   115,   116,
02450    117,   118,   119,   120,   121,    -1,   123,   124,   125,   126,
02451    127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
02452    137,    -1,   139,   140,   141,   142,   143,   144,   145,   146,
02453    147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
02454    157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
02455    167,   168,   169,   170,   171,   172,   173,   174,    -1,    -1,
02456    177,    -1,    -1,    -1,   181
02457 };
02458 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
02459 #line 3 "/af10/evans/bison-1.28/share/bison.simple"
02460 /* This file comes from bison-1.28.  */
02461 
02462 /* Skeleton output parser for bison,
02463    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
02464 
02465    This program is free software; you can redistribute it and/or modify
02466    it under the terms of the GNU General Public License as published by
02467    the Free Software Foundation; either version 2, or (at your option)
02468    any later version.
02469 
02470    This program is distributed in the hope that it will be useful,
02471    but WITHOUT ANY WARRANTY; without even the implied warranty of
02472    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
02473    GNU General Public License for more details.
02474 
02475    You should have received a copy of the GNU General Public License
02476    along with this program; if not, write to the Free Software
02477    Foundation, Inc., 59 Temple Place - Suite 330,
02478    Boston, MA 02111-1307, USA.  */
02479 
02480 /* As a special exception, when this file is copied by Bison into a
02481    Bison output file, you may use that output file without restriction.
02482    This special exception was added by the Free Software Foundation
02483    in version 1.24 of Bison.  */
02484 
02485 /* This is the parser code that is written into each bison parser
02486   when the %semantic_parser declaration is not specified in the grammar.
02487   It was written by Richard Stallman by simplifying the hairy parser
02488   used when %semantic_parser is specified.  */
02489 
02490 #ifndef YYSTACK_USE_ALLOCA
02491 #ifdef alloca
02492 #define YYSTACK_USE_ALLOCA
02493 #else /* alloca not defined */
02494 #ifdef __GNUC__
02495 #define YYSTACK_USE_ALLOCA
02496 #define alloca __builtin_alloca
02497 #else /* not GNU C.  */
02498 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
02499 #define YYSTACK_USE_ALLOCA
02500 #include <alloca.h>
02501 #else /* not sparc */
02502 /* We think this test detects Watcom and Microsoft C.  */
02503 /* This used to test MSDOS, but that is a bad idea
02504    since that symbol is in the user namespace.  */
02505 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
02506 #if 0 /* No need for malloc.h, which pollutes the namespace;
02507          instead, just don't use alloca.  */
02508 #include <malloc.h>
02509 #endif
02510 #else /* not MSDOS, or __TURBOC__ */
02511 #if defined(_AIX)
02512 /* I don't know what this was needed for, but it pollutes the namespace.
02513    So I turned it off.   rms, 2 May 1997.  */
02514 /* #include <malloc.h>  */
02515  #pragma alloca
02516 #define YYSTACK_USE_ALLOCA
02517 #else /* not MSDOS, or __TURBOC__, or _AIX */
02518 #if 0
02519 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
02520                  and on HPUX 10.  Eventually we can turn this on.  */
02521 #define YYSTACK_USE_ALLOCA
02522 #define alloca __builtin_alloca
02523 #endif /* __hpux */
02524 #endif
02525 #endif /* not _AIX */
02526 #endif /* not MSDOS, or __TURBOC__ */
02527 #endif /* not sparc */
02528 #endif /* not GNU C */
02529 #endif /* alloca not defined */
02530 #endif /* YYSTACK_USE_ALLOCA not defined */
02531 
02532 #ifdef YYSTACK_USE_ALLOCA
02533 #define YYSTACK_ALLOC alloca
02534 #else
02535 #define YYSTACK_ALLOC malloc
02536 #endif
02537 
02538 /* Note: there must be only one dollar sign in this file.
02539    It is replaced by the list of actions, each action
02540    as one case of the switch.  */
02541 
02542 #define yyerrok         (yyerrstatus = 0)
02543 #define yyclearin       (yychar = YYEMPTY)
02544 #define YYEMPTY         -2
02545 #define YYEOF           0
02546 #define YYACCEPT        goto yyacceptlab
02547 #define YYABORT         goto yyabortlab
02548 #define YYERROR         goto yyerrlab1
02549 /* Like YYERROR except do call yyerror.
02550    This remains here temporarily to ease the
02551    transition to the new meaning of YYERROR, for GCC.
02552    Once GCC version 2 has supplanted version 1, this can go.  */
02553 #define YYFAIL          goto yyerrlab
02554 #define YYRECOVERING()  (!!yyerrstatus)
02555 #define YYBACKUP(token, value) \
02556 do                                                              \
02557   if (yychar == YYEMPTY && yylen == 1)                          \
02558     { yychar = (token), yylval = (value);                       \
02559       yychar1 = YYTRANSLATE (yychar);                           \
02560       YYPOPSTACK;                                               \
02561       goto yybackup;                                            \
02562     }                                                           \
02563   else                                                          \
02564     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
02565 while (0)
02566 
02567 #define YYTERROR        1
02568 #define YYERRCODE       256
02569 
02570 #ifndef YYPURE
02571 #define YYLEX           yylex()
02572 #endif
02573 
02574 #ifdef YYPURE
02575 #ifdef YYLSP_NEEDED
02576 #ifdef YYLEX_PARAM
02577 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
02578 #else
02579 #define YYLEX           yylex(&yylval, &yylloc)
02580 #endif
02581 #else /* not YYLSP_NEEDED */
02582 #ifdef YYLEX_PARAM
02583 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
02584 #else
02585 #define YYLEX           yylex(&yylval)
02586 #endif
02587 #endif /* not YYLSP_NEEDED */
02588 #endif
02589 
02590 /* If nonreentrant, generate the variables here */
02591 
02592 #ifndef YYPURE
02593 
02594 int     yychar;                 /*  the lookahead symbol                */
02595 YYSTYPE yylval;                 /*  the semantic value of the           */
02596                                 /*  lookahead symbol                    */
02597 
02598 #ifdef YYLSP_NEEDED
02599 YYLTYPE yylloc;                 /*  location data for the lookahead     */
02600                                 /*  symbol                              */
02601 #endif
02602 
02603 int yynerrs;                    /*  number of parse errors so far       */
02604 #endif  /* not YYPURE */
02605 
02606 #if YYDEBUG != 0
02607 int yydebug;                    /*  nonzero means print parse trace     */
02608 /* Since this is uninitialized, it does not stop multiple parsers
02609    from coexisting.  */
02610 #endif
02611 
02612 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
02613 
02614 #ifndef YYINITDEPTH
02615 #define YYINITDEPTH 200
02616 #endif
02617 
02618 /*  YYMAXDEPTH is the maximum size the stacks can grow to
02619     (effective only if the built-in stack extension method is used).  */
02620 
02621 #if YYMAXDEPTH == 0
02622 #undef YYMAXDEPTH
02623 #endif
02624 
02625 #ifndef YYMAXDEPTH
02626 #define YYMAXDEPTH 10000
02627 #endif
02628 
02629 /* Define __yy_memcpy.  Note that the size argument
02630    should be passed with type unsigned int, because that is what the non-GCC
02631    definitions require.  With GCC, __builtin_memcpy takes an arg
02632    of type size_t, but it can handle unsigned int.  */
02633 
02634 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
02635 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
02636 #else                           /* not GNU C or C++ */
02637 #ifndef __cplusplus
02638 
02639 /* This is the most reliable way to avoid incompatibilities
02640    in available built-in functions on various systems.  */
02641 static void
02642 __yy_memcpy (to, from, count)
02643      char *to;
02644      char *from;
02645      unsigned int count;
02646 {
02647   register char *f = from;
02648   register char *t = to;
02649   register int i = count;
02650 
02651   while (i-- > 0)
02652     *t++ = *f++;
02653 }
02654 
02655 #else /* __cplusplus */
02656 
02657 /* This is the most reliable way to avoid incompatibilities
02658    in available built-in functions on various systems.  */
02659 static void
02660 __yy_memcpy (char *to, char *from, unsigned int count)
02661 {
02662   register char *t = to;
02663   register char *f = from;
02664   register int i = count;
02665 
02666   while (i-- > 0)
02667     *t++ = *f++;
02668 }
02669 
02670 #endif
02671 #endif
02672 
02673 #line 217 "/af10/evans/bison-1.28/share/bison.simple"
02674 
02675 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
02676    into yyparse.  The argument should have type void *.
02677    It should actually point to an object.
02678    Grammar actions can access the variable by casting it
02679    to the proper pointer type.  */
02680 
02681 #ifdef YYPARSE_PARAM
02682 #ifdef __cplusplus
02683 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
02684 #define YYPARSE_PARAM_DECL
02685 #else /* not __cplusplus */
02686 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
02687 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
02688 #endif /* not __cplusplus */
02689 #else /* not YYPARSE_PARAM */
02690 #define YYPARSE_PARAM_ARG
02691 #define YYPARSE_PARAM_DECL
02692 #endif /* not YYPARSE_PARAM */
02693 
02694 /* Prevent warning if -Wstrict-prototypes.  */
02695 #ifdef __GNUC__
02696 #ifdef YYPARSE_PARAM
02697 int yyparse (void *);
02698 #else
02699 int yyparse (void);
02700 #endif
02701 #endif
02702 
02703 int
02704 yyparse(YYPARSE_PARAM_ARG)
02705      YYPARSE_PARAM_DECL
02706 {
02707   register int yystate;
02708   register int yyn;
02709   register short *yyssp;
02710   register YYSTYPE *yyvsp;
02711   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
02712   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
02713 
02714   short yyssa[YYINITDEPTH];     /*  the state stack                     */
02715   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
02716 
02717   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
02718   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
02719 
02720 #ifdef YYLSP_NEEDED
02721   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
02722   YYLTYPE *yyls = yylsa;
02723   YYLTYPE *yylsp;
02724 
02725 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
02726 #else
02727 #define YYPOPSTACK   (yyvsp--, yyssp--)
02728 #endif
02729 
02730   int yystacksize = YYINITDEPTH;
02731   int yyfree_stacks = 0;
02732 
02733 #ifdef YYPURE
02734   int yychar;
02735   YYSTYPE yylval;
02736   int yynerrs;
02737 #ifdef YYLSP_NEEDED
02738   YYLTYPE yylloc;
02739 #endif
02740 #endif
02741 
02742   YYSTYPE yyval;                /*  the variable used to return         */
02743                                 /*  semantic values from the action     */
02744                                 /*  routines                            */
02745 
02746   int yylen;
02747 
02748 #if YYDEBUG != 0
02749   if (yydebug)
02750     fprintf(stderr, "Starting parse\n");
02751 #endif
02752 
02753   yystate = 0;
02754   yyerrstatus = 0;
02755   yynerrs = 0;
02756   yychar = YYEMPTY;             /* Cause a token to be read.  */
02757 
02758   /* Initialize stack pointers.
02759      Waste one element of value and location stack
02760      so that they stay on the same level as the state stack.
02761      The wasted elements are never initialized.  */
02762 
02763   yyssp = yyss - 1;
02764   yyvsp = yyvs;
02765 #ifdef YYLSP_NEEDED
02766   yylsp = yyls;
02767 #endif
02768 
02769 /* Push a new state, which is found in  yystate  .  */
02770 /* In all cases, when you get here, the value and location stacks
02771    have just been pushed. so pushing a state here evens the stacks.  */
02772 yynewstate:
02773 
02774   *++yyssp = yystate;
02775 
02776   if (yyssp >= yyss + yystacksize - 1)
02777     {
02778       /* Give user a chance to reallocate the stack */
02779       /* Use copies of these so that the &'s don't force the real ones into memory. */
02780       YYSTYPE *yyvs1 = yyvs;
02781       short *yyss1 = yyss;
02782 #ifdef YYLSP_NEEDED
02783       YYLTYPE *yyls1 = yyls;
02784 #endif
02785 
02786       /* Get the current used size of the three stacks, in elements.  */
02787       int size = yyssp - yyss + 1;
02788 
02789 #ifdef yyoverflow
02790       /* Each stack pointer address is followed by the size of
02791          the data in use in that stack, in bytes.  */
02792 #ifdef YYLSP_NEEDED
02793       /* This used to be a conditional around just the two extra args,
02794          but that might be undefined if yyoverflow is a macro.  */
02795       yyoverflow("parser stack overflow",
02796                  &yyss1, size * sizeof (*yyssp),
02797                  &yyvs1, size * sizeof (*yyvsp),
02798                  &yyls1, size * sizeof (*yylsp),
02799                  &yystacksize);
02800 #else
02801       yyoverflow("parser stack overflow",
02802                  &yyss1, size * sizeof (*yyssp),
02803                  &yyvs1, size * sizeof (*yyvsp),
02804                  &yystacksize);
02805 #endif
02806 
02807       yyss = yyss1; yyvs = yyvs1;
02808 #ifdef YYLSP_NEEDED
02809       yyls = yyls1;
02810 #endif
02811 #else /* no yyoverflow */
02812       /* Extend the stack our own way.  */
02813       if (yystacksize >= YYMAXDEPTH)
02814         {
02815           yyerror("parser stack overflow");
02816           if (yyfree_stacks)
02817             {
02818               free (yyss);
02819               free (yyvs);
02820 #ifdef YYLSP_NEEDED
02821               free (yyls);
02822 #endif
02823             }
02824           return 2;
02825         }
02826       yystacksize *= 2;
02827       if (yystacksize > YYMAXDEPTH)
02828         yystacksize = YYMAXDEPTH;
02829 #ifndef YYSTACK_USE_ALLOCA
02830       yyfree_stacks = 1;
02831 #endif
02832       yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
02833       __yy_memcpy ((char *)yyss, (char *)yyss1,
02834                    size * (unsigned int) sizeof (*yyssp));
02835       yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
02836       __yy_memcpy ((char *)yyvs, (char *)yyvs1,
02837                    size * (unsigned int) sizeof (*yyvsp));
02838 #ifdef YYLSP_NEEDED
02839       yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
02840       __yy_memcpy ((char *)yyls, (char *)yyls1,
02841                    size * (unsigned int) sizeof (*yylsp));
02842 #endif
02843 #endif /* no yyoverflow */
02844 
02845       yyssp = yyss + size - 1;
02846       yyvsp = yyvs + size - 1;
02847 #ifdef YYLSP_NEEDED
02848       yylsp = yyls + size - 1;
02849 #endif
02850 
02851 #if YYDEBUG != 0
02852       if (yydebug)
02853         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
02854 #endif
02855 
02856       if (yyssp >= yyss + yystacksize - 1)
02857         YYABORT;
02858     }
02859 
02860 #if YYDEBUG != 0
02861   if (yydebug)
02862     fprintf(stderr, "Entering state %d\n", yystate);
02863 #endif
02864 
02865   goto yybackup;
02866  yybackup:
02867 
02868 /* Do appropriate processing given the current state.  */
02869 /* Read a lookahead token if we need one and don't already have one.  */
02870 /* yyresume: */
02871 
02872   /* First try to decide what to do without reference to lookahead token.  */
02873 
02874   yyn = yypact[yystate];
02875   if (yyn == YYFLAG)
02876     goto yydefault;
02877 
02878   /* Not known => get a lookahead token if don't already have one.  */
02879 
02880   /* yychar is either YYEMPTY or YYEOF
02881      or a valid token in external form.  */
02882 
02883   if (yychar == YYEMPTY)
02884     {
02885 #if YYDEBUG != 0
02886       if (yydebug)
02887         fprintf(stderr, "Reading a token: ");
02888 #endif
02889       yychar = YYLEX;
02890     }
02891 
02892   /* Convert token to internal form (in yychar1) for indexing tables with */
02893 
02894   if (yychar <= 0)              /* This means end of input. */
02895     {
02896       yychar1 = 0;
02897       yychar = YYEOF;           /* Don't call YYLEX any more */
02898 
02899 #if YYDEBUG != 0
02900       if (yydebug)
02901         fprintf(stderr, "Now at end of input.\n");
02902 #endif
02903     }
02904   else
02905     {
02906       yychar1 = YYTRANSLATE(yychar);
02907 
02908 #if YYDEBUG != 0
02909       if (yydebug)
02910         {
02911           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
02912           /* Give the individual parser a way to print the precise meaning
02913              of a token, for further debugging info.  */
02914 #ifdef YYPRINT
02915           YYPRINT (stderr, yychar, yylval);
02916 #endif
02917           fprintf (stderr, ")\n");
02918         }
02919 #endif
02920     }
02921 
02922   yyn += yychar1;
02923   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
02924     goto yydefault;
02925 
02926   yyn = yytable[yyn];
02927 
02928   /* yyn is what to do for this token type in this state.
02929      Negative => reduce, -yyn is rule number.
02930      Positive => shift, yyn is new state.
02931        New state is final state => don't bother to shift,
02932        just return success.
02933      0, or most negative number => error.  */
02934 
02935   if (yyn < 0)
02936     {
02937       if (yyn == YYFLAG)
02938         goto yyerrlab;
02939       yyn = -yyn;
02940       goto yyreduce;
02941     }
02942   else if (yyn == 0)
02943     goto yyerrlab;
02944 
02945   if (yyn == YYFINAL)
02946     YYACCEPT;
02947 
02948   /* Shift the lookahead token.  */
02949 
02950 #if YYDEBUG != 0
02951   if (yydebug)
02952     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
02953 #endif
02954 
02955   /* Discard the token being shifted unless it is eof.  */
02956   if (yychar != YYEOF)
02957     yychar = YYEMPTY;
02958 
02959   *++yyvsp = yylval;
02960 #ifdef YYLSP_NEEDED
02961   *++yylsp = yylloc;
02962 #endif
02963 
02964   /* count tokens shifted since error; after three, turn off error status.  */
02965   if (yyerrstatus) yyerrstatus--;
02966 
02967   yystate = yyn;
02968   goto yynewstate;
02969 
02970 /* Do the default action for the current state.  */
02971 yydefault:
02972 
02973   yyn = yydefact[yystate];
02974   if (yyn == 0)
02975     goto yyerrlab;
02976 
02977 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
02978 yyreduce:
02979   yylen = yyr2[yyn];
02980   if (yylen > 0)
02981     yyval = yyvsp[1-yylen]; /* implement default value of the action */
02982 
02983 #if YYDEBUG != 0
02984   if (yydebug)
02985     {
02986       int i;
02987 
02988       fprintf (stderr, "Reducing via rule %d (line %d), ",
02989                yyn, yyrline[yyn]);
02990 
02991       /* Print the symbols being reduced, and their result.  */
02992       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
02993         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
02994       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
02995     }
02996 #endif
02997 
02998 
02999   switch (yyn) {
03000 
03001 case 5:
03002 #line 240 "cgrammar.y"
03003 { uentry_clearDecl (); ;
03004     break;}
03005 case 6:
03006 #line 241 "cgrammar.y"
03007 { uentry_clearDecl (); ;
03008     break;}
03009 case 7:
03010 #line 242 "cgrammar.y"
03011 { uentry_clearDecl (); ;
03012     break;}
03013 case 8:
03014 #line 243 "cgrammar.y"
03015 { uentry_clearDecl (); ;
03016     break;}
03017 case 9:
03018 #line 244 "cgrammar.y"
03019 { uentry_clearDecl (); ;
03020     break;}
03021 case 10:
03022 #line 245 "cgrammar.y"
03023 { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ;
03024     break;}
03025 case 11:
03026 #line 246 "cgrammar.y"
03027 { uentry_clearDecl (); ;
03028     break;}
03029 case 12:
03030 #line 250 "cgrammar.y"
03031 { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ;
03032     break;}
03033 case 13:
03034 #line 252 "cgrammar.y"
03035 { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ;
03036     break;}
03037 case 14:
03038 #line 255 "cgrammar.y"
03039 { context_enterFunctionDecl (); ;
03040     break;}
03041 case 15:
03042 #line 256 "cgrammar.y"
03043 { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); 
03044      context_exitFunctionDecl (); ;
03045     break;}
03046 case 16:
03047 #line 261 "cgrammar.y"
03048 { 
03049      qtype qint = qtype_create (ctype_int);
03050      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
03051      qtype_free (qint);
03052    ;
03053     break;}
03054 case 17:
03055 #line 267 "cgrammar.y"
03056 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
03057     break;}
03058 case 19:
03059 #line 272 "cgrammar.y"
03060 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
03061     break;}
03062 case 20:
03063 #line 275 "cgrammar.y"
03064 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
03065     break;}
03066 case 21:
03067 #line 277 "cgrammar.y"
03068 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
03069     break;}
03070 case 22:
03071 #line 279 "cgrammar.y"
03072 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
03073     break;}
03074 case 23:
03075 #line 281 "cgrammar.y"
03076 { 
03077      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr)));
03078    ;
03079     break;}
03080 case 24:
03081 #line 285 "cgrammar.y"
03082 { setCurrentParams (uentryList_missingParams); 
03083         ;
03084     break;}
03085 case 25:
03086 #line 288 "cgrammar.y"
03087 { /* need to support globals and modifies here! */
03088      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
03089                                     uentryList_makeMissingParams ());
03090 
03091      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
03092      context_popLoc (); 
03093    ;
03094     break;}
03095 case 26:
03096 #line 296 "cgrammar.y"
03097 { setCurrentParams (yyvsp[-1].entrylist); 
03098         ;
03099     break;}
03100 case 27:
03101 #line 299 "cgrammar.y"
03102 { clearCurrentParams ();
03103      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
03104      context_popLoc (); 
03105    ;
03106     break;}
03107 case 28:
03108 #line 305 "cgrammar.y"
03109 { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ;
03110     break;}
03111 case 29:
03112 #line 307 "cgrammar.y"
03113 { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ;
03114     break;}
03115 case 30:
03116 #line 309 "cgrammar.y"
03117 { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ;
03118     break;}
03119 case 31:
03120 #line 311 "cgrammar.y"
03121 { 
03122      int value;
03123 
03124      if (exprNode_hasValue (yyvsp[-2].expr) 
03125          && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr)))
03126        {
03127          value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr));
03128        }
03129      else
03130        {
03131          value = 0;
03132        }
03133 
03134      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value));
03135    ;
03136     break;}
03137 case 32:
03138 #line 327 "cgrammar.y"
03139 { setCurrentParams (uentryList_missingParams); 
03140         ;
03141     break;}
03142 case 33:
03143 #line 330 "cgrammar.y"
03144 { /* need to support globals and modifies here! */
03145      ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), 
03146                                     uentryList_makeMissingParams ());
03147 
03148      yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct);
03149      context_popLoc (); 
03150    ;
03151     break;}
03152 case 34:
03153 #line 338 "cgrammar.y"
03154 { setCurrentParams (yyvsp[-1].entrylist); 
03155         ;
03156     break;}
03157 case 35:
03158 #line 341 "cgrammar.y"
03159 { clearCurrentParams ();
03160      yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist));
03161      context_popLoc (); 
03162    ;
03163     break;}
03164 case 36:
03165 #line 348 "cgrammar.y"
03166 { setCurrentParams (yyvsp[-1].entrylist); ;
03167     break;}
03168 case 37:
03169 #line 349 "cgrammar.y"
03170 { clearCurrentParams (); ;
03171     break;}
03172 case 38:
03173 #line 350 "cgrammar.y"
03174 { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ;
03175     break;}
03176 case 39:
03177 #line 353 "cgrammar.y"
03178 { exprNode_checkMacroBody (yyvsp[-1].expr); ;
03179     break;}
03180 case 40:
03181 #line 354 "cgrammar.y"
03182 { exprNode_checkIterBody (yyvsp[-1].expr); ;
03183     break;}
03184 case 41:
03185 #line 355 "cgrammar.y"
03186 { exprNode_checkIterEnd (yyvsp[-1].expr); ;
03187     break;}
03188 case 42:
03189 #line 356 "cgrammar.y"
03190 { exprChecks_checkEmptyMacroBody (); ;
03191     break;}
03192 case 43:
03193 #line 359 "cgrammar.y"
03194 { declareFunction (yyvsp[0].ntyp); ;
03195     break;}
03196 case 44:
03197 #line 362 "cgrammar.y"
03198 { setProcessingGlobMods (); ;
03199     break;}
03200 case 45:
03201 #line 363 "cgrammar.y"
03202 { clearProcessingGlobMods (); ;
03203     break;}
03204 case 46:
03205 #line 366 "cgrammar.y"
03206 { setProcessingGlobMods (); ;
03207     break;}
03208 case 47:
03209 #line 367 "cgrammar.y"
03210 { clearProcessingGlobMods (); ;
03211     break;}
03212 case 54:
03213 #line 382 "cgrammar.y"
03214 { ; ;
03215     break;}
03216 case 55:
03217 #line 383 "cgrammar.y"
03218 { ; ;
03219     break;}
03220 case 56:
03221 #line 386 "cgrammar.y"
03222 { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ;
03223     break;}
03224 case 57:
03225 #line 389 "cgrammar.y"
03226 { yyval.sr = uentry_getSref (yyvsp[0].entry); ;
03227     break;}
03228 case 58:
03229 #line 390 "cgrammar.y"
03230 { yyval.sr = globListUnrecognized (yyvsp[0].cname); ;
03231     break;}
03232 case 59:
03233 #line 393 "cgrammar.y"
03234 { yyval.typequal = qual_createUndef (); ;
03235     break;}
03236 case 60:
03237 #line 394 "cgrammar.y"
03238 { yyval.typequal = qual_createKilled (); ;
03239     break;}
03240 case 61:
03241 #line 395 "cgrammar.y"
03242 { yyval.typequal = qual_createOut (); ;
03243     break;}
03244 case 62:
03245 #line 396 "cgrammar.y"
03246 { yyval.typequal = qual_createIn (); ;
03247     break;}
03248 case 63:
03249 #line 397 "cgrammar.y"
03250 { yyval.typequal = qual_createPartial (); ;
03251     break;}
03252 case 64:
03253 #line 400 "cgrammar.y"
03254 { yyval.tquallist = qualList_undefined; ;
03255     break;}
03256 case 65:
03257 #line 401 "cgrammar.y"
03258 { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ;
03259     break;}
03260 case 66:
03261 #line 404 "cgrammar.y"
03262 { setProcessingGlobalsList (); ;
03263     break;}
03264 case 67:
03265 #line 406 "cgrammar.y"
03266 { unsetProcessingGlobals (); ;
03267     break;}
03268 case 68:
03269 #line 407 "cgrammar.y"
03270 { setProcessingGlobalsList (); ;
03271     break;}
03272 case 69:
03273 #line 409 "cgrammar.y"
03274 { unsetProcessingGlobals (); ;
03275     break;}
03276 case 70:
03277 #line 411 "cgrammar.y"
03278 { setFunctionNoGlobals ();
03279      setFunctionModifies (sRefSet_single (sRef_makeNothing ())); 
03280    ;
03281     break;}
03282 case 73:
03283 #line 418 "cgrammar.y"
03284 { setProcessingGlobalsList (); ;
03285     break;}
03286 case 74:
03287 #line 420 "cgrammar.y"
03288 { unsetProcessingGlobals (); ;
03289     break;}
03290 case 75:
03291 #line 421 "cgrammar.y"
03292 { setProcessingGlobalsList (); ;
03293     break;}
03294 case 76:
03295 #line 423 "cgrammar.y"
03296 { unsetProcessingGlobals (); ;
03297     break;}
03298 case 77:
03299 #line 425 "cgrammar.y"
03300 { setFunctionNoGlobals ();
03301      setFunctionModifies (sRefSet_single (sRef_makeNothing ())); 
03302    ;
03303     break;}
03304 case 82:
03305 #line 437 "cgrammar.y"
03306 {
03307      context_setProtectVars (); enterParamsTemp (); 
03308      sRef_setGlobalScopeSafe (); 
03309    ;
03310     break;}
03311 case 83:
03312 #line 442 "cgrammar.y"
03313 { 
03314      setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
03315      sRef_clearGlobalScopeSafe (); 
03316      context_releaseVars ();
03317    ;
03318     break;}
03319 case 84:
03320 #line 450 "cgrammar.y"
03321 {
03322      context_setProtectVars (); enterParamsTemp (); 
03323      sRef_setGlobalScopeSafe (); 
03324    ;
03325     break;}
03326 case 85:
03327 #line 455 "cgrammar.y"
03328 { 
03329      setFunctionModifies (yyvsp[0].srset); exitParamsTemp ();
03330      sRef_clearGlobalScopeSafe (); 
03331      context_releaseVars ();
03332    ;
03333     break;}
03334 case 95:
03335 #line 479 "cgrammar.y"
03336 { yyval.sck = SP_ISONLY; ;
03337     break;}
03338 case 96:
03339 #line 480 "cgrammar.y"
03340 { yyval.sck = SP_ISOBSERVER; ;
03341     break;}
03342 case 97:
03343 #line 481 "cgrammar.y"
03344 { yyval.sck = SP_ISEXPOSED; ;
03345     break;}
03346 case 98:
03347 #line 482 "cgrammar.y"
03348 { yyval.sck = SP_ISDEPENDENT; ;
03349     break;}
03350 case 99:
03351 #line 483 "cgrammar.y"
03352 { yyval.sck = SP_ISOWNED; ;
03353     break;}
03354 case 100:
03355 #line 484 "cgrammar.y"
03356 { yyval.sck = SP_ISSHARED; ;
03357     break;}
03358 case 101:
03359 #line 485 "cgrammar.y"
03360 { yyval.sck = SP_ISNULL; ;
03361     break;}
03362 case 102:
03363 #line 486 "cgrammar.y"
03364 { yyval.sck = SP_ISNOTNULL; ;
03365     break;}
03366 case 103:
03367 #line 490 "cgrammar.y"
03368 {
03369      context_setProtectVars (); 
03370      enterParamsTemp (); 
03371      sRef_setGlobalScopeSafe (); 
03372    ;
03373     break;}
03374 case 104:
03375 #line 496 "cgrammar.y"
03376 { 
03377      setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); 
03378      exitParamsTemp ();
03379      sRef_clearGlobalScopeSafe (); 
03380      context_releaseVars ();
03381    ;
03382     break;}
03383 case 105:
03384 #line 503 "cgrammar.y"
03385 {
03386       context_setProtectVars (); 
03387       enterParamsTemp (); 
03388       sRef_setGlobalScopeSafe (); 
03389     ;
03390     break;}
03391 case 106:
03392 #line 509 "cgrammar.y"
03393 { 
03394       setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); 
03395       exitParamsTemp ();
03396       sRef_clearGlobalScopeSafe (); 
03397       context_releaseVars ();
03398     ;
03399     break;}
03400 case 107:
03401 #line 518 "cgrammar.y"
03402 { 
03403      qtype qint = qtype_create (ctype_int);
03404      yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint);
03405      qtype_free (qint);
03406    ;
03407     break;}
03408 case 108:
03409 #line 524 "cgrammar.y"
03410 { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ;
03411     break;}
03412 case 109:
03413 #line 527 "cgrammar.y"
03414 { checkDoneParams (); context_enterInnerContext (); ;
03415     break;}
03416 case 110:
03417 #line 529 "cgrammar.y"
03418 {  
03419      exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; 
03420      context_exitInner (yyvsp[0].expr); 
03421    ;
03422     break;}
03423 case 111:
03424 #line 534 "cgrammar.y"
03425 { doneParams (); context_enterInnerContext (); ;
03426     break;}
03427 case 112:
03428 #line 536 "cgrammar.y"
03429 {
03430      context_exitInner (yyvsp[0].expr);
03431      exprNode_checkFunctionBody (yyvsp[0].expr); 
03432      yyval.expr = yyvsp[0].expr; /* old style */ 
03433    ;
03434     break;}
03435 case 113:
03436 #line 544 "cgrammar.y"
03437 { 
03438      context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); 
03439      exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); 
03440      context_exitFunction ();
03441    ;
03442     break;}
03443 case 114:
03444 #line 551 "cgrammar.y"
03445 { yyval.srset = yyvsp[-2].srset; ;
03446     break;}
03447 case 115:
03448 #line 552 "cgrammar.y"
03449 { yyval.srset = sRefSet_new (); ;
03450     break;}
03451 case 116:
03452 #line 555 "cgrammar.y"
03453 { yyval.srset = yyvsp[-1].srset; ;
03454     break;}
03455 case 117:
03456 #line 556 "cgrammar.y"
03457 { yyval.srset = sRefSet_new (); ;
03458     break;}
03459 case 118:
03460 #line 559 "cgrammar.y"
03461 { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ;
03462     break;}
03463 case 119:
03464 #line 560 "cgrammar.y"
03465 { yyval.sr = fixModifiesId (yyvsp[0].cname); ;
03466     break;}
03467 case 120:
03468 #line 561 "cgrammar.y"
03469 { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ;
03470     break;}
03471 case 121:
03472 #line 562 "cgrammar.y"
03473 { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ;
03474     break;}
03475 case 122:
03476 #line 563 "cgrammar.y"
03477 { yyval.sr = modListPointer (yyvsp[0].sr); ;
03478     break;}
03479 case 123:
03480 #line 564 "cgrammar.y"
03481 { yyval.sr = yyvsp[-1].sr; ;
03482     break;}
03483 case 124:
03484 #line 565 "cgrammar.y"
03485 { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
03486     break;}
03487 case 125:
03488 #line 566 "cgrammar.y"
03489 { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ;
03490     break;}
03491 case 126:
03492 #line 570 "cgrammar.y"
03493 { yyval.sr = yyvsp[0].sr; ;
03494     break;}
03495 case 127:
03496 #line 571 "cgrammar.y"
03497 { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ;
03498     break;}
03499 case 128:
03500 #line 575 "cgrammar.y"
03501 { yyval.srset = sRefSet_single (yyvsp[0].sr); ;
03502     break;}
03503 case 129:
03504 #line 576 "cgrammar.y"
03505 { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ;
03506     break;}
03507 case 130:
03508 #line 580 "cgrammar.y"
03509 { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ;
03510     break;}
03511 case 131:
03512 #line 582 "cgrammar.y"
03513 { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ;
03514     break;}
03515 case 132:
03516 #line 583 "cgrammar.y"
03517 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ;
03518     break;}
03519 case 133:
03520 #line 584 "cgrammar.y"
03521 { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ;
03522     break;}
03523 case 134:
03524 #line 585 "cgrammar.y"
03525 { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ;
03526     break;}
03527 case 135:
03528 #line 586 "cgrammar.y"
03529 { yyval.sr = yyvsp[-1].sr; ;
03530     break;}
03531 case 136:
03532 #line 587 "cgrammar.y"
03533 { cstring_markOwned (yyvsp[0].cname);
03534                                             yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ;
03535     break;}
03536 case 137:
03537 #line 589 "cgrammar.y"
03538 { cstring_markOwned (yyvsp[0].cname);
03539                                             yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ;
03540     break;}
03541 case 138:
03542 #line 594 "cgrammar.y"
03543 { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } 
03544       else { yyval.srset = sRefSet_undefined; } 
03545     ;
03546     break;}
03547 case 139:
03548 #line 598 "cgrammar.y"
03549 { if (sRef_isValid (yyvsp[0].sr))
03550         {
03551           yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); 
03552         }
03553       else
03554         {
03555           yyval.srset = yyvsp[-2].srset;
03556         }
03557     ;
03558     break;}
03559 case 140:
03560 #line 609 "cgrammar.y"
03561 { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ;
03562     break;}
03563 case 141:
03564 #line 610 "cgrammar.y"
03565 { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ;
03566     break;}
03567 case 143:
03568 #line 612 "cgrammar.y"
03569 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
03570     break;}
03571 case 144:
03572 #line 613 "cgrammar.y"
03573 { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ;
03574     break;}
03575 case 145:
03576 #line 614 "cgrammar.y"
03577 { yyval.expr = exprNode_makeError (); ;
03578     break;}
03579 case 147:
03580 #line 618 "cgrammar.y"
03581 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
03582     break;}
03583 case 148:
03584 #line 619 "cgrammar.y"
03585 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
03586     break;}
03587 case 149:
03588 #line 620 "cgrammar.y"
03589 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
03590     break;}
03591 case 150:
03592 #line 621 "cgrammar.y"
03593 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
03594     break;}
03595 case 151:
03596 #line 622 "cgrammar.y"
03597 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
03598     break;}
03599 case 152:
03600 #line 623 "cgrammar.y"
03601 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
03602     break;}
03603 case 153:
03604 #line 624 "cgrammar.y"
03605 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
03606     break;}
03607 case 154:
03608 #line 625 "cgrammar.y"
03609 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
03610     break;}
03611 case 155:
03612 #line 628 "cgrammar.y"
03613 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
03614     break;}
03615 case 156:
03616 #line 629 "cgrammar.y"
03617 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
03618     break;}
03619 case 158:
03620 #line 633 "cgrammar.y"
03621 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03622     break;}
03623 case 159:
03624 #line 634 "cgrammar.y"
03625 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03626     break;}
03627 case 160:
03628 #line 635 "cgrammar.y"
03629 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03630     break;}
03631 case 161:
03632 #line 636 "cgrammar.y"
03633 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03634     break;}
03635 case 162:
03636 #line 637 "cgrammar.y"
03637 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03638     break;}
03639 case 163:
03640 #line 638 "cgrammar.y"
03641 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03642     break;}
03643 case 164:
03644 #line 639 "cgrammar.y"
03645 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03646     break;}
03647 case 165:
03648 #line 640 "cgrammar.y"
03649 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
03650     break;}
03651 case 166:
03652 #line 641 "cgrammar.y"
03653 { yyval.expr = yyvsp[0].expr; ;
03654     break;}
03655 case 167:
03656 #line 642 "cgrammar.y"
03657 { yyval.expr = yyvsp[0].expr; ;
03658     break;}
03659 case 168:
03660 #line 645 "cgrammar.y"
03661 { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ;
03662     break;}
03663 case 169:
03664 #line 646 "cgrammar.y"
03665 { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ;
03666     break;}
03667 case 170:
03668 #line 650 "cgrammar.y"
03669 { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ;
03670     break;}
03671 case 171:
03672 #line 653 "cgrammar.y"
03673 { context_setProtectVars (); ;
03674     break;}
03675 case 172:
03676 #line 654 "cgrammar.y"
03677 { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ;
03678     break;}
03679 case 173:
03680 #line 657 "cgrammar.y"
03681 { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ;
03682     break;}
03683 case 174:
03684 #line 658 "cgrammar.y"
03685 { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ;
03686     break;}
03687 case 175:
03688 #line 659 "cgrammar.y"
03689 { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ;
03690     break;}
03691 case 176:
03692 #line 660 "cgrammar.y"
03693 { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ;
03694     break;}
03695 case 178:
03696 #line 665 "cgrammar.y"
03697 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
03698     break;}
03699 case 180:
03700 #line 669 "cgrammar.y"
03701 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03702     break;}
03703 case 181:
03704 #line 670 "cgrammar.y"
03705 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03706     break;}
03707 case 182:
03708 #line 671 "cgrammar.y"
03709 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03710     break;}
03711 case 184:
03712 #line 675 "cgrammar.y"
03713 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03714     break;}
03715 case 185:
03716 #line 676 "cgrammar.y"
03717 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03718     break;}
03719 case 187:
03720 #line 680 "cgrammar.y"
03721 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03722     break;}
03723 case 188:
03724 #line 681 "cgrammar.y"
03725 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03726     break;}
03727 case 190:
03728 #line 685 "cgrammar.y"
03729 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03730     break;}
03731 case 191:
03732 #line 686 "cgrammar.y"
03733 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03734     break;}
03735 case 192:
03736 #line 687 "cgrammar.y"
03737 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03738     break;}
03739 case 193:
03740 #line 688 "cgrammar.y"
03741 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03742     break;}
03743 case 195:
03744 #line 692 "cgrammar.y"
03745 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03746     break;}
03747 case 196:
03748 #line 693 "cgrammar.y"
03749 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03750     break;}
03751 case 198:
03752 #line 697 "cgrammar.y"
03753 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03754     break;}
03755 case 200:
03756 #line 701 "cgrammar.y"
03757 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03758     break;}
03759 case 202:
03760 #line 706 "cgrammar.y"
03761 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03762     break;}
03763 case 204:
03764 #line 711 "cgrammar.y"
03765 { exprNode_produceGuards (yyvsp[-1].expr); 
03766      context_enterAndClause (yyvsp[-1].expr); 
03767    ;
03768     break;}
03769 case 205:
03770 #line 715 "cgrammar.y"
03771 { 
03772      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
03773      context_exitAndClause (yyval.expr, yyvsp[0].expr);
03774    ;
03775     break;}
03776 case 207:
03777 #line 723 "cgrammar.y"
03778 { 
03779      exprNode_produceGuards (yyvsp[-1].expr);
03780      context_enterOrClause (yyvsp[-1].expr); 
03781    ;
03782     break;}
03783 case 208:
03784 #line 728 "cgrammar.y"
03785 { 
03786      yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); 
03787      context_exitOrClause (yyval.expr, yyvsp[0].expr);
03788    ;
03789     break;}
03790 case 210:
03791 #line 735 "cgrammar.y"
03792 { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
03793     break;}
03794 case 211:
03795 #line 736 "cgrammar.y"
03796 { context_enterFalseClause (yyvsp[-4].expr); ;
03797     break;}
03798 case 212:
03799 #line 737 "cgrammar.y"
03800 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
03801     break;}
03802 case 214:
03803 #line 741 "cgrammar.y"
03804 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03805     break;}
03806 case 215:
03807 #line 742 "cgrammar.y"
03808 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03809     break;}
03810 case 216:
03811 #line 743 "cgrammar.y"
03812 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03813     break;}
03814 case 217:
03815 #line 744 "cgrammar.y"
03816 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03817     break;}
03818 case 218:
03819 #line 745 "cgrammar.y"
03820 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03821     break;}
03822 case 219:
03823 #line 746 "cgrammar.y"
03824 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03825     break;}
03826 case 220:
03827 #line 747 "cgrammar.y"
03828 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03829     break;}
03830 case 221:
03831 #line 748 "cgrammar.y"
03832 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03833     break;}
03834 case 222:
03835 #line 749 "cgrammar.y"
03836 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03837     break;}
03838 case 223:
03839 #line 750 "cgrammar.y"
03840 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03841     break;}
03842 case 224:
03843 #line 751 "cgrammar.y"
03844 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
03845     break;}
03846 case 226:
03847 #line 755 "cgrammar.y"
03848 { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ;
03849     break;}
03850 case 227:
03851 #line 758 "cgrammar.y"
03852 { yyval.expr = exprNode_undefined; ;
03853     break;}
03854 case 230:
03855 #line 767 "cgrammar.y"
03856 { yyval.expr = yyvsp[0].expr; ;
03857     break;}
03858 case 231:
03859 #line 768 "cgrammar.y"
03860 { doVaDcl (); yyval.expr = exprNode_makeError (); ;
03861     break;}
03862 case 232:
03863 #line 769 "cgrammar.y"
03864 { yyval.expr = exprNode_makeError (); ;
03865     break;}
03866 case 233:
03867 #line 772 "cgrammar.y"
03868 { yyval.expr = exprNode_makeError (); ;
03869     break;}
03870 case 234:
03871 #line 786 "cgrammar.y"
03872 {
03873                setProcessingVars (yyvsp[-3].qtyp); 
03874      processNamedDecl (yyvsp[-1].ntyp); ;
03875     break;}
03876 case 235:
03877 #line 789 "cgrammar.y"
03878 { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ;
03879     break;}
03880 case 236:
03881 #line 791 "cgrammar.y"
03882 { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); 
03883         ;
03884     break;}
03885 case 237:
03886 #line 794 "cgrammar.y"
03887 { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); 
03888      unsetProcessingVars ();
03889    ;
03890     break;}
03891 case 238:
03892 #line 798 "cgrammar.y"
03893 { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ;
03894     break;}
03895 case 239:
03896 #line 799 "cgrammar.y"
03897 { processNamedDecl (yyvsp[-2].ntyp); ;
03898     break;}
03899 case 240:
03900 #line 800 "cgrammar.y"
03901 { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ;
03902     break;}
03903 case 241:
03904 #line 804 "cgrammar.y"
03905 { setProcessingTypedef (yyvsp[0].qtyp); ;
03906     break;}
03907 case 242:
03908 #line 805 "cgrammar.y"
03909 { unsetProcessingTypedef (); ;
03910     break;}
03911 case 243:
03912 #line 806 "cgrammar.y"
03913 { /* in the ANSI grammar, semantics unclear */ ;
03914     break;}
03915 case 244:
03916 #line 807 "cgrammar.y"
03917 { /* in the ANSI grammar, semantics unclear */ ;
03918     break;}
03919 case 245:
03920 #line 810 "cgrammar.y"
03921 { g_expectingTypeName = TRUE; ;
03922     break;}
03923 case 246:
03924 #line 813 "cgrammar.y"
03925 { g_expectingTypeName = TRUE; context_pushLoc (); ;
03926     break;}
03927 case 247:
03928 #line 816 "cgrammar.y"
03929 { ; ;
03930     break;}
03931 case 248:
03932 #line 819 "cgrammar.y"
03933 { ; ;
03934     break;}
03935 case 249:
03936 #line 820 "cgrammar.y"
03937 { ; ;
03938     break;}
03939 case 250:
03940 #line 823 "cgrammar.y"
03941 { yyval.expr = exprNode_makeError (); ;
03942     break;}
03943 case 251:
03944 #line 824 "cgrammar.y"
03945 { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ;
03946     break;}
03947 case 253:
03948 #line 828 "cgrammar.y"
03949 { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ;
03950     break;}
03951 case 254:
03952 #line 829 "cgrammar.y"
03953 { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ;
03954     break;}
03955 case 255:
03956 #line 834 "cgrammar.y"
03957 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
03958     break;}
03959 case 256:
03960 #line 836 "cgrammar.y"
03961 { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ;
03962     break;}
03963 case 257:
03964 #line 844 "cgrammar.y"
03965 { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ;
03966     break;}
03967 case 258:
03968 #line 845 "cgrammar.y"
03969 { yyval.typequal = qual_createInline (); ;
03970     break;}
03971 case 259:
03972 #line 846 "cgrammar.y"
03973 { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ;
03974     break;}
03975 case 260:
03976 #line 847 "cgrammar.y"
03977 { yyval.typequal = qual_createAuto (); ;
03978     break;}
03979 case 261:
03980 #line 848 "cgrammar.y"
03981 { yyval.typequal = qual_createRegister (); ;
03982     break;}
03983 case 262:
03984 #line 851 "cgrammar.y"
03985 { yyval.typequal = qual_createConst (); ;
03986     break;}
03987 case 263:
03988 #line 852 "cgrammar.y"
03989 { yyval.typequal = qual_createVolatile (); ;
03990     break;}
03991 case 264:
03992 #line 853 "cgrammar.y"
03993 { yyval.typequal = qual_createOut (); ;
03994     break;}
03995 case 265:
03996 #line 854 "cgrammar.y"
03997 { yyval.typequal = qual_createIn (); ;
03998     break;}
03999 case 266:
04000 #line 855 "cgrammar.y"
04001 { yyval.typequal = qual_createPartial (); ;
04002     break;}
04003 case 267:
04004 #line 856 "cgrammar.y"
04005 { yyval.typequal = qual_createSpecial (); ;
04006     break;}
04007 case 268:
04008 #line 857 "cgrammar.y"
04009 { yyval.typequal = qual_createOwned (); ;
04010     break;}
04011 case 269:
04012 #line 858 "cgrammar.y"
04013 { yyval.typequal = qual_createDependent (); ;
04014     break;}
04015 case 270:
04016 #line 859 "cgrammar.y"
04017 { yyval.typequal = qual_createYield (); ;
04018     break;}
04019 case 271:
04020 #line 860 "cgrammar.y"
04021 { yyval.typequal = qual_createTemp (); ;
04022     break;}
04023 case 272:
04024 #line 861 "cgrammar.y"
04025 { yyval.typequal = qual_createOnly (); ;
04026     break;}
04027 case 273:
04028 #line 862 "cgrammar.y"
04029 { yyval.typequal = qual_createKeep (); ;
04030     break;}
04031 case 274:
04032 #line 863 "cgrammar.y"
04033 { yyval.typequal = qual_createKept (); ;
04034     break;}
04035 case 275:
04036 #line 864 "cgrammar.y"
04037 { yyval.typequal = qual_createShared (); ;
04038     break;}
04039 case 276:
04040 #line 865 "cgrammar.y"
04041 { yyval.typequal = qual_createUnique (); ;
04042     break;}
04043 case 277:
04044 #line 866 "cgrammar.y"
04045 { yyval.typequal = qual_createExits (); ;
04046     break;}
04047 case 278:
04048 #line 867 "cgrammar.y"
04049 { yyval.typequal = qual_createMayExit (); ;
04050     break;}
04051 case 279:
04052 #line 868 "cgrammar.y"
04053 { yyval.typequal = qual_createTrueExit (); ;
04054     break;}
04055 case 280:
04056 #line 869 "cgrammar.y"
04057 { yyval.typequal = qual_createFalseExit (); ;
04058     break;}
04059 case 281:
04060 #line 870 "cgrammar.y"
04061 { yyval.typequal = qual_createNeverExit (); ;
04062     break;}
04063 case 282:
04064 #line 871 "cgrammar.y"
04065 { yyval.typequal = qual_createNull (); ;
04066     break;}
04067 case 283:
04068 #line 872 "cgrammar.y"
04069 { yyval.typequal = qual_createRelNull (); ;
04070     break;}
04071 case 284:
04072 #line 873 "cgrammar.y"
04073 { yyval.typequal = qual_createReturned (); ;
04074     break;}
04075 case 285:
04076 #line 874 "cgrammar.y"
04077 { yyval.typequal = qual_createExposed (); ;
04078     break;}
04079 case 286:
04080 #line 875 "cgrammar.y"
04081 { yyval.typequal = qual_createObserver (); ;
04082     break;}
04083 case 287:
04084 #line 876 "cgrammar.y"
04085 { yyval.typequal = qual_createChecked (); ;
04086     break;}
04087 case 288:
04088 #line 877 "cgrammar.y"
04089 { yyval.typequal = qual_createCheckMod (); ;
04090     break;}
04091 case 289:
04092 #line 878 "cgrammar.y"
04093 { yyval.typequal = qual_createUnchecked (); ;
04094     break;}
04095 case 290:
04096 #line 879 "cgrammar.y"
04097 { yyval.typequal = qual_createCheckedStrict (); ;
04098     break;}
04099 case 291:
04100 #line 880 "cgrammar.y"
04101 { yyval.typequal = qual_createTrueNull (); ;
04102     break;}
04103 case 292:
04104 #line 881 "cgrammar.y"
04105 { yyval.typequal = qual_createFalseNull (); ;
04106     break;}
04107 case 293:
04108 #line 882 "cgrammar.y"
04109 { yyval.typequal = qual_createUnused (); ;
04110     break;}
04111 case 294:
04112 #line 883 "cgrammar.y"
04113 { yyval.typequal = qual_createExternal (); ;
04114     break;}
04115 case 295:
04116 #line 884 "cgrammar.y"
04117 { yyval.typequal = qual_createSef (); ;
04118     break;}
04119 case 296:
04120 #line 885 "cgrammar.y"
04121 { yyval.typequal = qual_createAbstract (); ;
04122     break;}
04123 case 297:
04124 #line 886 "cgrammar.y"
04125 { yyval.typequal = qual_createConcrete (); ;
04126     break;}
04127 case 298:
04128 #line 887 "cgrammar.y"
04129 { yyval.typequal = qual_createMutable (); ;
04130     break;}
04131 case 299:
04132 #line 888 "cgrammar.y"
04133 { yyval.typequal = qual_createImmutable (); ;
04134     break;}
04135 case 300:
04136 #line 889 "cgrammar.y"
04137 { yyval.typequal = qual_createNotNull (); ;
04138     break;}
04139 case 301:
04140 #line 890 "cgrammar.y"
04141 { yyval.typequal = qual_createRefCounted (); ;
04142     break;}
04143 case 302:
04144 #line 891 "cgrammar.y"
04145 { yyval.typequal = qual_createRefs (); ;
04146     break;}
04147 case 303:
04148 #line 892 "cgrammar.y"
04149 { yyval.typequal = qual_createKillRef (); ;
04150     break;}
04151 case 304:
04152 #line 893 "cgrammar.y"
04153 { yyval.typequal = qual_createRelDef (); ;
04154     break;}
04155 case 305:
04156 #line 894 "cgrammar.y"
04157 { yyval.typequal = qual_createNewRef (); ;
04158     break;}
04159 case 306:
04160 #line 895 "cgrammar.y"
04161 { yyval.typequal = qual_createTempRef (); ;
04162     break;}
04163 case 307:
04164 #line 898 "cgrammar.y"
04165 { yyval.typequal = qual_createShort (); ;
04166     break;}
04167 case 308:
04168 #line 899 "cgrammar.y"
04169 { yyval.typequal = qual_createLong (); ;
04170     break;}
04171 case 309:
04172 #line 900 "cgrammar.y"
04173 { yyval.typequal = qual_createSigned (); ;
04174     break;}
04175 case 310:
04176 #line 901 "cgrammar.y"
04177 { yyval.typequal = qual_createUnsigned (); ;
04178     break;}
04179 case 317:
04180 #line 910 "cgrammar.y"
04181 { yyval.ctyp = ctype_unknown; ;
04182     break;}
04183 case 318:
04184 #line 911 "cgrammar.y"
04185 { yyval.ctyp = ctype_anyintegral; ;
04186     break;}
04187 case 319:
04188 #line 912 "cgrammar.y"
04189 { yyval.ctyp = ctype_unsignedintegral; ;
04190     break;}
04191 case 320:
04192 #line 913 "cgrammar.y"
04193 { yyval.ctyp = ctype_signedintegral; ;
04194     break;}
04195 case 324:
04196 #line 917 "cgrammar.y"
04197 { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ;
04198     break;}
04199 case 325:
04200 #line 921 "cgrammar.y"
04201 { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ;
04202     break;}
04203 case 326:
04204 #line 924 "cgrammar.y"
04205 { yyval.qtyp = yyvsp[0].qtyp; ;
04206     break;}
04207 case 327:
04208 #line 926 "cgrammar.y"
04209 { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ;
04210     break;}
04211 case 329:
04212 #line 931 "cgrammar.y"
04213 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
04214     break;}
04215 case 330:
04216 #line 934 "cgrammar.y"
04217 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
04218     break;}
04219 case 331:
04220 #line 935 "cgrammar.y"
04221 { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ;
04222     break;}
04223 case 332:
04224 #line 936 "cgrammar.y"
04225 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
04226     break;}
04227 case 333:
04228 #line 939 "cgrammar.y"
04229 { yyval.qtyp = qtype_unknown (); ;
04230     break;}
04231 case 334:
04232 #line 940 "cgrammar.y"
04233 { yyval.qtyp = yyvsp[0].qtyp; ;
04234     break;}
04235 case 335:
04236 #line 943 "cgrammar.y"
04237 { sRef_setGlobalScopeSafe (); ;
04238     break;}
04239 case 336:
04240 #line 945 "cgrammar.y"
04241 { sRef_clearGlobalScopeSafe (); ;
04242     break;}
04243 case 337:
04244 #line 947 "cgrammar.y"
04245 { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ;
04246     break;}
04247 case 338:
04248 #line 948 "cgrammar.y"
04249 { sRef_setGlobalScopeSafe (); ;
04250     break;}
04251 case 339:
04252 #line 950 "cgrammar.y"
04253 { sRef_clearGlobalScopeSafe (); ;
04254     break;}
04255 case 340:
04256 #line 952 "cgrammar.y"
04257 { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ;
04258     break;}
04259 case 341:
04260 #line 954 "cgrammar.y"
04261 { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ;
04262     break;}
04263 case 342:
04264 #line 956 "cgrammar.y"
04265 { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ;
04266     break;}
04267 case 343:
04268 #line 957 "cgrammar.y"
04269 { sRef_setGlobalScopeSafe (); ;
04270     break;}
04271 case 344:
04272 #line 959 "cgrammar.y"
04273 { sRef_clearGlobalScopeSafe (); ;
04274     break;}
04275 case 345:
04276 #line 961 "cgrammar.y"
04277 { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ;
04278     break;}
04279 case 346:
04280 #line 962 "cgrammar.y"
04281 { sRef_setGlobalScopeSafe (); ;
04282     break;}
04283 case 347:
04284 #line 964 "cgrammar.y"
04285 { sRef_clearGlobalScopeSafe (); ;
04286     break;}
04287 case 348:
04288 #line 966 "cgrammar.y"
04289 { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ;
04290     break;}
04291 case 349:
04292 #line 968 "cgrammar.y"
04293 { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ;
04294     break;}
04295 case 350:
04296 #line 970 "cgrammar.y"
04297 { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ;
04298     break;}
04299 case 351:
04300 #line 971 "cgrammar.y"
04301 { yyval.ctyp = handleStruct (yyvsp[-1].cname); ;
04302     break;}
04303 case 352:
04304 #line 972 "cgrammar.y"
04305 { yyval.ctyp = handleUnion (yyvsp[-1].cname); ;
04306     break;}
04307 case 353:
04308 #line 975 "cgrammar.y"
04309 { g_expectingTypeName = FALSE; ;
04310     break;}
04311 case 355:
04312 #line 979 "cgrammar.y"
04313 { yyval.flist = uentryList_undefined; /* bogus! */ ;
04314     break;}
04315 case 356:
04316 #line 980 "cgrammar.y"
04317 { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ;
04318     break;}
04319 case 357:
04320 #line 984 "cgrammar.y"
04321 { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ;
04322     break;}
04323 case 358:
04324 #line 986 "cgrammar.y"
04325 { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ;
04326     break;}
04327 case 359:
04328 #line 990 "cgrammar.y"
04329 { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ;
04330     break;}
04331 case 360:
04332 #line 992 "cgrammar.y"
04333 { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ;
04334     break;}
04335 case 361:
04336 #line 995 "cgrammar.y"
04337 { yyval.ntyp = yyvsp[0].ntyp; ;
04338     break;}
04339 case 362:
04340 #line 996 "cgrammar.y"
04341 { yyval.ntyp = idDecl_undefined; ;
04342     break;}
04343 case 363:
04344 #line 997 "cgrammar.y"
04345 { yyval.ntyp = yyvsp[-3].ntyp; ;
04346     break;}
04347 case 364:
04348 #line 1002 "cgrammar.y"
04349 { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ;
04350     break;}
04351 case 365:
04352 #line 1003 "cgrammar.y"
04353 { context_pushLoc (); ;
04354     break;}
04355 case 366:
04356 #line 1004 "cgrammar.y"
04357 { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ;
04358     break;}
04359 case 367:
04360 #line 1005 "cgrammar.y"
04361 { yyval.ctyp = handleEnum (yyvsp[-1].cname); ;
04362     break;}
04363 case 368:
04364 #line 1009 "cgrammar.y"
04365 { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ;
04366     break;}
04367 case 369:
04368 #line 1011 "cgrammar.y"
04369 { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ;
04370     break;}
04371 case 371:
04372 #line 1016 "cgrammar.y"
04373 { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown);
04374      usymtab_supGlobalEntry (ue);
04375      yyval.cname = yyvsp[0].cname;
04376    ;
04377     break;}
04378 case 372:
04379 #line 1021 "cgrammar.y"
04380 { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr);
04381      usymtab_supGlobalEntry (ue);
04382      yyval.cname = yyvsp[-3].cname; 
04383    ;
04384     break;}
04385 case 374:
04386 #line 1028 "cgrammar.y"
04387 { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ;
04388     break;}
04389 case 375:
04390 #line 1030 "cgrammar.y"
04391 { 
04392      qtype qt = qtype_unknown ();
04393 
04394      qtype_adjustPointers (yyvsp[-1].count, qt);
04395      yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt);
04396    ;
04397     break;}
04398 case 376:
04399 #line 1037 "cgrammar.y"
04400 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
04401     break;}
04402 case 378:
04403 #line 1042 "cgrammar.y"
04404 { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ;
04405     break;}
04406 case 379:
04407 #line 1045 "cgrammar.y"
04408 { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ;
04409     break;}
04410 case 380:
04411 #line 1046 "cgrammar.y"
04412 { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ;
04413     break;}
04414 case 381:
04415 #line 1049 "cgrammar.y"
04416 { /* ignored for now */; ;
04417     break;}
04418 case 382:
04419 #line 1050 "cgrammar.y"
04420 { ; ;
04421     break;}
04422 case 383:
04423 #line 1053 "cgrammar.y"
04424 { ; ;
04425     break;}
04426 case 384:
04427 #line 1054 "cgrammar.y"
04428 { ; ;
04429     break;}
04430 case 385:
04431 #line 1057 "cgrammar.y"
04432 { yyval.count = 1; ;
04433     break;}
04434 case 386:
04435 #line 1058 "cgrammar.y"
04436 { yyval.count = 1; ;
04437     break;}
04438 case 387:
04439 #line 1059 "cgrammar.y"
04440 { yyval.count = 1 + yyvsp[0].count; ;
04441     break;}
04442 case 388:
04443 #line 1060 "cgrammar.y"
04444 { yyval.count = 1 + yyvsp[0].count; ;
04445     break;}
04446 case 390:
04447 #line 1064 "cgrammar.y"
04448 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
04449     break;}
04450 case 391:
04451 #line 1067 "cgrammar.y"
04452 { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
04453     break;}
04454 case 392:
04455 #line 1068 "cgrammar.y"
04456 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ;
04457     break;}
04458 case 393:
04459 #line 1071 "cgrammar.y"
04460 { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ;
04461     break;}
04462 case 395:
04463 #line 1073 "cgrammar.y"
04464 { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ;
04465     break;}
04466 case 396:
04467 #line 1076 "cgrammar.y"
04468 { storeLoc (); ;
04469     break;}
04470 case 397:
04471 #line 1076 "cgrammar.y"
04472 { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ;
04473     break;}
04474 case 398:
04475 #line 1077 "cgrammar.y"
04476 { storeLoc (); ;
04477     break;}
04478 case 399:
04479 #line 1078 "cgrammar.y"
04480 { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ;
04481     break;}
04482 case 400:
04483 #line 1082 "cgrammar.y"
04484 { 
04485      if (isFlipOldStyle ()) 
04486        { 
04487          llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); 
04488        }
04489      else 
04490        { 
04491          setNewStyle (); 
04492        }
04493      yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); 
04494    ;
04495     break;}
04496 case 401:
04497 #line 1094 "cgrammar.y"
04498 { 
04499      idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ());
04500 
04501      if (isNewStyle ()) 
04502        {
04503          llparseerror (message ("Inconsistent function parameter syntax: %q",
04504                                 idDecl_unparse (tparam))); 
04505        }
04506 
04507      setFlipOldStyle ();
04508      yyval.oentry = makeCurrentParam (tparam);
04509      idDecl_free (tparam);
04510    ;
04511     break;}
04512 case 403:
04513 #line 1110 "cgrammar.y"
04514 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
04515     break;}
04516 case 404:
04517 #line 1113 "cgrammar.y"
04518 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
04519     break;}
04520 case 406:
04521 #line 1115 "cgrammar.y"
04522 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
04523     break;}
04524 case 407:
04525 #line 1118 "cgrammar.y"
04526 { yyval.ctyp = ctype_unknown; ;
04527     break;}
04528 case 409:
04529 #line 1123 "cgrammar.y"
04530 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
04531     break;}
04532 case 410:
04533 #line 1124 "cgrammar.y"
04534 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
04535     break;}
04536 case 411:
04537 #line 1126 "cgrammar.y"
04538 { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ;
04539     break;}
04540 case 412:
04541 #line 1127 "cgrammar.y"
04542 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
04543     break;}
04544 case 413:
04545 #line 1129 "cgrammar.y"
04546 { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ;
04547     break;}
04548 case 414:
04549 #line 1131 "cgrammar.y"
04550 { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ;
04551     break;}
04552 case 415:
04553 #line 1133 "cgrammar.y"
04554 { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ;
04555     break;}
04556 case 416:
04557 #line 1135 "cgrammar.y"
04558 { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ;
04559     break;}
04560 case 417:
04561 #line 1137 "cgrammar.y"
04562 { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ;
04563     break;}
04564 case 427:
04565 #line 1153 "cgrammar.y"
04566 { yyval.expr = yyvsp[0].expr; ;
04567     break;}
04568 case 430:
04569 #line 1161 "cgrammar.y"
04570 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
04571     break;}
04572 case 431:
04573 #line 1165 "cgrammar.y"
04574 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ;
04575     break;}
04576 case 432:
04577 #line 1167 "cgrammar.y"
04578 { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ;
04579     break;}
04580 case 433:
04581 #line 1169 "cgrammar.y"
04582 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
04583     break;}
04584 case 434:
04585 #line 1171 "cgrammar.y"
04586 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ;
04587     break;}
04588 case 435:
04589 #line 1175 "cgrammar.y"
04590 { context_setProtectVars (); ;
04591     break;}
04592 case 436:
04593 #line 1175 "cgrammar.y"
04594 { context_sizeofReleaseVars (); ;
04595     break;}
04596 case 437:
04597 #line 1177 "cgrammar.y"
04598 { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); 
04599      context_enterForClause (yyvsp[-5].expr); ;
04600     break;}
04601 case 438:
04602 #line 1182 "cgrammar.y"
04603 { setProcessingIterVars (yyvsp[-2].entry); ;
04604     break;}
04605 case 439:
04606 #line 1184 "cgrammar.y"
04607 { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ;
04608     break;}
04609 case 440:
04610 #line 1185 "cgrammar.y"
04611 { yyval.expr = exprNode_createId (yyvsp[0].entry); ;
04612     break;}
04613 case 444:
04614 #line 1191 "cgrammar.y"
04615 { yyval.expr = yyvsp[0].expr; ;
04616     break;}
04617 case 452:
04618 #line 1199 "cgrammar.y"
04619 { yyval.expr = yyvsp[-1].expr; ;
04620     break;}
04621 case 453:
04622 #line 1200 "cgrammar.y"
04623 { yyval.expr = exprNode_makeError (); ;
04624     break;}
04625 case 454:
04626 #line 1204 "cgrammar.y"
04627 { /* don't: context_exitTrueClause ($1, $2); */
04628      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
04629    ;
04630     break;}
04631 case 455:
04632 #line 1209 "cgrammar.y"
04633 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04634     break;}
04635 case 456:
04636 #line 1212 "cgrammar.y"
04637 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04638     break;}
04639 case 467:
04640 #line 1227 "cgrammar.y"
04641 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
04642     break;}
04643 case 469:
04644 #line 1229 "cgrammar.y"
04645 { yyval.expr = exprNode_makeError (); ;
04646     break;}
04647 case 470:
04648 #line 1232 "cgrammar.y"
04649 { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ;
04650     break;}
04651 case 471:
04652 #line 1233 "cgrammar.y"
04653 { yyval.expr = exprNode_notReached (yyvsp[0].expr); ;
04654     break;}
04655 case 472:
04656 #line 1239 "cgrammar.y"
04657 { context_enterCaseClause (yyvsp[0].expr); ;
04658     break;}
04659 case 473:
04660 #line 1240 "cgrammar.y"
04661 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ;
04662     break;}
04663 case 474:
04664 #line 1241 "cgrammar.y"
04665 { context_enterCaseClause (yyvsp[0].expr); ;
04666     break;}
04667 case 475:
04668 #line 1242 "cgrammar.y"
04669 { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ;
04670     break;}
04671 case 476:
04672 #line 1245 "cgrammar.y"
04673 { context_enterCaseClause (exprNode_undefined); ;
04674     break;}
04675 case 477:
04676 #line 1246 "cgrammar.y"
04677 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ;
04678     break;}
04679 case 478:
04680 #line 1247 "cgrammar.y"
04681 { context_enterCaseClause (exprNode_undefined); ;
04682     break;}
04683 case 479:
04684 #line 1248 "cgrammar.y"
04685 { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ;
04686     break;}
04687 case 480:
04688 #line 1251 "cgrammar.y"
04689 { yyval.expr = yyvsp[-1].expr; ;
04690     break;}
04691 case 481:
04692 #line 1253 "cgrammar.y"
04693 { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ;
04694     break;}
04695 case 482:
04696 #line 1256 "cgrammar.y"
04697 { yyval.expr = yyvsp[-1].expr; ;
04698     break;}
04699 case 483:
04700 #line 1259 "cgrammar.y"
04701 { context_enterInnerContext (); ;
04702     break;}
04703 case 484:
04704 #line 1262 "cgrammar.y"
04705 { context_exitInnerPlain (); ;
04706     break;}
04707 case 485:
04708 #line 1265 "cgrammar.y"
04709 { context_enterStructInnerContext (); ;
04710     break;}
04711 case 486:
04712 #line 1268 "cgrammar.y"
04713 { context_exitStructInnerContext (); ;
04714     break;}
04715 case 487:
04716 #line 1271 "cgrammar.y"
04717 { context_exitInnerSafe (); ;
04718     break;}
04719 case 488:
04720 #line 1274 "cgrammar.y"
04721 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04722     break;}
04723 case 489:
04724 #line 1275 "cgrammar.y"
04725 { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ;
04726     break;}
04727 case 490:
04728 #line 1276 "cgrammar.y"
04729 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
04730     break;}
04731 case 491:
04732 #line 1278 "cgrammar.y"
04733 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
04734     break;}
04735 case 492:
04736 #line 1279 "cgrammar.y"
04737 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
04738     break;}
04739 case 493:
04740 #line 1281 "cgrammar.y"
04741 { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ;
04742     break;}
04743 case 494:
04744 #line 1283 "cgrammar.y"
04745 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
04746     break;}
04747 case 495:
04748 #line 1285 "cgrammar.y"
04749 { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), 
04750                                                         lltok_getLoc (yyvsp[-1].tok))); 
04751    ;
04752     break;}
04753 case 496:
04754 #line 1292 "cgrammar.y"
04755 { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ;
04756     break;}
04757 case 497:
04758 #line 1296 "cgrammar.y"
04759 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04760     break;}
04761 case 498:
04762 #line 1298 "cgrammar.y"
04763 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
04764     break;}
04765 case 499:
04766 #line 1300 "cgrammar.y"
04767 { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ;
04768     break;}
04769 case 500:
04770 #line 1302 "cgrammar.y"
04771 { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ;
04772     break;}
04773 case 502:
04774 #line 1306 "cgrammar.y"
04775 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
04776     break;}
04777 case 503:
04778 #line 1309 "cgrammar.y"
04779 { yyval.expr = yyvsp[0].expr; ;
04780     break;}
04781 case 504:
04782 #line 1310 "cgrammar.y"
04783 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
04784     break;}
04785 case 505:
04786 #line 1313 "cgrammar.y"
04787 { yyval.expr = yyvsp[0].expr; ;
04788     break;}
04789 case 506:
04790 #line 1314 "cgrammar.y"
04791 { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ;
04792     break;}
04793 case 507:
04794 #line 1317 "cgrammar.y"
04795 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04796     break;}
04797 case 508:
04798 #line 1318 "cgrammar.y"
04799 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
04800     break;}
04801 case 509:
04802 #line 1321 "cgrammar.y"
04803 { yyval.expr = exprNode_createTok (yyvsp[0].tok); ;
04804     break;}
04805 case 510:
04806 #line 1322 "cgrammar.y"
04807 { yyval.expr = exprNode_statement (yyvsp[-1].expr); ;
04808     break;}
04809 case 511:
04810 #line 1323 "cgrammar.y"
04811 { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ;
04812     break;}
04813 case 512:
04814 #line 1327 "cgrammar.y"
04815 { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ;
04816     break;}
04817 case 513:
04818 #line 1335 "cgrammar.y"
04819 { 
04820      context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr);
04821      yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); 
04822    ;
04823     break;}
04824 case 514:
04825 #line 1339 "cgrammar.y"
04826 { context_enterFalseClause (yyvsp[-2].expr); ;
04827     break;}
04828 case 515:
04829 #line 1340 "cgrammar.y"
04830 {
04831      context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr);
04832      yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); 
04833    ;
04834     break;}
04835 case 516:
04836 #line 1344 "cgrammar.y"
04837 { context_enterSwitch (yyvsp[0].expr); ;
04838     break;}
04839 case 517:
04840 #line 1345 "cgrammar.y"
04841 { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ;
04842     break;}
04843 case 518:
04844 #line 1349 "cgrammar.y"
04845 { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ;
04846     break;}
04847 case 519:
04848 #line 1353 "cgrammar.y"
04849 { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ;
04850     break;}
04851 case 520:
04852 #line 1356 "cgrammar.y"
04853 { context_enterIterClause (); ;
04854     break;}
04855 case 521:
04856 #line 1357 "cgrammar.y"
04857 { setProcessingIterVars (yyvsp[-3].entry); ;
04858     break;}
04859 case 522:
04860 #line 1360 "cgrammar.y"
04861 { 
04862      yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); 
04863 
04864    ;
04865     break;}
04866 case 523:
04867 #line 1366 "cgrammar.y"
04868 { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ;
04869     break;}
04870 case 524:
04871 #line 1367 "cgrammar.y"
04872 { nextIterParam (); ;
04873     break;}
04874 case 525:
04875 #line 1368 "cgrammar.y"
04876 { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ;
04877     break;}
04878 case 526:
04879 #line 1371 "cgrammar.y"
04880 { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ;
04881     break;}
04882 case 527:
04883 #line 1372 "cgrammar.y"
04884 { yyval.expr = exprNode_iterId (yyvsp[0].entry); ;
04885     break;}
04886 case 528:
04887 #line 1373 "cgrammar.y"
04888 { uentry ue = coerceIterId (yyvsp[0].cname);
04889 
04890                       if (uentry_isValid (ue)) 
04891                         {
04892                           yyval.expr = exprNode_iterId (ue);
04893                         }
04894                       else
04895                         {
04896                           yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ()));
04897                         }
04898                     ;
04899     break;}
04900 case 529:
04901 #line 1384 "cgrammar.y"
04902 { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ;
04903     break;}
04904 case 531:
04905 #line 1392 "cgrammar.y"
04906 { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ;
04907     break;}
04908 case 533:
04909 #line 1396 "cgrammar.y"
04910 { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ;
04911     break;}
04912 case 534:
04913 #line 1397 "cgrammar.y"
04914 { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ;
04915     break;}
04916 case 535:
04917 #line 1398 "cgrammar.y"
04918 { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ;
04919     break;}
04920 case 536:
04921 #line 1400 "cgrammar.y"
04922 { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ;
04923     break;}
04924 case 537:
04925 #line 1401 "cgrammar.y"
04926 { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
04927     break;}
04928 case 538:
04929 #line 1402 "cgrammar.y"
04930 { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ;
04931     break;}
04932 case 539:
04933 #line 1403 "cgrammar.y"
04934 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
04935     break;}
04936 case 540:
04937 #line 1404 "cgrammar.y"
04938 { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ;
04939     break;}
04940 case 542:
04941 #line 1408 "cgrammar.y"
04942 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04943     break;}
04944 case 543:
04945 #line 1409 "cgrammar.y"
04946 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04947     break;}
04948 case 544:
04949 #line 1410 "cgrammar.y"
04950 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04951     break;}
04952 case 545:
04953 #line 1411 "cgrammar.y"
04954 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04955     break;}
04956 case 546:
04957 #line 1412 "cgrammar.y"
04958 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04959     break;}
04960 case 547:
04961 #line 1413 "cgrammar.y"
04962 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04963     break;}
04964 case 548:
04965 #line 1414 "cgrammar.y"
04966 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04967     break;}
04968 case 549:
04969 #line 1415 "cgrammar.y"
04970 { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ;
04971     break;}
04972 case 550:
04973 #line 1416 "cgrammar.y"
04974 { yyval.expr = yyvsp[0].expr; ;
04975     break;}
04976 case 552:
04977 #line 1420 "cgrammar.y"
04978 { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ;
04979     break;}
04980 case 554:
04981 #line 1424 "cgrammar.y"
04982 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
04983     break;}
04984 case 555:
04985 #line 1425 "cgrammar.y"
04986 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
04987     break;}
04988 case 556:
04989 #line 1426 "cgrammar.y"
04990 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
04991     break;}
04992 case 558:
04993 #line 1430 "cgrammar.y"
04994 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
04995     break;}
04996 case 559:
04997 #line 1431 "cgrammar.y"
04998 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
04999     break;}
05000 case 561:
05001 #line 1435 "cgrammar.y"
05002 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05003     break;}
05004 case 562:
05005 #line 1436 "cgrammar.y"
05006 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05007     break;}
05008 case 564:
05009 #line 1440 "cgrammar.y"
05010 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05011     break;}
05012 case 565:
05013 #line 1441 "cgrammar.y"
05014 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05015     break;}
05016 case 566:
05017 #line 1442 "cgrammar.y"
05018 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05019     break;}
05020 case 567:
05021 #line 1443 "cgrammar.y"
05022 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05023     break;}
05024 case 569:
05025 #line 1447 "cgrammar.y"
05026 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05027     break;}
05028 case 570:
05029 #line 1448 "cgrammar.y"
05030 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05031     break;}
05032 case 572:
05033 #line 1452 "cgrammar.y"
05034 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05035     break;}
05036 case 574:
05037 #line 1456 "cgrammar.y"
05038 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05039     break;}
05040 case 576:
05041 #line 1461 "cgrammar.y"
05042 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05043     break;}
05044 case 578:
05045 #line 1465 "cgrammar.y"
05046 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05047     break;}
05048 case 580:
05049 #line 1469 "cgrammar.y"
05050 { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05051     break;}
05052 case 582:
05053 #line 1473 "cgrammar.y"
05054 { context_enterTrueClause (yyvsp[-1].expr); ;
05055     break;}
05056 case 583:
05057 #line 1474 "cgrammar.y"
05058 { context_enterFalseClause (yyvsp[-4].expr); ;
05059     break;}
05060 case 584:
05061 #line 1475 "cgrammar.y"
05062 { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ;
05063     break;}
05064 case 586:
05065 #line 1479 "cgrammar.y"
05066 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05067     break;}
05068 case 587:
05069 #line 1480 "cgrammar.y"
05070 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05071     break;}
05072 case 588:
05073 #line 1481 "cgrammar.y"
05074 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05075     break;}
05076 case 589:
05077 #line 1482 "cgrammar.y"
05078 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05079     break;}
05080 case 590:
05081 #line 1483 "cgrammar.y"
05082 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05083     break;}
05084 case 591:
05085 #line 1484 "cgrammar.y"
05086 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05087     break;}
05088 case 592:
05089 #line 1485 "cgrammar.y"
05090 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05091     break;}
05092 case 593:
05093 #line 1486 "cgrammar.y"
05094 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05095     break;}
05096 case 594:
05097 #line 1487 "cgrammar.y"
05098 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05099     break;}
05100 case 595:
05101 #line 1488 "cgrammar.y"
05102 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05103     break;}
05104 case 596:
05105 #line 1489 "cgrammar.y"
05106 { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ;
05107     break;}
05108 case 597:
05109 #line 1492 "cgrammar.y"
05110 { yyval.entry = yyvsp[0].entry; ;
05111     break;}
05112 case 598:
05113 #line 1493 "cgrammar.y"
05114 { yyval.entry = uentry_undefined; ;
05115     break;}
05116 case 599:
05117 #line 1496 "cgrammar.y"
05118 { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ;
05119     break;}
05120 case 600:
05121 #line 1500 "cgrammar.y"
05122 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
05123     break;}
05124 case 601:
05125 #line 1502 "cgrammar.y"
05126 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
05127     break;}
05128 case 602:
05129 #line 1504 "cgrammar.y"
05130 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
05131     break;}
05132 case 603:
05133 #line 1507 "cgrammar.y"
05134 { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ;
05135     break;}
05136 case 604:
05137 #line 1509 "cgrammar.y"
05138 { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr)); ;
05139     break;}
05140 case 605:
05141 #line 1511 "cgrammar.y"
05142 { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ;
05143     break;}
05144 case 606:
05145 #line 1512 "cgrammar.y"
05146 { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ;
05147     break;}
05148 case 607:
05149 #line 1515 "cgrammar.y"
05150 { yyval.expr = exprNode_goto (yyvsp[-1].cname); ;
05151     break;}
05152 case 608:
05153 #line 1516 "cgrammar.y"
05154 { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ;
05155     break;}
05156 case 609:
05157 #line 1518 "cgrammar.y"
05158 { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ;
05159     break;}
05160 case 610:
05161 #line 1519 "cgrammar.y"
05162 { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ;
05163     break;}
05164 case 611:
05165 #line 1520 "cgrammar.y"
05166 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ;
05167     break;}
05168 case 612:
05169 #line 1521 "cgrammar.y"
05170 { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ;
05171     break;}
05172 case 613:
05173 #line 1522 "cgrammar.y"
05174 { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ;
05175     break;}
05176 case 614:
05177 #line 1523 "cgrammar.y"
05178 { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ;
05179     break;}
05180 case 615:
05181 #line 1524 "cgrammar.y"
05182 { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ;
05183     break;}
05184 case 616:
05185 #line 1525 "cgrammar.y"
05186 { yyval.expr = exprNode_return (yyvsp[-1].expr); ;
05187     break;}
05188 case 618:
05189 #line 1529 "cgrammar.y"
05190 { ; ;
05191     break;}
05192 case 621:
05193 #line 1536 "cgrammar.y"
05194 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
05195     break;}
05196 case 622:
05197 #line 1537 "cgrammar.y"
05198 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
05199     break;}
05200 case 623:
05201 #line 1538 "cgrammar.y"
05202 { yyval.cname = uentry_getName (yyvsp[0].entry); ;
05203     break;}
05204 case 624:
05205 #line 1539 "cgrammar.y"
05206 { yyval.cname = yyvsp[0].cname; ;
05207     break;}
05208 case 626:
05209 #line 1543 "cgrammar.y"
05210 { yyval.ctyp = ctype_unknown; ;
05211     break;}
05212 }
05213    /* the action file gets copied in in place of this dollarsign */
05214 #line 543 "/af10/evans/bison-1.28/share/bison.simple"
05215 
05216   yyvsp -= yylen;
05217   yyssp -= yylen;
05218 #ifdef YYLSP_NEEDED
05219   yylsp -= yylen;
05220 #endif
05221 
05222 #if YYDEBUG != 0
05223   if (yydebug)
05224     {
05225       short *ssp1 = yyss - 1;
05226       fprintf (stderr, "state stack now");
05227       while (ssp1 != yyssp)
05228         fprintf (stderr, " %d", *++ssp1);
05229       fprintf (stderr, "\n");
05230     }
05231 #endif
05232 
05233   *++yyvsp = yyval;
05234 
05235 #ifdef YYLSP_NEEDED
05236   yylsp++;
05237   if (yylen == 0)
05238     {
05239       yylsp->first_line = yylloc.first_line;
05240       yylsp->first_column = yylloc.first_column;
05241       yylsp->last_line = (yylsp-1)->last_line;
05242       yylsp->last_column = (yylsp-1)->last_column;
05243       yylsp->text = 0;
05244     }
05245   else
05246     {
05247       yylsp->last_line = (yylsp+yylen-1)->last_line;
05248       yylsp->last_column = (yylsp+yylen-1)->last_column;
05249     }
05250 #endif
05251 
05252   /* Now "shift" the result of the reduction.
05253      Determine what state that goes to,
05254      based on the state we popped back to
05255      and the rule number reduced by.  */
05256 
05257   yyn = yyr1[yyn];
05258 
05259   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
05260   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
05261     yystate = yytable[yystate];
05262   else
05263     yystate = yydefgoto[yyn - YYNTBASE];
05264 
05265   goto yynewstate;
05266 
05267 yyerrlab:   /* here on detecting error */
05268 
05269   if (! yyerrstatus)
05270     /* If not already recovering from an error, report this error.  */
05271     {
05272       ++yynerrs;
05273 
05274 #ifdef YYERROR_VERBOSE
05275       yyn = yypact[yystate];
05276 
05277       if (yyn > YYFLAG && yyn < YYLAST)
05278         {
05279           int size = 0;
05280           char *msg;
05281           int x, count;
05282 
05283           count = 0;
05284           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
05285           for (x = (yyn < 0 ? -yyn : 0);
05286                x < (sizeof(yytname) / sizeof(char *)); x++)
05287             if (yycheck[x + yyn] == x)
05288               size += strlen(yytname[x]) + 15, count++;
05289           msg = (char *) malloc(size + 15);
05290           if (msg != 0)
05291             {
05292               strcpy(msg, "parse error");
05293 
05294               if (count < 5)
05295                 {
05296                   count = 0;
05297                   for (x = (yyn < 0 ? -yyn : 0);
05298                        x < (sizeof(yytname) / sizeof(char *)); x++)
05299                     if (yycheck[x + yyn] == x)
05300                       {
05301                         strcat(msg, count == 0 ? ", expecting `" : " or `");
05302                         strcat(msg, yytname[x]);
05303                         strcat(msg, "'");
05304                         count++;
05305                       }
05306                 }
05307               yyerror(msg);
05308               free(msg);
05309             }
05310           else
05311             yyerror ("parse error; also virtual memory exceeded");
05312         }
05313       else
05314 #endif /* YYERROR_VERBOSE */
05315         yyerror("parse error");
05316     }
05317 
05318   goto yyerrlab1;
05319 yyerrlab1:   /* here on error raised explicitly by an action */
05320 
05321   if (yyerrstatus == 3)
05322     {
05323       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
05324 
05325       /* return failure if at end of input */
05326       if (yychar == YYEOF)
05327         YYABORT;
05328 
05329 #if YYDEBUG != 0
05330       if (yydebug)
05331         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
05332 #endif
05333 
05334       yychar = YYEMPTY;
05335     }
05336 
05337   /* Else will try to reuse lookahead token
05338      after shifting the error token.  */
05339 
05340   yyerrstatus = 3;              /* Each real token shifted decrements this */
05341 
05342   goto yyerrhandle;
05343 
05344 yyerrdefault:  /* current state does not do anything special for the error token. */
05345 
05346 #if 0
05347   /* This is wrong; only states that explicitly want error tokens
05348      should shift them.  */
05349   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
05350   if (yyn) goto yydefault;
05351 #endif
05352 
05353 yyerrpop:   /* pop the current state because it cannot handle the error token */
05354 
05355   if (yyssp == yyss) YYABORT;
05356   yyvsp--;
05357   yystate = *--yyssp;
05358 #ifdef YYLSP_NEEDED
05359   yylsp--;
05360 #endif
05361 
05362 #if YYDEBUG != 0
05363   if (yydebug)
05364     {
05365       short *ssp1 = yyss - 1;
05366       fprintf (stderr, "Error: state stack now");
05367       while (ssp1 != yyssp)
05368         fprintf (stderr, " %d", *++ssp1);
05369       fprintf (stderr, "\n");
05370     }
05371 #endif
05372 
05373 yyerrhandle:
05374 
05375   yyn = yypact[yystate];
05376   if (yyn == YYFLAG)
05377     goto yyerrdefault;
05378 
05379   yyn += YYTERROR;
05380   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
05381     goto yyerrdefault;
05382 
05383   yyn = yytable[yyn];
05384   if (yyn < 0)
05385     {
05386       if (yyn == YYFLAG)
05387         goto yyerrpop;
05388       yyn = -yyn;
05389       goto yyreduce;
05390     }
05391   else if (yyn == 0)
05392     goto yyerrpop;
05393 
05394   if (yyn == YYFINAL)
05395     YYACCEPT;
05396 
05397 #if YYDEBUG != 0
05398   if (yydebug)
05399     fprintf(stderr, "Shifting error token, ");
05400 #endif
05401 
05402   *++yyvsp = yylval;
05403 #ifdef YYLSP_NEEDED
05404   *++yylsp = yylloc;
05405 #endif
05406 
05407   yystate = yyn;
05408   goto yynewstate;
05409 
05410  yyacceptlab:
05411   /* YYACCEPT comes here.  */
05412   if (yyfree_stacks)
05413     {
05414       free (yyss);
05415       free (yyvs);
05416 #ifdef YYLSP_NEEDED
05417       free (yyls);
05418 #endif
05419     }
05420   return 0;
05421 
05422  yyabortlab:
05423   /* YYABORT comes here.  */
05424   if (yyfree_stacks)
05425     {
05426       free (yyss);
05427       free (yyvs);
05428 #ifdef YYLSP_NEEDED
05429       free (yyls);
05430 #endif
05431     }
05432   return 1;
05433 }
05434 #line 1545 "cgrammar.y"
05435 
05436 
05437 /*@-redecl@*/
05438 extern char *yytext;
05439 /*@=redecl@*/
05440 
05441 # include "bison.reset"
05442 
05443 void yyerror (/*@unused@*/ char *s) 
05444 {
05445   static bool givehint = FALSE;
05446 
05447   if (context_inIterDef ())
05448     {
05449       llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", 
05450                                     context_inFunctionName ()));
05451     }
05452   else if (context_inIterEnd ())
05453     {
05454       llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", 
05455                                     context_inFunctionName ()));
05456     }
05457   else if (context_inMacro ())
05458     {
05459       llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", 
05460                                     context_inFunctionName ()));
05461       
05462       if (context_inMacroUnknown ())
05463         {
05464           if (!givehint)
05465             {
05466               llhint (cstring_makeLiteral 
05467                      ("Precede macro definition with /*@notfunction@*/ "
05468                       "to suppress checking and force expansion"));
05469               givehint = TRUE;
05470             }
05471         }
05472 
05473       swallowMacro ();
05474     }
05475   else
05476     {
05477       llparseerror (cstring_undefined);
05478     }
05479 }
05480 
05481 
05482 
05483 
05484 
05485 
05486 
05487 
05488 
05489 
05490 
05491 
05492 

Generated at Fri Nov 3 18:57:39 2000 for LCLint by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000