objc-parse.c   [plain text]



/*  A Bison parser, made from objc-parse.y
 by  GNU Bison version 1.25
  */

#define YYBISON 1  /* Identify Bison output.  */

#define	IDENTIFIER	258
#define	TYPENAME	259
#define	SCSPEC	260
#define	TYPESPEC	261
#define	TYPE_QUAL	262
#define	CONSTANT	263
#define	STRING	264
#define	ELLIPSIS	265
#define	SIZEOF	266
#define	ENUM	267
#define	STRUCT	268
#define	UNION	269
#define	IF	270
#define	ELSE	271
#define	WHILE	272
#define	DO	273
#define	FOR	274
#define	SWITCH	275
#define	CASE	276
#define	DEFAULT	277
#define	BREAK	278
#define	CONTINUE	279
#define	RETURN	280
#define	GOTO	281
#define	ASM_KEYWORD	282
#define	TYPEOF	283
#define	ALIGNOF	284
#define	ATTRIBUTE	285
#define	EXTENSION	286
#define	LABEL	287
#define	REALPART	288
#define	IMAGPART	289
#define	VEC_STEP	290
#define	ASSIGN	291
#define	OROR	292
#define	ANDAND	293
#define	EQCOMPARE	294
#define	ARITHCOMPARE	295
#define	LSHIFT	296
#define	RSHIFT	297
#define	UNARY	298
#define	PLUSPLUS	299
#define	MINUSMINUS	300
#define	HYPERUNARY	301
#define	POINTSAT	302
#define	INTERFACE	303
#define	IMPLEMENTATION	304
#define	END	305
#define	SELECTOR	306
#define	DEFS	307
#define	ENCODE	308
#define	CLASSNAME	309
#define	PUBLIC	310
#define	PRIVATE	311
#define	PROTECTED	312
#define	PROTOCOL	313
#define	OBJECTNAME	314
#define	CLASS	315
#define	ALIAS	316
#define	OBJC_STRING	317

#line 56 "objc-parse.y"

#include "config.h"
#include "system.h"
#include <setjmp.h>

#include "tree.h"
#include "input.h"
#include "c-lex.h"
#include "c-tree.h"
#include "flags.h"
#include "output.h"
#include "toplev.h"

#ifdef MULTIBYTE_CHARS
#include <locale.h>
#endif

#include "objc-act.h"

/* Since parsers are distinct for each language, put the language string
   definition here.  */
char *language_string = "GNU Obj-C";

static tree last_compound_expr, last_compound_list;

#ifndef errno
extern int errno;
#endif

void yyerror ();

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

#line 96 "objc-parse.y"
typedef union {long itype; tree ttype; enum tree_code code;
	char *filename; int lineno; int ends_in_label; } YYSTYPE;
#line 229 "objc-parse.y"

/* Number of statements (loosely speaking) and compound statements 
   seen so far.  */
static int stmt_count;
static int compstmt_count;
  
/* Input file and line number of the end of the body of last simple_if;
   used by the stmt-rule immediately after simple_if returns.  */
static char *if_stmt_file;
static int if_stmt_line;

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs = NULL_TREE;
static tree prefix_attributes = NULL_TREE;

/* Stack of saved values of current_declspecs and prefix_attributes.  */
static tree declspec_stack;

/* 1 if we explained undeclared var errors.  */
static int undeclared_variable_notice;

/* Objective-C specific information */

tree objc_interface_context;
tree objc_implementation_context;
tree objc_method_context;
tree objc_ivar_chain;
tree objc_ivar_context;
enum tree_code objc_inherit_code;
int objc_receiver_context;
int objc_public_flag;
#ifdef MODERN_OBJC_SYNTAX
extern flag_modern_objc_syntax;
#endif


/* Tell yyparse how to print a token's value, if yydebug is set.  */

#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint			PROTO ((FILE *, int, YYSTYPE));
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define	YYFINAL		1003
#define	YYFLAG		-32768
#define	YYNTBASE	85

#define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 320)

static const char yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    81,     2,     2,     2,    53,    44,     2,    60,
    77,    51,    49,    82,    50,    59,    52,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    39,    78,     2,
    37,     2,    38,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    61,     2,    84,    43,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    83,    42,    79,    80,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
    36,    40,    41,    45,    46,    47,    48,    54,    55,    56,
    57,    58,    62,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75,    76
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,     8,    12,    14,    16,    18,
    24,    27,    31,    36,    41,    44,    47,    50,    53,    55,
    56,    57,    65,    70,    71,    72,    80,    85,    86,    87,
    94,    98,   100,   102,   104,   106,   108,   110,   112,   114,
   116,   118,   120,   122,   123,   125,   127,   131,   133,   136,
   139,   142,   145,   148,   153,   156,   161,   164,   169,   172,
   175,   177,   179,   181,   183,   188,   189,   197,   199,   203,
   207,   211,   215,   219,   223,   227,   231,   235,   239,   243,
   247,   248,   253,   254,   259,   260,   261,   269,   270,   276,
   280,   284,   286,   288,   290,   294,   298,   299,   304,   309,
   314,   318,   322,   326,   329,   332,   334,   336,   338,   340,
   342,   344,   347,   349,   352,   353,   355,   358,   362,   364,
   366,   369,   372,   377,   382,   385,   388,   392,   394,   396,
   399,   402,   403,   404,   409,   414,   418,   422,   425,   428,
   431,   434,   438,   439,   442,   445,   448,   451,   455,   456,
   459,   462,   464,   466,   469,   472,   474,   476,   479,   482,
   485,   489,   490,   493,   495,   497,   499,   502,   505,   507,
   512,   517,   519,   521,   523,   525,   529,   531,   535,   536,
   541,   542,   549,   553,   554,   561,   565,   566,   568,   570,
   573,   580,   582,   586,   587,   589,   594,   601,   606,   608,
   610,   612,   614,   616,   617,   622,   624,   625,   628,   630,
   634,   638,   641,   642,   647,   649,   650,   655,   657,   659,
   661,   664,   667,   668,   676,   677,   683,   684,   689,   690,
   695,   696,   702,   703,   704,   710,   711,   712,   718,   720,
   722,   726,   730,   735,   739,   743,   747,   749,   751,   755,
   760,   764,   768,   772,   774,   776,   780,   784,   788,   793,
   797,   801,   803,   805,   808,   810,   813,   815,   818,   819,
   827,   833,   836,   837,   845,   851,   854,   855,   864,   865,
   873,   876,   877,   879,   880,   882,   884,   887,   888,   892,
   895,   900,   904,   906,   910,   912,   914,   917,   919,   923,
   928,   935,   941,   943,   947,   949,   951,   955,   958,   961,
   962,   964,   966,   969,   970,   973,   977,   981,   984,   988,
   993,   997,  1000,  1004,  1007,  1011,  1013,  1015,  1018,  1021,
  1022,  1024,  1027,  1028,  1029,  1031,  1033,  1036,  1040,  1042,
  1045,  1047,  1050,  1057,  1063,  1069,  1072,  1075,  1080,  1081,
  1086,  1087,  1088,  1092,  1097,  1101,  1103,  1105,  1107,  1109,
  1112,  1113,  1118,  1120,  1124,  1125,  1126,  1134,  1140,  1143,
  1144,  1145,  1146,  1159,  1160,  1167,  1170,  1173,  1176,  1180,
  1187,  1196,  1207,  1220,  1224,  1229,  1231,  1233,  1234,  1241,
  1245,  1251,  1254,  1258,  1259,  1261,  1262,  1264,  1265,  1267,
  1269,  1273,  1278,  1280,  1284,  1285,  1288,  1291,  1292,  1297,
  1300,  1301,  1303,  1305,  1309,  1311,  1315,  1320,  1325,  1330,
  1335,  1340,  1341,  1344,  1346,  1349,  1351,  1355,  1357,  1361,
  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1381,  1385,
  1390,  1391,  1392,  1403,  1404,  1411,  1412,  1413,  1426,  1427,
  1436,  1437,  1444,  1447,  1448,  1457,  1462,  1463,  1473,  1479,
  1480,  1487,  1491,  1492,  1494,  1498,  1502,  1504,  1506,  1508,
  1510,  1511,  1515,  1518,  1522,  1526,  1528,  1529,  1531,  1535,
  1537,  1541,  1544,  1545,  1546,  1547,  1555,  1556,  1557,  1558,
  1566,  1567,  1568,  1571,  1573,  1575,  1578,  1579,  1583,  1585,
  1587,  1588,  1589,  1595,  1596,  1597,  1603,  1605,  1608,  1613,
  1619,  1621,  1627,  1634,  1637,  1638,  1641,  1642,  1644,  1646,
  1648,  1651,  1654,  1659,  1662,  1665,  1667,  1671,  1674,  1677,
  1680,  1681,  1684,  1685,  1689,  1691,  1693,  1696,  1698,  1700,
  1702,  1704,  1706,  1708,  1710,  1712,  1714,  1716,  1718,  1720,
  1722,  1724,  1726,  1728,  1730,  1732,  1734,  1736,  1738,  1740,
  1742,  1744,  1746,  1753,  1757,  1763,  1766,  1768,  1770,  1772,
  1775,  1777,  1781,  1784,  1786,  1788,  1789,  1793,  1797,  1798,
  1805,  1807,  1809,  1811,  1814,  1817,  1819,  1824,  1829
};

