
/*  A Bison parser, made from objc-parse.y with Bison version GNU Bison version 1.24
  */

#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	ASSIGN	290
#define	OROR	291
#define	ANDAND	292
#define	EQCOMPARE	293
#define	ARITHCOMPARE	294
#define	LSHIFT	295
#define	RSHIFT	296
#define	UNARY	297
#define	PLUSPLUS	298
#define	MINUSMINUS	299
#define	HYPERUNARY	300
#define	POINTSAT	301
#define	INTERFACE	302
#define	IMPLEMENTATION	303
#define	END	304
#define	SELECTOR	305
#define	DEFS	306
#define	ENCODE	307
#define	CLASSNAME	308
#define	PUBLIC	309
#define	PRIVATE	310
#define	PROTECTED	311
#define	PROTOCOL	312
#define	OBJECTNAME	313
#define	CLASS	314
#define	ALIAS	315
#define	OBJC_STRING	316

#line 33 "objc-parse.y"

#include <stdio.h>
#include <errno.h>
#include <setjmp.h>

#include "config.h"
#include "tree.h"
#include "input.h"
#include "c-lex.h"
#include "c-tree.h"
#include "flags.h"

#ifdef MULTIBYTE_CHARS
#include <stdlib.h>
#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";

#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 71 "objc-parse.y"
typedef union {long itype; tree ttype; enum tree_code code;
	char *filename; int lineno; int ends_in_label; } YYSTYPE;
#line 198 "objc-parse.y"

/* Number of statements (loosely speaking) seen so far.  */
static int stmt_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;