static const short yyrhs[] = {    -1,
    86,     0,     0,    87,    89,     0,     0,    86,    88,    89,
     0,    91,     0,    90,     0,   249,     0,    27,    60,   100,
    77,    78,     0,   248,    89,     0,   125,   139,    78,     0,
   132,   125,   139,    78,     0,   128,   125,   138,    78,     0,
   132,    78,     0,   128,    78,     0,     1,    78,     0,     1,
    79,     0,    78,     0,     0,     0,   128,   125,   172,    92,
   119,    93,   206,     0,   128,   125,   172,     1,     0,     0,
     0,   132,   125,   175,    94,   119,    95,   206,     0,   132,
   125,   175,     1,     0,     0,     0,   125,   175,    96,   119,
    97,   206,     0,   125,   175,     1,     0,     3,     0,     4,
     0,    73,     0,    68,     0,    44,     0,    50,     0,    49,
     0,    55,     0,    56,     0,    80,     0,    81,     0,   102,
     0,     0,   102,     0,   109,     0,   102,    82,   109,     0,
   115,     0,    51,   107,     0,   248,   107,     0,    99,   107,
     0,    41,    98,     0,   104,   103,     0,   104,    60,   193,
    77,     0,   105,   103,     0,   105,    60,   193,    77,     0,
   106,   103,     0,   106,    60,   193,    77,     0,    33,   107,
     0,    34,   107,     0,    11,     0,    29,     0,    35,     0,
   103,     0,    60,   193,    77,   107,     0,     0,    60,   193,
    77,    83,   108,   153,    79,     0,   107,     0,   109,    49,
   109,     0,   109,    50,   109,     0,   109,    51,   109,     0,
   109,    52,   109,     0,   109,    53,   109,     0,   109,    47,
   109,     0,   109,    48,   109,     0,   109,    46,   109,     0,
   109,    45,   109,     0,   109,    44,   109,     0,   109,    42,
   109,     0,   109,    43,   109,     0,     0,   109,    41,   110,
   109,     0,     0,   109,    40,   111,   109,     0,     0,     0,
   109,    38,   112,   100,    39,   113,   109,     0,     0,   109,
    38,   114,    39,   109,     0,   109,    37,   109,     0,   109,
    36,   109,     0,     3,     0,     8,     0,   117,     0,    60,
   100,    77,     0,    60,     1,    77,     0,     0,    60,   116,
   208,    77,     0,   115,    60,   101,    77,     0,   115,    61,
   100,    84,     0,    68,    59,    98,     0,   115,    59,    98,
     0,   115,    58,    98,     0,   115,    55,     0,   115,    56,
     0,   312,     0,   317,     0,   318,     0,   319,     0,   118,
     0,     9,     0,   117,     9,     0,    76,     0,   118,    76,
     0,     0,   121,     0,   121,    10,     0,   213,   214,   122,
     0,   120,     0,   201,     0,   121,   120,     0,   120,   201,
     0,   130,   125,   138,    78,     0,   133,   125,   139,    78,
     0,   130,    78,     0,   133,    78,     0,   213,   214,   127,
     0,   123,     0,   201,     0,   124,   123,     0,   123,   201,
     0,     0,     0,   128,   125,   138,    78,     0,   132,   125,
   139,    78,     0,   128,   125,   166,     0,   132,   125,   169,
     0,   128,    78,     0,   132,    78,     0,   248,   127,     0,
   136,   129,     0,   132,   136,   129,     0,     0,   129,   137,
     0,   129,     5,     0,   129,   146,     0,   136,   131,     0,
   133,   136,   131,     0,     0,   131,   137,     0,   131,     5,
     0,   133,     0,   146,     0,   132,   133,     0,   132,   146,
     0,     7,     0,     5,     0,   133,     7,     0,   133,     5,
     0,   136,   135,     0,   195,   136,   135,     0,     0,   135,
   137,     0,     6,     0,   179,     0,     4,     0,    68,   265,
     0,    73,   265,     0,   266,     0,    28,    60,   100,    77,
     0,    28,    60,   193,    77,     0,     6,     0,     7,     0,
   179,     0,   141,     0,   138,    82,   141,     0,   143,     0,
   139,    82,   141,     0,     0,    27,    60,   117,    77,     0,
     0,   172,   140,   145,    37,   142,   151,     0,   172,   140,
   145,     0,     0,   175,   140,   145,    37,   144,   151,     0,
   175,   140,   145,     0,     0,   146,     0,   147,     0,   146,
   147,     0,    30,    60,    60,   148,    77,    77,     0,   149,
     0,   148,    82,   149,     0,     0,   150,     0,   150,    60,
     3,    77,     0,   150,    60,     3,    82,   102,    77,     0,
   150,    60,   101,    77,     0,    98,     0,     5,     0,     6,
     0,     7,     0,   109,     0,     0,    83,   152,   153,    79,
     0,     1,     0,     0,   154,   184,     0,   155,     0,   154,
    82,   155,     0,   159,    37,   157,     0,   160,   157,     0,
     0,    98,    39,   156,   157,     0,   157,     0,     0,    83,
   158,   153,    79,     0,   109,     0,     1,     0,   160,     0,
   159,   160,     0,    59,    98,     0,     0,   310,    10,   109,
    84,    37,   161,   155,     0,     0,   310,    84,    37,   162,
   155,     0,     0,   310,    84,   163,   155,     0,     0,    98,
    39,   164,   155,     0,     0,    59,    98,    37,   165,   155,
     0,     0,     0,   172,   167,   119,   168,   208,     0,     0,
     0,   175,   170,   119,   171,   208,     0,   173,     0,   175,
     0,    60,   173,    77,     0,   173,    60,   243,     0,   173,
    61,   100,    84,     0,   173,    61,    84,     0,    51,   196,
   173,     0,   146,   126,   173,     0,     4,     0,    73,     0,
   174,    60,   243,     0,   174,    61,   100,    84,     0,   174,
    61,    84,     0,    51,   196,   174,     0,   146,   126,   174,
     0,     4,     0,    73,     0,   175,    60,   243,     0,    60,
   175,    77,     0,    51,   196,   175,     0,   175,    61,   100,
    84,     0,   175,    61,    84,     0,   146,   126,   175,     0,
     3,     0,    13,     0,    13,   146,     0,    14,     0,    14,
   146,     0,    12,     0,    12,   146,     0,     0,   176,    98,
    83,   180,   186,    79,   145,     0,   176,    83,   186,    79,
   145,     0,   176,    98,     0,     0,   177,    98,    83,   181,
   186,    79,   145,     0,   177,    83,   186,    79,   145,     0,
   177,    98,     0,     0,   178,    98,    83,   182,   191,   185,
    79,   145,     0,     0,   178,    83,   183,   191,   185,    79,
   145,     0,   178,    98,     0,     0,    82,     0,     0,    82,
     0,   187,     0,   187,   188,     0,     0,   187,   188,    78,
     0,   187,    78,     0,    66,    60,    68,    77,     0,   134,
   125,   189,     0,   134,     0,   195,   125,   189,     0,   195,
     0,     1,     0,   248,   188,     0,   190,     0,   189,    82,
   190,     0,   213,   214,   172,   145,     0,   213,   214,   172,
    39,   109,   145,     0,   213,   214,    39,   109,   145,     0,
   192,     0,   191,    82,   192,     0,     1,     0,    98,     0,
    98,    37,   109,     0,   134,   194,     0,   195,   194,     0,
     0,   197,     0,     7,     0,   195,     7,     0,     0,   196,
     7,     0,    60,   197,    77,     0,    51,   196,   197,     0,
    51,   196,     0,   197,    60,   236,     0,   197,    61,   100,
    84,     0,   197,    61,    84,     0,    60,   236,     0,    61,
   100,    84,     0,    61,    84,     0,   146,   126,   197,     0,
   199,     0,   216,     0,   199,   216,     0,   199,   201,     0,
     0,   198,     0,     1,    78,     0,     0,     0,   204,     0,
   205,     0,   204,   205,     0,    32,   247,    78,     0,   208,
     0,     1,   208,     0,    83,     0,   207,    79,     0,   207,
   202,   203,   124,   200,    79,     0,   207,   202,   203,     1,
    79,     0,   207,   202,   203,   198,    79,     0,   210,   215,
     0,   210,     1,     0,    15,    60,   100,    77,     0,     0,
    18,   212,   215,    17,     0,     0,     0,   213,   214,   218,
     0,   213,   214,   229,   215,     0,   213,   214,   217,     0,
   218,     0,   229,     0,   208,     0,   226,     0,   100,    78,
     0,     0,   209,    16,   219,   215,     0,   209,     0,   209,
    16,     1,     0,     0,     0,    17,   220,    60,   100,    77,
   221,   215,     0,   211,    60,   100,    77,    78,     0,   211,
     1,     0,     0,     0,     0,    19,    60,   231,    78,   222,
   231,    78,   223,   231,    77,   224,   215,     0,     0,    20,
    60,   100,    77,   225,   215,     0,    23,    78,     0,    24,
    78,     0,    25,    78,     0,    25,   100,    78,     0,    27,
   230,    60,   100,    77,    78,     0,    27,   230,    60,   100,
    39,   232,    77,    78,     0,    27,   230,    60,   100,    39,
   232,    39,   232,    77,    78,     0,    27,   230,    60,   100,
    39,   232,    39,   232,    39,   235,    77,    78,     0,    26,
    98,    78,     0,    26,    51,   100,    78,     0,    78,     0,
   227,     0,     0,    19,    60,   115,    77,   228,   215,     0,
    21,   109,    39,     0,    21,   109,    10,   109,    39,     0,
    22,    39,     0,    98,    39,   145,     0,     0,     7,     0,
     0,   100,     0,     0,   233,     0,   234,     0,   233,    82,
   234,     0,     9,    60,   100,    77,     0,   117,     0,   235,
    82,   117,     0,     0,   237,   238,     0,   240,    77,     0,
     0,   241,    78,   239,   238,     0,     1,    77,     0,     0,
    10,     0,   241,     0,   241,    82,    10,     0,   242,     0,
   241,    82,   242,     0,   128,   125,   174,   145,     0,   128,
   125,   175,   145,     0,   128,   125,   194,   145,     0,   132,
   125,   175,   145,     0,   132,   125,   194,   145,     0,     0,
   244,   245,     0,   238,     0,   246,    77,     0,     3,     0,
   246,    82,     3,     0,    98,     0,   247,    82,    98,     0,
    31,     0,   253,     0,   251,     0,   252,     0,   263,     0,
   273,     0,    64,     0,    98,     0,   250,    82,    98,     0,
    74,   250,    78,     0,    75,    98,    98,    78,     0,     0,
     0,    62,    98,   265,    83,   254,   267,    79,   255,   280,
    64,     0,     0,    62,    98,   265,   256,   280,    64,     0,
     0,     0,    62,    98,    39,    98,   265,    83,   257,   267,
    79,   258,   280,    64,     0,     0,    62,    98,    39,    98,
   265,   259,   280,    64,     0,     0,    63,    98,    83,   260,
   267,    79,     0,    63,    98,     0,     0,    63,    98,    39,
    98,    83,   261,   267,    79,     0,    63,    98,    39,    98,
     0,     0,    62,    98,    60,    98,    77,   265,   262,   280,
    64,     0,    63,    98,    60,    98,    77,     0,     0,    72,
    98,   265,   264,   280,    64,     0,    72,   250,    78,     0,
     0,   266,     0,    46,   250,    46,     0,   267,   268,   269,
     0,   269,     0,    70,     0,    71,     0,    69,     0,     0,
   269,   270,    78,     0,   269,    78,     0,   134,   125,   271,
     0,   195,   125,   271,     0,     1,     0,     0,   272,     0,
   271,    82,   272,     0,   172,     0,   172,    39,   109,     0,
    39,   109,     0,     0,     0,     0,    49,   274,   291,   275,
   292,   276,   206,     0,     0,     0,     0,    50,   277,   291,
   278,   292,   279,   206,     0,     0,     0,   281,   282,     0,
   285,     0,    90,     0,   282,   285,     0,     0,   282,   283,
    90,     0,    78,     0,     1,     0,     0,     0,    49,   286,
   291,   287,   284,     0,     0,     0,    50,   288,   291,   289,
   284,     0,     5,     0,   290,     5,     0,    60,   193,    77,
   300,     0,    60,   290,   193,    77,   300,     0,   300,     0,
    60,   193,    77,   301,   298,     0,    60,   290,   193,    77,
   301,   298,     0,   301,   298,     0,     0,    78,   293,     0,
     0,   294,     0,   295,     0,   201,     0,   294,   295,     0,
   295,   201,     0,   128,   125,   296,    78,     0,   128,    78,
     0,   132,    78,     0,   297,     0,   296,    82,   297,     0,
   174,   145,     0,   175,   145,     0,   194,   145,     0,     0,
    82,    10,     0,     0,    82,   299,   240,     0,   302,     0,
   304,     0,   301,   304,     0,     3,     0,     4,     0,    73,
     0,   303,     0,    12,     0,    13,     0,    14,     0,    15,
     0,    16,     0,    17,     0,    18,     0,    19,     0,    20,
     0,    21,     0,    22,     0,    23,     0,    24,     0,    25,
     0,    26,     0,    27,     0,    11,     0,    28,     0,    29,
     0,     6,     0,     7,     0,   302,    39,    60,   193,    77,
    98,     0,   302,    39,    98,     0,    39,    60,   193,    77,
    98,     0,    39,    98,     0,   302,     0,   306,     0,   308,
     0,   306,   308,     0,   102,     0,   302,    39,   307,     0,
    39,   307,     0,   109,     0,    68,     0,     0,    61,   311,
   309,     0,   310,   305,    84,     0,     0,   310,    82,   102,
   313,   305,    84,     0,   302,     0,   315,     0,   316,     0,
   315,   316,     0,   302,    39,     0,    39,     0,    65,    60,
   314,    77,     0,    72,    60,    98,    77,     0,    67,    60,
   193,    77,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   272,   277,   291,   293,   293,   294,   296,   298,   299,   300,
   308,   313,   324,   329,   334,   336,   338,   339,   340,   345,
   369,   378,   398,   403,   409,   411,   416,   421,   427,   429,
   434,   441,   443,   444,   445,   448,   450,   452,   454,   456,
   458,   460,   464,   469,   472,   475,   478,   482,   484,   487,
   490,   494,   522,   528,   531,   534,   537,   540,   543,   545,
   549,   553,   557,   561,   563,   583,   587,   614,   616,   618,
   620,   622,   624,   626,   628,   630,   632,   634,   636,   638,
   640,   644,   646,   650,   652,   655,   659,   661,   668,   671,
   679,   690,   850,   851,   853,   859,   861,   875,   898,   908,
   910,   922,   944,   958,   960,   962,   964,   966,   968,   970,
   975,   977,   983,   985,   989,   991,   992,  1002,  1007,  1009,
  1010,  1011,  1018,  1024,  1029,  1032,  1040,  1045,  1047,  1048,
  1049,  1056,  1067,  1071,  1077,  1082,  1087,  1092,  1094,  1096,
  1105,  1108,  1112,  1114,  1116,  1121,  1125,  1128,  1132,  1135,
  1137,  1149,  1152,  1154,  1156,  1160,  1164,  1166,  1169,  1182,
  1185,  1189,  1191,  1199,  1200,  1201,  1205,  1207,  1212,  1214,
  1216,  1222,  1223,  1224,  1227,  1229,  1232,  1234,  1237,  1240,
  1246,  1253,  1255,  1276,  1283,  1286,  1293,  1296,  1300,  1303,
  1307,  1312,  1315,  1319,  1322,  1324,  1326,  1328,  1335,  1337,
  1338,  1339,  1344,  1346,  1351,  1359,  1364,  1368,  1371,  1373,
  1378,  1380,  1381,  1384,  1384,  1387,  1390,  1392,  1394,  1397,
  1399,  1402,  1408,  1411,  1411,  1414,  1414,  1417,  1417,  1420,
  1420,  1423,  1425,  1436,  1444,  1448,  1459,  1467,  1474,  1476,
  1481,  1484,  1489,  1491,  1493,  1500,  1502,  1503,  1511,  1517,
  1519,  1521,  1528,  1530,  1531,  1537,  1543,  1545,  1547,  1549,
  1556,  1558,  1561,  1564,  1568,  1571,  1575,  1578,  1582,  1587,
  1589,  1593,  1595,  1597,  1599,  1603,  1605,  1608,  1611,  1614,
  1617,  1621,  1623,  1626,  1628,  1633,  1636,  1641,  1643,  1645,
  1649,  1673,  1680,  1685,  1691,  1696,  1698,  1703,  1705,  1709,
  1713,  1717,  1727,  1729,  1734,  1739,  1742,  1746,  1749,  1753,
  1756,  1759,  1762,  1766,  1769,  1773,  1777,  1779,  1781,  1783,
  1785,  1787,  1789,  1791,  1795,  1803,  1811,  1813,  1815,  1819,
  1821,  1824,  1827,  1840,  1842,  1847,  1849,  1852,  1866,  1869,
  1872,  1874,  1876,  1884,  1892,  1903,  1908,  1911,  1925,  1934,
  1938,  1942,  1946,  1952,  1956,  1961,  1964,  1969,  1972,  1973,
  1990,  1995,  1998,  2010,  2012,  2022,  2032,  2033,  2041,  2044,
  2056,  2060,  2077,  2087,  2096,  2101,  2106,  2111,  2115,  2119,
  2130,  2137,  2144,  2151,  2162,  2168,  2171,  2176,  2199,  2233,
  2264,  2295,  2310,  2324,  2328,  2332,  2335,  2340,  2342,  2345,
  2347,  2351,  2356,  2359,  2365,  2370,  2375,  2377,  2386,  2387,
  2393,  2395,  2405,  2407,  2411,  2414,  2420,  2430,  2439,  2448,
  2458,  2472,  2477,  2482,  2484,  2493,  2496,  2501,  2504,  2508,
  2516,  2518,  2519,  2520,  2521,  2522,  2536,  2539,  2543,  2549,
  2555,  2562,  2567,  2573,  2580,  2586,  2592,  2597,  2603,  2610,
  2616,  2622,  2628,  2636,  2642,  2648,  2656,  2663,  2669,  2678,
  2685,  2691,  2697,  2702,  2705,  2715,  2717,  2720,  2722,  2723,
  2726,  2731,  2732,  2749,  2756,  2762,  2766,  2769,  2770,  2773,
  2781,  2787,  2796,  2806,  2813,  2817,  2822,  2831,  2838,  2842,
  2852,  2854,  2855,  2857,  2859,  2860,  2861,  2862,  2864,  2866,
  2869,  2876,  2882,  2882,  2888,  2893,  2895,  2898,  2902,  2908,
  2913,  2918,  2923,  2928,  2937,  2939,  2945,  2947,  2950,  2952,
  2953,  2954,  2957,  2963,  2965,  2969,  2972,  2979,  2985,  2990,
  2997,  3002,  3007,  3012,  3019,  3023,  3026,  3032,  3034,  3035,
  3036,  3039,  3041,  3042,  3043,  3044,  3045,  3046,  3047,  3048,
  3049,  3050,  3051,  3052,  3053,  3054,  3055,  3056,  3057,  3058,
  3059,  3059,  3062,  3068,  3073,  3078,  3084,  3086,  3089,  3091,
  3098,  3110,  3115,  3121,  3123,  3129,  3133,  3139,  3149,  3159,
  3165,  3167,  3170,  3172,  3178,  3183,  3189,  3196,  3205
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
"EXTENSION","LABEL","REALPART","IMAGPART","VEC_STEP","ASSIGN","'='","'?'","':'",
"OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
"'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
"unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
"vec_step","cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary",
"@15","string","objc_string","old_style_parm_decls","lineno_datadecl","datadecls",
"datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
"reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
"declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
"typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
"initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
"attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
"initelt","@19","initval","@20","designator_list","designator","@21","@22","@23",
"@24","@25","nested_function","@26","@27","notype_nested_function","@28","@29",
"declarator","after_type_declarator","parm_declarator","notype_declarator","struct_head",
"union_head","enum_head","structsp","@30","@31","@32","@33","maybecomma","maybecomma_warn",
"component_decl_list","component_decl_list2","component_decl","components","component_declarator",
"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
"if_prefix","do_stmt_start","@34","save_filename","save_lineno","lineno_labeled_stmt",
"lineno_stmt_or_label","stmt_or_label","stmt","@35","@36","@37","@38","@39",
"@40","@41","all_iter_stmt","all_iter_stmt_simple","@42","label","maybe_type_qual",
"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
"@43","parmlist_1","@44","parmlist_2","parms","parm","parmlist_or_identifiers",
"@45","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
"objcdef","identifier_list","classdecl","aliasdecl","classdef","@46","@47","@48",
"@49","@50","@51","@52","@53","@54","protocoldef","@55","protocolrefs","non_empty_protocolrefs",
"ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
"methoddef","@56","@57","@58","@59","@60","@61","methodprotolist","@62","methodprotolist2",
"@63","semi_or_error","methodproto","@64","@65","@66","@67","objc_return_type_mods",
"methoddecl","optarglist","myxdecls","mydecls","mydecl","myparms","myparm","optparmlist",
"@68","unaryselector","keywordselector","selector","reservedwords","keyworddecl",
"messageargs","keywordarglist","keywordexpr","keywordarg","receiver","objc_openbracket.expr_no_commas",
"@69","objcmessageexpr","@70","selectorarg","keywordnamelist","keywordname",
"objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
};
#endif

static const short yyr1[] = {     0,
    85,    85,    87,    86,    88,    86,    89,    89,    89,    89,
    89,    90,    90,    90,    90,    90,    90,    90,    90,    92,
    93,    91,    91,    94,    95,    91,    91,    96,    97,    91,
    91,    98,    98,    98,    98,    99,    99,    99,    99,    99,
    99,    99,   100,   101,   101,   102,   102,   103,   103,   103,
   103,   103,   103,   103,   103,   103,   103,   103,   103,   103,
   104,   105,   106,   107,   107,   108,   107,   109,   109,   109,
   109,   109,   109,   109,   109,   109,   109,   109,   109,   109,
   110,   109,   111,   109,   112,   113,   109,   114,   109,   109,
   109,   115,   115,   115,   115,   115,   116,   115,   115,   115,
   115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
   117,   117,   118,   118,   119,   119,   119,   120,   121,   121,
   121,   121,   122,   122,   122,   122,   123,   124,   124,   124,
   124,   125,   126,   127,   127,   127,   127,   127,   127,   127,
   128,   128,   129,   129,   129,   129,   130,   130,   131,   131,
   131,   132,   132,   132,   132,   133,   133,   133,   133,   134,
   134,   135,   135,   136,   136,   136,   136,   136,   136,   136,
   136,   137,   137,   137,   138,   138,   139,   139,   140,   140,
   142,   141,   141,   144,   143,   143,   145,   145,   146,   146,
   147,   148,   148,   149,   149,   149,   149,   149,   150,   150,
   150,   150,   151,   152,   151,   151,   153,   153,   154,   154,
   155,   155,   156,   155,   155,   158,   157,   157,   157,   159,
   159,   160,   161,   160,   162,   160,   163,   160,   164,   160,
   165,   160,   167,   168,   166,   170,   171,   169,   172,   172,
   173,   173,   173,   173,   173,   173,   173,   173,   174,   174,
   174,   174,   174,   174,   174,   175,   175,   175,   175,   175,
   175,   175,   176,   176,   177,   177,   178,   178,   180,   179,
   179,   179,   181,   179,   179,   179,   182,   179,   183,   179,
   179,   184,   184,   185,   185,   186,   186,   187,   187,   187,
   187,   188,   188,   188,   188,   188,   188,   189,   189,   190,
   190,   190,   191,   191,   191,   192,   192,   193,   193,   194,
   194,   195,   195,   196,   196,   197,   197,   197,   197,   197,
   197,   197,   197,   197,   197,   198,   199,   199,   199,   200,
   200,   201,   202,   203,   203,   204,   204,   205,   206,   206,
   207,   208,   208,   208,   208,   209,   209,   210,   212,   211,
   213,   214,   215,   215,   216,   217,   217,   218,   218,   218,
   219,   218,   218,   218,   220,   221,   218,   218,   218,   222,
   223,   224,   218,   225,   218,   218,   218,   218,   218,   218,
   218,   218,   218,   218,   218,   218,   226,   228,   227,   229,
   229,   229,   229,   230,   230,   231,   231,   232,   232,   233,
   233,   234,   235,   235,   237,   236,   238,   239,   238,   238,
   240,   240,   240,   240,   241,   241,   242,   242,   242,   242,
   242,   244,   243,   245,   245,   246,   246,   247,   247,   248,
   249,   249,   249,   249,   249,   249,   250,   250,   251,   252,
   254,   255,   253,   256,   253,   257,   258,   253,   259,   253,
   260,   253,   253,   261,   253,   253,   262,   253,   253,   264,
   263,   263,   265,   265,   266,   267,   267,   268,   268,   268,
   269,   269,   269,   270,   270,   270,   271,   271,   271,   272,
   272,   272,   274,   275,   276,   273,   277,   278,   279,   273,
   280,   281,   280,   282,   282,   282,   283,   282,   284,   284,
   286,   287,   285,   288,   289,   285,   290,   290,   291,   291,
   291,   291,   291,   291,   292,   292,   293,   293,   294,   294,
   294,   294,   295,   295,   295,   296,   296,   297,   297,   297,
   298,   298,   299,   298,   300,   301,   301,   302,   302,   302,
   302,   303,   303,   303,   303,   303,   303,   303,   303,   303,
   303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
   303,   303,   304,   304,   304,   304,   305,   305,   306,   306,
   307,   308,   308,   309,   309,   311,   310,   312,   313,   312,
   314,   314,   315,   315,   316,   316,   317,   318,   319
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     0,     3,     1,     1,     1,     5,
     2,     3,     4,     4,     2,     2,     2,     2,     1,     0,
     0,     7,     4,     0,     0,     7,     4,     0,     0,     6,
     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     0,     1,     1,     3,     1,     2,     2,
     2,     2,     2,     4,     2,     4,     2,     4,     2,     2,
     1,     1,     1,     1,     4,     0,     7,     1,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     0,     4,     0,     4,     0,     0,     7,     0,     5,     3,
     3,     1,     1,     1,     3,     3,     0,     4,     4,     4,
     3,     3,     3,     2,     2,     1,     1,     1,     1,     1,
     1,     2,     1,     2,     0,     1,     2,     3,     1,     1,
     2,     2,     4,     4,     2,     2,     3,     1,     1,     2,
     2,     0,     0,     4,     4,     3,     3,     2,     2,     2,
     2,     3,     0,     2,     2,     2,     2,     3,     0,     2,
     2,     1,     1,     2,     2,     1,     1,     2,     2,     2,
     3,     0,     2,     1,     1,     1,     2,     2,     1,     4,
     4,     1,     1,     1,     1,     3,     1,     3,     0,     4,
     0,     6,     3,     0,     6,     3,     0,     1,     1,     2,
     6,     1,     3,     0,     1,     4,     6,     4,     1,     1,
     1,     1,     1,     0,     4,     1,     0,     2,     1,     3,
     3,     2,     0,     4,     1,     0,     4,     1,     1,     1,
     2,     2,     0,     7,     0,     5,     0,     4,     0,     4,
     0,     5,     0,     0,     5,     0,     0,     5,     1,     1,
     3,     3,     4,     3,     3,     3,     1,     1,     3,     4,
     3,     3,     3,     1,     1,     3,     3,     3,     4,     3,
     3,     1,     1,     2,     1,     2,     1,     2,     0,     7,
     5,     2,     0,     7,     5,     2,     0,     8,     0,     7,
     2,     0,     1,     0,     1,     1,     2,     0,     3,     2,
     4,     3,     1,     3,     1,     1,     2,     1,     3,     4,
     6,     5,     1,     3,     1,     1,     3,     2,     2,     0,
     1,     1,     2,     0,     2,     3,     3,     2,     3,     4,
     3,     2,     3,     2,     3,     1,     1,     2,     2,     0,
     1,     2,     0,     0,     1,     1,     2,     3,     1,     2,
     1,     2,     6,     5,     5,     2,     2,     4,     0,     4,
     0,     0,     3,     4,     3,     1,     1,     1,     1,     2,
     0,     4,     1,     3,     0,     0,     7,     5,     2,     0,
     0,     0,    12,     0,     6,     2,     2,     2,     3,     6,
     8,    10,    12,     3,     4,     1,     1,     0,     6,     3,
     5,     2,     3,     0,     1,     0,     1,     0,     1,     1,
     3,     4,     1,     3,     0,     2,     2,     0,     4,     2,
     0,     1,     1,     3,     1,     3,     4,     4,     4,     4,
     4,     0,     2,     1,     2,     1,     3,     1,     3,     1,
     1,     1,     1,     1,     1,     1,     1,     3,     3,     4,
     0,     0,    10,     0,     6,     0,     0,    12,     0,     8,
     0,     6,     2,     0,     8,     4,     0,     9,     5,     0,
     6,     3,     0,     1,     3,     3,     1,     1,     1,     1,
     0,     3,     2,     3,     3,     1,     0,     1,     3,     1,
     3,     2,     0,     0,     0,     7,     0,     0,     0,     7,
     0,     0,     2,     1,     1,     2,     0,     3,     1,     1,
     0,     0,     5,     0,     0,     5,     1,     2,     4,     5,
     1,     5,     6,     2,     0,     2,     0,     1,     1,     1,
     2,     2,     4,     2,     2,     1,     3,     2,     2,     2,
     0,     2,     0,     3,     1,     1,     2,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     6,     3,     5,     2,     1,     1,     1,     2,
     1,     3,     2,     1,     1,     0,     3,     3,     0,     6,
     1,     1,     1,     2,     2,     1,     4,     4,     4
};

static const short yydefact[] = {     3,
     5,     0,     0,     0,   166,   157,   164,   156,   267,   263,
   265,     0,     0,     0,   430,     0,   483,   487,     0,     0,
   436,   463,     0,   463,     0,     0,    19,     4,     8,     7,
     0,   132,   132,   152,   143,   153,   189,     0,     0,     0,
   165,     0,     9,   432,   433,   431,   434,   169,   435,     6,
    17,    18,   268,   264,   266,     0,     0,     0,    32,    33,
    35,    34,   437,     0,     0,     0,   463,   453,   167,   464,
   463,     0,   168,     0,     0,   262,   314,     0,     0,   177,
   133,     0,    16,     0,    15,     0,   154,   143,   155,   159,
   158,   141,   190,   288,   272,   288,   276,   279,   281,    11,
    92,    93,   111,    61,    62,     0,     0,    63,     0,    36,
    38,    37,     0,    39,    40,     0,   576,     0,     0,     0,
     0,   113,    41,    42,     0,     0,    43,    64,     0,     0,
     0,    68,    46,    48,    94,   110,     0,     0,   106,   107,
   108,   109,   312,   463,     0,   310,   162,     0,   310,   194,
   465,     0,   538,   539,   561,   562,   558,   542,   543,   544,
   545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
   555,   556,   557,   559,   560,     0,     0,   540,   484,   511,
   531,   535,   541,   536,   488,     0,     0,   444,     0,     0,
   451,   460,   462,   439,     0,     0,     0,    12,     0,     0,
    31,     0,   422,     0,     0,   187,   247,   314,     0,   248,
     0,   175,   133,     0,   239,   240,     0,     0,   142,   145,
   172,   173,   144,   146,   174,     0,     0,     0,   269,     0,
   273,     0,   277,    59,    60,    52,    49,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    51,     0,     0,     0,
    53,     0,    55,     0,    57,     0,     0,    85,    83,    81,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   104,   105,     0,     0,    44,     0,   112,   114,
    50,     0,     0,   567,     0,   568,   569,   170,   314,   405,
     0,   133,   308,   311,   160,   171,   313,   162,   309,   200,
   201,   202,   199,     0,   192,   195,   438,     0,   566,   507,
     0,     0,   515,   533,   514,     0,   537,     0,   515,   463,
     0,   441,   492,   456,     0,   471,   492,   440,   315,   258,
   257,   178,   179,   261,     0,   256,     0,   260,     0,     0,
    29,     0,   351,   120,   352,   186,   188,     0,     0,    14,
     0,     0,    23,     0,   187,   422,     0,    13,    27,     0,
     0,   187,   296,   290,   132,   287,   132,     0,   288,   187,
   288,   305,   306,   284,   303,     0,    96,    95,   341,   333,
     0,     0,   575,   574,   577,   586,   581,     0,   582,   583,
     0,   101,     0,    10,    47,     0,     0,     0,    91,    90,
     0,     0,     0,     0,    79,    80,    78,    77,    76,    74,
    75,    69,    70,    71,    72,    73,   103,   102,     0,    45,
     0,   571,   573,   579,     0,   578,     0,   570,   318,     0,
   322,     0,   324,     0,     0,   405,     0,   163,   161,     0,
   194,    44,     0,     0,   508,     0,     0,   485,   532,   411,
     0,   564,   489,   449,   463,   471,     0,     0,   454,   459,
     0,     0,     0,     0,     0,   426,   412,   132,   132,   424,
     0,   413,   415,   423,     0,   259,   332,     0,   122,   117,
   121,     0,   184,   245,   241,   176,   246,    21,   183,   242,
   244,     0,    25,     0,   271,   351,   289,   351,   297,     0,
   275,     0,     0,   285,     0,   284,   342,   334,    98,    66,
    65,   585,   587,     0,   584,   589,   588,    54,    56,    58,
     0,     0,    84,    82,    99,   100,     0,   572,   317,   316,
   406,   323,   325,   319,   321,     0,   191,   193,    92,     0,
     0,   509,   531,     0,   132,     0,   520,   516,   518,     0,
     0,   534,   413,     0,     0,   446,   492,   457,     0,   445,
   501,   504,   495,     0,   132,   132,   497,   494,   471,   470,
   468,   469,   452,   471,   476,   473,   132,   132,     0,   461,
   180,   410,   310,   310,   407,   408,     0,   425,     0,     0,
    30,   339,   118,   132,   132,   149,     0,     0,   181,   243,
     0,   291,   292,   298,   352,   294,   187,   187,   307,   304,
   187,     0,     0,     0,   335,   336,     0,    86,    89,     0,
   320,   196,     0,   198,   565,   512,   510,   531,   524,   310,
   525,   521,   522,   486,     0,   490,   471,     0,   492,   442,
     0,     0,   179,     0,     0,     0,   496,     0,     0,   477,
   477,   472,   254,   314,   405,   255,   133,   187,   187,   187,
   314,   133,   187,   187,     0,   414,   416,   427,   340,   125,
     0,   126,     0,   149,   147,   206,   204,   203,   185,    22,
     0,    26,   351,     0,   270,   274,   280,   187,   428,     0,
     0,     0,   351,     0,     0,   129,   352,   327,   337,   219,
    92,     0,    35,   216,     0,   218,     0,   282,   209,   215,
     0,     0,     0,     0,   580,     0,   513,   187,   187,   187,
     0,   526,   563,     0,   450,     0,   492,   502,   505,   498,
   455,     0,   480,   474,   478,   475,   318,     0,   422,     0,
   417,   418,   419,   318,     0,   420,   421,   409,     0,     0,
   148,   151,   150,     0,   182,   299,     0,   187,   278,   338,
     0,   344,   131,   130,   331,     0,   345,   329,   352,   328,
     0,   222,     0,   213,    67,     0,   208,     0,     0,   221,
     0,   212,     0,   227,    87,   197,   528,   529,   530,   523,
   310,   447,   458,     0,     0,     0,   482,     0,     0,   252,
   253,   249,   251,     0,   123,   124,     0,   187,     0,   300,
   429,   343,     0,   166,     0,   365,   349,     0,     0,     0,
     0,     0,     0,     0,     0,   394,   463,   463,   386,     0,
     0,   127,   132,   132,   358,   363,     0,     0,   355,   356,
   359,   387,   357,     0,   231,     0,     0,     0,   210,   211,
   229,     0,   225,     0,   527,   492,   443,   500,   499,   503,
   506,   481,   479,   250,   205,   302,   187,     0,     0,   351,
   396,     0,     0,   392,   376,   377,   378,     0,     0,     0,
   395,     0,   187,   360,   138,     0,   139,     0,     0,   347,
   352,   346,   369,     0,   140,     0,   217,   214,   230,     0,
     0,   228,     0,   301,     0,     0,     0,   397,    48,     0,
     0,     0,   390,   379,     0,   384,     0,   393,     0,   136,
   233,     0,   137,   236,   364,   351,     0,     0,   232,   223,
   226,   448,   348,     0,   350,   388,   370,   374,     0,   385,
     0,   134,     0,   135,     0,   362,   353,   351,     0,     0,
   366,   351,   396,   351,   391,   398,     0,   234,   237,   354,
   368,   224,   351,   389,     0,   375,     0,     0,   399,   400,
   380,     0,     0,   367,   371,     0,   398,     0,     0,   235,
   238,   396,     0,     0,   381,   401,     0,   402,     0,     0,
   372,   403,     0,   382,   351,     0,     0,   373,   383,   404,
     0,     0,     0
};

static const short yydefgoto[] = {  1001,
     1,     2,     3,    28,    29,    30,   354,   598,   360,   601,
   205,   478,   705,   125,   239,   419,   127,   128,   129,   130,
   131,   132,   617,   133,   404,   403,   401,   714,   402,   134,
   240,   135,   136,   341,   342,   343,   593,   692,   693,    31,
   200,   832,   468,    92,   594,   675,   469,    34,   146,   295,
    35,   223,   211,    79,   206,   212,   681,    80,   597,   346,
   347,    37,   304,   305,   306,   679,   754,   707,   708,   709,
   847,   710,   773,   711,   712,   950,   901,   854,   848,   896,
   920,   943,   972,   923,   945,   973,   333,   215,   718,   216,
    38,    39,    40,    41,   369,   371,   376,   232,   777,   505,
   227,   228,   366,   603,   604,   374,   375,   148,   720,   149,
   196,   294,   694,   695,   766,   344,   508,   614,   615,   616,
   591,   380,   592,   836,   837,   838,   870,   891,   482,   892,
   698,   839,   840,   926,   869,   963,   953,   982,   995,   954,
   841,   842,   952,   843,   882,   910,   968,   969,   970,   993,
   431,   432,   470,   665,   471,   472,   473,   336,   337,   474,
   475,   690,   137,    43,    64,    44,    45,    46,   456,   727,
   323,   637,   856,   557,   326,   569,   639,    47,   327,    69,
    48,   461,   574,   462,   579,   734,   735,    49,    65,   313,
   551,    66,   319,   555,   457,   458,   567,   646,   860,   568,
   641,   795,   642,   796,   312,   179,   448,   548,   549,   550,
   721,   722,   315,   450,   180,   181,   182,   183,   184,   285,
   286,   423,   287,   385,   138,   242,   139,   527,   388,   389,
   390,   140,   141,   142
};

static const short yypact[] = {   121,
   176,  3423,  3423,   362,-32768,-32768,-32768,-32768,   120,   120,
   120,    48,   142,   151,-32768,   279,-32768,-32768,   279,   279,
-32768,   138,   279,   138,   279,   279,-32768,-32768,-32768,-32768,
   282,   141,  3608,   409,-32768,   120,-32768,   115,   248,   301,
-32768,  3423,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   120,   120,   120,  3017,  2907,   171,-32768,-32768,
-32768,-32768,-32768,   150,  3770,  3770,   352,    71,-32768,-32768,
   209,    57,-32768,   147,   279,-32768,-32768,   282,   167,-32768,
   120,  2035,-32768,   805,-32768,   282,   409,-32768,   120,-32768,
-32768,   518,-32768,   173,   177,   173,   188,-32768,   194,-32768,
-32768,-32768,-32768,-32768,-32768,  3017,  3017,-32768,   279,-32768,
-32768,-32768,  3017,-32768,-32768,   934,-32768,   224,   230,   240,
   255,-32768,-32768,-32768,  3017,   247,   256,-32768,  3072,  3127,
  3182,-32768,  4159,   610,   319,   302,  3017,  2744,-32768,-32768,
-32768,-32768,-32768,    65,   306,   357,-32768,   345,  3895,   421,
-32768,   279,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,   333,  2046,-32768,-32768,-32768,
  2773,   420,-32768,-32768,-32768,   279,   279,   387,   279,   279,
-32768,-32768,-32768,-32768,   400,   106,   395,-32768,   805,   282,
-32768,   433,-32768,  2181,  1124,   120,-32768,-32768,   805,-32768,
   271,-32768,   120,  1432,   388,   476,   288,  2063,   518,-32768,
-32768,-32768,-32768,   120,-32768,   443,   411,  1965,-32768,   460,
-32768,   124,-32768,-32768,-32768,-32768,-32768,   465,   467,   468,
   482,  3237,  3799,  1540,   279,   279,-32768,   485,  3017,   934,
-32768,   934,-32768,   934,-32768,  3017,  3017,   533,-32768,-32768,
  3017,  3017,  3017,  3017,  3017,  3017,  3017,  3017,  3017,  3017,
  3017,  3017,-32768,-32768,   279,   279,  3017,  3017,-32768,-32768,
-32768,  3017,  3017,   543,   505,  3838,-32768,-32768,-32768,   357,
  2247,   120,-32768,   509,   861,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,   117,-32768,   535,-32768,  1540,-32768,-32768,
   523,  4003,   544,   621,-32768,   420,-32768,   337,   544,   138,
   562,-32768,   576,   564,   568,-32768,   576,-32768,-32768,   476,
-32768,-32768,   623,   476,   645,-32768,  3578,-32768,   572,   595,
-32768,   704,    78,-32768,-32768,   646,   120,   262,   437,-32768,
   805,   805,-32768,  1124,   120,-32768,  2313,-32768,-32768,  1124,
   614,   120,-32768,-32768,   508,   611,  2802,   790,   173,   120,
   173,-32768,   651,   578,-32768,   124,-32768,-32768,-32768,   622,
   615,  2663,   240,  4159,-32768,-32768,   665,   635,  3799,-32768,
   636,-32768,   648,-32768,  4159,   649,   657,   669,  4159,  4159,
  3017,   684,  3017,  3017,   982,  1309,  1402,  1844,   690,   778,
   778,   582,   582,-32768,-32768,-32768,-32768,-32768,   679,   256,
   674,   256,-32768,   256,  3017,-32768,   543,-32768,   383,   458,
-32768,  3597,-32768,   676,   357,-32768,  2379,-32768,   861,   688,
   421,  3292,   689,  3867,-32768,   692,   613,-32768,-32768,  3908,
  1540,-32768,-32768,   678,   138,-32768,   706,  3499,-32768,-32768,
   497,  3370,   709,    96,   698,-32768,-32768,-32768,  3973,-32768,
   702,   329,-32768,-32768,   386,-32768,-32768,    82,-32768,-32768,
-32768,  4031,-32768,   388,-32768,-32768,   388,-32768,   743,-32768,
-32768,   699,-32768,   707,-32768,-32768,-32768,-32768,-32768,   710,
-32768,   711,  3017,   279,   713,   578,-32768,   753,-32768,-32768,
-32768,-32768,-32768,   665,-32768,-32768,-32768,-32768,-32768,-32768,
   747,  3017,  1687,  1767,-32768,-32768,  3838,-32768,   509,-32768,
-32768,-32768,   509,-32768,-32768,   716,-32768,-32768,   389,   728,
   279,-32768,  2773,  3867,   729,  3654,-32768,-32768,  3973,   904,
    82,-32768,   735,   733,    82,-32768,   576,-32768,   559,-32768,
-32768,-32768,-32768,   282,   141,  3608,   246,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  4044,   741,-32768,
-32768,-32768,   703,   455,-32768,-32768,  3960,-32768,   785,   468,
-32768,-32768,-32768,   742,  3702,-32768,  1334,    82,-32768,-32768,
    82,-32768,   740,-32768,-32768,   740,   120,   120,  4159,-32768,
   120,   732,   279,  1160,   753,-32768,  1635,-32768,  1607,   748,
-32768,-32768,  3017,-32768,-32768,-32768,-32768,  2773,-32768,   703,
-32768,-32768,-32768,-32768,   279,-32768,-32768,   770,   576,-32768,
  3770,  3770,   334,   805,   282,  3527,-32768,   606,  3387,   919,
   919,-32768,-32768,-32768,   455,-32768,   120,   213,   228,   120,
-32768,   120,   228,   120,  3597,-32768,-32768,-32768,-32768,-32768,
   805,-32768,   282,-32768,   592,-32768,-32768,  4159,-32768,-32768,
  1334,-32768,-32768,  1383,-32768,-32768,-32768,   120,-32768,   369,
   524,  1035,   758,   760,  1243,-32768,-32768,-32768,-32768,-32768,
   801,   279,   240,-32768,   803,  4159,   764,   763,-32768,-32768,
   694,  1716,  2144,  3017,-32768,   397,-32768,   213,   228,   120,
   430,-32768,-32768,   624,-32768,   782,   576,-32768,-32768,-32768,
-32768,  3017,   815,   773,-32768,   773,   372,   703,-32768,  2445,
-32768,-32768,-32768,   370,   455,-32768,-32768,-32768,   444,   456,
   592,-32768,-32768,  1635,-32768,-32768,  3017,    93,-32768,-32768,
   279,-32768,-32768,-32768,-32768,   780,-32768,-32768,-32768,-32768,
  2527,-32768,  1635,    99,-32768,  1797,-32768,  1954,   818,-32768,
    86,-32768,  3017,   823,  1607,-32768,-32768,-32768,-32768,-32768,
   703,-32768,-32768,   800,    91,    91,  4159,  3017,   919,   555,
   555,-32768,-32768,   786,-32768,-32768,   787,  4123,  3017,-32768,
-32768,-32768,  2608,   841,   834,-32768,-32768,   836,   838,  3017,
   860,   824,   825,  2962,   299,   899,   261,    87,-32768,   868,
   835,-32768,   843,  3683,-32768,   896,  1462,    89,-32768,-32768,
-32768,-32768,-32768,  2828,-32768,   840,  1954,  1878,-32768,-32768,
-32768,  4078,-32768,  1878,-32768,   576,-32768,-32768,-32768,-32768,
-32768,  4159,-32768,-32768,-32768,-32768,  4123,  3017,   854,-32768,
  3017,  3017,  4096,-32768,-32768,-32768,-32768,   846,  3017,   847,
-32768,   867,   120,-32768,-32768,   805,-32768,   282,  1554,-32768,
-32768,-32768,-32768,  3017,-32768,  1878,-32768,-32768,-32768,   891,
  1878,-32768,   865,-32768,   853,  3017,   914,-32768,  1085,   855,
   859,  3017,-32768,-32768,   866,-32768,  3017,-32768,   472,-32768,
    77,   479,-32768,   480,-32768,-32768,  2608,   862,-32768,-32768,
-32768,-32768,-32768,   877,-32768,-32768,-32768,-32768,  4141,-32768,
    83,-32768,  1124,-32768,  1124,-32768,-32768,-32768,   881,  1878,
-32768,-32768,  3017,-32768,-32768,   946,   882,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   883,-32768,   906,   108,   889,-32768,
-32768,   468,   468,-32768,-32768,  3017,   946,   886,   946,-32768,
-32768,  3017,   897,   113,-32768,-32768,   905,-32768,   645,   895,
-32768,   319,   422,-32768,-32768,   898,   645,-32768,-32768,   319,
   986,   988,-32768
};

static const short yypgoto[] = {-32768,
-32768,-32768,-32768,   103,  -393,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   -12,-32768,   -56,   549,  -188,   591,-32768,-32768,
-32768,   -63,-32768,   620,-32768,-32768,-32768,-32768,-32768,   122,
-32768,  -310,-32768,  -301,   653,-32768,-32768,   304,-32768,    15,
  -180,   154,     3,   912,-32768,   330,    28,    19,  -182,   705,
    18,  -260,  -605,   -62,  -191,  -128,-32768,-32768,-32768,   293,
     7,    62,-32768,   567,-32768,   324,-32768,  -546,-32768,  -587,
-32768,  -632,-32768,-32768,   298,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   -72,  -131,  -496,    -9,
-32768,-32768,-32768,   -51,-32768,-32768,-32768,-32768,-32768,   510,
   -42,-32768,   650,   521,   338,   644,   541,   -14,   -88,  -144,
  -152,  -217,   344,-32768,-32768,  -303,-32768,-32768,-32768,   407,
  -342,-32768,  -225,-32768,-32768,-32768,-32768,  -150,  -568,  -592,
   376,-32768,   140,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,   145,-32768,  -852,    97,-32768,    94,-32768,
   639,-32768,  -372,-32768,   627,   628,   493,  -320,-32768,-32768,
-32768,-32768,     0,-32768,   488,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,     5,
    -3,  -389,-32768,   513,-32768,   431,   284,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  -307,-32768,-32768,-32768,   292,   522,
-32768,-32768,-32768,-32768,-32768,   -34,   774,-32768,-32768,   545,
-32768,   307,  -457,-32768,  -363,  -362,   -81,-32768,  -147,   565,
-32768,   672,   813,-32768,  -497,-32768,-32768,-32768,-32768,-32768,
   715,-32768,-32768,-32768
};


#define	YYLAST		4212