/* 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 ();

#ifndef YYLTYPE
typedef
  struct yyltype
    {
      int timestamp;
      int first_line;
      int first_column;
      int last_line;
      int last_column;
      char *text;
   }
  yyltype;

#define YYLTYPE yyltype
#endif

#include <stdio.h>

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



#define	YYFINAL		940
#define	YYFLAG		-32768
#define	YYNTBASE	84

#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 305)

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,    80,     2,     2,     2,    52,    43,     2,    59,
    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
    36,     2,    37,     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,
    60,     2,    83,    42,     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,    82,    41,    78,    79,     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,
    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
    70,    71,    72,    73,    74,    75
};

#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,   167,   169,
   171,   173,   178,   179,   187,   189,   193,   197,   201,   205,
   209,   213,   217,   221,   225,   229,   233,   237,   238,   243,
   244,   249,   250,   251,   259,   260,   266,   270,   274,   276,
   278,   280,   284,   288,   289,   294,   299,   304,   308,   312,
   315,   318,   320,   322,   324,   326,   328,   330,   333,   335,
   338,   339,   341,   344,   348,   350,   352,   355,   358,   363,
   368,   371,   374,   378,   380,   382,   385,   388,   389,   390,
   395,   400,   404,   408,   411,   414,   417,   420,   424,   425,
   428,   431,   434,   437,   441,   442,   445,   448,   450,   452,
   455,   458,   460,   462,   465,   468,   471,   475,   476,   479,
   481,   483,   485,   488,   491,   493,   498,   503,   505,   507,
   509,   511,   515,   517,   521,   522,   527,   528,   535,   539,
   540,   547,   551,   552,   554,   556,   559,   566,   568,   572,
   573,   575,   580,   587,   592,   594,   596,   598,   600,   602,
   603,   608,   610,   611,   614,   616,   620,   622,   623,   628,
   630,   631,   636,   637,   643,   644,   645,   651,   652,   653,
   659,   661,   663,   667,   671,   676,   680,   684,   688,   690,
   692,   696,   701,   705,   709,   713,   715,   719,   723,   727,
   732,   736,   740,   742,   743,   751,   757,   760,   761,   769,
   775,   778,   779,   788,   789,   797,   800,   801,   803,   804,
   806,   808,   811,   812,   816,   819,   824,   828,   830,   834,
   836,   838,   841,   843,   847,   852,   859,   865,   867,   871,
   873,   875,   879,   882,   885,   886,   888,   890,   893,   894,
   897,   901,   905,   908,   912,   917,   921,   924,   928,   931,
   933,   935,   938,   941,   942,   944,   947,   948,   949,   951,
   953,   956,   960,   962,   965,   968,   975,   981,   987,   990,
   993,   998,   999,  1004,  1005,  1006,  1010,  1015,  1019,  1021,
  1023,  1025,  1027,  1030,  1031,  1036,  1038,  1042,  1043,  1044,
  1052,  1058,  1061,  1062,  1063,  1064,  1077,  1078,  1085,  1088,
  1091,  1094,  1098,  1105,  1114,  1125,  1138,  1142,  1147,  1149,
  1151,  1152,  1159,  1163,  1169,  1172,  1175,  1176,  1178,  1179,
  1181,  1182,  1184,  1186,  1190,  1195,  1197,  1201,  1202,  1205,
  1208,  1209,  1214,  1217,  1218,  1220,  1222,  1226,  1228,  1232,
  1237,  1242,  1247,  1252,  1257,  1258,  1261,  1263,  1266,  1268,
  1272,  1274,  1278,  1280,  1282,  1284,  1286,  1288,  1290,  1292,
  1294,  1298,  1302,  1307,  1308,  1309,  1320,  1321,  1328,  1329,
  1330,  1343,  1344,  1353,  1354,  1361,  1364,  1365,  1374,  1379,
  1380,  1390,  1396,  1397,  1404,  1405,  1407,  1411,  1415,  1417,
  1419,  1421,  1423,  1424,  1428,  1431,  1435,  1439,  1441,  1442,
  1444,  1448,  1450,  1454,  1457,  1458,  1459,  1460,  1468,  1469,
  1470,  1471,  1479,  1480,  1481,  1484,  1486,  1488,  1491,  1492,
  1496,  1498,  1500,  1501,  1502,  1508,  1509,  1510,  1516,  1521,
  1523,  1529,  1532,  1533,  1536,  1537,  1539,  1541,  1543,  1546,
  1549,  1554,  1557,  1560,  1562,  1566,  1569,  1572,  1575,  1576,
  1579,  1580,  1584,  1586,  1588,  1591,  1593,  1595,  1597,  1599,
  1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1619,
  1621,  1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,
  1641,  1648,  1652,  1658,  1661,  1663,  1665,  1667,  1670,  1672,
  1676,  1679,  1681,  1683,  1684,  1685,  1692,  1694,  1696,  1698,
  1701,  1704,  1706,  1711,  1716
};

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

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   236,   241,   255,   257,   257,   258,   260,   262,   263,   264,
   272,   276,   287,   292,   297,   299,   301,   302,   303,   308,
   315,   317,   322,   327,   333,   335,   340,   345,   351,   353,
   358,   365,   367,   368,   369,   372,   374,   376,   378,   380,
   382,   384,   388,   392,   395,   398,   401,   405,   407,   410,
   413,   417,   445,   451,   454,   457,   460,   462,   466,   470,
   474,   476,   479,   483,   510,   512,   514,   516,   518,   520,
   522,   524,   526,   528,   530,   532,   534,   536,   540,   542,
   546,   548,   551,   555,   557,   564,   567,   570,   576,   736,
   737,   739,   745,   747,   761,   784,   786,   788,   800,   814,
   816,   818,   820,   822,   824,   826,   831,   833,   839,   841,
   845,   847,   848,   858,   863,   865,   866,   867,   874,   880,
   885,   888,   896,   901,   903,   904,   905,   912,   923,   927,
   933,   938,   943,   948,   950,   952,   961,   964,   968,   970,
   972,   977,   981,   984,   988,   991,   993,  1005,  1008,  1010,
  1012,  1016,  1020,  1022,  1025,  1038,  1041,  1045,  1047,  1055,
  1056,  1057,  1061,  1063,  1068,  1070,  1072,  1078,  1079,  1080,
  1083,  1085,  1088,  1090,  1093,  1096,  1102,  1109,  1111,  1118,
  1125,  1128,  1135,  1138,  1142,  1145,  1149,  1154,  1157,  1161,
  1164,  1166,  1168,  1170,  1177,  1179,  1180,  1181,  1186,  1188,
  1193,  1201,  1206,  1210,  1213,  1215,  1220,  1223,  1225,  1227,
  1231,  1234,  1234,  1237,  1239,  1250,  1258,  1262,  1273,  1281,
  1288,  1290,  1295,  1298,  1303,  1305,  1307,  1314,  1316,  1317,
  1325,  1331,  1333,  1335,  1342,  1344,  1350,  1356,  1358,  1360,
  1362,  1369,  1371,  1374,  1379,  1381,  1385,  1387,  1389,  1391,
  1395,  1397,  1400,  1403,  1406,  1409,  1413,  1415,  1418,  1420,
  1424,  1427,  1432,  1434,  1436,  1440,  1464,  1471,  1476,  1482,
  1487,  1489,  1494,  1496,  1500,  1504,  1508,  1518,  1520,  1525,
  1530,  1533,  1537,  1540,  1544,  1547,  1550,  1553,  1557,  1560,
  1564,  1568,  1570,  1572,  1574,  1576,  1578,  1580,  1582,  1592,
  1600,  1602,  1604,  1608,  1610,  1613,  1616,  1629,  1631,  1636,
  1638,  1641,  1655,  1658,  1661,  1663,  1671,  1679,  1690,  1695,
  1698,  1711,  1719,  1723,  1727,  1731,  1737,  1741,  1746,  1749,
  1754,  1757,  1758,  1775,  1780,  1783,  1795,  1797,  1807,  1817,
  1818,  1826,  1829,  1841,  1845,  1862,  1872,  1881,  1886,  1891,
  1896,  1900,  1904,  1915,  1922,  1929,  1936,  1947,  1953,  1956,
  1961,  1984,  2018,  2043,  2074,  2089,  2100,  2104,  2108,  2111,
  2116,  2118,  2121,  2123,  2127,  2132,  2135,  2141,  2146,  2151,
  2153,  2162,  2163,  2169,  2171,  2181,  2183,  2187,  2190,  2196,
  2206,  2215,  2224,  2234,  2248,  2253,  2258,  2260,  2269,  2272,
  2277,  2280,  2284,  2292,  2294,  2295,  2296,  2297,  2298,  2312,
  2315,  2319,  2325,  2331,  2338,  2343,  2349,  2356,  2362,  2368,
  2373,  2379,  2386,  2392,  2398,  2404,  2412,  2418,  2424,  2432,
  2439,  2445,  2454,  2461,  2469,  2474,  2477,  2487,  2489,  2492,
  2494,  2495,  2498,  2503,  2504,  2521,  2528,  2534,  2538,  2541,
  2542,  2545,  2553,  2559,  2568,  2578,  2585,  2589,  2594,  2603,
  2610,  2614,  2624,  2626,  2627,  2629,  2631,  2632,  2633,  2634,
  2636,  2638,  2641,  2647,  2652,  2652,  2657,  2661,  2663,  2669,
  2674,  2679,  2688,  2690,  2696,  2698,  2701,  2703,  2704,  2705,
  2708,  2714,  2716,  2720,  2723,  2730,  2736,  2741,  2748,  2753,
  2758,  2763,  2770,  2774,  2777,  2783,  2785,  2786,  2787,  2790,
  2792,  2793,  2794,  2795,  2796,  2797,  2798,  2799,  2800,  2801,
  2802,  2803,  2804,  2805,  2806,  2807,  2808,  2809,  2810,  2810,
  2813,  2819,  2824,  2829,  2835,  2837,  2840,  2842,  2849,  2861,
  2866,  2872,  2874,  2880,  2884,  2885,  2891,  2893,  2896,  2898,
  2904,  2909,  2915,  2922,  2931
};

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","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",
"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","@20","@21","nested_function","@22","@23","notype_nested_function",
"@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
"structsp","@26","@27","@28","@29","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","simple_if","if_prefix",
"do_stmt_start","@30","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
"stmt_or_label","stmt","@31","@32","@33","@34","@35","@36","@37","all_iter_stmt",
"all_iter_stmt_simple","@38","label","maybe_type_qual","xexpr","asm_operands",
"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@39","parmlist_1",
"@40","parmlist_2","parms","parm","parmlist_or_identifiers","@41","parmlist_or_identifiers_1",
"identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
"classdecl","aliasdecl","classdef","@42","@43","@44","@45","@46","@47","@48",
"@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
"visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
"@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
"@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
"myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
"keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
"keywordexpr","keywordarg","receiver","objcmessageexpr","@65","@66","selectorarg",
"keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr",
""
};
#endif

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

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,     2,     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,     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,     1,     0,     4,     1,
     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,     3,     3,     3,     4,
     3,     3,     1,     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,     1,
     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
     2,     3,     1,     2,     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,     2,     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,     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,     4,     1,
     5,     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,     0,     6,     1,     1,     1,     2,
     2,     1,     4,     4,     4
};

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

static const short yydefgoto[] = {   938,
     1,     2,     3,    28,    29,    30,   345,   567,   351,   570,
   200,   453,   666,   124,   242,   404,   126,   127,   128,   129,
   130,   581,   131,   389,   388,   386,   677,   387,   132,   243,
   133,   134,   332,   333,   334,   562,   654,   655,    31,   195,
   785,   443,    91,   563,   639,   444,    34,   142,   288,    35,
   218,   206,    78,   201,   207,   645,    79,   566,   337,   338,
    37,   297,   298,   299,   643,   714,   668,   669,   670,   732,
   800,   843,   861,   882,   909,   864,   884,   910,   324,   210,
   679,   211,    38,   234,   236,   225,    94,   736,   354,    97,
    98,   231,   474,   475,   223,   224,   144,   681,   145,   191,
   287,   656,   657,   725,   335,   481,   578,   579,   580,   560,
   561,   789,   790,   791,   817,   838,   457,   839,   660,   792,
   793,   867,   816,   900,   891,   919,   932,   892,   794,   795,
   890,   796,   829,   852,   905,   906,   907,   930,   409,   410,
   445,   629,   446,   447,   448,   327,   328,   449,   450,   652,
   135,    40,    64,    41,    42,    43,   431,   688,   314,   603,
   803,   526,   317,   538,   605,    44,   318,    69,    45,   436,
   543,   437,   548,   695,   696,    46,    65,   304,   520,    66,
   310,   524,   432,   433,   536,   612,   807,   537,   607,   748,
   608,   749,   175,   423,   517,   518,   519,   682,   683,   306,
   425,   176,   177,   178,   179,   180,   584,   585,   672,   586,
   372,   136,   245,   485,   375,   376,   377,   137,   138,   139
};

static const short yypact[] = {   128,
   132,  2936,  2936,   108,-32768,-32768,-32768,-32768,   139,   253,
   266,    86,   103,   111,-32768,    99,-32768,-32768,    99,    99,
-32768,   158,    99,   158,    99,    99,-32768,-32768,-32768,-32768,
   169,   137,  2416,   115,-32768,   197,-32768,-32768,  2936,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,   155,   214,   210,   214,   212,  2645,
  2483,   252,-32768,    50,  3210,  3210,   151,    51,-32768,-32768,
   158,-32768,   209,    99,-32768,-32768,   169,   286,-32768,   197,
  1661,-32768,   319,-32768,   169,   115,-32768,   197,-32768,-32768,
   729,-32768,-32768,   120,-32768,   255,   277,  1592,-32768,   283,
-32768,-32768,-32768,-32768,-32768,-32768,  2645,  2645,    99,-32768,
-32768,-32768,  2645,-32768,-32768,   932,-32768,   288,   312,   314,
-32768,-32768,-32768,  2645,   305,   311,-32768,  2699,  2753,-32768,
  3581,   622,   396,   346,  2645,-32768,-32768,-32768,-32768,-32768,
   356,   267,-32768,   359,  3364,   269,-32768,    99,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   398,  3487,-32768,-32768,-32768,  2377,   415,-32768,-32768,
-32768,    99,    99,   377,    99,    99,-32768,-32768,-32768,   397,
   105,   119,-32768,   319,   169,-32768,   420,-32768,  1846,  1806,
   197,-32768,-32768,   319,-32768,   327,-32768,   197,  1759,   434,
   484,   364,  1680,   729,-32768,-32768,-32768,-32768,   197,-32768,
-32768,   473,   439,-32768,   120,   448,   197,-32768,-32768,   534,
   445,   352,  3175,   214,   197,   214,-32768,-32768,-32768,-32768,
   454,   456,   472,   481,  2537,  3272,  3487,    99,-32768,   485,
  2645,   932,-32768,   932,-32768,  2645,  2645,   557,-32768,-32768,
  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,  2645,
  2645,  2645,-32768,-32768,    99,    99,  2645,  2645,-32768,-32768,
-32768,-32768,-32768,   267,  1905,-32768,   562,   766,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   225,-32768,   547,-32768,
  3487,-32768,   542,   550,   624,-32768,   415,-32768,   408,   550,
   158,   560,-32768,   581,   566,   578,-32768,   581,-32768,-32768,
   484,-32768,-32768,   641,   484,   660,-32768,  3089,-32768,   602,
   614,-32768,   682,    83,-32768,-32768,   634,   197,   110,   243,
-32768,   319,   319,-32768,  1806,   197,-32768,  1964,-32768,-32768,
  1806,  2645,    99,   619,   439,   627,-32768,-32768,-32768,-32768,
-32768,   620,-32768,   628,-32768,-32768,   629,   633,  2297,-32768,
-32768,-32768,-32768,   662,   640,  3272,-32768,   642,   644,-32768,
  3581,   648,   650,  3581,  3581,  2645,   679,  2645,  2645,  2456,
   783,   879,  1653,  1750,   760,   760,   537,   537,-32768,-32768,
-32768,-32768,-32768,   652,   311,   667,   336,   245,-32768,  3108,
-32768,   673,-32768,  2023,-32768,   766,   669,   269,  2807,   695,
  3300,   850,-32768,-32768,  3375,  3487,-32768,-32768,   693,   158,
-32768,   718,  3011,-32768,-32768,   184,  2884,   719,    78,   707,
-32768,-32768,-32768,  3450,-32768,   711,   430,-32768,-32768,   298,
-32768,-32768,    76,-32768,-32768,-32768,  3469,-32768,   434,-32768,
-32768,   434,-32768,   752,-32768,-32768,   708,-32768,  3581,-32768,
   197,   715,-32768,   713,-32768,-32768,   713,   197,   197,-32768,
   763,-32768,-32768,-32768,  3336,-32768,-32768,   662,-32768,-32768,
-32768,-32768,-32768,   761,  2645,  1473,  1820,-32768,-32768,   562,
-32768,-32768,-32768,-32768,-32768,   722,-32768,-32768,   339,   730,
    99,-32768,  2377,   740,  3119,-32768,-32768,  3450,  1778,    76,
-32768,   741,   765,    76,-32768,   581,-32768,   348,-32768,-32768,
-32768,-32768,   169,   137,  2416,   335,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  3506,   767,-32768,-32768,
-32768,   593,   238,-32768,-32768,  3439,-32768,   834,   472,-32768,
-32768,-32768,   768,   725,-32768,   839,    76,-32768,-32768,    76,
-32768,   197,-32768,   257,-32768,-32768,    99,  1101,   763,-32768,
  1421,  2645,   805,   769,  3336,-32768,-32768,  1394,-32768,-32768,
  2645,-32768,-32768,-32768,-32768,   593,-32768,-32768,-32768,-32768,
    99,-32768,-32768,   790,   581,-32768,  3210,  3210,    70,   319,
   169,  3039,-32768,   459,  2902,   280,   280,-32768,-32768,-32768,
   238,   197,   340,   347,   197,-32768,   347,   197,  3108,-32768,
-32768,-32768,-32768,-32768,   319,-32768,   169,-32768,   659,-32768,
-32768,  3581,-32768,-32768,   839,-32768,-32768,-32768,  2645,    81,
-32768,   435,   564,  1021,   780,   782,  1181,-32768,-32768,-32768,
-32768,-32768,   828,    99,-32768,   833,  3581,   796,   800,-32768,
   311,-32768,  2645,-32768,   805,-32768,  2645,   427,   340,   347,
   197,   464,-32768,-32768,   515,-32768,   820,   581,-32768,-32768,
-32768,-32768,  2645,   846,   804,-32768,   804,   587,   510,-32768,
  2082,-32768,-32768,-32768,   600,-32768,-32768,-32768,   501,   521,
   659,-32768,-32768,  1421,-32768,  3214,  2645,-32768,-32768,    99,
-32768,-32768,-32768,-32768,   808,-32768,-32768,-32768,-32768,  2163,
   854,  1421,-32768,-32768,  1501,-32768,-32768,  1394,-32768,-32768,
-32768,-32768,-32768,   593,-32768,-32768,   829,    80,    80,  3581,
  2645,   280,   598,-32768,   598,-32768,-32768,   813,-32768,-32768,
   822,-32768,  3214,-32768,-32768,  2243,   853,   842,-32768,-32768,
   843,   845,  2645,   868,   830,   831,  2591,   372,   902,   187,
   226,-32768,   873,   838,-32768,   865,  3138,-32768,   900,  1261,
    91,-32768,-32768,-32768,-32768,-32768,  2405,-32768,   869,  1581,
-32768,-32768,   581,-32768,-32768,-32768,-32768,-32768,  3581,-32768,
   278,-32768,-32768,-32768,  2645,   861,-32768,  2645,  2645,  3545,
-32768,-32768,-32768,-32768,   871,  2645,   872,-32768,   891,-32768,
-32768,-32768,   319,-32768,   169,  1341,-32768,-32768,-32768,-32768,
  2645,-32768,  1581,-32768,-32768,   888,   877,  2645,   937,-32768,
   441,   880,   882,  2645,-32768,-32768,   885,-32768,  2645,   523,
-32768,   442,   524,-32768,   663,-32768,-32768,  2243,   892,-32768,
-32768,-32768,   893,-32768,-32768,-32768,-32768,  3563,-32768,    58,
-32768,  1806,-32768,  1806,-32768,-32768,-32768,   887,-32768,-32768,
  2645,-32768,-32768,   947,   890,-32768,-32768,-32768,-32768,-32768,
-32768,   896,-32768,   911,    60,   895,-32768,-32768,   472,   472,
-32768,-32768,  2645,   947,   897,   947,-32768,-32768,  2645,   903,
    68,-32768,-32768,   907,-32768,   660,   901,-32768,   396,   429,
-32768,-32768,   908,   660,-32768,-32768,   396,   984,   988,-32768
};

static const short yypgoto[] = {-32768,
-32768,-32768,-32768,   102,  -367,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,    -9,-32768,   -52,   570,  -231,   533,-32768,-32768,
   -45,-32768,   220,-32768,-32768,-32768,-32768,-32768,   172,-32768,
  -295,-32768,  -308,   661,-32768,-32768,   342,-32768,    17,  -195,
   203,    16,   914,-32768,   367,    21,   -11,   -65,   703,    11,
  -249,  -574,   -58,  -206,  -127,-32768,-32768,-32768,   196,     3,
    -6,-32768,   584,-32768,   361,-32768,  -607,-32768,  -662,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -68,  -135,
  -498,    14,   -66,-32768,-32768,-32768,-32768,-32768,   653,    12,
-32768,   776,   655,   437,   788,   664,   -12,   -89,   -50,  -168,
  -232,   363,-32768,-32768,  -269,-32768,-32768,-32768,   440,  -290,
  -205,-32768,-32768,-32768,-32768,  -122,  -435,  -741,   366,-32768,
   148,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   153,-32768,  -739,   117,-32768,   121,-32768,   643,-32768,
  -351,-32768,   632,   635,   497,  -307,-32768,-32768,-32768,-32768,
    18,-32768,  1033,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -20,     4,  -348,
-32768,   516,-32768,   450,   310,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  -306,-32768,-32768,-32768,   316,   532,-32768,-32768,
-32768,-32768,   -37,   762,-32768,-32768,   555,-32768,   333,   565,
-32768,   658,   665,  -145,-32768,  -119,-32768,-32768,   409,   498,
-32768,-32768,-32768,-32768,-32768,-32768,   714,-32768,-32768,-32768
};


#define	YYLAST		3633


static const short yytable[] = {    55,
    57,    59,   346,    72,    36,    36,    63,   125,   141,    67,
    68,   438,   343,    71,   209,    63,    74,    32,    32,    39,
    39,    86,    33,    33,   220,    70,   212,    70,   181,    92,
   439,   307,   230,    80,   339,    88,   463,   368,   415,   465,
   574,    36,   468,    87,    81,   405,   184,   232,    83,    85,
   188,   408,   286,   623,    32,   292,    39,   308,   502,    33,
   709,   237,   238,   454,   190,   532,   323,   240,   340,   100,
    70,   143,   801,    92,    70,   849,   559,   336,   249,    80,
   805,    92,   528,  -112,   222,   208,   279,    80,   185,   281,
   192,   840,   455,   219,   147,   894,   197,   914,   213,   239,
   374,    50,    51,   244,    47,   926,   761,    75,   143,   186,
    14,   320,    75,   202,   407,   233,   320,   346,   717,    89,
   221,    90,    50,    51,   799,   885,   143,    -1,   198,   199,
   148,    -2,   187,   895,    14,   915,   296,   845,   300,    14,
    93,    50,    51,   927,    60,   898,   330,   220,   901,   841,
   903,   902,   516,   550,    76,   291,   806,   367,   911,   203,
   303,    61,   302,    77,  -112,    52,   415,   230,   204,    62,
    53,    75,   311,   312,   500,   315,   316,   198,   199,   924,
   870,   205,   232,   143,    48,    49,    52,   405,   182,   614,
   935,    53,   371,    80,   322,    16,   208,    80,    14,   753,
   755,    92,    16,   459,   321,    52,   208,   462,   325,   183,
    53,   336,    92,    82,   461,   222,   219,   192,    76,   604,
    54,   220,   336,   730,   -35,   406,    14,    77,   336,   600,
   488,    16,   412,   602,   378,   476,    95,   476,   379,   382,
    75,   383,   291,   143,   691,   362,   358,   364,   360,   599,
   233,   539,   540,   541,   685,    50,    51,   143,   860,    75,
   202,   542,   143,   -34,   143,   402,   403,    14,    50,    51,
    16,    50,    51,   293,   294,   295,   644,   708,    96,   646,
    75,   619,    75,   202,   320,   189,    14,   626,   420,   148,
   429,    99,   766,   101,   649,   467,   621,   285,   687,   427,
   417,   347,   348,   413,   414,   418,   203,    14,   658,    14,
   146,   143,   753,   226,    70,   204,   283,   693,   460,    52,
   501,    75,   202,   484,    53,   284,   285,   754,   205,   203,
    36,    92,    52,   494,    56,    52,    77,    53,   204,   583,
    53,   208,   320,   222,   208,   208,   246,    58,    14,   220,
   671,   205,   321,   633,   227,     5,   325,     7,   290,   678,
   235,   506,   193,     9,    10,    11,   194,   307,   203,    14,
   247,   546,   248,   557,    50,    51,    14,   204,   558,    13,
   250,   747,   530,   531,   722,   283,   547,   727,   408,   713,
   205,   251,   756,   308,   284,   285,    16,  -465,   700,   701,
    50,    51,   868,   341,   279,   198,   199,   342,   296,   527,
    50,    51,    36,   523,   590,   539,   540,   541,    22,   591,
   280,   826,   357,    24,    36,   606,   699,    36,  -270,  -270,
   363,   282,    86,    70,   289,    36,   143,   514,    52,   675,
   349,   671,   515,    53,   194,   564,    88,   143,   534,   533,
   476,   698,   309,   535,    87,   659,   301,   705,   313,   552,
   553,   713,   625,   628,    52,   500,   426,   565,   197,    53,
   381,  -175,   500,   319,    52,   384,   385,  -175,   326,    53,
   390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
   400,   401,   347,   348,   273,   274,   846,   275,   276,   277,
   278,   593,   739,    86,   933,   650,   555,   251,   352,   934,
   556,   719,    75,   619,   356,   720,   875,    88,  -175,   353,
    36,   359,  -175,    86,   788,    87,   539,   540,   541,   365,
   596,   366,   659,   514,   728,    80,   692,    88,   515,    14,
   743,   464,   198,   199,   744,    87,   609,   694,   694,   546,
   610,   611,   212,   367,   622,    80,   369,   291,    36,   754,
   788,   380,   616,   617,   547,   624,   627,   651,    77,   689,
   690,   469,   220,   896,   638,   897,   208,   759,   710,   635,
   637,   342,   539,   540,   541,   811,   270,   271,   272,    75,
   619,   684,   745,   320,   -85,    75,   619,   760,   622,   881,
   883,   194,    75,   342,   194,   419,   320,   496,   497,   680,
  -268,  -268,   208,    80,    36,    92,    14,   421,   208,   208,
   413,   414,    14,    80,   609,   143,   422,   534,   533,    14,
   929,    36,   535,   424,   192,   430,   620,   208,   937,    80,
   452,   721,   620,  -463,   220,   621,   285,   434,   758,   626,
   609,   621,   285,   435,   731,   346,   700,   701,   621,   285,
   253,   255,   788,   712,   216,   217,   571,   197,   104,   458,
     9,    10,    11,   575,   576,   273,   274,   784,   275,   276,
   277,   278,   331,   694,   451,  -115,  -115,  -115,  -115,   197,
   452,  -115,  -175,  -115,  -115,  -115,   471,   478,  -175,   486,
   622,   622,   473,   917,   918,   479,   480,    80,   482,  -115,
   764,   321,   325,   784,   588,   487,   495,   490,   321,   491,
   783,   198,   199,   492,   825,   493,  -115,   498,     5,    89,
     7,    90,    36,   215,   216,   217,     9,    10,    11,  -175,
     9,    10,    11,  -175,   507,   786,   622,   797,  -115,   499,
   787,   281,    13,  -115,   208,   503,   783,   680,    14,   336,
    72,   336,   847,  -115,   862,   850,   853,   647,   827,    16,
   511,   216,   217,   857,   525,    86,   863,     9,    10,    11,
   529,   549,   551,    70,    70,   642,   554,   568,   869,    88,
   569,    22,   572,   573,   577,   873,    24,    87,   587,    36,
   667,   636,   833,   835,   589,   592,   880,   268,   269,   270,
   271,   272,   786,   622,   797,   784,   595,   787,   702,   703,
   704,   556,   706,   707,   321,   263,   264,   265,   266,   267,
   268,   269,   270,   271,   272,   208,   632,    80,   850,   640,
   601,   102,   673,   618,   634,   718,   103,   104,   865,   105,
   331,   674,   686,     5,     6,     7,     8,  -304,   783,   726,
   920,     9,    10,    11,   642,   -32,   850,   106,   716,    15,
   733,   107,   108,   734,   740,   741,   742,    13,   109,    14,
   735,   110,   746,   751,   752,   765,   111,   112,   113,   798,
   -33,   804,   114,   115,    16,   812,   738,   116,   117,   813,
   815,   818,   118,   819,   119,   821,   822,   823,   828,   120,
   830,   762,   750,   121,   831,   836,    22,   122,   123,   848,
   641,    24,   264,   265,   266,   267,   268,   269,   270,   271,
   272,  -485,   241,   667,   102,     5,   763,     7,   140,   103,
   104,   832,   105,     9,    10,    11,   844,   856,   858,   859,
   871,   667,   872,   874,   667,   904,   876,   877,   814,    13,
   106,   879,    15,   899,   107,   108,   908,   888,   889,   913,
   809,   109,   912,   922,   110,   916,    16,   931,   925,   111,
   112,   113,   928,   939,   936,   114,   115,   940,   510,   851,
   116,   117,   820,   416,   456,   118,   723,   119,    22,   842,
   214,   508,   120,    24,   711,   715,   121,   472,   361,   648,
   122,   123,   355,   -94,   477,   886,   470,   724,   661,   667,
   887,   331,   729,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
   921,  -124,  -124,  -124,  -124,  -124,   923,  -124,  -124,  -124,
  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
  -124,  -124,   631,  -124,  -124,   504,   521,    73,   615,   522,
  -124,   810,   667,  -124,   808,  -124,   697,   613,  -124,  -124,
  -124,   428,   598,   878,  -124,  -124,   802,   594,   512,  -124,
  -124,   737,   676,     0,  -124,   513,  -124,  -124,     0,   489,
     0,  -124,  -124,     0,     0,  -124,     0,  -124,  -124,  -124,
  -124,   653,  -124,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
     0,  -324,  -324,  -324,  -324,  -324,     0,  -324,  -324,  -324,
  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
  -324,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
  -324,     0,     0,  -324,     0,  -324,     0,     0,  -324,  -324,
  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
     0,  -324,  -324,     0,     0,  -324,     0,  -324,     0,  -324,
  -324,   331,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
     0,  -324,     0,     0,     0,  -324,     0,  -324,  -324,  -324,
  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,     0,  -324,
     0,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
  -324,     0,     0,  -324,     0,     0,     0,     0,  -324,  -324,
  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
     0,  -324,  -324,     0,     0,  -324,     0,  -324,  -300,  -324,
  -324,   837,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
     0,  -324,     0,     0,     0,  -324,     0,  -324,  -324,  -324,
  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,     0,  -324,
     0,  -324,     0,  -324,  -324,     0,     0,     0,     0,     0,
  -324,     0,     0,  -324,     0,     0,     0,     0,  -324,  -324,
  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,  -324,
  -324,     0,     0,     0,  -324,     0,  -324,  -324,     0,     0,
     0,  -324,  -324,     0,     0,  -324,     0,  -324,     0,  -324,
  -324,   866,  -324,  -334,  -334,     0,     0,     0,  -334,  -334,
     0,  -334,     0,     0,     0,  -334,     0,  -334,  -334,  -334,
  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,     0,  -334,
     0,  -334,     0,  -334,  -334,     0,     0,     0,     0,     0,
  -334,     0,     0,  -334,     0,     0,     0,     0,  -334,  -334,
  -334,     0,     0,     0,  -334,  -334,     0,     0,     0,  -334,
  -334,     0,     0,     0,  -334,     0,  -334,  -334,     0,     0,
     0,  -334,  -334,     0,     0,  -334,     0,  -334,     0,  -334,
  -334,   662,  -334,   663,    51,     0,     0,     0,   103,   104,
   258,   105,   259,   260,   261,   262,   263,   264,   265,   266,
   267,   268,   269,   270,   271,   272,     0,     0,     0,   106,
     0,    15,     0,   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,   664,   116,
   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
     0,   120,    53,     0,     0,   121,     0,     0,  -203,   122,
   123,   662,   665,   663,    51,     0,     0,     0,   103,   104,
     0,   105,   260,   261,   262,   263,   264,   265,   266,   267,
   268,   269,   270,   271,   272,     0,     0,     0,     0,   106,
     0,    15,     0,   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,   664,   116,
   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
     0,   120,    53,     0,     0,   121,     0,     0,  -258,   122,
   123,   662,   665,   663,    51,     0,     0,     0,   103,   104,
     0,   105,   228,     0,     0,     5,     0,     7,   140,     0,
     0,     0,     0,     9,    10,    11,     0,     0,     0,   106,
     0,    15,     0,   107,   108,     0,     0,     0,     0,    13,
   109,     0,    15,   110,     0,     0,     0,     0,   111,   112,
   113,     0,     0,     0,   114,   115,    16,     0,   664,   116,
   117,     0,     0,     0,   118,     0,   119,    52,     0,     0,
     0,   120,    53,     0,     0,   121,     0,     0,    22,   122,
   123,   196,   665,    24,   -28,   -28,   -28,   -28,   229,  -261,
     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,     0,
   350,     0,     0,   -24,   -24,   -24,   -24,   197,   -28,     0,
  -175,   -24,   -24,   -24,     0,     0,  -175,   265,   266,   267,
   268,   269,   270,   271,   272,   -28,   197,   -24,     0,  -175,
     0,     0,     0,     0,     0,  -175,     0,     0,     0,   198,
   199,     0,     0,     0,   -24,     0,     0,   -28,     0,     0,
     0,     0,   -28,     0,     0,     0,     0,  -175,   198,   199,
     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,     0,
     0,   -24,     0,     0,     0,     0,  -175,     0,     0,   344,
  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,     0,
   -20,   -20,   -20,     0,     0,     0,     0,     0,   331,     0,
     0,  -487,  -487,  -487,  -487,   197,   -20,     0,  -175,  -487,
  -487,  -487,     0,     0,  -175,   266,   267,   268,   269,   270,
   271,   272,     0,   -20,     0,  -487,   331,  -487,     0,  -324,
  -324,  -324,  -324,     0,     0,     0,     0,  -324,  -324,  -324,
     0,     0,  -487,     0,     0,   -20,     0,     0,     0,     0,
   -20,     0,     0,  -324,     0,  -175,     0,     0,     0,  -175,
   -20,     0,     0,     0,  -487,     0,     0,     0,   102,  -487,
  -324,     0,     0,   103,   104,     0,   105,     0,     0,  -487,
   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272,  -324,     0,   106,     0,    15,  -324,   107,   108,
     0,     0,     0,     0,     0,   109,     0,  -111,   110,     0,
     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
   115,     0,     0,     0,   116,   117,     0,   102,     0,   118,
     0,   119,   103,   104,     0,   105,   120,     0,     0,     0,
   121,     0,     0,     0,   122,   123,     0,     0,   329,     0,
     0,     0,     0,   106,     0,    15,     0,   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,   102,     0,   118,     0,
   119,   103,   104,     0,   105,   120,     0,     0,     0,   121,
     0,     0,     0,   122,   123,     0,     0,   411,     0,     0,
     0,     0,   106,     0,    15,     0,   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,   102,     0,   118,     0,   119,
   103,   104,     0,   105,   120,     0,     0,     0,   121,     0,
     0,     0,   122,   123,     0,     0,   466,     0,     0,     0,
     0,   106,     0,    15,     0,   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,   102,     0,   118,     0,   119,   103,
   104,     0,   105,   120,     0,     0,     0,   121,     0,     0,
     0,   122,   123,     0,     0,   505,     0,     0,     0,     0,
   106,     0,    15,     0,   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,     0,     0,
     0,     0,   120,     0,     0,     0,   121,     0,     0,     0,
   122,   123,     0,     0,   757,   663,   767,     6,     7,     8,
   103,   104,     0,   105,     9,    10,    11,   768,     0,   769,
   770,   771,   772,   773,   774,   775,   776,   777,   778,   779,
    13,   106,    14,    15,     0,   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,   780,
     0,     0,     0,   120,   781,     0,     0,   121,     0,   782,
     0,   122,   123,     0,   367,   663,    51,     0,     0,     0,
   103,   104,     0,   105,     0,     0,     0,   768,     0,   769,
   770,   771,   772,   773,   774,   775,   776,   777,   778,   779,
     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   102,
     0,   116,   117,     0,   103,   104,   118,   105,   119,    52,
     0,     0,     0,   120,    53,     0,     0,   121,     0,   782,
     0,   122,   123,     0,   367,   106,     0,    15,     0,   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,     0,     0,     0,     0,   120,     0,     0,
     0,   121,     0,     0,     0,   122,   123,     0,   483,   149,
   150,     0,   151,   152,     0,     0,     0,   153,   154,   155,
   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
   166,   167,   168,   169,   170,   171,     0,   102,     5,     6,
     7,     8,   103,   104,   172,   105,     9,    10,    11,     5,
     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
     0,     0,    13,   106,    14,    15,     0,   107,   108,     0,
     0,     0,     0,    13,   109,    14,     0,   110,   174,    16,
     0,     0,   111,   112,   113,     0,     0,   305,   114,   115,
    16,     0,     0,   116,   117,     0,     0,     0,   118,     0,
   119,    22,     0,     0,     0,   120,    24,     0,     0,   121,
     0,     0,    22,   122,   123,   102,     5,    24,     7,   140,
   103,   104,    84,   105,     9,    10,    11,   262,   263,   264,
   265,   266,   267,   268,   269,   270,   271,   272,     0,     0,
    13,   106,     0,    15,     0,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,    16,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   102,
     0,   116,   117,     0,   103,   104,   118,   105,   119,    22,
     0,     0,     0,   120,    24,     0,     0,   121,     0,     0,
     0,   122,   123,     0,     0,   106,     0,    15,     0,   107,
   108,     0,     0,     0,     0,     0,   109,     0,     0,   110,
     0,     0,     0,     0,   111,   112,   113,     0,     0,     0,
   114,   115,     0,   102,     0,   116,   117,     0,   103,   104,
   118,   105,   119,   370,     0,     0,     0,   120,     0,     0,
     0,   121,     0,     0,     0,   122,   123,     0,     0,   106,
     0,    15,     0,   107,   108,     0,     0,     0,     0,     0,
   109,     0,     0,   110,     0,     0,     0,     0,   111,   112,
   113,     0,     0,     0,   114,   115,     0,   102,     0,   116,
   117,     0,   103,   104,   118,   105,   119,     0,     0,     0,
     0,   120,     0,     0,     0,   121,     0,   824,     0,   122,
   123,     0,     0,   106,     0,    15,     0,   107,   108,     0,
     0,     0,     0,     0,   109,     0,     0,   110,     0,     0,
     0,     0,   111,   112,   113,     0,     0,     0,   114,   115,
     0,   102,     0,   116,   117,     0,   103,   104,   118,   105,
   119,     0,     0,     0,     0,   120,     0,     0,     0,   121,
     0,     0,     0,   122,   123,     0,     0,   106,     0,    15,
     0,   107,   108,     0,     0,     0,     0,     0,   109,     0,
     0,   110,     0,     0,     0,     0,   111,   112,   113,     0,
     0,     0,   114,   115,     0,   102,     0,   252,   117,     0,
   103,   104,   118,   105,   119,     0,     0,     0,     0,   120,
     0,     0,     0,   121,     0,     0,     0,   122,   123,     0,
     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
   111,   112,   113,     0,     0,     0,   114,   115,     0,   509,
     0,   254,   117,     0,   103,   104,   118,   105,   119,     0,
     0,     0,     0,   120,     0,     0,     0,   121,     0,     0,
     0,   122,   123,     0,     0,   106,     0,    15,     0,   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,     0,     0,     0,     0,   120,     0,     0,
     0,   121,     0,     0,   544,   122,   123,     5,     0,     7,
   140,     0,     0,     0,     0,     9,    10,    11,     0,     0,
     0,     0,   544,     0,     0,     5,     0,     7,   140,     0,
     0,    13,     0,     9,    10,    11,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    16,    13,
     0,     0,     0,     0,     0,     0,     4,     0,  -128,     5,
     6,     7,     8,     0,     0,     0,    16,     9,    10,    11,
    22,  -439,  -439,  -439,     0,    24,     0,     0,     0,     0,
   545,  -439,    12,    13,     0,    14,    15,     0,    22,  -438,
  -438,  -438,     0,    24,     0,     0,     0,     0,   545,  -438,
    16,     0,     0,    17,    18,  -128,     0,     0,     0,     0,
     0,     0,     0,     0,  -128,     0,    19,    20,    21,     0,
     0,     0,    22,     0,     0,     0,    23,    24,    25,    26,
     0,     4,    27,  -128,     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,  -128,     5,     6,     7,     8,     0,     0,     0,     0,
     9,    10,    11,     0,     0,    16,     0,     0,   530,   531,
  -128,     0,     0,     0,     0,     0,    13,     0,    14,  -128,
     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
     0,     0,    24,    16,     0,     0,     0,    27,  -128,   440,
     0,   441,     5,     6,     7,     8,     0,  -128,   442,     0,
     9,    10,    11,     0,     0,    22,     0,     0,   440,     0,
    24,     5,     6,     7,     8,    27,    13,   442,    14,     9,
    10,    11,     5,     6,     7,     8,     0,     0,     0,     0,
     9,    10,    11,    16,     0,    13,     0,    14,     0,     0,
     0,     5,     6,     7,     8,     0,    13,     0,    14,     9,
    10,    11,    16,     0,     0,    22,     0,     0,     0,     0,
    24,     0,     0,    16,  -384,    13,     0,    14,     0,     0,
     0,     0,     0,     0,    22,   228,     0,     0,     5,    24,
     7,   140,    16,  -384,     0,    22,     9,    10,    11,     0,
    24,     0,     0,     0,     0,   597,     0,     0,     0,     0,
     0,     0,    13,     0,    22,    15,     0,     0,     0,    24,
     0,     0,   149,   150,   834,   151,   152,     0,     0,    16,
   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   163,   164,   165,   166,   167,   168,   169,   170,   171,     0,
     0,    22,     0,    14,     0,     0,    24,   172,   256,   257,
   258,     0,   259,   260,   261,   262,   263,   264,   265,   266,
   267,   268,   269,   270,   271,   272,     0,     0,   173,     0,
     0,     0,     0,     0,   149,   150,     0,   151,   152,     0,
     0,   174,   153,   154,   155,   156,   157,   158,   159,   160,
   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
   171,     0,   149,   150,     0,   151,   152,     0,     0,   373,
   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
   163,   164,   165,   166,   167,   168,   169,   170,   171,     0,
     0,     0,     0,     0,     0,     0,     0,   172,   149,   150,
     0,   151,   152,   174,     0,     0,   153,   154,   155,   156,
   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   167,   168,   169,   170,   171,     0,     0,     5,     0,     7,
   290,   174,     0,   582,     0,     9,    10,    11,     5,     6,
     7,     8,     0,     0,   442,     0,     9,    10,    11,     0,
     0,    13,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    13,     0,    14,     0,     0,   174,    16,     0,
     0,     0,     0,   283,     0,     0,     0,     0,     0,    16,
     0,     0,   284,   285,     0,     0,     0,     0,     0,     0,
    22,     0,     0,     0,     0,    24,     0,     0,     0,     0,
     0,    22,     5,     6,     7,     8,    24,     0,   630,     0,
     9,    10,    11,     5,     6,     7,     8,     0,     0,     0,
     0,     9,    10,    11,     0,     0,    13,     0,    14,     0,
     0,     0,     5,     6,     7,     8,     0,    13,     0,    14,
     9,    10,    11,    16,     0,     0,     0,     0,     0,     0,
     5,     0,     7,   140,    16,     0,    13,     0,     9,    10,
    11,     0,     0,     0,     0,    22,     0,     0,     0,     5,
    24,     7,   290,    16,    13,     0,    22,     9,    10,    11,
     0,    24,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    16,     0,    13,     0,    22,     0,     0,     0,     0,
    24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    16,     0,     0,    22,   854,     0,     0,     0,    24,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    22,     0,     0,     0,     0,    24,     0,   256,
   257,   258,   855,   259,   260,   261,   262,   263,   264,   265,
   266,   267,   268,   269,   270,   271,   272,   256,   257,   258,
   893,   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[] = {     9,
    10,    11,   209,    24,     2,     3,    16,    60,    61,    19,
    20,   318,   208,    23,    83,    25,    26,     2,     3,     2,
     3,    33,     2,     3,    91,    22,    85,    24,    66,    36,
   326,   177,    98,    31,   203,    33,   345,   243,   288,   347,
   476,    39,   351,    33,    31,   277,    67,    98,    32,    33,
    71,   284,   142,   552,    39,   145,    39,   177,   410,    39,
   635,   107,   108,   333,    74,   433,   194,   113,   204,    58,
    67,    61,   735,    80,    71,   817,     1,   200,   124,    77,
     1,    88,   431,     1,    94,    83,     9,    85,    38,   135,
    77,     1,    10,    91,    45,    38,    27,    38,    85,   109,
   246,     3,     4,   116,     3,    38,   714,     3,    98,    59,
    30,     7,     3,     4,   283,    98,     7,   324,    38,     5,
     1,     7,     3,     4,   732,   867,   116,     0,    59,    60,
    81,     0,    82,    76,    30,    76,   146,   800,   148,    30,
    39,     3,     4,    76,    59,   887,   199,   214,   890,    59,
   892,   891,   422,    76,    50,   145,    77,    82,   900,    50,
   173,    59,   172,    59,    82,    67,   416,   233,    59,    59,
    72,     3,   182,   183,   407,   185,   186,    59,    60,   919,
   843,    72,   233,   173,    77,    78,    67,   419,    38,   538,
   932,    72,   245,   191,    76,    45,   194,   195,    30,   698,
   699,   208,    45,   339,   191,    67,   204,   343,   195,    59,
    72,   334,   219,    77,   342,   225,   214,   204,    50,   526,
    82,   288,   345,   659,    38,   278,    30,    59,   351,   520,
   376,    45,   285,   524,   247,   358,    82,   360,   248,   252,
     3,   254,   232,   233,   612,   234,   230,   236,   232,   519,
   233,    68,    69,    70,   603,     3,     4,   247,   833,     3,
     4,    78,   252,    38,   254,   275,   276,    30,     3,     4,
    45,     3,     4,     5,     6,     7,   567,   629,    65,   570,
     3,     4,     3,     4,     7,    77,    30,    50,   301,    81,
   311,    82,   728,    82,    38,   348,    59,    60,   605,   309,
    76,    59,    60,    59,    60,    81,    50,    30,   578,    30,
    59,   301,   811,    59,   311,    59,    50,    38,    76,    67,
    76,     3,     4,   369,    72,    59,    60,    50,    72,    50,
   328,   338,    67,   386,    82,    67,    59,    72,    59,   485,
    72,   339,     7,   353,   342,   343,    59,    82,    30,   416,
   582,    72,   339,   559,    78,     4,   343,     6,     7,   591,
    78,   414,    77,    12,    13,    14,    81,   513,    50,    30,
    59,   437,    59,    76,     3,     4,    30,    59,    81,    28,
    76,   688,    48,    49,   654,    50,   437,   657,   621,   639,
    72,    81,   700,   513,    59,    60,    45,    63,    59,    60,
     3,     4,   838,    77,     9,    59,    60,    81,   418,   430,
     3,     4,   410,   426,    76,    68,    69,    70,    67,    81,
    75,    50,   227,    72,   422,    78,   622,   425,    77,    78,
   235,    76,   444,   430,    76,   433,   426,   422,    67,   585,
    77,   673,   422,    72,    81,   457,   444,   437,   433,   433,
   573,   620,    38,   433,   444,   578,    59,   626,    82,   443,
   444,   711,   552,   553,    67,   698,    59,   457,    27,    72,
   251,    30,   705,    77,    67,   256,   257,    36,    59,    72,
   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272,    59,    60,    54,    55,   803,    57,    58,    59,
    60,   511,    76,   515,    76,   574,    77,    81,    36,    81,
    81,    77,     3,     4,    67,    81,    76,   515,    77,    81,
   518,    77,    81,   535,   730,   515,    68,    69,    70,    76,
   514,    76,   655,   518,   657,   533,    78,   535,   518,    30,
    77,   346,    59,    60,    81,   535,   533,   616,   617,   615,
   534,   535,   611,    82,   552,   553,    76,   547,   556,    50,
   766,    77,   546,   547,   615,   552,   553,   577,    59,   607,
   608,   352,   639,   882,   564,   884,   574,    77,   637,   563,
   564,    81,    68,    69,    70,   754,    50,    51,    52,     3,
     4,   601,    78,     7,    38,     3,     4,    77,   596,    77,
    77,    81,     3,    81,    81,    59,     7,   388,   389,   596,
    77,    78,   610,   611,   612,   622,    30,    76,   616,   617,
    59,    60,    30,   621,   611,   615,    77,   612,   612,    30,
   926,   629,   612,    10,   621,    76,    50,   635,   934,   637,
    77,    78,    50,    63,   711,    59,    60,    82,   701,    50,
   637,    59,    60,    76,   664,   862,    59,    60,    59,    60,
   128,   129,   868,     5,     6,     7,   471,    27,     9,    36,
    12,    13,    14,   478,   479,    54,    55,   730,    57,    58,
    59,    60,     1,   752,    83,     4,     5,     6,     7,    27,
    77,    10,    30,    12,    13,    14,    78,    78,    36,    38,
   698,   699,    76,   909,   910,    78,    78,   705,    76,    28,
   720,   698,   699,   766,   495,    76,    38,    76,   705,    76,
   730,    59,    60,    76,   777,    76,    45,    76,     4,     5,
     6,     7,   730,     5,     6,     7,    12,    13,    14,    77,
    12,    13,    14,    81,    76,   730,   744,   730,    67,    83,
   730,   797,    28,    72,   752,    83,   766,   744,    30,   882,
   781,   884,   815,    82,   833,   818,   819,   572,   778,    45,
    76,     6,     7,   826,    82,   787,   835,    12,    13,    14,
    63,    63,    76,   780,   781,   566,    76,    36,   841,   787,
    83,    67,    78,    81,    32,   848,    72,   787,    38,   797,
   581,    77,   786,   787,    83,    76,   859,    48,    49,    50,
    51,    52,   797,   811,   797,   868,    77,   797,   623,   624,
   625,    81,   627,   628,   811,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,   833,     3,   835,   891,     1,
    76,     3,    38,    77,    77,   650,     8,     9,   835,    11,
     1,    83,    63,     4,     5,     6,     7,    78,   868,    78,
   913,    12,    13,    14,   645,    38,   919,    29,   649,    31,
    38,    33,    34,    78,   679,   680,   681,    28,    40,    30,
    81,    43,    63,    38,    81,    78,    48,    49,    50,    36,
    38,    63,    54,    55,    45,    83,   677,    59,    60,    78,
    59,    59,    64,    59,    66,    38,    77,    77,     7,    71,
    38,   716,   693,    75,    77,    16,    67,    79,    80,    59,
    82,    72,    44,    45,    46,    47,    48,    49,    50,    51,
    52,    82,     1,   714,     3,     4,   717,     6,     7,     8,
     9,    77,    11,    12,    13,    14,    78,    77,    77,    59,
    63,   732,    76,    17,   735,     9,    77,    76,   763,    28,
    29,    77,    31,    77,    33,    34,    77,    76,    76,    59,
   751,    40,    77,    77,    43,    81,    45,    77,    76,    48,
    49,    50,    76,     0,    77,    54,    55,     0,   419,   818,
    59,    60,   773,   291,   334,    64,   655,    66,    67,   797,
    87,   418,    71,    72,   638,   645,    75,   355,   233,   573,
    79,    80,   225,    82,   360,   868,   353,   655,   579,   800,
   868,     1,   657,     3,     4,     5,     6,     7,     8,     9,
   914,    11,    12,    13,    14,    15,   916,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,   556,    33,    34,   413,   425,    25,   543,   425,
    40,   752,   843,    43,   749,    45,   617,   536,    48,    49,
    50,   310,   518,   854,    54,    55,   744,   513,   421,    59,
    60,   673,   585,    -1,    64,   421,    66,    67,    -1,   376,
    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,
    80,     1,    82,     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,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
    80,     1,    82,     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,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,
    80,     1,    82,     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,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
    80,     1,    82,     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,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,
    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
    37,    11,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,    29,
    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
    -1,    11,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    -1,    -1,    -1,    -1,    29,
    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,
    80,     1,    82,     3,     4,    -1,    -1,    -1,     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,    -1,    -1,    -1,    -1,    28,
    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    45,    -1,    58,    59,
    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,    79,
    80,     1,    82,    72,     4,     5,     6,     7,    77,    78,
    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
     1,    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,
    30,    12,    13,    14,    -1,    -1,    36,    45,    46,    47,
    48,    49,    50,    51,    52,    45,    27,    28,    -1,    30,
    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    59,
    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,
    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,    60,
    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,     1,
    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,    -1,
    -1,     4,     5,     6,     7,    27,    28,    -1,    30,    12,
    13,    14,    -1,    -1,    36,    46,    47,    48,    49,    50,
    51,    52,    -1,    45,    -1,    28,     1,    30,    -1,     4,
     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    72,    -1,    -1,    28,    -1,    77,    -1,    -1,    -1,    81,
    82,    -1,    -1,    -1,    67,    -1,    -1,    -1,     3,    72,
    45,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    82,
    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
    51,    52,    67,    -1,    29,    -1,    31,    72,    33,    34,
    -1,    -1,    -1,    -1,    -1,    40,    -1,    82,    43,    -1,
    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
    55,    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,
    -1,    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,
    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,
    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
    -1,    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,
    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,
    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,
    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,
     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,
    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,
     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,
    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,
    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
    79,    80,    -1,    -1,    83,     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,    -1,    -1,    -1,
    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,
    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
    -1,    79,    80,    -1,    82,     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,    -1,    -1,    -1,
    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    67,
    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,
    -1,    79,    80,    -1,    82,    29,    -1,    31,    -1,    33,
    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    82,     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,     3,     4,     5,
     6,     7,     8,     9,    38,    11,    12,    13,    14,     4,
     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
    -1,    -1,    28,    29,    30,    31,    -1,    33,    34,    -1,
    -1,    -1,    -1,    28,    40,    30,    -1,    43,    72,    45,
    -1,    -1,    48,    49,    50,    -1,    -1,    81,    54,    55,
    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
    66,    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
    -1,    -1,    67,    79,    80,     3,     4,    72,     6,     7,
     8,     9,    77,    11,    12,    13,    14,    42,    43,    44,
    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
    28,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
    -1,    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,
    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    67,
    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,
    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,
    64,    11,    66,    67,    -1,    -1,    -1,    71,    -1,    -1,
    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,
    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,
    -1,    71,    -1,    -1,    -1,    75,    -1,    77,    -1,    79,
    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,
    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    -1,
    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
    -1,    75,    -1,    -1,     1,    79,    80,     4,    -1,     6,
     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
    -1,    28,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    28,
    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
     5,     6,     7,    -1,    -1,    -1,    45,    12,    13,    14,
    67,    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,
    77,    78,    27,    28,    -1,    30,    31,    -1,    67,    68,
    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,
    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    59,    -1,    61,    62,    63,    -1,
    -1,    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,
    -1,     1,    77,     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,    45,    -1,    -1,    48,    49,
    50,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    59,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    -1,    -1,    72,    45,    -1,    -1,    -1,    77,    50,     1,
    -1,     3,     4,     5,     6,     7,    -1,    59,    10,    -1,
    12,    13,    14,    -1,    -1,    67,    -1,    -1,     1,    -1,
    72,     4,     5,     6,     7,    77,    28,    10,    30,    12,
    13,    14,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
    12,    13,    14,    45,    -1,    28,    -1,    30,    -1,    -1,
    -1,     4,     5,     6,     7,    -1,    28,    -1,    30,    12,
    13,    14,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    72,    -1,    -1,    45,    76,    28,    -1,    30,    -1,    -1,
    -1,    -1,    -1,    -1,    67,     1,    -1,    -1,     4,    72,
     6,     7,    45,    76,    -1,    67,    12,    13,    14,    -1,
    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    -1,    67,    31,    -1,    -1,    -1,    72,
    -1,    -1,     3,     4,    77,     6,     7,    -1,    -1,    45,
    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
    -1,    67,    -1,    30,    -1,    -1,    72,    38,    35,    36,
    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    -1,    -1,    59,    -1,
    -1,    -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,
    -1,    72,    11,    12,    13,    14,    15,    16,    17,    18,
    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    29,    -1,     3,     4,    -1,     6,     7,    -1,    -1,    38,
    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,    38,     3,     4,
    -1,     6,     7,    72,    -1,    -1,    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,    72,    -1,    38,    -1,    12,    13,    14,     4,     5,
     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,    -1,
    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    28,    -1,    30,    -1,    -1,    72,    45,    -1,
    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    45,
    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
    -1,    67,     4,     5,     6,     7,    72,    -1,    10,    -1,
    12,    13,    14,     4,     5,     6,     7,    -1,    -1,    -1,
    -1,    12,    13,    14,    -1,    -1,    28,    -1,    30,    -1,
    -1,    -1,     4,     5,     6,     7,    -1,    28,    -1,    30,
    12,    13,    14,    45,    -1,    -1,    -1,    -1,    -1,    -1,
     4,    -1,     6,     7,    45,    -1,    28,    -1,    12,    13,
    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,     4,
    72,     6,     7,    45,    28,    -1,    67,    12,    13,    14,
    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    45,    -1,    28,    -1,    67,    -1,    -1,    -1,    -1,
    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    45,    -1,    -1,    67,    10,    -1,    -1,    -1,    72,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    35,
    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    35,    36,    37,    -1,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/local/share/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(FROM,TO,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 (from, to, count)
     char *from;
     char *to;
     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 *from, char *to, int count)
{
  register char *f = from;
  register char *t = to;
  register int i = count;

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

#endif
#endif

#line 192 "/usr/local/share/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
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#else
#define YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#endif

int
yyparse(YYPARSE_PARAM)
     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 *)yyss1, (char *)yyss, size * sizeof (*yyssp));
      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls1, (char *)yyls, 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 237 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids an empty source file");
		  finish_file ();
		;
    break;}
case 2:
#line 242 "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 256 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 257 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 10:
#line 265 "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 273 "objc-parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 12:
#line 278 "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 288 "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 293 "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 298 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 16:
#line 300 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 19:
#line 304 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
    break;}
case 20:
#line 310 "objc-parse.y"
{ if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 21:
#line 315 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 22:
#line 317 "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 23:
#line 323 "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 328 "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 333 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 26:
#line 335 "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 341 "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 346 "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 351 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 30:
#line 353 "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 359 "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 373 "objc-parse.y"
{ yyval.code = ADDR_EXPR; ;
    break;}
case 37:
#line 375 "objc-parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 38:
#line 377 "objc-parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 39:
#line 379 "objc-parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 40:
#line 381 "objc-parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 41:
#line 383 "objc-parse.y"
{ yyval.code = BIT_NOT_EXPR; ;
    break;}
case 42:
#line 385 "objc-parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 43:
#line 389 "objc-parse.y"
{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
    break;}
case 44:
#line 394 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 46:
#line 400 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 47:
#line 402 "objc-parse.y"
{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 49:
#line 408 "objc-parse.y"
{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 50:
#line 411 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 51:
#line 414 "objc-parse.y"
{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
		  overflow_warning (yyval.ttype); ;
    break;}
case 52:
#line 418 "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 446 "objc-parse.y"
{ skip_evaluation--;
		  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
		      && DECL_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 452 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 55:
#line 455 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
    break;}
case 56:
#line 458 "objc-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 57:
#line 461 "objc-parse.y"
{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 58:
#line 463 "objc-parse.y"
{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 59:
#line 467 "objc-parse.y"
{ skip_evaluation++; ;
    break;}
case 60:
#line 471 "objc-parse.y"
{ skip_evaluation++; ;
    break;}
case 62:
#line 477 "objc-parse.y"
{ tree type = groktypename (yyvsp[-2].ttype);
		  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
    break;}
case 63:
#line 480 "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 64:
#line 484 "objc-parse.y"
{ char *name;
		  tree result = pop_init_level (0);
		  tree type = yyvsp[-5].ttype;
		  finish_init ();

		  if (pedantic)
		    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 66:
#line 513 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 67:
#line 515 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 68:
#line 517 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 69:
#line 519 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 70:
#line 521 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 71:
#line 523 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 72:
#line 525 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 73:
#line 527 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 74:
#line 529 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 75:
#line 531 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 76:
#line 533 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 77:
#line 535 "objc-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 78:
#line 537 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 79:
#line 540 "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 80:
#line 543 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
    break;}
case 81:
#line 546 "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 82:
#line 549 "objc-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 83:
#line 552 "objc-parse.y"
{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
				      - (yyvsp[-4].ttype == boolean_false_node)); ;
    break;}
case 84:
#line 555 "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 85:
#line 558 "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 86:
#line 565 "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 87:
#line 568 "objc-parse.y"
{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 88:
#line 571 "objc-parse.y"
{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
		  /* This inhibits warnings in truthvalue_conversion.  */
		  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
    break;}