static const short yytable[] = {   126,
   145,    42,    42,    63,    32,    32,    67,    68,    36,    36,
    71,   214,    63,    75,   381,    53,    54,    55,    70,   463,
    70,    82,   355,   217,   464,    95,    97,    99,    73,    33,
    33,   185,   352,   317,   438,   490,   684,    81,   479,    89,
   225,    42,   234,   235,    32,   365,    84,    86,    36,   237,
    88,    87,   488,   230,   345,   348,   284,   293,   493,   531,
   299,   247,   195,    70,   563,   749,   559,    70,   197,    33,
   332,   188,   430,   281,   147,   192,   218,   349,  -116,   782,
   542,   543,   590,   367,    81,   626,   658,   480,   420,   893,
   213,   858,    81,   422,   424,   783,   236,    93,   224,   316,
   965,   241,  -229,   202,   279,    50,  -179,    56,    76,   189,
    16,   435,   329,  -179,    93,    93,    93,    59,    60,   713,
    -1,   956,    14,   245,   372,   -34,    59,    60,   771,   987,
   190,   809,    16,   147,   193,    14,   429,   303,   152,   307,
    70,   355,    93,   547,   100,   850,   977,   339,   894,    14,
    93,   989,   292,   191,  -179,   292,    77,  -229,  -179,   957,
  -116,   387,   311,   309,   379,    78,   298,   225,   859,   784,
   717,  -229,   581,   320,   321,    -2,   324,   325,   438,   648,
   627,   628,    61,    16,   978,   365,   330,    62,   849,   990,
   334,    61,   345,   440,   147,   151,    62,    94,   441,   197,
   813,    57,    81,   345,   427,   213,    81,   807,   634,   345,
    58,   529,   636,   781,   898,   213,   484,   533,    83,   373,
   487,   421,   486,   367,   194,   224,   846,   368,   152,   391,
   150,   152,   392,   393,   434,   396,   422,   397,   226,   398,
   800,   801,    14,   225,   198,   147,   633,   724,   199,   638,
    59,    60,   730,   420,    16,   680,   713,    14,   682,   229,
   899,   147,   417,   418,    76,   207,   902,   147,   329,   147,
   231,   147,   739,   740,    93,   713,   233,   907,   713,   577,
   919,    59,    60,   243,    76,    93,  -437,   203,   204,   244,
  -437,    14,   748,   443,   561,   562,   292,   446,   245,   -35,
   492,    59,    60,    59,    60,   452,    16,   514,   929,  -493,
   696,    14,   208,   931,   246,    61,    70,   578,   511,   245,
    62,   209,   927,   248,   454,   147,   500,   279,   502,   147,
    96,   726,    77,   946,   210,    59,    60,   249,   330,    59,
    60,    78,   334,    36,   521,   605,    61,   605,   350,   879,
   713,    62,   351,    93,   213,   960,   713,   213,   213,   964,
   202,   966,   962,   373,   669,   358,    61,   368,    61,   199,
   974,    62,    76,    62,    76,   653,   329,   280,   329,   496,
   536,   498,   288,    98,   298,   147,    14,   225,   763,   329,
   186,   768,   308,   203,   204,   317,   451,    16,   713,    14,
    61,    14,   998,   713,    61,    62,   586,   289,    93,    62,
   587,   187,    14,    90,   753,    91,   290,   291,   802,   794,
   661,   296,   654,    59,    60,   300,   301,   302,   303,   655,
   291,   655,   291,   289,   716,   292,   554,   430,    36,    51,
    52,   292,   290,   291,   656,   284,   760,   356,   357,   545,
   761,    70,   713,    36,   203,   204,    36,    76,   318,   558,
   565,   316,   588,   697,    36,   622,   577,   589,   147,   322,
   623,   331,   564,   786,   546,    89,   738,   328,   249,   147,
   317,   745,   583,   584,    14,   566,    88,    87,    61,   362,
   753,   373,   335,    62,   660,   664,   356,   357,   996,   596,
   595,   737,   361,   997,   578,   661,   202,   790,   744,  -179,
    72,   791,    74,   485,   655,   291,  -179,   436,   437,   529,
   533,   805,   220,   221,   222,   351,   529,   533,   625,     9,
    10,    11,   605,   806,   530,   203,   204,   199,   370,   203,
   204,   377,   697,   378,   769,   835,   316,    14,   903,   942,
   379,   545,    89,   351,   643,    36,   944,  -179,   382,   630,
   199,  -179,   394,    88,    87,   570,   571,   572,   436,   437,
    81,   -88,    89,   659,   663,   573,   546,   733,   733,   644,
   645,   425,   217,    88,    87,  -293,  -293,   835,   426,   657,
   662,   650,   651,    36,   442,   298,   752,   221,   222,   444,
   689,   477,   762,     9,    10,    11,   728,   729,   671,   673,
   750,   758,   674,   340,   739,   740,     5,     6,     7,     8,
   719,   447,   723,   225,     9,    10,    11,   570,   571,   572,
   449,   284,   270,   271,   272,   643,   657,   640,   455,  -491,
    13,   958,    14,   959,   460,   197,   459,   489,   565,   202,
   213,    81,    36,   103,   495,   476,   213,   213,    16,   504,
   564,   662,   501,   643,   273,   274,   147,   275,   276,   277,
   278,    36,   477,   566,   570,   571,   572,   213,   992,    81,
    22,   494,   483,   804,   731,    24,  1000,   503,   497,   772,
   213,   509,   570,   571,   572,  -517,    59,    60,   779,   225,
   507,   835,   792,   512,   340,    76,   653,  -119,  -119,  -119,
  -119,   513,   516,  -119,   831,  -119,  -119,  -119,    93,   251,
   253,   255,   522,    93,   517,   518,   733,   330,   334,   355,
   778,  -119,    14,   519,   330,   334,   266,   267,   268,   269,
   270,   271,   272,   657,   657,   520,   980,   981,   811,  -119,
   662,   662,   702,   654,   117,   525,   831,   526,   830,   532,
   556,    61,   655,   291,   537,   541,    62,   878,   544,   560,
   844,  -119,   580,   833,   582,   656,  -119,    36,   585,   599,
   281,   719,   600,   602,   613,   618,  -119,   668,   607,   608,
   363,   611,   345,     5,   345,     7,   143,   657,   834,   621,
   830,     9,    10,    11,   624,   213,   629,    76,   207,   635,
   688,   905,   880,   921,   908,   911,   587,    13,   652,   670,
    15,   683,   915,    70,    70,   922,   268,   269,   270,   271,
   272,   715,    73,   725,    14,    16,  -330,   928,   767,   -32,
    89,   774,   775,   844,   776,   793,   833,   886,   888,   934,
    36,    88,    87,   798,   799,   208,   851,    22,   812,   853,
   941,   384,    24,   857,   209,   865,   221,   222,   395,   864,
   831,   834,     9,    10,    11,   399,   400,   210,   924,   -33,
   405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
   415,   416,   213,   868,    81,   871,   908,   872,   874,   685,
   686,   875,   876,   687,   340,   881,   883,  -519,  -519,  -519,
  -519,   889,   884,   906,   830,  -519,  -519,  -519,   897,   983,
   885,    76,   207,   914,   916,   908,   917,   930,   932,   933,
   935,  -519,   937,  -519,   238,   938,   101,     5,   949,     7,
   143,   102,   103,   940,   104,     9,    10,    11,    14,  -519,
   741,   742,   743,   951,   967,   746,   747,   732,   961,   971,
   975,    13,   105,   985,    15,   976,   106,   107,   108,   208,
   979,  -519,   994,   988,   109,   999,  -519,   110,   209,    16,
   759,   991,   111,   112,   113,  1002,  -519,  1003,   114,   115,
   540,   210,   909,   116,   117,   481,   764,   895,   118,   219,
   119,   144,   439,   751,   755,   121,    24,   538,   780,   122,
   787,   788,   789,   123,   124,   612,   -97,   499,   606,   506,
   756,   699,   523,   524,   262,   263,   264,   265,   266,   267,
   268,   269,   270,   271,   272,   340,   765,  -128,  -128,  -128,
  -128,  -128,  -128,  -128,   610,  -128,  -128,  -128,  -128,  -128,
   810,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,  -128,
  -128,  -128,  -128,  -128,  -128,  -128,   947,  -128,  -128,  -128,
   770,   948,   986,   984,   534,  -128,   552,   553,  -128,   667,
  -128,   736,   863,  -128,  -128,  -128,   649,   861,   647,  -128,
  -128,   620,   453,   632,  -128,  -128,   528,   855,   428,  -128,
   866,  -128,  -128,   515,     0,     0,  -128,  -128,     0,     0,
  -128,     0,  -128,  -128,  -128,  -128,     0,  -128,     0,     0,
     0,     0,   609,     0,   340,     0,     0,  -351,  -351,  -351,
  -351,     0,     0,     0,     0,  -351,  -351,  -351,     0,   273,
   274,   619,   275,   276,   277,   278,     0,     0,     0,     0,
     0,  -351,     0,     0,     0,     0,     0,     0,     0,   904,
   691,   936,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
  -351,  -351,  -351,  -351,  -351,   918,  -351,  -351,  -351,  -351,
  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
  -351,  -351,  -351,  -351,  -351,     0,  -351,     0,     0,     0,
  -351,     0,     0,  -351,     0,  -351,  -115,     0,  -351,  -351,
  -351,     0,     0,     0,  -351,  -351,   678,     0,     0,  -351,
  -351,     0,     0,     0,  -351,     0,  -351,  -351,     0,     0,
     0,  -351,  -351,     0,     0,  -351,   706,  -351,     0,  -351,
  -351,     0,  -351,   340,     0,  -351,  -351,     0,     0,     0,
  -351,  -351,     0,  -351,     0,     0,     0,  -351,     0,  -351,
  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,
     0,  -351,     0,  -351,     0,  -351,  -351,  -351,     0,     0,
     0,     0,     0,  -351,     0,     0,  -351,     0,     0,     0,
     0,  -351,  -351,  -351,     0,     0,     0,  -351,  -351,     0,
   678,     0,  -351,  -351,     0,     0,     0,  -351,     0,  -351,
  -351,     0,     0,     0,  -351,  -351,     0,     0,  -351,     0,
  -351,  -326,  -351,  -351,     0,  -351,     0,     0,     0,     0,
     0,   706,     0,   785,   676,     0,   101,     0,     0,     0,
     0,   102,   103,     0,   104,     0,     0,     0,     0,     0,
     0,   797,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272,   105,     0,    15,     0,   106,   107,   108,     0,
     0,     0,     0,   706,   109,     0,   808,   110,     0,     0,
     0,     0,   111,   112,   113,    76,   207,     0,   114,   115,
     0,     0,   706,   116,   117,   706,     0,   706,   118,     0,
   119,   120,   852,     0,     0,   121,     0,     0,     0,   122,
     0,     0,    14,   123,   124,     0,   677,   862,     0,     0,
     0,   757,     0,     0,     0,     0,     0,     0,   867,     0,
     0,     0,   353,   208,     0,   -20,   -20,   -20,   -20,   873,
     0,     0,   209,   -20,   -20,   -20,   264,   265,   266,   267,
   268,   269,   270,   271,   272,   210,     0,     0,   202,   -20,
     0,  -179,   890,     0,  -351,  -351,   706,   706,  -179,  -351,
  -351,     0,  -351,   706,     0,     0,  -351,   -20,  -351,  -351,
  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,     0,
  -351,     0,  -351,     0,  -351,  -351,  -351,     0,     0,   -20,
     0,     0,  -351,     0,   -20,  -351,     0,     0,     0,  -179,
  -351,  -351,  -351,  -179,   -20,   706,  -351,  -351,     0,     0,
   706,  -351,  -351,     0,     0,     0,  -351,     0,  -351,  -351,
     0,   939,     0,  -351,  -351,     0,     0,  -351,     0,  -351,
     0,  -351,  -351,     5,  -351,     7,   143,     0,     0,     0,
     0,     9,    10,    11,   925,     0,  -361,  -361,     0,     0,
     0,  -361,  -361,     0,  -361,     0,     0,    13,  -361,   706,
  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,  -361,
  -361,     0,  -361,     0,  -361,    16,  -361,  -361,  -361,     0,
     0,     0,     0,     0,  -361,     0,     0,  -361,     0,     0,
     0,     0,  -361,  -361,  -361,     0,     0,    22,  -361,  -361,
     0,     0,    24,  -361,  -361,     0,     0,     0,  -361,     0,
  -361,  -361,     0,     0,     0,  -361,  -361,     0,     0,  -361,
     0,  -361,     0,  -361,  -361,   700,  -361,   701,    60,     0,
     0,     0,   102,   103,   258,   104,   259,   260,   261,   262,
   263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     0,     0,     0,   105,     0,    15,     0,   106,   107,   108,
     0,     0,     0,     0,     0,   109,     0,     0,   110,     0,
     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
   115,     0,     0,   702,   116,   117,     0,     0,     0,   118,
     0,   119,   703,     0,     0,     0,   121,    62,     0,     0,
   122,     0,     0,  -207,   123,   124,   700,   704,   101,  -220,
     0,     0,     0,   102,   103,     0,   104,   260,   261,   262,
   263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     0,     0,     0,     0,   105,     0,    15,     0,   106,   107,
   108,     0,  -220,     0,     0,     0,   109,     0,     0,   110,
     0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
   114,   115,     0,     0,  -220,   116,   117,     0,     0,     0,
   118,     0,   119,   120,     0,     0,     0,   121,  -220,     0,
     0,   122,     0,     0,     0,   123,   124,   700,   704,   701,
    60,     0,     0,     0,   102,   103,     0,   104,   261,   262,
   263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
     0,     0,     0,     0,     0,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,     0,   702,   116,   117,     0,     0,
     0,   118,     0,   119,   703,     0,     0,     0,   121,    62,
     0,     0,   122,     0,     0,  -283,   123,   124,   700,   704,
   701,    60,     0,     0,     0,   102,   103,     0,   104,   265,
   266,   267,   268,   269,   270,   271,   272,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   105,     0,    15,     0,
   106,   107,   108,     0,     0,     0,     0,     0,   109,     0,
     0,   110,     0,     0,     0,     0,   111,   112,   113,     0,
     0,     0,   114,   115,     0,     0,   702,   116,   117,     0,
     0,     0,   118,     0,   119,   703,     0,     0,     0,   121,
    62,     0,     0,   122,   700,     0,   101,   123,   124,     0,
   704,   102,   103,     0,   104,   363,     0,     0,     5,     0,
     7,   143,     0,     0,     0,     0,     9,    10,    11,     0,
     0,     0,   105,     0,    15,     0,   106,   107,   108,     0,
     0,     0,    13,     0,   109,    15,     0,   110,     0,     0,
     0,     0,   111,   112,   113,     0,     0,     0,   114,   115,
    16,     0,     0,   116,   117,     0,     0,     0,   118,     0,
   119,   120,     0,     0,     0,   121,     0,     0,     0,   122,
     0,     0,    22,   123,   124,   201,   704,    24,   -28,   -28,
   -28,   -28,   364,  -286,     0,     0,   -28,   -28,   -28,     5,
   310,     7,   143,     0,     0,     0,     0,     9,    10,    11,
     0,   202,   -28,   359,  -179,     0,   -24,   -24,   -24,   -24,
     0,  -179,     0,    13,   -24,   -24,   -24,     0,     0,     0,
   -28,     0,     0,     0,     0,     0,     0,     0,     0,   202,
   -24,    16,  -179,     0,   203,   204,     0,     0,     0,  -179,
     0,     0,   -28,     0,     0,     0,     0,   -28,   -24,     0,
     0,     0,  -179,    22,     0,     0,  -179,   -28,    24,     0,
     0,     0,   203,   204,     0,     0,     0,     0,     0,     0,
   -24,     0,     0,     0,     0,   -24,     0,     0,     0,     0,
  -179,     0,     0,     0,  -179,   -24,   153,   154,     0,   155,
   156,     0,     0,   783,   157,   158,   159,   160,   161,   162,
   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   173,   174,   175,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   282,   101,     0,     0,     0,     0,   102,   103,
     0,   104,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   105,
     0,    15,     0,   106,   107,   108,   178,     0,     0,     0,
     0,   109,     0,     0,   110,   283,     0,   784,     0,   111,
   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
   116,   117,     0,     0,     0,   118,     0,   119,   120,   101,
     0,     0,   121,     0,   102,   103,   122,   104,     0,     0,
   123,   124,     0,     0,   338,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,     0,     0,   116,   117,     0,     0,
     0,   118,     0,   119,   120,   101,     0,     0,   121,     0,
   102,   103,   122,   104,     0,     0,   123,   124,     0,     0,
   433,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   105,     0,    15,     0,   106,   107,   108,     0,     0,
     0,     0,     0,   109,     0,     0,   110,     0,     0,     0,
     0,   111,   112,   113,     0,     0,     0,   114,   115,     0,
     0,     0,   116,   117,     0,     0,     0,   118,     0,   119,
   120,   101,     0,     0,   121,     0,   102,   103,   122,   104,
     0,     0,   123,   124,     0,     0,   491,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   105,     0,    15,
     0,   106,   107,   108,     0,     0,     0,     0,     0,   109,
     0,     0,   110,     0,     0,     0,     0,   111,   112,   113,
     0,     0,     0,   114,   115,     0,     0,     0,   116,   117,
     0,     0,     0,   118,     0,   119,   120,   101,     0,     0,
   121,     0,   102,   103,   122,   104,     0,     0,   123,   124,
     0,     0,   535,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   105,     0,    15,     0,   106,   107,   108,
     0,     0,     0,     0,     0,   109,     0,     0,   110,     0,
     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
   115,     0,     0,     0,   116,   117,     0,     0,     0,   118,
     0,   119,   120,     0,     0,     0,   121,     0,     0,     0,
   122,     0,     0,     0,   123,   124,     0,     0,   803,   701,
   814,     6,     7,     8,   102,   103,     0,   104,     9,    10,
    11,   815,     0,   816,   817,   818,   819,   820,   821,   822,
   823,   824,   825,   826,    13,   105,    14,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,    16,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,     0,     0,   116,   117,     0,     0,
     0,   118,     0,   119,   827,     0,     0,     0,   121,   828,
     0,     0,   122,     0,   829,     0,   123,   124,     0,   379,
   701,    60,     0,     0,     0,   102,   103,     0,   104,     0,
     0,     0,   815,     0,   816,   817,   818,   819,   820,   821,
   822,   823,   824,   825,   826,     0,   105,     0,    15,     0,
   106,   107,   108,     0,     0,     0,     0,     0,   109,     0,
     0,   110,     0,     0,     0,     0,   111,   112,   113,     0,
     0,     0,   114,   115,     0,   101,     0,   116,   117,     0,
   102,   103,   118,   104,   119,   703,     0,     0,     0,   121,
    62,     0,     0,   122,     0,   829,     0,   123,   124,     0,
   379,   105,     0,    15,     0,   106,   107,   108,     0,     0,
     0,     0,     0,   109,     0,     0,   110,     0,     0,     0,
     0,   111,   112,   113,     0,     0,     0,   114,   115,     0,
     0,     0,   116,   117,     0,     0,     0,   118,     0,   119,
   120,     0,     0,     0,   121,     0,     0,     0,   122,     0,
     0,     0,   123,   124,     0,   510,   153,   154,     0,   155,
   156,     0,     0,     0,   157,   158,   159,   160,   161,   162,
   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
   173,   174,   175,     0,     0,   153,   154,     0,   155,   156,
     0,     0,   282,   157,   158,   159,   160,   161,   162,   163,
   164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
   174,   175,     0,     0,     0,     5,     0,     7,   297,     0,
     0,   176,     0,     9,    10,    11,   178,     0,     0,     0,
     0,     0,     0,     0,     0,   283,     0,     0,     0,    13,
   101,     5,     6,     7,     8,   102,   103,     0,   104,     9,
    10,    11,     0,     0,     0,   178,     0,    16,     0,     0,
     0,     0,     0,     0,   314,    13,   105,    14,    15,     0,
   106,   107,   108,     0,     0,     0,     0,     0,   109,    22,
     0,   110,     0,    16,    24,     0,   111,   112,   113,  -295,
  -295,     0,   114,   115,     0,     0,     0,   116,   117,     0,
     0,     0,   118,     0,   119,   144,     0,     0,     0,   121,
    24,     0,     0,   122,     0,     0,     0,   123,   124,   101,
     5,     0,     7,   143,   102,   103,     0,   104,     9,    10,
    11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    13,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,    16,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,   101,     0,   116,   117,     0,   102,
   103,   118,   104,   119,   144,     0,     0,     0,   121,    24,
     0,     0,   122,     0,     0,     0,   123,   124,     0,     0,
   105,     0,    15,     0,   106,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   101,
     0,   116,   117,     0,   102,   103,   118,   104,   119,   120,
     0,     0,     0,   121,     0,     0,     0,   122,     0,   877,
     0,   123,   124,     0,     0,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,   101,     0,   116,   117,     0,   102,
   103,   118,   104,   119,   120,     0,     0,     0,   121,     0,
     0,     0,   122,     0,     0,     0,   123,   124,     0,     0,
   105,     0,    15,     0,   106,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   101,
     0,   250,   117,     0,   102,   103,   118,   104,   119,   120,
     0,     0,     0,   121,     0,     0,     0,   122,     0,     0,
     0,   123,   124,     0,     0,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,   101,     0,   252,   117,     0,   102,
   103,   118,   104,   119,   120,     0,     0,     0,   121,     0,
     0,     0,   122,     0,     0,     0,   123,   124,     0,     0,
   105,     0,    15,     0,   106,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   101,
     0,   254,   117,     0,   102,   103,   118,   104,   119,   120,
     0,     0,     0,   121,     0,     0,     0,   122,     0,     0,
     0,   123,   124,     0,     0,   105,     0,    15,     0,   106,
   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
     0,   114,   115,     0,   539,     0,   116,   117,     0,   102,
   103,   118,   104,   119,   383,     0,     0,     0,   121,     0,
     0,     0,   122,     0,     0,     0,   123,   124,     0,     0,
   105,     0,    15,     0,   106,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,     0,
     0,   116,   117,     0,     0,     0,   118,     0,   119,   120,
     0,     0,     0,   121,     0,     0,     0,   122,     0,     0,
   575,   123,   124,     5,     0,     7,   143,     0,     0,     0,
     0,     9,    10,    11,     0,     0,     0,   575,     0,     0,
     5,     0,     7,   143,     0,     0,     0,    13,     9,    10,
    11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    13,    16,     0,     0,     0,     0,
     0,     0,     0,     4,     0,  -132,     5,     6,     7,     8,
     0,     0,    16,     0,     9,    10,    11,    22,  -467,  -467,
  -467,     0,    24,     0,     0,     0,     0,   576,  -467,    12,
    13,     0,    14,    15,    22,  -466,  -466,  -466,     0,    24,
     0,     0,     0,     0,   576,  -466,     0,     0,    16,     0,
     0,    17,    18,  -132,     0,     0,     0,     0,     0,     0,
     0,     0,  -132,     0,    19,    20,    21,     0,     0,     0,
    22,     0,     0,     0,    23,    24,    25,    26,     0,     4,
    27,  -132,     5,     6,     7,     8,     0,     0,     0,     0,
     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    13,     4,    14,  -132,
     5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
    11,     0,     0,     0,    16,     0,     0,   561,   562,  -132,
     0,     0,     0,     0,    13,     0,    14,     0,  -132,     0,
     0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
     0,    24,    16,     0,     0,     0,    27,  -132,   465,     0,
   466,     5,     6,     7,     8,     0,  -132,   467,     0,     9,
    10,    11,     0,     0,    22,     0,     0,   465,     0,    24,
     5,     6,     7,     8,    27,    13,   467,    14,     9,    10,
    11,     5,     6,     7,     8,     0,     0,     0,     0,     9,
    10,    11,     0,    16,    13,     0,    14,     0,     0,     0,
     0,     0,     0,     0,     0,    13,     0,    14,     0,     0,
     0,     0,    16,     0,     0,    22,     0,     0,     0,     0,
    24,     0,     0,    16,  -411,     0,     0,     5,     6,     7,
     8,     0,     0,     0,    22,     9,    10,    11,     0,    24,
     0,     0,     0,  -411,     0,    22,     0,     0,     0,     0,
    24,    13,     0,    14,     0,    85,     5,     6,     7,     8,
     0,     0,     0,     0,     9,    10,    11,     0,     0,    16,
     0,     0,     0,     0,     0,     5,    90,     7,    91,     0,
    13,     0,    14,     9,    10,    11,     0,     0,     0,     0,
     0,    22,     0,     0,     0,     0,    24,     0,    16,    13,
     0,   631,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    16,     0,     0,
    22,     0,     0,     0,     0,    24,     0,     0,     0,     0,
   887,     0,     0,     0,     0,     0,     0,     0,     0,    22,
     0,     0,   153,   154,    24,   155,   156,     0,     0,   672,
   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   167,   168,   169,   170,   171,   172,   173,   174,   175,     0,
     0,   153,   154,     0,   155,   156,     0,     0,   176,   157,
   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   168,   169,   170,   171,   172,   173,   174,   175,     0,   177,
     0,     0,     0,     0,     0,     0,     0,   386,     0,     0,
   153,   154,   178,   155,   156,     0,     0,     0,   157,   158,
   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   169,   170,   171,   172,   173,   174,   175,     0,     0,   153,
   154,   178,   155,   156,     0,     0,   282,   157,   158,   159,
   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
   170,   171,   172,   173,   174,   175,     0,     0,     5,     0,
     7,   297,     0,     0,     0,   176,     9,    10,    11,     0,
   178,     5,     6,     7,     8,     0,     0,   467,     0,     9,
    10,    11,    13,     0,    14,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    13,     0,    14,     0,   178,
    16,     0,     0,     0,     0,   289,     0,     0,     0,     0,
     0,     0,     0,    16,   290,   291,     0,     0,     0,     0,
     0,     0,    22,     5,     6,     7,     8,    24,     0,   666,
     0,     9,    10,    11,     0,    22,     5,     6,     7,     8,
    24,     0,     0,     0,     9,    10,    11,    13,     0,    14,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    13,     0,    14,     0,     0,    16,     5,   445,     7,   143,
     0,     0,     0,     0,     9,    10,    11,     0,    16,     0,
     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
    13,     0,    24,     0,     5,     6,     7,     8,     0,     0,
    22,     0,     9,    10,    11,    24,     0,     5,    16,     7,
   297,     0,     0,     0,     0,     9,    10,    11,    13,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    22,    13,     0,     0,     0,    24,    16,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
     0,     0,     0,     0,     0,     0,     0,     0,    22,     0,
     0,     0,     0,    24,     0,   912,     0,     0,     0,     0,
     0,    22,     0,   256,   257,   258,    24,   259,   260,   261,
   262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
   272,   256,   257,   258,   913,   259,   260,   261,   262,   263,
   264,   265,   266,   267,   268,   269,   270,   271,   272,     0,
     0,     0,    14,     0,     0,     0,     0,     0,   256,   257,
   258,   900,   259,   260,   261,   262,   263,   264,   265,   266,
   267,   268,   269,   270,   271,   272,   256,   257,   258,   955,
   259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
   269,   270,   271,   272,   256,   257,   258,     0,   259,   260,
   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272
};

static const short yycheck[] = {    56,
    57,     2,     3,    16,     2,     3,    19,    20,     2,     3,
    23,    84,    25,    26,   240,     9,    10,    11,    22,   327,
    24,    31,   214,    86,   335,    38,    39,    40,    24,     2,
     3,    66,   213,   181,   295,   356,   605,    31,   342,    33,
    92,    42,   106,   107,    42,   228,    32,    33,    42,   113,
    33,    33,   354,    96,   205,   208,   138,   146,   360,   432,
   149,   125,    75,    67,   458,   671,   456,    71,    78,    42,
   199,    67,   290,   137,    57,    71,    86,   209,     1,   712,
   444,   444,     1,   228,    78,   543,   583,    10,   277,     1,
    84,     1,    86,   282,   283,    10,   109,    36,    92,   181,
   953,   116,     4,    27,     9,     3,    30,    60,     3,    39,
    46,   292,     7,    37,    53,    54,    55,     3,     4,   617,
     0,    39,    30,    59,     1,    39,     3,     4,   697,   982,
    60,    39,    46,   116,    78,    30,   289,   150,    82,   152,
   144,   333,    81,   447,    42,   778,    39,   204,    60,    30,
    89,    39,   146,    83,    78,   149,    51,    59,    82,    77,
    83,   243,   177,   176,    83,    60,   149,   219,    78,    84,
   628,    73,    77,   186,   187,     0,   189,   190,   439,   569,
   544,   544,    68,    46,    77,   368,   196,    73,   776,    77,
   200,    68,   343,    77,   177,    46,    73,    83,    82,   209,
   769,    60,   196,   354,   286,   199,   200,   754,   551,   360,
    60,   429,   555,   711,   847,   209,   348,   435,    78,   232,
   352,   278,   351,   368,    78,   219,   773,   228,    82,   244,
    60,    82,   245,   246,   291,   250,   425,   252,    66,   254,
   737,   738,    30,   295,    78,   228,   550,   637,    82,   557,
     3,     4,   646,   442,    46,   598,   754,    30,   601,    83,
   848,   244,   275,   276,     3,     4,   854,   250,     7,   252,
    83,   254,    60,    61,   213,   773,    83,   870,   776,   462,
   886,     3,     4,    60,     3,   224,    78,    60,    61,    60,
    82,    30,   665,   308,    49,    50,   290,   312,    59,    39,
   357,     3,     4,     3,     4,   318,    46,   389,   896,    64,
   614,    30,    51,   901,    60,    68,   320,   462,   382,    59,
    73,    60,   891,    77,   320,   308,   369,     9,   371,   312,
    83,   639,    51,   926,    73,     3,     4,    82,   348,     3,
     4,    60,   352,   337,   401,   496,    68,   498,    78,    51,
   848,    73,    82,   292,   348,   948,   854,   351,   352,   952,
    27,   954,   950,   376,   590,    78,    68,   368,    68,    82,
   963,    73,     3,    73,     3,     4,     7,    76,     7,   365,
   437,   367,    77,    83,   367,   368,    30,   439,   692,     7,
    39,   695,    60,    60,    61,   543,    60,    46,   896,    30,
    68,    30,   995,   901,    68,    73,    78,    51,   347,    73,
    82,    60,    30,     5,   675,     7,    60,    61,   739,   727,
    51,    77,    51,     3,     4,     5,     6,     7,   441,    60,
    61,    60,    61,    51,   623,   429,   451,   655,   432,    78,
    79,   435,    60,    61,    73,   527,    78,    60,    61,   447,
    82,   455,   950,   447,    60,    61,   450,     3,    39,   455,
   458,   543,    77,   614,   458,    77,   649,    82,   451,    83,
    82,    77,   458,    77,   447,   469,   657,    78,    82,   462,
   628,   662,   468,   469,    30,   458,   469,   469,    68,    79,
   751,   504,    60,    73,   583,   584,    60,    61,    77,   482,
   482,   654,    60,    82,   649,    51,    27,    78,   661,    30,
    23,    82,    25,    77,    60,    61,    37,    60,    61,   737,
   738,    78,     5,     6,     7,    82,   744,   745,   541,    12,
    13,    14,   683,    78,    77,    60,    61,    82,    79,    60,
    61,    77,   693,    77,   695,   771,   628,    30,   856,    78,
    83,   549,   546,    82,   564,   549,    78,    78,    77,   545,
    82,    82,    78,   546,   546,    69,    70,    71,    60,    61,
   564,    39,   566,   583,   584,    79,   549,   650,   651,   565,
   566,    39,   645,   566,   566,    78,    79,   813,    84,   583,
   584,   577,   578,   587,    60,   578,     5,     6,     7,    77,
   613,    78,    79,    12,    13,    14,   641,   642,   594,   595,
   673,   684,   595,     1,    60,    61,     4,     5,     6,     7,
   630,    78,   635,   675,    12,    13,    14,    69,    70,    71,
    10,   713,    51,    52,    53,   645,   630,    79,    77,    64,
    28,   943,    30,   945,    77,   655,    83,   355,   646,    27,
   644,   645,   646,     9,   362,    84,   650,   651,    46,    82,
   646,   655,   370,   673,    55,    56,   649,    58,    59,    60,
    61,   665,    78,   646,    69,    70,    71,   671,   989,   673,
    68,    68,    37,   740,    79,    73,   997,    37,    78,   702,
   684,    77,    69,    70,    71,    83,     3,     4,   711,   751,
    79,   927,    79,    39,     1,     3,     4,     4,     5,     6,
     7,    77,    77,    10,   771,    12,    13,    14,   657,   129,
   130,   131,    39,   662,    77,    77,   799,   737,   738,   921,
    37,    28,    30,    77,   744,   745,    47,    48,    49,    50,
    51,    52,    53,   737,   738,    77,   972,   973,   761,    46,
   744,   745,    59,    51,    61,    77,   813,    84,   771,    84,
    83,    68,    60,    61,    77,    77,    73,   824,    77,    64,
   771,    68,    64,   771,    77,    73,    73,   771,    77,    37,
   844,   791,    84,    77,    32,    39,    83,     3,    79,    79,
     1,    79,   943,     4,   945,     6,     7,   791,   771,    84,
   813,    12,    13,    14,    77,   799,    78,     3,     4,    77,
    79,   868,   825,   886,   871,   872,    82,    28,    78,    78,
    31,    82,   879,   827,   828,   888,    49,    50,    51,    52,
    53,    84,   828,    64,    30,    46,    79,   894,    79,    39,
   834,    39,    79,   844,    82,    64,   844,   833,   834,   906,
   844,   834,   834,    39,    82,    51,    39,    68,    79,    37,
   917,   242,    73,    64,    60,    79,     6,     7,   249,    84,
   927,   844,    12,    13,    14,   256,   257,    73,   888,    39,
   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272,   886,    60,   888,    60,   953,    60,    39,   607,
   608,    78,    78,   611,     1,     7,    39,     4,     5,     6,
     7,    16,    78,    60,   927,    12,    13,    14,    79,   976,
    78,     3,     4,    78,    78,   982,    60,    37,    64,    77,
    17,    28,    78,    30,     1,    77,     3,     4,    77,     6,
     7,     8,     9,    78,    11,    12,    13,    14,    30,    46,
   658,   659,   660,    77,     9,   663,   664,    39,    78,    78,
    78,    28,    29,    78,    31,    60,    33,    34,    35,    51,
    82,    68,    78,    77,    41,    78,    73,    44,    60,    46,
   688,    77,    49,    50,    51,     0,    83,     0,    55,    56,
   442,    73,   871,    60,    61,   343,   693,   844,    65,    88,
    67,    68,   298,   674,   681,    72,    73,   441,   711,    76,
   718,   719,   720,    80,    81,   506,    83,   368,   498,   376,
   683,   615,   403,   404,    43,    44,    45,    46,    47,    48,
    49,    50,    51,    52,    53,     1,   693,     3,     4,     5,
     6,     7,     8,     9,   504,    11,    12,    13,    14,    15,
   758,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,   927,    33,    34,    35,
   695,   927,   979,   977,   436,    41,   450,   450,    44,   587,
    46,   651,   799,    49,    50,    51,   574,   796,   567,    55,
    56,   527,   319,   549,    60,    61,   425,   791,   286,    65,
   808,    67,    68,   389,    -1,    -1,    72,    73,    -1,    -1,
    76,    -1,    78,    79,    80,    81,    -1,    83,    -1,    -1,
    -1,    -1,   503,    -1,     1,    -1,    -1,     4,     5,     6,
     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    55,
    56,   522,    58,    59,    60,    61,    -1,    -1,    -1,    -1,
    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   867,
     1,    77,     3,     4,     5,     6,     7,     8,     9,    46,
    11,    12,    13,    14,    15,   883,    17,    18,    19,    20,
    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    31,    68,    33,    34,    35,    -1,    73,    -1,    -1,    -1,
    41,    -1,    -1,    44,    -1,    46,    83,    -1,    49,    50,
    51,    -1,    -1,    -1,    55,    56,   597,    -1,    -1,    60,
    61,    -1,    -1,    -1,    65,    -1,    67,    68,    -1,    -1,
    -1,    72,    73,    -1,    -1,    76,   617,    78,    -1,    80,
    81,    -1,    83,     1,    -1,     3,     4,    -1,    -1,    -1,
     8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,
    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,
   681,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,
    68,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,    -1,
    78,    79,    80,    81,    -1,    83,    -1,    -1,    -1,    -1,
    -1,   712,    -1,   714,     1,    -1,     3,    -1,    -1,    -1,
    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    -1,   732,    44,    45,    46,    47,    48,    49,    50,    51,
    52,    53,    29,    -1,    31,    -1,    33,    34,    35,    -1,
    -1,    -1,    -1,   754,    41,    -1,   757,    44,    -1,    -1,
    -1,    -1,    49,    50,    51,     3,     4,    -1,    55,    56,
    -1,    -1,   773,    60,    61,   776,    -1,   778,    65,    -1,
    67,    68,   783,    -1,    -1,    72,    -1,    -1,    -1,    76,
    -1,    -1,    30,    80,    81,    -1,    83,   798,    -1,    -1,
    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,   809,    -1,
    -1,    -1,     1,    51,    -1,     4,     5,     6,     7,   820,
    -1,    -1,    60,    12,    13,    14,    45,    46,    47,    48,
    49,    50,    51,    52,    53,    73,    -1,    -1,    27,    28,
    -1,    30,     1,    -1,     3,     4,   847,   848,    37,     8,
     9,    -1,    11,   854,    -1,    -1,    15,    46,    17,    18,
    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    68,
    -1,    -1,    41,    -1,    73,    44,    -1,    -1,    -1,    78,
    49,    50,    51,    82,    83,   896,    55,    56,    -1,    -1,
   901,    60,    61,    -1,    -1,    -1,    65,    -1,    67,    68,
    -1,   912,    -1,    72,    73,    -1,    -1,    76,    -1,    78,
    -1,    80,    81,     4,    83,     6,     7,    -1,    -1,    -1,
    -1,    12,    13,    14,     1,    -1,     3,     4,    -1,    -1,
    -1,     8,     9,    -1,    11,    -1,    -1,    28,    15,   950,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    -1,    29,    -1,    31,    46,    33,    34,    35,    -1,
    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,
    -1,    -1,    49,    50,    51,    -1,    -1,    68,    55,    56,
    -1,    -1,    73,    60,    61,    -1,    -1,    -1,    65,    -1,
    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,
    -1,    78,    -1,    80,    81,     1,    83,     3,     4,    -1,
    -1,    -1,     8,     9,    38,    11,    40,    41,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,
    -1,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,
    56,    -1,    -1,    59,    60,    61,    -1,    -1,    -1,    65,
    -1,    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,
    76,    -1,    -1,    79,    80,    81,     1,    83,     3,     4,
    -1,    -1,    -1,     8,     9,    -1,    11,    41,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
    35,    -1,    37,    -1,    -1,    -1,    41,    -1,    -1,    44,
    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,
    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,    -1,
    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,    -1,
    -1,    76,    -1,    -1,    -1,    80,    81,     1,    83,     3,
     4,    -1,    -1,    -1,     8,     9,    -1,    11,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,    -1,    59,    60,    61,    -1,    -1,
    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,
    -1,    -1,    76,    -1,    -1,    79,    80,    81,     1,    83,
     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,    46,
    47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,
    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
    -1,    -1,    55,    56,    -1,    -1,    59,    60,    61,    -1,
    -1,    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,
    73,    -1,    -1,    76,     1,    -1,     3,    80,    81,    -1,
    83,     8,     9,    -1,    11,     1,    -1,    -1,     4,    -1,
     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
    -1,    -1,    28,    -1,    41,    31,    -1,    44,    -1,    -1,
    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,
    46,    -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,
    67,    68,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    -1,    -1,    68,    80,    81,     1,    83,    73,     4,     5,
     6,     7,    78,    79,    -1,    -1,    12,    13,    14,     4,
     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
    -1,    27,    28,     1,    30,    -1,     4,     5,     6,     7,
    -1,    37,    -1,    28,    12,    13,    14,    -1,    -1,    -1,
    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
    28,    46,    30,    -1,    60,    61,    -1,    -1,    -1,    37,
    -1,    -1,    68,    -1,    -1,    -1,    -1,    73,    46,    -1,
    -1,    -1,    78,    68,    -1,    -1,    82,    83,    73,    -1,
    -1,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,
    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,
    78,    -1,    -1,    -1,    82,    83,     3,     4,    -1,     6,
     7,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    39,     3,    -1,    -1,    -1,    -1,     8,     9,
    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
    -1,    31,    -1,    33,    34,    35,    73,    -1,    -1,    -1,
    -1,    41,    -1,    -1,    44,    82,    -1,    84,    -1,    49,
    50,    51,    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,
    60,    61,    -1,    -1,    -1,    65,    -1,    67,    68,     3,
    -1,    -1,    72,    -1,     8,     9,    76,    11,    -1,    -1,
    80,    81,    -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,    -1,
    -1,    65,    -1,    67,    68,     3,    -1,    -1,    72,    -1,
     8,     9,    76,    11,    -1,    -1,    80,    81,    -1,    -1,
    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,
    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,
    -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,
    68,     3,    -1,    -1,    72,    -1,     8,     9,    76,    11,
    -1,    -1,    80,    81,    -1,    -1,    84,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,
    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
    -1,    -1,    -1,    55,    56,    -1,    -1,    -1,    60,    61,
    -1,    -1,    -1,    65,    -1,    67,    68,     3,    -1,    -1,
    72,    -1,     8,     9,    76,    11,    -1,    -1,    80,    81,
    -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,
    -1,    -1,    -1,    49,    50,    51,    -1,    -1,    -1,    55,
    56,    -1,    -1,    -1,    60,    61,    -1,    -1,    -1,    65,
    -1,    67,    68,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    76,    -1,    -1,    -1,    80,    81,    -1,    -1,    84,     3,
     4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
    14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
    24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,    -1,
    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,    73,
    -1,    -1,    76,    -1,    78,    -1,    80,    81,    -1,    83,
     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,
    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,
    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,
    -1,    -1,    55,    56,    -1,     3,    -1,    60,    61,    -1,
     8,     9,    65,    11,    67,    68,    -1,    -1,    -1,    72,
    73,    -1,    -1,    76,    -1,    78,    -1,    80,    81,    -1,
    83,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
    -1,    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,
    -1,    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,
    -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,
    68,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    -1,    -1,    80,    81,    -1,    83,     3,     4,    -1,     6,
     7,    -1,    -1,    -1,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    -1,    -1,     3,     4,    -1,     6,     7,
    -1,    -1,    39,    11,    12,    13,    14,    15,    16,    17,
    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    28,    29,    -1,    -1,    -1,     4,    -1,     6,     7,    -1,
    -1,    39,    -1,    12,    13,    14,    73,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    28,
     3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
    13,    14,    -1,    -1,    -1,    73,    -1,    46,    -1,    -1,
    -1,    -1,    -1,    -1,    82,    28,    29,    30,    31,    -1,
    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    68,
    -1,    44,    -1,    46,    73,    -1,    49,    50,    51,    78,
    79,    -1,    55,    56,    -1,    -1,    -1,    60,    61,    -1,
    -1,    -1,    65,    -1,    67,    68,    -1,    -1,    -1,    72,
    73,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,     3,
     4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,     3,    -1,    60,    61,    -1,     8,
     9,    65,    11,    67,    68,    -1,    -1,    -1,    72,    73,
    -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    -1,
    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,     3,
    -1,    60,    61,    -1,     8,     9,    65,    11,    67,    68,
    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    78,
    -1,    80,    81,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,     3,    -1,    60,    61,    -1,     8,
     9,    65,    11,    67,    68,    -1,    -1,    -1,    72,    -1,
    -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    -1,
    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,     3,
    -1,    60,    61,    -1,     8,     9,    65,    11,    67,    68,
    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    -1,    80,    81,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,     3,    -1,    60,    61,    -1,     8,
     9,    65,    11,    67,    68,    -1,    -1,    -1,    72,    -1,
    -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    -1,
    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,     3,
    -1,    60,    61,    -1,     8,     9,    65,    11,    67,    68,
    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    -1,    80,    81,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    44,    -1,    -1,    -1,    -1,    49,    50,    51,    -1,    -1,
    -1,    55,    56,    -1,     3,    -1,    60,    61,    -1,     8,
     9,    65,    11,    67,    68,    -1,    -1,    -1,    72,    -1,
    -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    -1,
    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
    -1,    -1,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    49,    50,    51,    -1,    -1,    -1,    55,    56,    -1,    -1,
    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    67,    68,
    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     1,    80,    81,     4,    -1,     6,     7,    -1,    -1,    -1,
    -1,    12,    13,    14,    -1,    -1,    -1,     1,    -1,    -1,
     4,    -1,     6,     7,    -1,    -1,    -1,    28,    12,    13,
    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    28,    46,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
    -1,    -1,    46,    -1,    12,    13,    14,    68,    69,    70,
    71,    -1,    73,    -1,    -1,    -1,    -1,    78,    79,    27,
    28,    -1,    30,    31,    68,    69,    70,    71,    -1,    73,
    -1,    -1,    -1,    -1,    78,    79,    -1,    -1,    46,    -1,
    -1,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    60,    -1,    62,    63,    64,    -1,    -1,    -1,
    68,    -1,    -1,    -1,    72,    73,    74,    75,    -1,     1,
    78,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    28,     1,    30,     3,
     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
    14,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,    60,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,
    -1,    73,    46,    -1,    -1,    -1,    78,    51,     1,    -1,
     3,     4,     5,     6,     7,    -1,    60,    10,    -1,    12,
    13,    14,    -1,    -1,    68,    -1,    -1,     1,    -1,    73,
     4,     5,     6,     7,    78,    28,    10,    30,    12,    13,
    14,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
    13,    14,    -1,    46,    28,    -1,    30,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,    -1,
    -1,    -1,    46,    -1,    -1,    68,    -1,    -1,    -1,    -1,
    73,    -1,    -1,    46,    77,    -1,    -1,     4,     5,     6,
     7,    -1,    -1,    -1,    68,    12,    13,    14,    -1,    73,
    -1,    -1,    -1,    77,    -1,    68,    -1,    -1,    -1,    -1,
    73,    28,    -1,    30,    -1,    78,     4,     5,     6,     7,
    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    46,
    -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,    -1,
    28,    -1,    30,    12,    13,    14,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    -1,    -1,    -1,    73,    -1,    46,    28,
    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    -1,
    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    -1,
    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
    -1,    -1,     3,     4,    73,     6,     7,    -1,    -1,    78,
    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    -1,     3,     4,    -1,     6,     7,    -1,    -1,    39,    11,
    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    22,    23,    24,    25,    26,    27,    28,    29,    -1,    60,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
     3,     4,    73,     6,     7,    -1,    -1,    -1,    11,    12,
    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    -1,    -1,     3,
     4,    73,     6,     7,    -1,    -1,    39,    11,    12,    13,
    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    24,    25,    26,    27,    28,    29,    -1,    -1,     4,    -1,
     6,     7,    -1,    -1,    -1,    39,    12,    13,    14,    -1,
    73,     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,
    13,    14,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,    73,
    46,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    46,    60,    61,    -1,    -1,    -1,    -1,
    -1,    -1,    68,     4,     5,     6,     7,    73,    -1,    10,
    -1,    12,    13,    14,    -1,    68,     4,     5,     6,     7,
    73,    -1,    -1,    -1,    12,    13,    14,    28,    -1,    30,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    28,    -1,    30,    -1,    -1,    46,     4,     5,     6,     7,
    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    46,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
    28,    -1,    73,    -1,     4,     5,     6,     7,    -1,    -1,
    68,    -1,    12,    13,    14,    73,    -1,     4,    46,     6,
     7,    -1,    -1,    -1,    -1,    12,    13,    14,    28,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    68,    28,    -1,    -1,    -1,    73,    46,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
    -1,    -1,    -1,    73,    -1,    10,    -1,    -1,    -1,    -1,
    -1,    68,    -1,    36,    37,    38,    73,    40,    41,    42,
    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    53,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    -1,    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,    37,
    38,    84,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    36,    37,    38,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52,    53,    36,    37,    38,    -1,    40,    41,
    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
    52,    53
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/local/lib/bison.simple"

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

#ifndef alloca
#ifdef __GNUC__
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
#include <alloca.h>
#else /* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
#include <malloc.h>
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
#include <malloc.h>
 #pragma alloca
#else /* not MSDOS, __TURBOC__, or _AIX */
#ifdef __hpux
#ifdef __cplusplus
extern "C" {
void *alloca (unsigned int);
};
#else /* not __cplusplus */
void *alloca ();
#endif /* not __cplusplus */
#endif /* __hpux */
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc.  */
#endif /* not GNU C.  */
#endif /* alloca not defined.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	return(0)
#define YYABORT 	return(1)
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYPURE
#define YYLEX		yylex()
#endif

#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
int yyparse (void);
#endif

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (to, from, count)
     char *to;
     char *from;
     int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#else /* __cplusplus */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (char *to, char *from, int count)
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#endif
#endif

#line 196 "/usr/local/lib/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */

int
yyparse(YYPARSE_PARAM_ARG)
     YYPARSE_PARAM_DECL
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  int yystacksize = YYINITDEPTH;

#ifdef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
#ifdef YYLSP_NEEDED
      /* This used to be a conditional around just the two extra args,
	 but that might be undefined if yyoverflow is a macro.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yystacksize);
#else
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yystacksize);
#endif

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("parser stack overflow");
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

  goto yybackup;
 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Reading a token: ");
#endif
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	{
	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise meaning
	     of a token, for further debugging info.  */
#ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
#endif
	  fprintf (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  if (yylen > 0)
    yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      int i;

      fprintf (stderr, "Reducing via rule %d (line %d), ",
	       yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif


  switch (yyn) {

case 1:
#line 273 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids an empty source file");
		  finish_file ();
		;
    break;}
case 2:
#line 278 "objc-parse.y"
{
		  /* In case there were missing closebraces,
		     get us back to the global binding level.  */
		  while (! global_bindings_p ())
		    poplevel (0, 0, 0);
		  finish_file ();
		;
    break;}
case 3:
#line 292 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 293 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 10:
#line 301 "objc-parse.y"
{ STRIP_NOPS (yyvsp[-2].ttype);
		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
		    assemble_asm (yyvsp[-2].ttype);
		  else
		    error ("argument of `asm' is not a constant string"); ;
    break;}
case 11:
#line 309 "objc-parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 12:
#line 315 "objc-parse.y"
{ if (pedantic)
		    error ("ANSI C forbids data definition with no type or storage class");
		  else if (!flag_traditional)
		    warning ("data definition has no type or storage class"); 

		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 13:
#line 325 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 14:
#line 330 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype);  ;
    break;}
case 15:
#line 335 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 16:
#line 337 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 19:
#line 341 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
    break;}
case 20:
#line 347 "objc-parse.y"
{
#ifdef MODERN_OBJC_SYNTAX
                  if (flag_modern_objc_syntax && objc_implementation_context) 
                    { 
                    tree md = build_method_decl_from_ansiproto(yyvsp[0].ttype, yyvsp[-2].ttype,
                                        objc_implementation_context);
                    start_method_def(md);
                    objc_method_context = md;
                    objc_receiver_context = 1;
                    } 
                  else 
                    {
#endif
		  if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function ();
#ifdef MODERN_OBJC_SYNTAX
                    }
#endif
		;
    break;}
case 21:
#line 369 "objc-parse.y"
{
#ifdef MODERN_OBJC_SYNTAX
                   if (objc_implementation_context && objc_method_context) 
                     continue_method_def();
                   else
#endif
                     store_parm_decls (); 
                ;
    break;}
case 22:
#line 378 "objc-parse.y"
{ 
#ifdef MODERN_OBJC_SYNTAX
                  if (objc_implementation_context && objc_method_context) 
                    {
                      finish_method_def();
                      objc_method_context = NULL_TREE;
                      objc_receiver_context = 0;
                    } 
                  else 
                    {
#endif
                      finish_function (0); 
		      current_declspecs = TREE_VALUE (declspec_stack);
		      prefix_attributes = TREE_PURPOSE (declspec_stack);
		      declspec_stack = TREE_CHAIN (declspec_stack);
		      resume_momentary (yyvsp[-5].itype); 
#ifdef MODERN_OBJC_SYNTAX
                    }
#endif
                  ;
    break;}
case 23:
#line 399 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 24:
#line 404 "objc-parse.y"
{ if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 25:
#line 409 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 26:
#line 411 "objc-parse.y"
{ finish_function (0); 
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 27:
#line 417 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 28:
#line 422 "objc-parse.y"
{ if (! start_function (NULL_TREE, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 29:
#line 427 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 30:
#line 429 "objc-parse.y"
{ finish_function (0); 
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 31:
#line 435 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 36:
#line 449 "objc-parse.y"
{ yyval.code = ADDR_EXPR; ;
    break;}
case 37:
#line 451 "objc-parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 38:
#line 453 "objc-parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 39:
#line 455 "objc-parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 40:
#line 457 "objc-parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 41:
#line 459 "objc-parse.y"
{ yyval.code = BIT_NOT_EXPR; ;
    break;}
case 42:
#line 461 "objc-parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 43:
#line 465 "objc-parse.y"
{ yyval.ttype = last_compound_expr
		    = build_compound_expr (last_compound_list = yyvsp[0].ttype); ;
    break;}
case 44:
#line 471 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 46:
#line 477 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 47:
#line 479 "objc-parse.y"
{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 49:
#line 485 "objc-parse.y"
{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 50:
#line 488 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 51:
#line 491 "objc-parse.y"
{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
		  overflow_warning (yyval.ttype); ;
    break;}
case 52:
#line 495 "objc-parse.y"
{ tree label = lookup_label (yyvsp[0].ttype);
		  if (pedantic)
		    pedwarn ("ANSI C forbids `&&'");
		  if (label == 0)
		    yyval.ttype = null_pointer_node;
		  else
		    {
		      TREE_USED (label) = 1;
		      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
		      TREE_CONSTANT (yyval.ttype) = 1;
		    }
		;
    break;}
case 53:
#line 523 "objc-parse.y"
{ skip_evaluation--;
		  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
		      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
		    error ("`sizeof' applied to a bit-field");
		  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
    break;}
case 54:
#line 529 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 55:
#line 532 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
    break;}
case 56:
#line 535 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 57:
#line 538 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_vec_step_expr (yyvsp[0].ttype); ;
    break;}
case 58:
#line 541 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_vec_step (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 59:
#line 544 "objc-parse.y"
{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 60:
#line 546 "objc-parse.y"
{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 61:
#line 550 "objc-parse.y"
{ skip_evaluation++; ;
    break;}
case 62:
#line 554 "objc-parse.y"
{ skip_evaluation++; ;
    break;}
case 63:
#line 558 "objc-parse.y"
{ skip_evaluation++; ;
    break;}
case 65:
#line 564 "objc-parse.y"
{ tree type = groktypename (yyvsp[-2].ttype);
  		  /* If typename is a vector type, check for the form of a
		     vector constant.  The cast_expr must be of the form
		     '(' nonnull_expr_list ')' and the expression list must
		     consist of integer constants or floating point
		     constants.  Unfortunately, we need the actual list of
		     constants, not the value after the list was reduced by
		     build_compound_expr.  We hack around this by saving
		     the last input and result of build_compound_expr and
		     using them here.  */
		  tree last = yyvsp[0].ttype;
		  STRIP_NOPS(last);
		  if (TREE_CODE (type) == VECTOR_TYPE
		      && yyvsp[0].ttype == last_compound_expr
		      && (TREE_CODE (last) == INTEGER_CST
			  || TREE_CODE (last) == REAL_CST))
		    yyval.ttype = build_vector_constant (type, last_compound_list);
		  else
		    yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
    break;}
case 66:
#line 584 "objc-parse.y"
{ start_init (NULL_TREE, NULL, 0);
		  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
		  really_start_incremental_init (yyvsp[-2].ttype); ;
    break;}
case 67:
#line 588 "objc-parse.y"
{ char *name;
		  tree result = pop_init_level (0);
		  tree type = yyvsp[-5].ttype;
		  finish_init ();

		  if (pedantic && ! flag_isoc9x)
		    pedwarn ("ANSI C forbids constructor expressions");
		  if (TYPE_NAME (type) != 0)
		    {
		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
			name = IDENTIFIER_POINTER (TYPE_NAME (type));
		      else
			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
		    }
		  else
		    name = "";
		  yyval.ttype = result;
		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
		    {
		      int failure = complete_array_type (type, yyval.ttype, 1);
		      if (failure)
			abort ();
		    }
		;
    break;}
case 69:
#line 617 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 70:
#line 619 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 71:
#line 621 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 72:
#line 623 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 73:
#line 625 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 74:
#line 627 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 75:
#line 629 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 76:
#line 631 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 77:
#line 633 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 78:
#line 635 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 79:
#line 637 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 80:
#line 639 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 81:
#line 641 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 82:
#line 644 "objc-parse.y"
{ skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
		  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
    break;}
case 83:
#line 647 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
    break;}
case 84:
#line 650 "objc-parse.y"
{ skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
		  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
    break;}
case 85:
#line 653 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 86:
#line 656 "objc-parse.y"
{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
				      - (yyvsp[-4].ttype == boolean_false_node)); ;
    break;}
case 87:
#line 659 "objc-parse.y"
{ skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
		  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
    break;}
case 88:
#line 662 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
		  /* Make sure first operand is calculated only once.  */
		  yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
		  yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
    break;}
case 89:
#line 669 "objc-parse.y"
{ skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
		  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
    break;}
case 90:
#line 672 "objc-parse.y"
{ char class;
		  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
		;
    break;}
case 91:
#line 680 "objc-parse.y"
{ char class;
		  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
		  /* This inhibits warnings in truthvalue_conversion.  */
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
		;
    break;}
case 92:
#line 692 "objc-parse.y"
{
		  yyval.ttype = lastiddecl;
		  if (!yyval.ttype || yyval.ttype == error_mark_node)
		    {
		      if (yychar == YYEMPTY)
			yychar = YYLEX;
		      if (yychar == '(')
			{
			  tree decl;

			  if (objc_receiver_context
			      && ! (objc_receiver_context
				    && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
			    /* we have a message to super */
			    yyval.ttype = get_super_receiver ();
			  else if (objc_method_context
				   && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
			    {
			      if (is_private (decl))
				yyval.ttype = error_mark_node;
			      else
				yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
			    }
			  else
			    {
			      /* Ordinary implicit function declaration.  */
			      yyval.ttype = implicitly_declare (yyvsp[0].ttype);
			      assemble_external (yyval.ttype);
			      TREE_USED (yyval.ttype) = 1;
			    }
			}
		      else if (current_function_decl == 0)
			{
			  error ("`%s' undeclared here (not in a function)",
				 IDENTIFIER_POINTER (yyvsp[0].ttype));
			  yyval.ttype = error_mark_node;
			}
		      else
			{
			  tree decl;

		          if (objc_receiver_context
			      && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
			    /* we have a message to super */
			    yyval.ttype = get_super_receiver ();
			  else if (objc_method_context
				   && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
			    {
			      if (is_private (decl))
				yyval.ttype = error_mark_node;
			      else
				yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
			    }
			  else
			    {
			      if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
				  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
				{
				  error ("`%s' undeclared (first use in this function)",
					 IDENTIFIER_POINTER (yyvsp[0].ttype));

				  if (! undeclared_variable_notice)
				    {
				      error ("(Each undeclared identifier is reported only once");
				      error ("for each function it appears in.)");
				      undeclared_variable_notice = 1;
				    }
				}
			      yyval.ttype = error_mark_node;
			      /* Prevent repeated error messages.  */
			      IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
			      IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
			    }
			}
		    }
		  else if (TREE_TYPE (yyval.ttype) == error_mark_node)
		    yyval.ttype = error_mark_node;
		  else if (C_DECL_ANTICIPATED (yyval.ttype))
		    {
		      /* The first time we see a build-in function used,
			 if it has not been declared.  */
		      C_DECL_ANTICIPATED (yyval.ttype) = 0;
		      if (yychar == YYEMPTY)
			yychar = YYLEX;
		      if (yychar == '(')
			{
			  /* Omit the implicit declaration we
			     would ordinarily do, so we don't lose
			     the actual built in type.
			     But print a diagnostic for the mismatch.  */
			  if (objc_method_context
			      && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
			    error ("Instance variable `%s' implicitly declared as function",
				   IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
			  else
			    if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
			      error ("`%s' implicitly declared as function",
				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
				    != TYPE_MODE (integer_type_node))
				   && (TREE_TYPE (TREE_TYPE (yyval.ttype))
				       != void_type_node))
			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
				     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
			  /* If it really returns void, change that to int.  */
			  if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
			    TREE_TYPE (yyval.ttype)
			      = build_function_type (integer_type_node,
						     TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
			}
		      else
			pedwarn ("built-in function `%s' used without declaration",
				 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));

		      /* Do what we would ordinarily do when a fn is used.  */
		      assemble_external (yyval.ttype);
		      TREE_USED (yyval.ttype) = 1;
		    }
		  else
		    {
		      assemble_external (yyval.ttype);
		      TREE_USED (yyval.ttype) = 1;
		      /* we have a definition - still check if iVariable */

		      if (!objc_receiver_context
			  || (objc_receiver_context
			      && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
                        {
			  tree decl;

			  if (objc_method_context
			      && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
                            {
                              if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
                                warning ("local declaration of `%s' hides instance variable",
	                                 IDENTIFIER_POINTER (yyvsp[0].ttype));
                              else
 				{
 				  if (is_private (decl))
 				    yyval.ttype = error_mark_node;
 				  else
 				    yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
 				}
                            }
			}
                      else /* we have a message to super */
		        yyval.ttype = get_super_receiver ();
		    }

		  if (TREE_CODE (yyval.ttype) == CONST_DECL)
		    {
		      yyval.ttype = DECL_INITIAL (yyval.ttype);
		      /* This is to prevent an enum whose value is 0
			 from being considered a null pointer constant.  */
		      yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
		      TREE_CONSTANT (yyval.ttype) = 1;
		    }
		;
    break;}
case 94:
#line 852 "objc-parse.y"
{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
    break;}
case 95:
#line 854 "objc-parse.y"
{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
		    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
		  yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 96:
#line 860 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 97:
#line 862 "objc-parse.y"
{ if (current_function_decl == 0)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  /* We must force a BLOCK for this level
		     so that, if it is not expanded later,
		     there is a way to turn off the entire subtree of blocks
		     that are contained in it.  */
		  keep_next_level ();
		  push_iterator_stack ();
		  push_label_level ();
		  yyval.ttype = expand_start_stmt_expr (); ;
    break;}
case 98:
#line 876 "objc-parse.y"
{ tree rtl_exp;
		  if (pedantic)
		    pedwarn ("ANSI C forbids braced-groups within expressions");
		  pop_iterator_stack ();
		  pop_label_level ();
		  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
		  /* The statements have side effects, so the group does.  */
		  TREE_SIDE_EFFECTS (rtl_exp) = 1;

		  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
		    {
		      /* Make a BIND_EXPR for the BLOCK already made.  */
		      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
				  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
		      /* Remove the block from the tree at this point.
			 It gets put back at the proper place
			 when the BIND_EXPR is expanded.  */
		      delete_block (yyvsp[-1].ttype);
		    }
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 99:
#line 899 "objc-parse.y"
{ 
#ifdef MODERN_OBJC_SYNTAX
                  if (doing_objc_thang && flag_modern_objc_syntax && 
                      TREE_CODE (yyvsp[-3].ttype) == MODERN_MESSAGE_EXPR)
                    yyval.ttype = build_modern_message_expression(yyvsp[-3].ttype, yyvsp[-1].ttype);
                  else
#endif
                    yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); 
                ;
    break;}
case 100:
#line 909 "objc-parse.y"
{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 101:
#line 911 "objc-parse.y"
{
#ifdef MODERN_OBJC_SYNTAX
                  if (doing_objc_thang && flag_modern_objc_syntax)
                    {
                      yyvsp[-2].ttype = get_class_reference (yyvsp[-2].ttype);
                      yyval.ttype = build (MODERN_MESSAGE_EXPR, TREE_TYPE (yyvsp[-2].ttype), yyvsp[-2].ttype, yyvsp[0].ttype);
                    }
                  else
#endif
		    yyval.ttype = error_mark_node;
                ;
    break;}
case 102:
#line 923 "objc-parse.y"
{
                  if (doing_objc_thang
#ifdef MODERN_OBJC_SYNTAX
		      && flag_modern_objc_syntax
#endif
		      )
                    {
#ifdef MODERN_OBJC_SYNTAX
		      if (looks_like_ansistyle_message_ref(yyvsp[-2].ttype, yyvsp[0].ttype))
                        yyval.ttype = build (MODERN_MESSAGE_EXPR, TREE_TYPE (yyvsp[-2].ttype), 
                                    yyvsp[-2].ttype, yyvsp[0].ttype);
		      else
#endif
		      if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
			yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
		      else
			yyval.ttype = error_mark_node;
		    }
                  else
		    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 103:
#line 945 "objc-parse.y"
{
                  tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");

                  if (doing_objc_thang)
                    {
		      if (is_public (expr, yyvsp[0].ttype))
			yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
		      else
			yyval.ttype = error_mark_node;
		    }
                  else
                    yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
		;
    break;}
case 104:
#line 959 "objc-parse.y"
{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 105:
#line 961 "objc-parse.y"
{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 106:
#line 963 "objc-parse.y"
{ yyval.ttype = build_message_expr (yyvsp[0].ttype, 0); ;
    break;}
case 107:
#line 965 "objc-parse.y"
{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
    break;}
case 108:
#line 967 "objc-parse.y"
{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
    break;}
case 109:
#line 969 "objc-parse.y"
{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
    break;}
case 110:
#line 971 "objc-parse.y"
{ yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
    break;}
case 112:
#line 978 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 114:
#line 986 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 117:
#line 994 "objc-parse.y"
{ c_mark_varargs ();
		  if (pedantic)
		    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
    break;}
case 118:
#line 1004 "objc-parse.y"
{ ;
    break;}
case 123:
#line 1020 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 124:
#line 1025 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);	
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 125:
#line 1030 "objc-parse.y"
{ shadow_tag_warned (yyvsp[-1].ttype, 1);
		  pedwarn ("empty declaration"); ;
    break;}
case 126:
#line 1033 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 127:
#line 1042 "objc-parse.y"
{ ;
    break;}
case 132:
#line 1057 "objc-parse.y"
{ yyval.itype = suspend_momentary ();
		  pending_xref_error ();
		  declspec_stack = tree_cons (prefix_attributes,
					      current_declspecs,
					      declspec_stack);
		  split_specs_attrs (yyvsp[0].ttype,
				     &current_declspecs, &prefix_attributes); ;
    break;}
case 133:
#line 1068 "objc-parse.y"
{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
    break;}
case 134:
#line 1073 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 135:
#line 1078 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 136:
#line 1083 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 137:
#line 1088 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 138:
#line 1093 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 139:
#line 1095 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 140:
#line 1097 "objc-parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 141:
#line 1107 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 142:
#line 1109 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 143:
#line 1113 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 144:
#line 1115 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 145:
#line 1117 "objc-parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 146:
#line 1122 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 147:
#line 1127 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 148:
#line 1129 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 149:
#line 1134 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 150:
#line 1136 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 151:
#line 1138 "objc-parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 152:
#line 1151 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 153:
#line 1153 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 154:
#line 1155 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 155:
#line 1157 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 156:
#line 1162 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 157:
#line 1165 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 158:
#line 1167 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 159:
#line 1170 "objc-parse.y"
{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 160:
#line 1184 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 161:
#line 1186 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 162:
#line 1190 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 163:
#line 1192 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 166:
#line 1202 "objc-parse.y"
{ /* For a typedef name, record the meaning, not the name.
		     In case of `foo foo, bar;'.  */
		  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
    break;}
case 167:
#line 1206 "objc-parse.y"
{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 168:
#line 1208 "objc-parse.y"
{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
    break;}
case 169:
#line 1213 "objc-parse.y"
{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
    break;}
case 170:
#line 1215 "objc-parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
    break;}
case 171:
#line 1217 "objc-parse.y"
{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
    break;}
case 179:
#line 1239 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 180:
#line 1241 "objc-parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 181:
#line 1248 "objc-parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, prefix_attributes);
		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
    break;}
case 182:
#line 1253 "objc-parse.y"
{ finish_init ();
		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 183:
#line 1256 "objc-parse.y"
{ 
#ifdef MODERN_OBJC_SYNTAX
                  if (flag_modern_objc_syntax && objc_interface_context &&
                      looks_like_ansistyle_method_decl(yyvsp[-2].ttype, current_declspecs))
                    { 
                    build_method_decl_from_ansiproto(yyvsp[-2].ttype, 
			current_declspecs, objc_interface_context);
                    } 
                  else 
                    {
#endif
		    tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
				       yyvsp[0].ttype, prefix_attributes);
		    finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
#ifdef MODERN_OBJC_SYNTAX
		    }
#endif
                ;
    break;}
case 184:
#line 1278 "objc-parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, prefix_attributes);
		  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
    break;}
case 185:
#line 1283 "objc-parse.y"
{ finish_init ();
		  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 186:
#line 1287 "objc-parse.y"
{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
				       yyvsp[0].ttype, prefix_attributes);
		  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 187:
#line 1295 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 188:
#line 1297 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 189:
#line 1302 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 190:
#line 1304 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 191:
#line 1309 "objc-parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 192:
#line 1314 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 193:
#line 1316 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 194:
#line 1321 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 195:
#line 1323 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 196:
#line 1325 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 197:
#line 1327 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 198:
#line 1329 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 204:
#line 1347 "objc-parse.y"
{ really_start_incremental_init (NULL_TREE);
		  /* Note that the call to clear_momentary
		     is in process_init_element.  */
		  push_momentary (); ;
    break;}
case 205:
#line 1352 "objc-parse.y"
{ yyval.ttype = pop_init_level (0);
		  if (yyval.ttype == error_mark_node
		      && ! (yychar == STRING || yychar == CONSTANT))
		    pop_momentary ();
		  else
		    pop_momentary_nofree (); ;
    break;}
case 206:
#line 1360 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 207:
#line 1366 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids empty initializer braces"); ;
    break;}
case 213:
#line 1382 "objc-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 216:
#line 1389 "objc-parse.y"
{ push_init_level (0); ;
    break;}
case 217:
#line 1391 "objc-parse.y"
{ process_init_element (pop_init_level (0)); ;
    break;}
case 218:
#line 1393 "objc-parse.y"
{ process_init_element (yyvsp[0].ttype); ;
    break;}
case 222:
#line 1404 "objc-parse.y"
{ set_init_label (yyvsp[0].ttype); ;
    break;}
case 223:
#line 1409 "objc-parse.y"
{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 225:
#line 1412 "objc-parse.y"
{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 227:
#line 1415 "objc-parse.y"
{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 229:
#line 1418 "objc-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 231:
#line 1421 "objc-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 233:
#line 1427 "objc-parse.y"
{ push_c_function_context ();
		  if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 1))
		    {
		      pop_c_function_context ();
		      YYERROR1;
		    }
		  reinit_parse_for_function (); ;
    break;}
case 234:
#line 1436 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 235:
#line 1444 "objc-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 236:
#line 1450 "objc-parse.y"
{ push_c_function_context ();
		  if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 1))
		    {
		      pop_c_function_context ();
		      YYERROR1;
		    }
		  reinit_parse_for_function (); ;
    break;}
case 237:
#line 1459 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 238:
#line 1467 "objc-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 241:
#line 1483 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 242:
#line 1485 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 243:
#line 1490 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 244:
#line 1492 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 245:
#line 1494 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 246:
#line 1501 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 249:
#line 1513 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 250:
#line 1518 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 251:
#line 1520 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 252:
#line 1522 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 253:
#line 1529 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 256:
#line 1539 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 257:
#line 1544 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 258:
#line 1546 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 259:
#line 1548 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 260:
#line 1550 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 261:
#line 1557 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 263:
#line 1563 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 264:
#line 1565 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 265:
#line 1570 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 266:
#line 1572 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 267:
#line 1577 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 268:
#line 1579 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 269:
#line 1584 "objc-parse.y"
{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
		  /* Start scope of tag before parsing components.  */
		;
    break;}
case 270:
#line 1588 "objc-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
    break;}
case 271:
#line 1590 "objc-parse.y"
{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
		;
    break;}
case 272:
#line 1594 "objc-parse.y"
{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
    break;}
case 273:
#line 1596 "objc-parse.y"
{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
    break;}
case 274:
#line 1598 "objc-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
    break;}
case 275:
#line 1600 "objc-parse.y"
{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
		;
    break;}
case 276:
#line 1604 "objc-parse.y"
{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
    break;}
case 277:
#line 1606 "objc-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 278:
#line 1609 "objc-parse.y"
{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 279:
#line 1612 "objc-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (NULL_TREE); ;
    break;}
case 280:
#line 1615 "objc-parse.y"
{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 281:
#line 1618 "objc-parse.y"
{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
    break;}
case 285:
#line 1629 "objc-parse.y"
{ if (pedantic && ! flag_isoc9x)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 286:
#line 1635 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 287:
#line 1637 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		  pedwarn ("no semicolon at end of struct or union"); ;
    break;}
case 288:
#line 1642 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 289:
#line 1644 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 290:
#line 1646 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("extra semicolon in struct or union specified"); ;
    break;}
case 291:
#line 1650 "objc-parse.y"
{
		  tree interface = lookup_interface (yyvsp[-1].ttype);

		  if (interface)
		    yyval.ttype = get_class_ivars (interface);
		  else
		    {
		      error ("Cannot find interface declaration for `%s'",
			     IDENTIFIER_POINTER (yyvsp[-1].ttype));
		      yyval.ttype = NULL_TREE;
		    }
		;
    break;}
case 292:
#line 1675 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 293:
#line 1681 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids member declarations with no members");
		  shadow_tag(yyvsp[0].ttype);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 294:
#line 1686 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 295:
#line 1692 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids member declarations with no members");
		  shadow_tag(yyvsp[0].ttype);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 296:
#line 1697 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 297:
#line 1699 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 299:
#line 1706 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 300:
#line 1711 "objc-parse.y"
{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 301:
#line 1715 "objc-parse.y"
{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 302:
#line 1718 "objc-parse.y"
{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 304:
#line 1730 "objc-parse.y"
{ if (yyvsp[-2].ttype == error_mark_node)
		    yyval.ttype = yyvsp[-2].ttype;
		  else
		    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
    break;}
case 305:
#line 1735 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 306:
#line 1741 "objc-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 307:
#line 1743 "objc-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 308:
#line 1748 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 309:
#line 1750 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 310:
#line 1755 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 312:
#line 1761 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 313:
#line 1763 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 314:
#line 1768 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 315:
#line 1770 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 316:
#line 1775 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 317:
#line 1778 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 318:
#line 1780 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 319:
#line 1782 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 320:
#line 1784 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 321:
#line 1786 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 322:
#line 1788 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 323:
#line 1790 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 324:
#line 1792 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 325:
#line 1796 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 326:
#line 1805 "objc-parse.y"
{
		  if (pedantic && yyvsp[0].ends_in_label)
		    pedwarn ("ANSI C forbids label at end of compound statement");
		;
    break;}
case 328:
#line 1814 "objc-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 329:
#line 1816 "objc-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 333:
#line 1828 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  pushlevel (0);
		  clear_last_expr ();
		  push_momentary ();
		  expand_start_bindings (0);
		  if (objc_method_context)
		    add_objc_decls ();
		;
    break;}
case 335:
#line 1843 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids label declarations"); ;
    break;}
case 338:
#line 1854 "objc-parse.y"
{ tree link;
		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
		    {
		      tree label = shadow_label (TREE_VALUE (link));
		      C_DECLARED_LABEL_FLAG (label) = 1;
		      declare_nonlocal_label (label);
		    }
		;
    break;}
case 339:
#line 1868 "objc-parse.y"
{;
    break;}
case 341:
#line 1872 "objc-parse.y"
{ compstmt_count++; ;
    break;}
case 342:
#line 1875 "objc-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
    break;}
case 343:
#line 1877 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_end_bindings (getdecls (), 1, 0);
		  yyval.ttype = poplevel (1, 1, 0);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 344:
#line 1885 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_end_bindings (getdecls (), kept_level_p (), 0);
		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 345:
#line 1893 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_end_bindings (getdecls (), kept_level_p (), 0);
		  yyval.ttype = poplevel (kept_level_p (), 0, 0);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 348:
#line 1913 "objc-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
				       compstmt_count);
		  yyval.itype = stmt_count;
		  if_stmt_file = yyvsp[-5].filename;
		  if_stmt_line = yyvsp[-4].lineno;
		  position_after_white_space (); ;
    break;}
case 349:
#line 1927 "objc-parse.y"
{ stmt_count++;
		  compstmt_count++;
		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
		  /* See comment in `while' alternative, above.  */
		  emit_nop ();
		  expand_start_loop_continue_elsewhere (1);
		  position_after_white_space (); ;
    break;}
case 350:
#line 1935 "objc-parse.y"
{ expand_loop_continue_here (); ;
    break;}
case 351:
#line 1939 "objc-parse.y"
{ yyval.filename = input_filename; ;
    break;}
case 352:
#line 1943 "objc-parse.y"
{ yyval.lineno = lineno; ;
    break;}
case 353:
#line 1948 "objc-parse.y"
{ ;
    break;}
case 354:
#line 1953 "objc-parse.y"
{ ;
    break;}
case 355:
#line 1958 "objc-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 356:
#line 1963 "objc-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 357:
#line 1965 "objc-parse.y"
{ yyval.ends_in_label = 1; ;
    break;}
case 358:
#line 1971 "objc-parse.y"
{ stmt_count++; ;
    break;}
case 360:
#line 1974 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
/* It appears that this should not be done--that a non-lvalue array
   shouldn't get an error if the value isn't used.
   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
   if it appears as a top-level expression,
   but says nothing about non-lvalue arrays.  */
#if 0
		  /* Call default_conversion to get an error
		     on referring to a register array if pedantic.  */
		  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
		      || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
		    yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
#endif
		  iterator_expand (yyvsp[-1].ttype);
		  clear_momentary (); ;
    break;}
case 361:
#line 1991 "objc-parse.y"
{ c_expand_start_else ();
		  yyvsp[-1].itype = stmt_count;
		  position_after_white_space (); ;
    break;}
case 362:
#line 1995 "objc-parse.y"
{ c_expand_end_cond ();
		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
		    warning ("empty body in an else-statement"); ;
    break;}
case 363:
#line 1999 "objc-parse.y"
{ c_expand_end_cond ();
		  /* This warning is here instead of in simple_if, because we
		     do not want a warning if an empty if is followed by an
		     else statement.  Increment stmt_count so we don't
		     give a second error if this is a nested `if'.  */
		  if (extra_warnings && stmt_count++ == yyvsp[0].itype)
		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
						"empty body in an if-statement"); ;
    break;}
case 364:
#line 2011 "objc-parse.y"
{ c_expand_end_cond (); ;
    break;}
case 365:
#line 2013 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
		  /* The emit_nop used to come before emit_line_note,
		     but that made the nop seem like part of the preceding line.
		     And that was confusing when the preceding line was
		     inside of an if statement and was not really executed.
		     I think it ought to work to put the nop after the line number.
		     We will see.  --rms, July 15, 1991.  */
		  emit_nop (); ;
    break;}
case 366:
#line 2023 "objc-parse.y"
{ /* Don't start the loop till we have succeeded
		     in parsing the end test.  This is to make sure
		     that we end every loop we start.  */
		  expand_start_loop (1);
		  emit_line_note (input_filename, lineno);
		  expand_exit_loop_if_false (NULL_PTR,
					     truthvalue_conversion (yyvsp[-1].ttype));
		  position_after_white_space (); ;
    break;}
case 367:
#line 2032 "objc-parse.y"
{ expand_end_loop (); ;
    break;}
case 368:
#line 2035 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  expand_exit_loop_if_false (NULL_PTR,
					     truthvalue_conversion (yyvsp[-2].ttype));
		  expand_end_loop ();
		  clear_momentary (); ;
    break;}
case 369:
#line 2042 "objc-parse.y"
{ expand_end_loop ();
		  clear_momentary (); ;
    break;}
case 370:
#line 2046 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  /* See comment in `while' alternative, above.  */
		  emit_nop ();
		  if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
		  /* Next step is to call expand_start_loop_continue_elsewhere,
		     but wait till after we parse the entire for (...).
		     Otherwise, invalid input might cause us to call that
		     fn without calling expand_end_loop.  */
		;
    break;}
case 371:
#line 2058 "objc-parse.y"
{ yyvsp[0].lineno = lineno;
		  yyval.filename = input_filename; ;
    break;}
case 372:
#line 2061 "objc-parse.y"
{ 
		  /* Start the loop.  Doing this after parsing
		     all the expressions ensures we will end the loop.  */
		  expand_start_loop_continue_elsewhere (1);
		  /* Emit the end-test, with a line number.  */
		  emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
		  if (yyvsp[-4].ttype)
		    expand_exit_loop_if_false (NULL_PTR,
					       truthvalue_conversion (yyvsp[-4].ttype));
		  /* Don't let the tree nodes for $9 be discarded by
		     clear_momentary during the parsing of the next stmt.  */
		  push_momentary ();
		  yyvsp[-3].lineno = lineno;
		  yyvsp[-2].filename = input_filename;
		  position_after_white_space (); ;
    break;}
case 373:
#line 2077 "objc-parse.y"
{ /* Emit the increment expression, with a line number.  */
		  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
		  expand_loop_continue_here ();
		  if (yyvsp[-3].ttype)
		    c_expand_expr_stmt (yyvsp[-3].ttype);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary ();
		  expand_end_loop (); ;
    break;}
case 374:
#line 2088 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  c_expand_start_case (yyvsp[-1].ttype);
		  /* Don't let the tree nodes for $3 be discarded by
		     clear_momentary during the parsing of the next stmt.  */
		  push_momentary ();
		  position_after_white_space (); ;
    break;}
case 375:
#line 2096 "objc-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 376:
#line 2102 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
		  if ( ! expand_exit_something ())
		    error ("break statement not within loop or switch"); ;
    break;}
case 377:
#line 2107 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
		  if (! expand_continue_loop (NULL_PTR))
		    error ("continue statement not within a loop"); ;
    break;}
case 378:
#line 2112 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
		  c_expand_return (NULL_TREE); ;
    break;}
case 379:
#line 2116 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
		  c_expand_return (yyvsp[-1].ttype); ;
    break;}
case 380:
#line 2120 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
		  STRIP_NOPS (yyvsp[-2].ttype);
		  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
		       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
		      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
		    expand_asm (yyvsp[-2].ttype);
		  else
		    error ("argument of `asm' is not a constant string"); ;
    break;}
case 381:
#line 2131 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
		  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
					 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno); ;
    break;}
case 382:
#line 2138 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
		  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
					 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno); ;
    break;}