case 89:
#line 578 "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 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 91:
#line 738 "objc-parse.y"
{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
    break;}
case 92:
#line 740 "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 93:
#line 746 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 94:
#line 748 "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 95:
#line 762 "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 96:
#line 785 "objc-parse.y"
{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 97:
#line 787 "objc-parse.y"
{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 98:
#line 789 "objc-parse.y"
{
                  if (doing_objc_thang)
                    {
		      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 99:
#line 801 "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 100:
#line 815 "objc-parse.y"
{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 101:
#line 817 "objc-parse.y"
{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 102:
#line 819 "objc-parse.y"
{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
    break;}
case 103:
#line 821 "objc-parse.y"
{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
    break;}
case 104:
#line 823 "objc-parse.y"
{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
    break;}
case 105:
#line 825 "objc-parse.y"
{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
    break;}
case 106:
#line 827 "objc-parse.y"
{ yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
    break;}
case 108:
#line 834 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 110:
#line 842 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 113:
#line 850 "objc-parse.y"
{ c_mark_varargs ();
		  if (pedantic)
		    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
    break;}
case 114:
#line 860 "objc-parse.y"
{ ;
    break;}
case 119:
#line 876 "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 120:
#line 881 "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 121:
#line 886 "objc-parse.y"
{ shadow_tag_warned (yyvsp[-1].ttype, 1);
		  pedwarn ("empty declaration"); ;
    break;}
case 122:
#line 889 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 123:
#line 898 "objc-parse.y"
{ ;
    break;}
case 128:
#line 913 "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 129:
#line 924 "objc-parse.y"
{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
    break;}
case 130:
#line 929 "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 131:
#line 934 "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 132:
#line 939 "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 133:
#line 944 "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 134:
#line 949 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 135:
#line 951 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 136:
#line 953 "objc-parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 137:
#line 963 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 138:
#line 965 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 139:
#line 969 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 140:
#line 971 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 141:
#line 973 "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 142:
#line 978 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 143:
#line 983 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 144:
#line 985 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 145:
#line 990 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 146:
#line 992 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 147:
#line 994 "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 148:
#line 1007 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 149:
#line 1009 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 150:
#line 1011 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 151:
#line 1013 "objc-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 152:
#line 1018 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 153:
#line 1021 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 154:
#line 1023 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 155:
#line 1026 "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 156:
#line 1040 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 157:
#line 1042 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 158:
#line 1046 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 159:
#line 1048 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 162:
#line 1058 "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 163:
#line 1062 "objc-parse.y"
{ yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 164:
#line 1064 "objc-parse.y"
{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
    break;}
case 165:
#line 1069 "objc-parse.y"
{ yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
    break;}
case 166:
#line 1071 "objc-parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
    break;}
case 167:
#line 1073 "objc-parse.y"
{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
    break;}
case 175:
#line 1095 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 176:
#line 1097 "objc-parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 177:
#line 1104 "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 178:
#line 1109 "objc-parse.y"
{ finish_init ();
		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 179:
#line 1112 "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 180:
#line 1120 "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 181:
#line 1125 "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 182:
#line 1129 "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 183:
#line 1137 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 184:
#line 1139 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 185:
#line 1144 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 186:
#line 1146 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 187:
#line 1151 "objc-parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 188:
#line 1156 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 189:
#line 1158 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 190:
#line 1163 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 191:
#line 1165 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 192:
#line 1167 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 193:
#line 1169 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 194:
#line 1171 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 200:
#line 1189 "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 201:
#line 1194 "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 202:
#line 1202 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 203:
#line 1208 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids empty initializer braces"); ;
    break;}
case 207:
#line 1222 "objc-parse.y"
{ process_init_element (yyvsp[0].ttype); ;
    break;}
case 208:
#line 1224 "objc-parse.y"
{ push_init_level (0); ;
    break;}
case 209:
#line 1226 "objc-parse.y"
{ process_init_element (pop_init_level (0)); ;
    break;}
case 211:
#line 1232 "objc-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 213:
#line 1235 "objc-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 215:
#line 1241 "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 216:
#line 1250 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 217:
#line 1258 "objc-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 218:
#line 1264 "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 219:
#line 1273 "objc-parse.y"
{ store_parm_decls (); ;
    break;}
case 220:
#line 1281 "objc-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 223:
#line 1297 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 224:
#line 1299 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 225:
#line 1304 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 226:
#line 1306 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 227:
#line 1308 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 228:
#line 1315 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 231:
#line 1327 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 232:
#line 1332 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 233:
#line 1334 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 234:
#line 1336 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 235:
#line 1343 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 237:
#line 1352 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 238:
#line 1357 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 239:
#line 1359 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 240:
#line 1361 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 241:
#line 1363 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 242:
#line 1370 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 244:
#line 1376 "objc-parse.y"
{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
		  /* Start scope of tag before parsing components.  */
		;
    break;}
case 245:
#line 1380 "objc-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 246:
#line 1382 "objc-parse.y"
{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 247:
#line 1386 "objc-parse.y"
{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
    break;}
case 248:
#line 1388 "objc-parse.y"
{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
    break;}
case 249:
#line 1390 "objc-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 250:
#line 1392 "objc-parse.y"
{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 251:
#line 1396 "objc-parse.y"
{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
    break;}
case 252:
#line 1398 "objc-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 253:
#line 1401 "objc-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 254:
#line 1404 "objc-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (NULL_TREE); ;
    break;}
case 255:
#line 1407 "objc-parse.y"
{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 256:
#line 1410 "objc-parse.y"
{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1421 "objc-parse.y"
{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
    break;}
case 261:
#line 1426 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 262:
#line 1428 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		  pedwarn ("no semicolon at end of struct or union"); ;
    break;}
case 263:
#line 1433 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 264:
#line 1435 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 265:
#line 1437 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("extra semicolon in struct or union specified"); ;
    break;}
case 266:
#line 1441 "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 267:
#line 1466 "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 268:
#line 1472 "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 269:
#line 1477 "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 270:
#line 1483 "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 271:
#line 1488 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 272:
#line 1490 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 274:
#line 1497 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 275:
#line 1502 "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 276:
#line 1506 "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 277:
#line 1509 "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 279:
#line 1521 "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 280:
#line 1526 "objc-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 281:
#line 1532 "objc-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 282:
#line 1534 "objc-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 283:
#line 1539 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 284:
#line 1541 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 285:
#line 1546 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 287:
#line 1552 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 288:
#line 1554 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 289:
#line 1559 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 290:
#line 1561 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 291:
#line 1566 "objc-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 292:
#line 1569 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 293:
#line 1571 "objc-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 294:
#line 1573 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 295:
#line 1575 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 296:
#line 1577 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 297:
#line 1579 "objc-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 298:
#line 1581 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 299:
#line 1583 "objc-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 300:
#line 1594 "objc-parse.y"
{
		  if (pedantic && yyvsp[0].ends_in_label)
		    pedwarn ("ANSI C forbids label at end of compound statement");
		;
    break;}
case 302:
#line 1603 "objc-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 303:
#line 1605 "objc-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 307:
#line 1617 "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 309:
#line 1632 "objc-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids label declarations"); ;
    break;}
case 312:
#line 1643 "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 313:
#line 1657 "objc-parse.y"
{;
    break;}
case 315:
#line 1662 "objc-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
    break;}
case 316:
#line 1664 "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 317:
#line 1672 "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 318:
#line 1680 "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 321:
#line 1700 "objc-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
		  yyval.itype = stmt_count;
		  if_stmt_file = yyvsp[-5].filename;
		  if_stmt_line = yyvsp[-4].lineno;
		  position_after_white_space (); ;
    break;}
case 322:
#line 1713 "objc-parse.y"
{ stmt_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 323:
#line 1720 "objc-parse.y"
{ expand_loop_continue_here (); ;
    break;}
case 324:
#line 1724 "objc-parse.y"
{ yyval.filename = input_filename; ;
    break;}
case 325:
#line 1728 "objc-parse.y"
{ yyval.lineno = lineno; ;
    break;}
case 326:
#line 1733 "objc-parse.y"
{ ;
    break;}
case 327:
#line 1738 "objc-parse.y"
{ ;
    break;}
case 328:
#line 1743 "objc-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 329:
#line 1748 "objc-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 330:
#line 1750 "objc-parse.y"
{ yyval.ends_in_label = 1; ;
    break;}
case 331:
#line 1756 "objc-parse.y"
{ stmt_count++; ;
    break;}
case 333:
#line 1759 "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 334:
#line 1776 "objc-parse.y"
{ expand_start_else ();
		  yyvsp[-1].itype = stmt_count;
		  position_after_white_space (); ;
    break;}
case 335:
#line 1780 "objc-parse.y"
{ expand_end_cond ();
		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
		    warning ("empty body in an else-statement"); ;
    break;}
case 336:
#line 1784 "objc-parse.y"
{ 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 337:
#line 1796 "objc-parse.y"
{ expand_end_cond (); ;
    break;}
case 338:
#line 1798 "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 339:
#line 1808 "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 340:
#line 1817 "objc-parse.y"
{ expand_end_loop (); ;
    break;}
case 341:
#line 1820 "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 342:
#line 1827 "objc-parse.y"
{ expand_end_loop ();
		  clear_momentary (); ;
    break;}
case 343:
#line 1831 "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 344:
#line 1843 "objc-parse.y"
{ yyvsp[0].lineno = lineno;
		  yyval.filename = input_filename; ;
    break;}
case 345:
#line 1846 "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 346:
#line 1862 "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 347:
#line 1873 "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 348:
#line 1881 "objc-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 349:
#line 1887 "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 350:
#line 1892 "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 351:
#line 1897 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
		  c_expand_return (NULL_TREE); ;
    break;}
case 352:
#line 1901 "objc-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
		  c_expand_return (yyvsp[-1].ttype); ;
    break;}
case 353:
#line 1905 "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 354:
#line 1916 "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 355:
#line 1923 "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 356:
#line 1931 "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 357:
#line 1937 "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 358:
#line 1948 "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 361:
#line 1963 "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 362:
#line 1984 "objc-parse.y"
{
	    if (yyvsp[-1].itype)
	      iterator_for_loop_end (yyvsp[-3].ttype);
	  ;
    break;}
case 363:
#line 2019 "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 = 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 364:
#line 2044 "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 365:
#line 2075 "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 366:
#line 2090 "objc-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
		  stmt_count++;
		  emit_nop ();
		  if (label)
		    expand_label (label);
		  position_after_white_space (); ;
    break;}
case 367:
#line 2102 "objc-parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 368:
#line 2105 "objc-parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 369:
#line 2110 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 371:
#line 2117 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 374:
#line 2124 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 375:
#line 2129 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 376:
#line 2134 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
    break;}
case 377:
#line 2136 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
    break;}
case 378:
#line 2142 "objc-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (0); ;
    break;}