case 383:
#line 2146 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
		  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
					 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
					 input_filename, lineno); ;
    break;}
case 384:
#line 2152 "objc-parse.y"
{ tree decl;
		  stmt_count++;
		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
		  decl = lookup_label (yyvsp[-1].ttype);
		  if (decl != 0)
		    {
		      TREE_USED (decl) = 1;
		      expand_goto (decl);
		    }
		;
    break;}
case 385:
#line 2163 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids `goto *expr;'");
		  stmt_count++;
		  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
    break;}
case 388:
#line 2178 "objc-parse.y"
{
	    /* The value returned by this action is  */
	    /*      1 if everything is OK */ 
	    /*      0 in case of error or already bound iterator */

	    yyval.itype = 0;
	    if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
	      error ("invalid `for (ITERATOR)' syntax");
	    else if (! ITERATOR_P (yyvsp[-1].ttype))
	      error ("`%s' is not an iterator",
		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
	    else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
	      error ("`for (%s)' inside expansion of same iterator",
		     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
	    else
	      {
		yyval.itype = 1;
		iterator_for_loop_start (yyvsp[-1].ttype);
	      }
	  ;
    break;}
case 389:
#line 2199 "objc-parse.y"
{
	    if (yyvsp[-1].itype)
	      iterator_for_loop_end (yyvsp[-3].ttype);
	  ;
    break;}
case 390:
#line 2234 "objc-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype);
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);

		  stmt_count++;

		  if (value != error_mark_node)
		    {
		      tree duplicate;
		      int success;

		      if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
			pedwarn ("label must have integral type in ANSI C");

		      success = pushcase (value, convert_and_check,
					  label, &duplicate);

		      if (success == 1)
			error ("case label not within a switch statement");
		      else if (success == 2)
			{
			  error ("duplicate case value");
			  error_with_decl (duplicate, "this is the first entry for that value");
			}
		      else if (success == 3)
			warning ("case value out of range");
		      else if (success == 5)
			error ("case label within scope of cleanup or variable array");
		    }
		  position_after_white_space (); ;
    break;}
case 391:
#line 2265 "objc-parse.y"
{ register tree value1 = check_case_value (yyvsp[-3].ttype);
		  register tree value2 = check_case_value (yyvsp[-1].ttype);
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);

		  if (pedantic)
		    pedwarn ("ANSI C forbids case ranges");
		  stmt_count++;

		  if (value1 != error_mark_node && value2 != error_mark_node)
		    {
		      tree duplicate;
		      int success = pushcase_range (value1, value2,
						    convert_and_check, label,
						    &duplicate);
		      if (success == 1)
			error ("case label not within a switch statement");
		      else if (success == 2)
			{
			  error ("duplicate case value");
			  error_with_decl (duplicate, "this is the first entry for that value");
			}
		      else if (success == 3)
			warning ("case value out of range");
		      else if (success == 4)
			warning ("empty case range");
		      else if (success == 5)
			error ("case label within scope of cleanup or variable array");
		    }
		  position_after_white_space (); ;
    break;}
case 392:
#line 2296 "objc-parse.y"
{
		  tree duplicate;
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
		  int success = pushcase (NULL_TREE, 0, label, &duplicate);
		  stmt_count++;
		  if (success == 1)
		    error ("default label not within a switch statement");
		  else if (success == 2)
		    {
		      error ("multiple default labels in one switch");
		      error_with_decl (duplicate, "this is the first default label");
		    }
		  position_after_white_space (); ;
    break;}