case 379:
#line 2146 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 381:
#line 2154 "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 382:
#line 2162 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 383:
#line 2164 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
    break;}
case 384:
#line 2170 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 385:
#line 2172 "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 386:
#line 2182 "objc-parse.y"
{ yyval.ttype = get_parm_info (1); ;
    break;}
case 387:
#line 2184 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 388:
#line 2189 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 389:
#line 2191 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 390:
#line 2198 "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 391:
#line 2207 "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 392:
#line 2216 "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 393:
#line 2225 "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 394:
#line 2235 "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 395:
#line 2249 "objc-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (1); ;
    break;}
case 396:
#line 2253 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 398:
#line 2261 "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 399:
#line 2271 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 400:
#line 2273 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 401:
#line 2279 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 402:
#line 2281 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 403:
#line 2286 "objc-parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 409:
#line 2299 "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 410:
#line 2314 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 411:
#line 2316 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 412:
#line 2321 "objc-parse.y"
{
		  objc_declare_class (yyvsp[-1].ttype);
		;
    break;}
case 413:
#line 2327 "objc-parse.y"
{
		  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
		;
    break;}
case 414:
#line 2333 "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 415:
#line 2339 "objc-parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 416:
#line 2344 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 417:
#line 2350 "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 418:
#line 2357 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 419:
#line 2363 "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 420:
#line 2369 "objc-parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 421:
#line 2374 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 422:
#line 2380 "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 423:
#line 2387 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 424:
#line 2393 "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 425:
#line 2399 "objc-parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 426:
#line 2405 "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 427:
#line 2413 "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 428:
#line 2419 "objc-parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 429:
#line 2425 "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 430:
#line 2433 "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 431:
#line 2440 "objc-parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 432:
#line 2446 "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 433:
#line 2456 "objc-parse.y"
{
		  remember_protocol_qualifiers ();
		  objc_interface_context
		    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 434:
#line 2462 "objc-parse.y"
{
		  forget_protocol_qualifiers();
		  finish_protocol(objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 435:
#line 2471 "objc-parse.y"
{
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 437:
#line 2479 "objc-parse.y"
{
		  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
		    yyval.ttype = yyvsp[-1].ttype;
		  else
		    YYERROR1;
		;
    break;}
case 440:
#line 2493 "objc-parse.y"
{ objc_public_flag = 2; ;
    break;}
case 441:
#line 2494 "objc-parse.y"
{ objc_public_flag = 0; ;
    break;}
case 442:
#line 2495 "objc-parse.y"
{ objc_public_flag = 1; ;
    break;}
case 443:
#line 2500 "objc-parse.y"
{
                  yyval.ttype = NULL_TREE;
                ;
    break;}
case 445:
#line 2505 "objc-parse.y"
{
                  if (pedantic)
		    pedwarn ("extra semicolon in struct or union specified");
                ;
    break;}
case 446:
#line 2523 "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 447:
#line 2529 "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 448:
#line 2535 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 449:
#line 2540 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 452:
#line 2547 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      yyvsp[0].ttype, current_declspecs,
					      NULL_TREE);
                ;
    break;}
case 453:
#line 2554 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                ;
    break;}
case 454:
#line 2560 "objc-parse.y"
{
		  yyval.ttype = add_instance_variable (objc_ivar_context,
					      objc_public_flag,
					      NULL_TREE,
					      current_declspecs, yyvsp[0].ttype);
                ;
    break;}
case 455:
#line 2570 "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 456:
#line 2578 "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 457:
#line 2585 "objc-parse.y"
{
		  continue_method_def ();
		;
    break;}
case 458:
#line 2589 "objc-parse.y"
{
		  finish_method_def ();
		  objc_method_context = NULL_TREE;
		;
    break;}
case 459:
#line 2595 "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 460:
#line 2603 "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 461:
#line 2610 "objc-parse.y"
{
		  continue_method_def ();
		;
    break;}
case 462:
#line 2614 "objc-parse.y"
{
		  finish_method_def ();
		  objc_method_context = NULL_TREE;
		;
    break;}
case 464:
#line 2626 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 469:
#line 2633 "objc-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 473:
#line 2643 "objc-parse.y"
{
		  objc_inherit_code = CLASS_METHOD_DECL;
		;
    break;}
case 474:
#line 2647 "objc-parse.y"
{
		  add_class_method (objc_interface_context, yyvsp[0].ttype);
		;
    break;}
case 476:
#line 2653 "objc-parse.y"
{
		  objc_inherit_code = INSTANCE_METHOD_DECL;
		;
    break;}
case 477:
#line 2657 "objc-parse.y"
{
		  add_instance_method (objc_interface_context, yyvsp[0].ttype);
		;
    break;}
case 479:
#line 2665 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 480:
#line 2670 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 481:
#line 2675 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 482:
#line 2680 "objc-parse.y"
{
		  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 491:
#line 2710 "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 492:
#line 2715 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 493:
#line 2717 "objc-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 494:
#line 2722 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 495:
#line 2724 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 496:
#line 2732 "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 497:
#line 2737 "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 498:
#line 2742 "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 499:
#line 2750 "objc-parse.y"
{
	    	  yyval.ttype = NULL_TREE;
		;
    break;}
case 500:
#line 2754 "objc-parse.y"
{
		  /* oh what a kludge! */
		  yyval.ttype = (tree)1;
		;
    break;}
case 501:
#line 2759 "objc-parse.y"
{
		  pushlevel (0);
		;
    break;}
case 502:
#line 2763 "objc-parse.y"
{
	  	  /* returns a tree list node generated by get_parm_info */
		  yyval.ttype = yyvsp[0].ttype;
		  poplevel (0, 0, 0);
		;
    break;}
case 505:
#line 2778 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 510:
#line 2791 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 511:
#line 2792 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 512:
#line 2793 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 513:
#line 2794 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 514:
#line 2795 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 515:
#line 2796 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 516:
#line 2797 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 517:
#line 2798 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 518:
#line 2799 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 519:
#line 2800 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 520:
#line 2801 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 521:
#line 2802 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 522:
#line 2803 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 523:
#line 2804 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 524:
#line 2805 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 525:
#line 2806 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 526:
#line 2807 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 527:
#line 2808 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 528:
#line 2809 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ;
    break;}
case 531:
#line 2815 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 532:
#line 2820 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 533:
#line 2825 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 534:
#line 2830 "objc-parse.y"
{
		  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 538:
#line 2843 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 539:
#line 2851 "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 540:
#line 2863 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 541:
#line 2867 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 543:
#line 2875 "objc-parse.y"
{
		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
		;
    break;}
case 544:
#line 2882 "objc-parse.y"
{ objc_receiver_context = 1; ;
    break;}
case 545:
#line 2884 "objc-parse.y"
{ objc_receiver_context = 0; ;
    break;}
case 546:
#line 2886 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
		;
    break;}
case 550:
#line 2899 "objc-parse.y"
{
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 551:
#line 2906 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
		;
    break;}
case 552:
#line 2910 "objc-parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
		;
    break;}
case 553:
#line 2917 "objc-parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 554:
#line 2924 "objc-parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 555:
#line 2933 "objc-parse.y"
{
		  yyval.ttype = groktypename (yyvsp[-1].ttype);
		;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 487 "/usr/local/share/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 2938 "objc-parse.y"