case 393:
#line 2311 "objc-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
		  stmt_count++;
		  emit_nop ();
		  if (label)
		    {
		      expand_label (label);
		      decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
		    }
		  position_after_white_space (); ;
    break;}
case 394:
#line 2326 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 395:
#line 2329 "objc-parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 396:
#line 2334 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 398:
#line 2341 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 401:
#line 2348 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 402:
#line 2353 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 403:
#line 2358 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
    break;}
case 404:
#line 2360 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
    break;}
case 405:
#line 2366 "objc-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (0); ;
    break;}
case 406:
#line 2370 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 408:
#line 2378 "objc-parse.y"
{ tree parm;
		  if (pedantic)
		    pedwarn ("ANSI C forbids forward parameter declarations");
		  /* Mark the forward decls as such.  */
		  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
		    TREE_ASM_WRITTEN (parm) = 1;
		  clear_parm_order (); ;
    break;}
case 409:
#line 2386 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 410:
#line 2388 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
    break;}
case 411:
#line 2394 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 412:
#line 2396 "objc-parse.y"
{ yyval.ttype = get_parm_info (0);
		  /* Gcc used to allow this as an extension.  However, it does
		     not work for all targets, and thus has been disabled.
		     Also, since func (...) and func () are indistinguishable,
		     it caused problems with the code in expand_builtin which
		     tries to verify that BUILT_IN_NEXT_ARG is being used
		     correctly.  */
		  error ("ANSI C requires a named argument before `...'");
		;
    break;}
case 413:
#line 2406 "objc-parse.y"
{ yyval.ttype = get_parm_info (1); ;
    break;}
case 414:
#line 2408 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 415:
#line 2413 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 416:
#line 2415 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 417:
#line 2422 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype));
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 418:
#line 2431 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype)); 
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 419:
#line 2440 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype));
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 420:
#line 2449 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype));
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype);  ;
    break;}
case 421:
#line 2459 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype));
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype);  ;
    break;}
case 422:
#line 2473 "objc-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (1); ;
    break;}
case 423:
#line 2477 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 425:
#line 2485 "objc-parse.y"
{ tree t;
		  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
		    if (TREE_VALUE (t) == NULL_TREE)
		      error ("`...' in old-style identifier list");
		  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 426:
#line 2495 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 427:
#line 2497 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 428:
#line 2503 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 429:
#line 2505 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 430:
#line 2510 "objc-parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 436:
#line 2523 "objc-parse.y"
{
		  if (objc_implementation_context)
                    {
		      finish_class (objc_implementation_context);
		      objc_ivar_chain = NULL_TREE;
		      objc_implementation_context = NULL_TREE;
		    }
		  else
		    warning ("`@end' must appear in an implementation context");
		;
    break;}
case 437:
#line 2538 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 438:
#line 2540 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 439:
#line 2545 "objc-parse.y"
{
		  objc_declare_class (yyvsp[-1].ttype);
		;
    break;}
case 440:
#line 2551 "objc-parse.y"
{
		  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
		;
    break;}
case 441:
#line 2557 "objc-parse.y"
{
		  objc_interface_context = objc_ivar_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
                  objc_public_flag = 0;
		;
    break;}
case 442:
#line 2563 "objc-parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 443:
#line 2568 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 444:
#line 2574 "objc-parse.y"
{
		  objc_interface_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 445:
#line 2581 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 446:
#line 2587 "objc-parse.y"
{
		  objc_interface_context = objc_ivar_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
                  objc_public_flag = 0;
		;
    break;}
case 447:
#line 2593 "objc-parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 448:
#line 2598 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 449:
#line 2604 "objc-parse.y"
{
		  objc_interface_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 450:
#line 2611 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 451:
#line 2617 "objc-parse.y"
{
		  objc_implementation_context = objc_ivar_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
                  objc_public_flag = 0;
		;
    break;}
case 452:
#line 2623 "objc-parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 453:
#line 2629 "objc-parse.y"
{
		  objc_implementation_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 454:
#line 2637 "objc-parse.y"
{
		  objc_implementation_context = objc_ivar_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                  objc_public_flag = 0;
		;
    break;}
case 455:
#line 2643 "objc-parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 456:
#line 2649 "objc-parse.y"
{
		  objc_implementation_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 457:
#line 2657 "objc-parse.y"
{
		  objc_interface_context
		    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 458:
#line 2664 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 459:
#line 2670 "objc-parse.y"
{
		  objc_implementation_context
		    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 460:
#line 2680 "objc-parse.y"
{
		  // remember_protocol_qualifiers ();
		  objc_interface_context
		    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 461:
#line 2686 "objc-parse.y"
{
		  // forget_protocol_qualifiers();
		  finish_protocol(objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 462:
#line 2692 "objc-parse.y"
{
		  objc_declare_protocols (yyvsp[-1].ttype);
		;
    break;}
case 463:
#line 2699 "objc-parse.y"
{
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 465:
#line 2707 "objc-parse.y"
{
		  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
		    yyval.ttype = yyvsp[-1].ttype;
		  else
		    YYERROR1;
		;
    break;}
case 468:
#line 2721 "objc-parse.y"
{ objc_public_flag = 2; ;
    break;}
case 469:
#line 2722 "objc-parse.y"
{ objc_public_flag = 0; ;
    break;}
case 470:
#line 2723 "objc-parse.y"
{ objc_public_flag = 1; ;
    break;}
case 471:
#line 2728 "objc-parse.y"
{
                  yyval.ttype = NULL_TREE;
                ;
    break;}
case 473:
#line 2733 "objc-parse.y"
{
                  if (pedantic)
		    pedwarn ("extra semicolon in struct or union specified");
                ;
    break;}
case 474:
#line 2751 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 475:
#line 2757 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-1].itype); ;
    break;}
case 476:
#line 2763 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 477:
#line 2768 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 480:
#line 2775 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      yyvsp[0].ttype, current_declspecs,
					      NULL_TREE);
                ;
    break;}
case 481:
#line 2782 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                ;
    break;}
case 482:
#line 2788 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      NULL_TREE,
					      current_declspecs, yyvsp[0].ttype);
                ;
    break;}
case 483:
#line 2798 "objc-parse.y"
{
		  remember_protocol_qualifiers ();
		  if (objc_implementation_context)
		    objc_inherit_code = CLASS_METHOD_DECL;
                  else
		    fatal ("method definition not in class context");
		;
    break;}
case 484:
#line 2806 "objc-parse.y"
{
		  forget_protocol_qualifiers ();
		  add_class_method (objc_implementation_context, yyvsp[0].ttype);
		  start_method_def (yyvsp[0].ttype);
		  objc_method_context = yyvsp[0].ttype;
		;
    break;}
case 485:
#line 2813 "objc-parse.y"
{
		  continue_method_def ();
		;
    break;}
case 486:
#line 2817 "objc-parse.y"
{
		  finish_method_def ();
		  objc_method_context = NULL_TREE;
		;
    break;}
case 487:
#line 2823 "objc-parse.y"
{
		  remember_protocol_qualifiers ();
		  if (objc_implementation_context)
		    objc_inherit_code = INSTANCE_METHOD_DECL;
                  else
		    fatal ("method definition not in class context");
		;
    break;}
case 488:
#line 2831 "objc-parse.y"
{
		  forget_protocol_qualifiers ();
		  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
		  start_method_def (yyvsp[0].ttype);
		  objc_method_context = yyvsp[0].ttype;
		;
    break;}
case 489:
#line 2838 "objc-parse.y"
{
		  continue_method_def ();
		;
    break;}
case 490:
#line 2842 "objc-parse.y"
{
		  finish_method_def ();
		  objc_method_context = NULL_TREE;
		;
    break;}
case 492:
#line 2854 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 497:
#line 2861 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 501:
#line 2871 "objc-parse.y"
{
		  remember_protocol_qualifiers ();
		  objc_inherit_code = CLASS_METHOD_DECL;
		;
    break;}
case 502:
#line 2876 "objc-parse.y"
{
		  forget_protocol_qualifiers ();
		  add_class_method (objc_interface_context, yyvsp[0].ttype);
		;
    break;}
case 504:
#line 2883 "objc-parse.y"
{
		  remember_protocol_qualifiers ();
		  objc_inherit_code = INSTANCE_METHOD_DECL;
		;
    break;}
case 505:
#line 2888 "objc-parse.y"
{
		  forget_protocol_qualifiers ();
		  add_instance_method (objc_interface_context, yyvsp[0].ttype);
		;
    break;}
case 507:
#line 2897 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 508:
#line 2899 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 509:
#line 2904 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
		;
    break;}
case 510:
#line 2909 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyvsp[-3].ttype);
		;
    break;}
case 511:
#line 2914 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
		;
    break;}
case 512:
#line 2919 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 513:
#line 2924 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
		;
    break;}
case 514:
#line 2929 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 523:
#line 2959 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack);
		  prefix_attributes = TREE_PURPOSE (declspec_stack);
		  declspec_stack = TREE_CHAIN (declspec_stack);
		  resume_momentary (yyvsp[-2].itype); ;
    break;}
case 524:
#line 2964 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 525:
#line 2966 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 526:
#line 2971 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 527:
#line 2973 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 528:
#line 2981 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype)); ;
    break;}
case 529:
#line 2986 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype)); ;
    break;}
case 530:
#line 2991 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
							 yyvsp[-1].ttype),
					build_tree_list (prefix_attributes,
							 yyvsp[0].ttype)); ;
    break;}
case 531:
#line 2999 "objc-parse.y"
{
	    	  yyval.ttype = NULL_TREE;
		;
    break;}
case 532:
#line 3003 "objc-parse.y"
{
		  /* oh what a kludge! */
		  yyval.ttype = (tree)1;
		;
    break;}
case 533:
#line 3008 "objc-parse.y"
{
		  pushlevel (0);
		;
    break;}
case 534:
#line 3012 "objc-parse.y"
{
	  	  /* returns a tree list node generated by get_parm_info */
		  yyval.ttype = yyvsp[0].ttype;
		  poplevel (0, 0, 0);
		;
    break;}
case 537:
#line 3027 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 542:
#line 3040 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 543:
#line 3041 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 544:
#line 3042 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 545:
#line 3043 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 546:
#line 3044 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 547:
#line 3045 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 548:
#line 3046 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 549:
#line 3047 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 550:
#line 3048 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 551:
#line 3049 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 552:
#line 3050 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 553:
#line 3051 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 554:
#line 3052 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 555:
#line 3053 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 556:
#line 3054 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 557:
#line 3055 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 558:
#line 3056 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 559:
#line 3057 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 560:
#line 3058 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 563:
#line 3064 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 564:
#line 3069 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 565:
#line 3074 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 566:
#line 3079 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 570:
#line 3092 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 571:
#line 3100 "objc-parse.y"
{
		  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
		    /* just return the expr., remove a level of indirection */
		    yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
                  else
		    /* we have a comma expr., we will collapse later */
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 572:
#line 3112 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 573:
#line 3116 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 575:
#line 3124 "objc-parse.y"
{
		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
		;
    break;}
case 576:
#line 3131 "objc-parse.y"
{ objc_receiver_context = 1; ;
    break;}
case 577:
#line 3133 "objc-parse.y"
{ 
		  objc_receiver_context = 0; 
		  yyval.ttype = yyvsp[0].ttype; 
	        ;
    break;}
case 578:
#line 3142 "objc-parse.y"
{
		  /* build nonnull_exprlist */
		  yyvsp[-2].ttype = build_tree_list (NULL_TREE, yyvsp[-2].ttype);
		  /* build expr */
		  yyvsp[-2].ttype = build_compound_expr (yyvsp[-2].ttype);
		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[-1].ttype);
		;
    break;}
case 579:
#line 3151 "objc-parse.y"
{
		  /* make $1 a nonnull_exprlist */
		  yyvsp[-2].ttype = build_tree_list (NULL_TREE, yyvsp[-2].ttype);
		  /* chain them together */
		  chainon (yyvsp[-2].ttype, yyvsp[0].ttype);
		  /* make a compound expr */
		  yyvsp[-2].ttype = build_compound_expr (yyvsp[-2].ttype);
	        ;
    break;}
case 580:
#line 3160 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-5].ttype, yyvsp[-1].ttype);
		;
    break;}
case 584:
#line 3173 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 585:
#line 3180 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
		;
    break;}
case 586:
#line 3184 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
		;
    break;}
case 587:
#line 3191 "objc-parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 588:
#line 3198 "objc-parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 589:
#line 3207 "objc-parse.y"
{
		  yyval.ttype = groktypename (yyvsp[-1].ttype);
		;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 498 "/usr/local/lib/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
	  for (x = (yyn < 0 ? -yyn : 0);
	       x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) malloc(size + 15);
	  if (msg != 0)
	    {
	      strcpy(msg, "parse error");

	      if (count < 5)
		{
		  count = 0;
		  for (x = (yyn < 0 ? -yyn : 0);
		       x < (sizeof(yytname) / sizeof(char *)); x++)
		    if (yycheck[x + yyn] == x)
		      {
			strcat(msg, count == 0 ? ", expecting `" : " or `");
			strcat(msg, yytname[x]);
			strcat(msg, "'");
			count++;
		      }
		}
	      yyerror(msg);
	      free(msg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exceeded");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("parse error");
    }

  goto yyerrlab1;
yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "Error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;
}
#line 3212 "objc-parse.y"

#define OBJC_GRAMMAR

#if defined (MODERN_OBJC_SYNTAX) && !defined (OBJC_GRAMMAR)
/* These are required to avoid undefined symbols!  */
void objc_begin_function_pragma() {}
void objc_end_function_pragma() {}
void objc_selector_alias_pragma() {}
#endif