
/*  A Bison parser, made from c-parse.y
    by GNU Bison version 1.28  */

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

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

#line 56 "c-parse.y"

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

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

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


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

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

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

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

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

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

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

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

/* For __extension__, save/restore the warning flags which are
   controlled by __extension__.  */
#define SAVE_WARN_FLAGS()	\
	build_int_2 (pedantic | (warn_pointer_arith << 1), 0)
#define RESTORE_WARN_FLAGS(tval) \
  do {                                     \
    int val = TREE_INT_CST_LOW (tval);     \
    pedantic = val & 1;                    \
    warn_pointer_arith = (val >> 1) & 1;   \
  } while (0)


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

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

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



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

#define YYTRANSLATE(x) ((unsigned)(x) <= 315 ? yytranslate[x] : 241)

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,     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,    22,
    25,    29,    34,    39,    42,    45,    48,    51,    53,    54,
    55,    63,    68,    69,    70,    78,    83,    84,    85,    92,
    96,    98,   100,   102,   104,   106,   108,   110,   112,   114,
   116,   117,   119,   121,   125,   127,   130,   133,   136,   139,
   142,   147,   150,   155,   158,   161,   163,   165,   167,   172,
   173,   181,   183,   187,   191,   195,   199,   203,   207,   211,
   215,   219,   223,   227,   231,   232,   237,   238,   243,   244,
   245,   253,   254,   260,   264,   268,   270,   272,   274,   278,
   282,   283,   288,   293,   298,   302,   306,   309,   312,   314,
   317,   318,   320,   323,   327,   329,   331,   334,   337,   342,
   347,   350,   353,   357,   359,   361,   364,   367,   368,   369,
   374,   379,   383,   387,   390,   393,   396,   399,   403,   404,
   407,   410,   413,   416,   420,   421,   424,   427,   429,   431,
   434,   437,   439,   441,   444,   447,   450,   454,   455,   458,
   460,   462,   464,   469,   474,   476,   478,   480,   482,   486,
   488,   492,   493,   498,   499,   506,   510,   511,   518,   522,
   523,   525,   527,   530,   537,   539,   543,   544,   546,   551,
   558,   563,   565,   567,   569,   571,   573,   574,   579,   581,
   582,   585,   587,   591,   595,   598,   599,   604,   606,   607,
   612,   614,   616,   618,   621,   624,   630,   634,   635,   636,
   642,   643,   644,   650,   652,   654,   658,   662,   667,   671,
   675,   679,   681,   685,   690,   695,   699,   703,   707,   709,
   713,   717,   721,   726,   731,   735,   739,   741,   743,   746,
   748,   751,   753,   756,   757,   765,   771,   774,   775,   783,
   789,   792,   793,   802,   803,   811,   814,   815,   817,   818,
   820,   822,   825,   826,   830,   833,   837,   839,   843,   845,
   847,   850,   852,   856,   861,   868,   874,   876,   880,   882,
   884,   888,   891,   894,   895,   897,   899,   902,   903,   906,
   910,   914,   917,   921,   926,   930,   933,   937,   940,   944,
   946,   948,   951,   954,   955,   957,   960,   961,   962,   964,
   966,   969,   973,   975,   978,   980,   983,   990,   996,  1002,
  1005,  1008,  1013,  1014,  1019,  1020,  1021,  1025,  1030,  1034,
  1036,  1038,  1040,  1042,  1045,  1046,  1051,  1053,  1057,  1058,
  1059,  1067,  1073,  1076,  1077,  1078,  1079,  1092,  1093,  1100,
  1103,  1106,  1109,  1113,  1120,  1129,  1140,  1153,  1157,  1162,
  1164,  1166,  1167,  1174,  1178,  1184,  1187,  1191,  1192,  1194,
  1195,  1197,  1198,  1200,  1202,  1206,  1211,  1213,  1217,  1218,
  1221,  1224,  1225,  1230,  1233,  1234,  1236,  1238,  1242,  1244,
  1248,  1253,  1258,  1263,  1268,  1273,  1274,  1277,  1279,  1282,
  1284,  1288,  1290,  1294
};

static const short yyrhs[] = {    -1,
    85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
     0,    90,     0,    89,     0,    27,    59,    99,    76,    77,
     0,   240,    88,     0,   122,   136,    77,     0,   129,   122,
   136,    77,     0,   125,   122,   135,    77,     0,   129,    77,
     0,   125,    77,     0,     1,    77,     0,     1,    78,     0,
    77,     0,     0,     0,   125,   122,   164,    91,   116,    92,
   198,     0,   125,   122,   164,     1,     0,     0,     0,   129,
   122,   167,    93,   116,    94,   198,     0,   129,   122,   167,
     1,     0,     0,     0,   122,   167,    95,   116,    96,   198,
     0,   122,   167,     1,     0,     3,     0,     4,     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,   240,
   105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
     0,   103,    59,   185,    76,     0,   104,   102,     0,   104,
    59,   185,    76,     0,    33,   105,     0,    34,   105,     0,
    11,     0,    29,     0,   102,     0,    59,   185,    76,   105,
     0,     0,    59,   185,    76,    82,   106,   150,    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,   200,    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,     9,     0,   115,     9,     0,     0,   118,     0,   118,
    10,     0,   205,   206,   119,     0,   117,     0,   193,     0,
   118,   117,     0,   117,   193,     0,   127,   122,   135,    77,
     0,   130,   122,   136,    77,     0,   127,    77,     0,   130,
    77,     0,   205,   206,   124,     0,   120,     0,   193,     0,
   121,   120,     0,   120,   193,     0,     0,     0,   125,   122,
   135,    77,     0,   129,   122,   136,    77,     0,   125,   122,
   158,     0,   129,   122,   161,     0,   125,    77,     0,   129,
    77,     0,   240,   124,     0,   133,   126,     0,   129,   133,
   126,     0,     0,   126,   134,     0,   126,     5,     0,   126,
   143,     0,   133,   128,     0,   130,   133,   128,     0,     0,
   128,   134,     0,   128,     5,     0,   130,     0,   143,     0,
   129,   130,     0,   129,   143,     0,     7,     0,     5,     0,
   130,     7,     0,   130,     5,     0,   133,   132,     0,   187,
   133,   132,     0,     0,   132,   134,     0,     6,     0,   171,
     0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
   185,    76,     0,     6,     0,     7,     0,   171,     0,   138,
     0,   135,    81,   138,     0,   140,     0,   136,    81,   138,
     0,     0,    27,    59,   115,    76,     0,     0,   164,   137,
   142,    36,   139,   148,     0,   164,   137,   142,     0,     0,
   167,   137,   142,    36,   141,   148,     0,   167,   137,   142,
     0,     0,   143,     0,   144,     0,   143,   144,     0,    30,
    59,    59,   145,    76,    76,     0,   146,     0,   145,    81,
   146,     0,     0,   147,     0,   147,    59,     3,    76,     0,
   147,    59,     3,    81,   101,    76,     0,   147,    59,   100,
    76,     0,    97,     0,     5,     0,     6,     0,     7,     0,
   107,     0,     0,    82,   149,   150,    78,     0,     1,     0,
     0,   151,   176,     0,   152,     0,   151,    81,   152,     0,
   156,    36,   154,     0,   157,   154,     0,     0,    97,    38,
   153,   154,     0,   154,     0,     0,    82,   155,   150,    78,
     0,   107,     0,     1,     0,   157,     0,   156,   157,     0,
    58,    97,     0,    60,   107,    10,   107,    83,     0,    60,
   107,    83,     0,     0,     0,   164,   159,   116,   160,   200,
     0,     0,     0,   167,   162,   116,   163,   200,     0,   165,
     0,   167,     0,    59,   165,    76,     0,   165,    59,   235,
     0,   165,    60,    99,    83,     0,   165,    60,    83,     0,
    50,   188,   165,     0,   143,   123,   165,     0,     4,     0,
   166,    59,   235,     0,   166,    60,    50,    83,     0,   166,
    60,    99,    83,     0,   166,    60,    83,     0,    50,   188,
   166,     0,   143,   123,   166,     0,     4,     0,   167,    59,
   235,     0,    59,   167,    76,     0,    50,   188,   167,     0,
   167,    60,    50,    83,     0,   167,    60,    99,    83,     0,
   167,    60,    83,     0,   143,   123,   167,     0,     3,     0,
    13,     0,    13,   143,     0,    14,     0,    14,   143,     0,
    12,     0,    12,   143,     0,     0,   168,    97,    82,   172,
   178,    78,   142,     0,   168,    82,   178,    78,   142,     0,
   168,    97,     0,     0,   169,    97,    82,   173,   178,    78,
   142,     0,   169,    82,   178,    78,   142,     0,   169,    97,
     0,     0,   170,    97,    82,   174,   183,   177,    78,   142,
     0,     0,   170,    82,   175,   183,   177,    78,   142,     0,
   170,    97,     0,     0,    81,     0,     0,    81,     0,   179,
     0,   179,   180,     0,     0,   179,   180,    77,     0,   179,
    77,     0,   131,   122,   181,     0,   131,     0,   187,   122,
   181,     0,   187,     0,     1,     0,   240,   180,     0,   182,
     0,   181,    81,   182,     0,   205,   206,   164,   142,     0,
   205,   206,   164,    38,   107,   142,     0,   205,   206,    38,
   107,   142,     0,   184,     0,   183,    81,   184,     0,     1,
     0,    97,     0,    97,    36,   107,     0,   131,   186,     0,
   187,   186,     0,     0,   189,     0,     7,     0,   187,     7,
     0,     0,   188,     7,     0,    59,   189,    76,     0,    50,
   188,   189,     0,    50,   188,     0,   189,    59,   228,     0,
   189,    60,    99,    83,     0,   189,    60,    83,     0,    59,
   228,     0,    60,    99,    83,     0,    60,    83,     0,   143,
   123,   189,     0,   191,     0,   208,     0,   191,   208,     0,
   191,   193,     0,     0,   190,     0,     1,    77,     0,     0,
     0,   196,     0,   197,     0,   196,   197,     0,    32,   239,
    77,     0,   200,     0,     1,   200,     0,    82,     0,   199,
    78,     0,   199,   194,   195,   121,   192,    78,     0,   199,
   194,   195,     1,    78,     0,   199,   194,   195,   190,    78,
     0,   202,   207,     0,   202,     1,     0,    15,    59,    99,
    76,     0,     0,    18,   204,   207,    17,     0,     0,     0,
   205,   206,   210,     0,   205,   206,   221,   207,     0,   205,
   206,   209,     0,   210,     0,   221,     0,   200,     0,   218,
     0,    99,    77,     0,     0,   201,    16,   211,   207,     0,
   201,     0,   201,    16,     1,     0,     0,     0,    17,   212,
    59,    99,    76,   213,   207,     0,   203,    59,    99,    76,
    77,     0,   203,     1,     0,     0,     0,     0,    19,    59,
   223,    77,   214,   223,    77,   215,   223,    76,   216,   207,
     0,     0,    20,    59,    99,    76,   217,   207,     0,    23,
    77,     0,    24,    77,     0,    25,    77,     0,    25,    99,
    77,     0,    27,   222,    59,    99,    76,    77,     0,    27,
   222,    59,    99,    38,   224,    76,    77,     0,    27,   222,
    59,    99,    38,   224,    38,   224,    76,    77,     0,    27,
   222,    59,    99,    38,   224,    38,   224,    38,   227,    76,
    77,     0,    26,    97,    77,     0,    26,    50,    99,    77,
     0,    77,     0,   219,     0,     0,    19,    59,   113,    76,
   220,   207,     0,    21,   107,    38,     0,    21,   107,    10,
   107,    38,     0,    22,    38,     0,    97,    38,   142,     0,
     0,     7,     0,     0,    99,     0,     0,   225,     0,   226,
     0,   225,    81,   226,     0,     9,    59,    99,    76,     0,
   115,     0,   227,    81,   115,     0,     0,   229,   230,     0,
   232,    76,     0,     0,   233,    77,   231,   230,     0,     1,
    76,     0,     0,    10,     0,   233,     0,   233,    81,    10,
     0,   234,     0,   233,    81,   234,     0,   125,   122,   166,
   142,     0,   125,   122,   167,   142,     0,   125,   122,   186,
   142,     0,   129,   122,   167,   142,     0,   129,   122,   186,
   142,     0,     0,   236,   237,     0,   230,     0,   238,    76,
     0,     3,     0,   238,    81,     3,     0,    97,     0,   239,
    81,    97,     0,    31,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   244,   249,   263,   265,   265,   266,   268,   270,   271,   279,
   283,   294,   299,   304,   306,   308,   309,   310,   315,   322,
   324,   329,   334,   340,   342,   347,   352,   358,   360,   365,
   372,   374,   377,   379,   381,   383,   385,   387,   389,   393,
   397,   400,   403,   406,   410,   412,   415,   418,   422,   450,
   456,   459,   462,   465,   467,   471,   475,   479,   481,   484,
   488,   515,   517,   519,   521,   523,   525,   527,   529,   531,
   533,   535,   537,   539,   541,   545,   547,   551,   553,   556,
   560,   562,   569,   572,   580,   591,   690,   691,   693,   699,
   701,   715,   738,   740,   742,   746,   752,   754,   759,   761,
   766,   768,   769,   779,   784,   786,   787,   788,   795,   801,
   806,   809,   817,   822,   824,   825,   826,   833,   844,   848,
   854,   859,   864,   869,   871,   873,   882,   885,   889,   891,
   893,   898,   902,   905,   909,   912,   914,   926,   929,   931,
   933,   937,   941,   943,   946,   959,   962,   966,   968,   976,
   977,   978,   982,   984,   990,   991,   992,   995,   997,  1000,
  1002,  1005,  1008,  1014,  1021,  1023,  1030,  1037,  1040,  1047,
  1050,  1054,  1057,  1061,  1066,  1069,  1073,  1076,  1078,  1080,
  1082,  1089,  1091,  1092,  1093,  1098,  1100,  1105,  1113,  1118,
  1122,  1125,  1127,  1132,  1134,  1135,  1138,  1138,  1141,  1144,
  1146,  1148,  1151,  1153,  1156,  1162,  1164,  1168,  1179,  1187,
  1191,  1202,  1210,  1217,  1219,  1224,  1227,  1232,  1234,  1236,
  1243,  1245,  1253,  1259,  1264,  1266,  1268,  1275,  1277,  1283,
  1289,  1291,  1293,  1298,  1300,  1307,  1309,  1312,  1315,  1319,
  1322,  1326,  1329,  1333,  1338,  1340,  1344,  1346,  1348,  1350,
  1354,  1356,  1359,  1362,  1365,  1368,  1372,  1374,  1377,  1379,
  1384,  1387,  1392,  1394,  1396,  1410,  1417,  1422,  1428,  1433,
  1435,  1440,  1442,  1446,  1450,  1454,  1464,  1466,  1471,  1476,
  1479,  1483,  1486,  1490,  1493,  1496,  1499,  1503,  1506,  1510,
  1514,  1516,  1518,  1520,  1522,  1524,  1526,  1528,  1532,  1540,
  1548,  1550,  1552,  1556,  1558,  1561,  1564,  1575,  1577,  1582,
  1584,  1587,  1601,  1604,  1607,  1609,  1611,  1619,  1627,  1638,
  1643,  1646,  1660,  1669,  1673,  1677,  1681,  1687,  1691,  1696,
  1699,  1704,  1707,  1708,  1725,  1730,  1733,  1745,  1747,  1757,
  1767,  1768,  1776,  1779,  1791,  1795,  1812,  1822,  1831,  1836,
  1841,  1846,  1850,  1854,  1865,  1872,  1879,  1886,  1897,  1903,
  1906,  1911,  1934,  1968,  1999,  2030,  2045,  2059,  2063,  2067,
  2070,  2075,  2077,  2080,  2082,  2086,  2091,  2094,  2100,  2105,
  2110,  2112,  2121,  2122,  2128,  2130,  2140,  2142,  2146,  2149,
  2155,  2165,  2174,  2183,  2193,  2207,  2212,  2217,  2219,  2228,
  2231,  2236,  2239,  2243
};
#endif


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

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
"EXTENSION","LABEL","REALPART","IMAGPART","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","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
"decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
"typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
"declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
"typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
"@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
"attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
"@19","initval","@20","designator_list","designator","nested_function","@21",
"@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
"parm_declarator","notype_declarator","struct_head","union_head","enum_head",
"structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
"component_decl_list2","component_decl","components","component_declarator",
"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
"if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
"lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
"@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
"@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
"@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
};
#endif

static const short yyr1[] = {     0,
    84,    84,    86,    85,    87,    85,    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,    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,   115,   115,
   116,   116,   116,   117,   118,   118,   118,   118,   119,   119,
   119,   119,   120,   121,   121,   121,   121,   122,   123,   124,
   124,   124,   124,   124,   124,   124,   125,   125,   126,   126,
   126,   126,   127,   127,   128,   128,   128,   129,   129,   129,
   129,   130,   130,   130,   130,   131,   131,   132,   132,   133,
   133,   133,   133,   133,   134,   134,   134,   135,   135,   136,
   136,   137,   137,   139,   138,   138,   141,   140,   140,   142,
   142,   143,   143,   144,   145,   145,   146,   146,   146,   146,
   146,   147,   147,   147,   147,   148,   149,   148,   148,   150,
   150,   151,   151,   152,   152,   153,   152,   152,   155,   154,
   154,   154,   156,   156,   157,   157,   157,   159,   160,   158,
   162,   163,   161,   164,   164,   165,   165,   165,   165,   165,
   165,   165,   166,   166,   166,   166,   166,   166,   166,   167,
   167,   167,   167,   167,   167,   167,   167,   168,   168,   169,
   169,   170,   170,   172,   171,   171,   171,   173,   171,   171,
   171,   174,   171,   175,   171,   171,   176,   176,   177,   177,
   178,   178,   179,   179,   179,   180,   180,   180,   180,   180,
   180,   181,   181,   182,   182,   182,   183,   183,   183,   184,
   184,   185,   185,   186,   186,   187,   187,   188,   188,   189,
   189,   189,   189,   189,   189,   189,   189,   189,   189,   190,
   191,   191,   191,   192,   192,   193,   194,   195,   195,   196,
   196,   197,   198,   198,   199,   200,   200,   200,   200,   201,
   201,   202,   204,   203,   205,   206,   207,   207,   208,   209,
   209,   210,   210,   210,   211,   210,   210,   210,   212,   213,
   210,   210,   210,   214,   215,   216,   210,   217,   210,   210,
   210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
   218,   220,   219,   221,   221,   221,   221,   222,   222,   223,
   223,   224,   224,   225,   225,   226,   227,   227,   229,   228,
   230,   231,   230,   230,   232,   232,   232,   232,   233,   233,
   234,   234,   234,   234,   234,   236,   235,   237,   237,   238,
   238,   239,   239,   240
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     0,     3,     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,
     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,     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,     4,     4,     1,     1,     1,     1,     3,     1,
     3,     0,     4,     0,     6,     3,     0,     6,     3,     0,
     1,     1,     2,     6,     1,     3,     0,     1,     4,     6,
     4,     1,     1,     1,     1,     1,     0,     4,     1,     0,
     2,     1,     3,     3,     2,     0,     4,     1,     0,     4,
     1,     1,     1,     2,     2,     5,     3,     0,     0,     5,
     0,     0,     5,     1,     1,     3,     3,     4,     3,     3,
     3,     1,     3,     4,     4,     3,     3,     3,     1,     3,
     3,     3,     4,     4,     3,     3,     1,     1,     2,     1,
     2,     1,     2,     0,     7,     5,     2,     0,     7,     5,
     2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
     1,     2,     0,     3,     2,     3,     1,     3,     1,     1,
     2,     1,     3,     4,     6,     5,     1,     3,     1,     1,
     3,     2,     2,     0,     1,     1,     2,     0,     2,     3,
     3,     2,     3,     4,     3,     2,     3,     2,     3,     1,
     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
     2,     3,     1,     2,     1,     2,     6,     5,     5,     2,
     2,     4,     0,     4,     0,     0,     3,     4,     3,     1,
     1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
     7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
     2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
     1,     0,     6,     3,     5,     2,     3,     0,     1,     0,
     1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
     2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
     4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
     3,     1,     3,     1
};

static const short yydefact[] = {     3,
     5,     0,     0,     0,   152,   143,   150,   142,   242,   238,
   240,     0,     0,     0,   404,    18,     4,     8,     7,     0,
   118,   118,   138,   129,   139,   172,     0,     0,     0,   151,
     0,     6,    16,    17,   243,   239,   241,     0,     0,     0,
   237,   288,     0,     0,   160,   119,     0,    15,     0,    14,
     0,   140,   129,   141,   145,   144,   127,   173,    31,    32,
   263,   247,   263,   251,   254,   256,    10,    86,    87,    99,
    56,    57,     0,     0,     0,    33,    35,    34,     0,    36,
    37,     0,    38,    39,     0,     0,    40,    58,     0,     0,
    62,    43,    45,    88,     0,   286,     0,   284,   148,     0,
   284,   177,     0,     0,    11,     0,     0,    30,     0,   396,
     0,     0,   170,   222,   288,     0,     0,   158,   119,     0,
   214,   215,     0,     0,   128,   131,   155,   156,   130,   132,
   157,     0,     0,   244,     0,   248,     0,   252,    54,    55,
    49,    46,     0,     0,     0,     0,    48,     0,     0,     0,
    50,     0,    52,     0,     0,    79,    77,    75,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    97,    98,     0,     0,    41,     0,   100,    47,   153,   288,
   379,     0,   119,   282,   285,   146,   154,   287,   148,   283,
   183,   184,   185,   182,     0,   175,   178,   289,   232,   231,
   161,   162,   236,     0,   230,     0,     0,   235,     0,     0,
    28,     0,   325,   106,   326,   169,   171,     0,     0,    13,
     0,     0,    22,     0,   170,   396,     0,    12,    26,     0,
   170,   270,   265,   118,   262,   118,     0,   263,   170,   263,
   279,   280,   259,   277,     0,    90,    89,   315,   307,     0,
     0,     9,    44,     0,     0,    85,    84,     0,     0,     0,
     0,    73,    74,    72,    71,    70,    68,    69,    63,    64,
    65,    66,    67,    96,    95,     0,    42,     0,   292,     0,
   296,     0,   298,     0,     0,   379,     0,   149,   147,     0,
   177,    41,     0,     0,   400,   386,   118,   118,   398,     0,
   387,   389,   397,     0,   233,   234,   306,     0,   108,   103,
   107,     0,   167,   220,   216,   159,   221,    20,   166,   217,
   219,     0,    24,   246,   325,   264,   325,   271,     0,   250,
     0,     0,   260,     0,   259,   316,   308,    92,    60,    59,
    51,    53,     0,     0,    78,    76,    93,    94,   291,   290,
   380,   297,   299,   293,   295,     0,   174,   176,    86,     0,
   163,   384,   284,   284,   381,   382,     0,   399,     0,     0,
    29,   313,   104,   118,   118,   135,     0,     0,   164,   218,
     0,   266,   272,   326,   268,   170,   170,   281,   278,   170,
     0,     0,     0,   309,   310,     0,    80,    83,   294,   179,
     0,   181,   229,   288,   379,   119,   170,   170,   170,   288,
   119,   170,   170,     0,   388,   390,   401,   314,   111,     0,
   112,     0,   135,   133,   189,   187,   186,   168,    21,     0,
    25,   325,     0,   245,   249,   255,   170,   402,     0,     0,
     0,   325,     0,     0,   115,   326,   301,   311,   202,    86,
     0,     0,   199,     0,   201,     0,   257,   192,   198,     0,
     0,     0,     0,   292,     0,   396,     0,   391,   392,   393,
   292,     0,   394,   395,   383,     0,     0,   162,   134,   137,
   136,     0,   165,   273,     0,   170,   253,   312,     0,   318,
   117,   116,   305,     0,   319,   303,   326,   302,     0,   205,
     0,     0,   196,    61,     0,   191,     0,   204,   195,    81,
   180,   227,   228,   223,     0,   226,     0,   109,   110,     0,
   170,     0,   274,   403,   317,     0,   152,     0,   339,   323,
     0,     0,     0,     0,     0,     0,     0,     0,   368,   360,
     0,     0,   113,   118,   118,   332,   337,     0,     0,   329,
   330,   333,   361,   331,     0,     0,   207,     0,     0,   193,
   194,   224,   225,   188,   276,   170,     0,     0,   325,   370,
     0,     0,   366,   350,   351,   352,     0,     0,     0,   369,
     0,   170,   334,   124,     0,   125,     0,     0,   321,   326,
   320,   343,     0,   126,     0,   200,   197,   275,     0,     0,
     0,   371,    45,     0,     0,     0,   364,   353,     0,   358,
     0,   367,     0,   122,   208,     0,   123,   211,   338,   325,
     0,     0,   206,   322,     0,   324,   362,   344,   348,     0,
   359,     0,   120,     0,   121,     0,   336,   327,   325,     0,
   340,   325,   370,   325,   365,   372,     0,   209,   212,   328,
   342,   325,   363,     0,   349,     0,     0,   373,   374,   354,
     0,     0,   341,   345,     0,   372,     0,     0,   210,   213,
   370,     0,     0,   355,   375,     0,   376,     0,     0,   346,
   377,     0,   356,   325,     0,     0,   347,   357,   378,     0,
     0,     0
};

static const short yydefgoto[] = {   690,
     1,     2,     3,    17,    18,    19,   224,   378,   230,   381,
   112,   308,   454,    85,   144,   276,    87,    88,    89,    90,
    91,   396,    92,   261,   260,   258,   462,   259,    93,   145,
    94,   211,   212,   213,   373,   441,   442,    20,   107,   543,
   297,    57,   374,   424,   298,    23,    98,   186,    24,   129,
   117,    44,   113,   118,   430,    45,   377,   216,   217,    26,
   195,   196,   197,   428,   482,   456,   457,   458,   559,   459,
   502,   460,   461,   614,   634,   661,   617,   636,   662,   202,
   121,   407,   122,    27,    28,    29,    30,   238,   240,   245,
   137,   506,   334,   132,   133,   235,   382,   383,   243,   244,
   100,   184,   101,   103,   185,   443,   444,   494,   214,   337,
   393,   394,   395,   371,   249,   372,   547,   548,   549,   569,
   590,   312,   591,   447,   550,   551,   620,   568,   652,   643,
   671,   684,   644,   552,   553,   642,   554,   581,   604,   657,
   658,   659,   682,   281,   282,   299,   414,   300,   301,   302,
   205,   206,   303,   304,   439,    95
};

static const short yypact[] = {    95,
   110,  2206,  2206,   260,-32768,-32768,-32768,-32768,    40,    40,
    40,    57,    59,    89,-32768,-32768,-32768,-32768,-32768,    42,
    99,  2234,    79,-32768,    40,-32768,    87,    93,   108,-32768,
  2206,-32768,-32768,-32768,    40,    40,    40,  2068,  2002,   125,
-32768,-32768,    42,   147,-32768,    40,  1355,-32768,   257,-32768,
    42,    79,-32768,    40,-32768,-32768,   696,-32768,-32768,-32768,
-32768,    76,-32768,   124,-32768,   132,-32768,-32768,-32768,-32768,
-32768,-32768,  2068,  2068,   373,-32768,-32768,-32768,  2068,-32768,
-32768,   721,-32768,-32768,  2068,   149,   153,-32768,  2095,  2122,
-32768,  2335,   881,   231,  2068,-32768,   186,   319,-32768,   203,
   578,   708,   627,   304,-32768,   257,    42,-32768,   194,-32768,
  1430,   438,    40,-32768,-32768,   257,   177,-32768,    40,   276,
   398,   417,   188,  1417,   696,-32768,-32768,-32768,-32768,    40,
-32768,   208,   778,-32768,   214,-32768,   468,-32768,-32768,-32768,
-32768,-32768,   223,   269,   288,   312,-32768,   315,  2068,   721,
-32768,   721,-32768,  2068,  2068,   362,-32768,-32768,  2068,  2068,
  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,  2068,
-32768,-32768,   373,   373,  2068,  2068,-32768,-32768,-32768,-32768,
   319,  1457,    40,-32768,   426,   760,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,    50,-32768,   344,-32768,   417,-32768,
-32768,   385,   417,   419,-32768,   611,  1512,-32768,   349,   361,
-32768,   316,    70,-32768,-32768,   405,    40,   545,   323,-32768,
   257,   257,-32768,   438,    40,-32768,  1539,-32768,-32768,   438,
    40,-32768,-32768,   428,   370,   198,   953,-32768,    40,-32768,
-32768,   413,   383,-32768,   468,-32768,-32768,-32768,   376,   391,
  1891,-32768,  2335,   402,   411,  2335,  2335,  2068,   443,  2068,
  2068,  1564,  1645,  1859,  1078,   747,   838,   838,   356,   356,
-32768,-32768,-32768,-32768,-32768,   432,   153,   412,   463,   485,
-32768,   871,-32768,   434,   319,-32768,  1594,-32768,   760,   445,
   708,  2149,    54,   448,-32768,-32768,-32768,  1036,-32768,   450,
   197,-32768,-32768,    81,-32768,-32768,-32768,    39,-32768,-32768,
-32768,   846,-32768,   398,-32768,-32768,   398,-32768,   483,-32768,
-32768,   452,-32768,-32768,-32768,-32768,-32768,-32768,   461,-32768,
   473,  2068,   373,   480,   383,-32768,   496,-32768,-32768,-32768,
-32768,-32768,   508,  2068,  2258,  1483,-32768,-32768,   426,-32768,
-32768,-32768,   426,-32768,-32768,   493,-32768,-32768,    85,   510,
-32768,-32768,   550,   497,-32768,-32768,  1006,-32768,   585,   288,
-32768,-32768,-32768,   512,   328,-32768,  1291,    39,-32768,-32768,
    39,   513,-32768,-32768,   513,    40,    40,  2335,-32768,    40,
   515,   373,   814,   496,-32768,  1111,-32768,  2351,-32768,-32768,
  2068,-32768,-32768,-32768,   497,    40,   133,   140,    40,-32768,
    40,   140,    40,   871,-32768,-32768,-32768,-32768,-32768,   257,
-32768,    42,-32768,   692,-32768,-32768,  2335,-32768,-32768,  1291,
-32768,-32768,   430,-32768,-32768,-32768,    40,-32768,   220,   433,
   641,   518,   520,   894,-32768,-32768,-32768,-32768,-32768,   563,
   373,  2068,-32768,   564,  2335,   525,   526,-32768,-32768,   326,
  1231,  2068,   146,   500,   550,-32768,  1621,-32768,-32768,-32768,
   423,   497,-32768,-32768,-32768,   237,   250,   112,   692,-32768,
-32768,  1111,-32768,-32768,  2068,    49,-32768,-32768,   373,-32768,
-32768,-32768,-32768,   541,-32768,-32768,-32768,-32768,  1757,-32768,
  2245,  1111,-32768,-32768,  1171,-32768,  1346,-32768,-32768,  2351,
-32768,   504,   504,-32768,  1676,-32768,   537,-32768,-32768,   544,
  1778,  2068,-32768,-32768,-32768,  1837,   588,   570,-32768,-32768,
   572,   576,  2068,   598,   566,   596,  2015,   193,   633,-32768,
   638,   601,-32768,   602,  2238,-32768,   664,   974,    66,-32768,
-32768,-32768,-32768,-32768,  1948,  2068,-32768,   604,  1346,-32768,
-32768,-32768,-32768,-32768,-32768,  1778,  2068,   624,-32768,  2068,
  2068,  1701,-32768,-32768,-32768,-32768,   615,  2068,   616,-32768,
   629,    40,-32768,-32768,   257,-32768,    42,  1054,-32768,-32768,
-32768,-32768,  2068,-32768,  2290,-32768,-32768,-32768,   618,  2068,
   714,-32768,   687,   659,   662,  2068,-32768,-32768,   666,-32768,
  2068,-32768,   271,-32768,   266,   284,-32768,   158,-32768,-32768,
  1837,   663,-32768,-32768,   672,-32768,-32768,-32768,-32768,  2308,
-32768,    24,-32768,   438,-32768,   438,-32768,-32768,-32768,   674,
-32768,-32768,  2068,-32768,-32768,   744,   679,-32768,-32768,-32768,
-32768,-32768,-32768,   681,-32768,   700,    43,   684,-32768,-32768,
   288,   288,-32768,-32768,  2068,   744,   691,   744,-32768,-32768,
  2068,   702,    61,-32768,-32768,   705,-32768,   419,   706,-32768,
   231,   176,-32768,-32768,   709,   419,-32768,-32768,   231,   787,
   789,-32768
};

static const short yypgoto[] = {-32768,
-32768,-32768,-32768,   103,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,   -24,-32768,   -38,   516,  -110,   477,-32768,-32768,
   -21,-32768,   255,-32768,-32768,-32768,-32768,-32768,   232,-32768,
  -194,  -199,   591,-32768,-32768,   363,-32768,    -3,   -60,   252,
    10,   757,-32768,   389,    19,   -14,   -90,   635,    27,  -169,
  -390,   -49,  -114,   -68,-32768,-32768,-32768,  -171,    26,    68,
-32768,   522,-32768,   386,-32768,  -347,-32768,   325,-32768,  -405,
-32768,-32768,   406,-32768,-32768,-32768,-32768,-32768,-32768,   -42,
   -77,   105,    -9,-32768,-32768,-32768,   -43,-32768,-32768,-32768,
-32768,-32768,   511,   -37,-32768,   612,   538,   435,   625,   546,
   -35,   -92,   -72,   -91,  -105,   429,-32768,-32768,  -185,-32768,
-32768,-32768,   486,    16,-32768,  -125,-32768,-32768,-32768,-32768,
   -57,  -361,  -461,   456,-32768,   261,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   283,-32768,  -503,   226,
-32768,   238,-32768,   621,-32768,  -250,-32768,-32768,-32768,   543,
  -193,-32768,-32768,-32768,-32768,    13
};


#define	YYLAST		2403


static const short yytable[] = {    86,
    97,   123,    62,    64,    66,   225,   120,    52,   190,   293,
    47,    21,    21,   131,    31,    31,   288,    49,    51,   250,
    22,    22,   433,   218,   318,   135,   309,    25,    25,   476,
   323,   351,   320,   104,    35,    36,    37,   201,   219,   370,
    21,   124,   234,    31,    41,    46,   146,    54,    53,    22,
   141,   139,   140,   319,   215,   509,    25,   142,   222,   324,
   236,   646,   177,   147,   277,    99,   592,   330,    46,    14,
  -102,    14,   209,   178,   119,   280,    46,   194,    14,   310,
   666,   131,   130,    55,   499,    56,   522,   225,   279,    59,
    60,    42,    58,   199,    -1,    59,    60,   203,   678,   647,
    43,   561,    58,    58,    58,    32,   104,   601,    99,    -2,
    59,    60,   242,    58,   254,    38,   255,    39,   667,   288,
   248,    58,   285,   183,   593,   290,   183,   189,    46,   361,
   291,   119,    46,    67,   520,   526,   679,   278,   109,   654,
   314,   119,   131,   284,   317,   237,   234,    40,   274,   275,
   130,  -102,   316,   597,   558,   215,   368,   134,   637,    99,
   400,   369,    14,   475,   236,   401,   215,   676,    61,    14,
   110,   111,   215,   349,    63,    48,    99,   650,    99,   353,
   653,   277,   655,   102,   109,   142,    58,  -162,   322,    65,
   663,   466,   467,  -162,   613,    59,    60,    58,   110,   111,
   329,     5,   331,     7,   188,   136,   183,   445,   199,     9,
    10,    11,   203,   138,   434,   435,   110,   111,   436,   343,
   242,   511,   687,   105,   148,    13,   149,   106,   621,   340,
   325,    25,   327,   149,  -162,   468,   469,   470,  -162,   177,
   473,   474,   578,   119,   418,   131,   119,   119,   356,   237,
    58,   685,   204,   220,   481,   491,   686,   221,   496,    41,
   114,   179,   189,    99,   228,   487,   194,   384,   106,   384,
   409,   413,   514,   366,  -269,  -269,   223,   367,   187,   -19,
   -19,   -19,   -19,    52,    58,   231,    14,   -19,   -19,   -19,
   463,   239,   109,   363,   364,  -162,   488,   375,   246,   280,
   489,  -162,   109,   -19,   183,  -162,   115,    25,   242,   481,
   183,  -162,   464,   518,   523,   116,   210,   221,   471,  -105,
  -105,  -105,  -105,    54,    53,  -105,   519,  -105,  -105,  -105,
   106,     5,    55,     7,    56,   446,    33,    34,   376,     9,
    10,    11,  -162,  -105,   247,   465,  -162,   633,    14,   565,
   472,   221,  -162,   408,   412,    13,  -162,   -19,   349,   353,
   635,   507,   110,   111,   106,   349,   353,   438,   180,   248,
   420,   422,   477,   546,   384,    59,    60,   181,   182,   200,
   131,   226,   227,   451,   446,   452,   497,   251,   406,   411,
   486,   252,    25,   429,   598,   104,   431,  -105,   315,   -82,
   546,   423,   292,   253,   421,   168,   169,   170,   256,   257,
   612,   109,   478,   262,   263,   264,   265,   266,   267,   268,
   269,   270,   271,   272,   273,    41,   500,    70,   517,   198,
   411,   306,    41,   114,   648,   131,   649,   307,   210,    25,
   313,  -325,  -325,  -325,  -325,   119,   326,    46,   332,  -325,
  -325,  -325,    14,   336,   199,   203,   226,   227,   119,    14,
   542,   199,   203,   333,   524,  -325,   338,   485,   241,   198,
    59,    60,   410,    58,   541,   110,   111,   341,    58,   115,
   344,   405,   182,   681,   286,   287,   342,   542,   116,   406,
   406,   689,    14,   142,   348,   546,   411,   411,   577,    41,
   225,   541,    41,   403,  -267,  -267,   198,   347,   544,   307,
   490,   555,   180,   579,   345,   346,   352,   545,   379,  -101,
   357,   181,   182,   362,    25,   365,    14,   392,   599,    14,
    52,   602,   605,   178,   380,   669,   670,   616,   386,   609,
   585,   587,   615,   286,   287,   397,   410,    41,   114,   404,
   387,   198,    41,   403,   622,   405,   182,   390,   405,   182,
   350,   625,   466,   467,   544,   151,   153,   555,   512,   513,
    54,    53,   632,   545,    14,   399,   215,   618,   215,    14,
    25,     5,   542,     7,   188,   402,   388,   417,   419,     9,
    10,    11,   437,   432,   115,  -304,   541,   495,   398,   404,
   -31,   503,   504,   116,   602,    13,   505,    14,   405,   182,
   119,   294,    46,   295,     5,     6,     7,     8,   525,   563,
   296,   564,     9,    10,    11,   -32,   672,   180,   567,    41,
   570,   427,   602,   198,   571,   573,   181,   182,    13,   580,
    14,   210,   574,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
   455,  -114,  -114,  -114,  -114,  -114,    14,  -114,  -114,  -114,
  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
  -114,  -114,   575,  -114,  -114,   582,    42,   583,   584,   588,
  -114,   596,   600,  -114,   427,    43,  -385,   611,  -114,  -114,
  -114,   608,   610,   624,  -114,  -114,   480,   127,   128,  -114,
   126,   127,   128,     9,    10,    11,   501,     9,    10,    11,
    59,    60,   191,   192,   193,   455,   510,  -114,  -114,  -114,
  -114,   143,  -114,    68,     5,    14,     7,    96,    69,    70,
   626,    71,     9,    10,    11,   628,   455,   629,   640,   521,
   171,   172,   631,   173,   174,   175,   176,   641,    13,    72,
   651,    15,   656,    73,    74,   660,   455,   664,   665,   455,
    75,   455,   627,    76,   668,   127,   128,   674,    77,    78,
    79,     9,    10,    11,    80,    81,   566,   677,   232,    82,
   680,     5,   683,     7,    96,   688,   691,   572,   692,     9,
    10,    11,   164,   165,   166,   167,   168,   169,   170,    83,
    84,   603,   -91,   311,   492,    13,   594,   360,    15,   125,
   595,   479,   358,   455,   440,   483,  -325,  -325,  -325,  -325,
  -325,  -325,  -325,   289,  -325,  -325,  -325,  -325,  -325,   560,
  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
  -325,  -325,  -325,  -325,  -325,   391,  -325,  -325,   328,     5,
     6,     7,     8,  -325,   233,  -261,  -325,     9,    10,    11,
   630,  -325,  -325,  -325,   385,   508,   484,  -325,  -325,   335,
   493,   294,  -325,    13,     5,     6,     7,     8,   389,   448,
   296,   638,     9,    10,    11,   166,   167,   168,   169,   170,
  -325,   673,  -325,  -325,   210,  -325,  -325,  -325,    13,   498,
    14,  -325,  -325,   639,  -325,   675,   354,     0,  -325,   416,
  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     0,
     0,     0,     0,  -325,   171,   172,  -325,   173,   174,   175,
   176,  -325,  -325,  -325,     0,     0,  -385,  -325,  -325,     0,
     0,     0,  -325,   232,     0,     0,     5,     0,     7,    96,
     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
  -325,  -300,  -325,  -325,   589,  -325,  -325,  -325,     0,     0,
    13,  -325,  -325,    15,  -325,     0,     0,     0,  -325,     0,
  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
  -325,     0,  -325,     0,  -325,     0,  -325,  -325,     0,     5,
     6,     7,     8,  -325,     0,   415,  -325,     9,    10,    11,
     0,  -325,  -325,  -325,     0,     0,     0,  -325,  -325,     0,
     0,     0,  -325,    13,     0,    14,     0,     0,     0,     5,
     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
  -325,     0,  -325,  -325,   619,  -325,  -335,  -335,     0,     0,
     0,  -335,  -335,    13,  -335,    14,     0,     0,  -335,     0,
  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,
  -335,     0,  -335,     0,  -335,     0,  -335,  -335,     0,     0,
     0,     0,     0,  -335,     0,     0,  -335,     0,     0,     0,
     0,  -335,  -335,  -335,     0,     0,     0,  -335,  -335,     0,
     0,   449,  -335,   450,    60,     0,     0,     0,    69,    70,
     0,    71,   163,   164,   165,   166,   167,   168,   169,   170,
  -335,     0,  -335,  -335,     0,  -335,     0,     0,     0,    72,
     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
   452,   449,     0,   450,    60,     0,     0,     0,    69,    70,
     0,    71,     0,     0,     0,     0,     0,     0,  -190,    83,
    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
    79,     0,     0,     0,    80,    81,     0,     0,   451,    82,
   452,   449,     0,    68,     0,     0,     0,     0,    69,    70,
     0,    71,     0,     0,     0,     0,     0,     0,  -258,    83,
    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
     0,    15,     0,    73,    74,     0,  -203,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
    79,     0,     0,     0,    80,    81,     0,     0,  -203,    82,
  -203,   425,     0,    68,     0,     0,     0,     0,    69,    70,
     0,    71,     0,     0,     0,     0,     0,     0,     0,    83,
    84,     0,   453,     0,     0,     0,     0,     0,     0,    72,
     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
    79,     0,     0,     0,    80,    81,   449,     0,    68,    82,
     0,     0,     0,    69,    70,   108,    71,     0,   -27,   -27,
   -27,   -27,     0,     0,     0,     0,   -27,   -27,   -27,    83,
    84,     0,   426,     0,    72,     0,    15,     0,    73,    74,
     0,   109,   -27,     0,  -162,    75,     0,     0,    76,     0,
  -162,     0,     0,    77,    78,    79,     0,     0,     0,    80,
    81,     0,     0,     0,    82,     0,     0,     0,     0,     0,
     0,     0,     0,   110,   111,     0,     0,   229,     0,     0,
   -23,   -23,   -23,   -23,    83,    84,     0,   453,   -23,   -23,
   -23,  -162,    68,     0,     0,  -162,   -27,    69,    70,     0,
    71,     0,     0,   109,   -23,     0,  -162,     0,     0,     0,
     0,     0,  -162,     0,     0,     0,     0,     0,    72,    68,
    15,     0,    73,    74,    69,    70,     0,    71,     0,    75,
     0,     0,    76,     0,     0,   110,   111,    77,    78,   207,
     0,     0,     0,    80,    81,    72,     0,    15,    82,    73,
    74,     0,     0,  -162,     0,     0,    75,  -162,   -23,    76,
     0,     0,     0,     0,    77,    78,    79,     0,    83,    84,
    80,    81,   208,     0,    68,    82,     0,     0,     0,    69,
    70,     0,    71,   159,   160,   161,   162,   163,   164,   165,
   166,   167,   168,   169,   170,    83,    84,     0,     0,   283,
    72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
    78,    79,     0,     0,     0,    80,    81,    72,     0,    15,
    82,    73,    74,     0,     0,     0,     0,     0,    75,     0,
     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
    83,    84,    80,    81,   305,     0,    68,    82,     0,     0,
     0,    69,    70,     0,    71,   160,   161,   162,   163,   164,
   165,   166,   167,   168,   169,   170,     0,    83,    84,     0,
     0,   321,    72,    68,    15,     0,    73,    74,    69,    70,
     0,    71,     0,    75,     0,     0,    76,     0,     0,     0,
     0,    77,    78,    79,     0,     0,     0,    80,    81,    72,
     0,    15,    82,    73,    74,     0,     0,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
   515,     0,    83,    84,    80,    81,   355,     0,    68,    82,
     0,     0,     0,    69,    70,     0,    71,   161,   162,   163,
   164,   165,   166,   167,   168,   169,   170,     0,     0,    83,
    84,     0,     0,   516,    72,     0,    15,     0,    73,    74,
   606,     0,     0,     0,     0,    75,     0,     0,    76,     0,
     0,     0,     0,    77,    78,    79,     0,     0,     0,    80,
    81,     0,     0,     0,    82,   154,   155,   156,   607,   157,
   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   168,   169,   170,     0,    83,    84,     0,     0,   562,   450,
   527,     6,     7,     8,    69,    70,     0,    71,     9,    10,
    11,   528,     0,   529,   530,   531,   532,   533,   534,   535,
   536,   537,   538,   539,    13,    72,    14,    15,     0,    73,
    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
     0,     0,     0,     0,    77,    78,    79,    14,     0,     0,
    80,    81,   154,   155,   156,    82,   157,   158,   159,   160,
   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     0,     0,     0,   540,     0,    83,    84,     0,   248,   450,
    60,     0,     0,     0,    69,    70,     0,    71,     0,     0,
     0,   528,     0,   529,   530,   531,   532,   533,   534,   535,
   536,   537,   538,   539,     0,    72,     0,    15,     0,    73,
    74,     0,     0,     0,     0,     0,    75,     0,     0,    76,
     0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
    80,    81,     0,    68,     0,    82,     0,     0,    69,    70,
     0,    71,   162,   163,   164,   165,   166,   167,   168,   169,
   170,     0,     0,   540,     0,    83,    84,     0,   248,    72,
     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
    79,     0,     0,     0,    80,    81,     0,     0,     0,    82,
    68,     5,     6,     7,     8,    69,    70,     0,    71,     9,
    10,    11,     0,     0,     0,     0,     0,     0,     0,    83,
    84,     0,   339,     0,     0,    13,    72,    14,    15,     0,
    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
    76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
     0,    80,    81,     0,    68,     5,    82,     7,    96,    69,
    70,     0,    71,     9,    10,    11,     0,    68,     0,     0,
     0,     0,    69,    70,     0,    71,    83,    84,     0,    13,
    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
     0,    75,     0,    72,    76,    15,     0,    73,    74,    77,
    78,    79,     0,     0,    75,    80,    81,    76,     0,     0,
    82,     0,    77,    78,    79,     0,     0,     0,    80,    81,
    68,     0,     0,    82,     0,    69,    70,     0,    71,     0,
    83,    84,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   576,     0,    83,    84,     0,    72,    68,    15,     0,
    73,    74,    69,    70,     0,    71,     0,    75,     0,     0,
    76,     0,     0,     0,     0,    77,    78,    79,     0,     0,
     0,    80,    81,    72,    68,    15,    82,    73,    74,    69,
    70,     0,    71,     0,    75,     0,     0,    76,     0,     0,
     0,     0,    77,    78,    79,     0,    83,    84,    80,    81,
    72,   359,    15,   150,    73,    74,    69,    70,     0,    71,
     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
    78,    79,     0,    83,    84,    80,    81,    72,     0,    15,
   152,    73,    74,     0,     0,     0,     0,     0,    75,     0,
     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
    83,    84,    80,    81,     0,     0,     4,    82,  -118,     5,
     6,     7,     8,     0,     0,     0,     0,     9,    10,    11,
     0,     0,     0,     0,     0,     0,     0,    83,    84,     0,
     0,     0,    12,    13,     0,    14,    15,     5,     6,     7,
     8,     5,     6,     7,     8,     9,    10,    11,     0,     9,
    10,    11,     0,     0,   556,  -118,     0,     0,     0,     0,
     0,    13,     0,    14,  -118,    13,     0,    14,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
   155,   156,    16,   157,   158,   159,   160,   161,   162,   163,
   164,   165,   166,   167,   168,   169,   170,   158,   159,   160,
   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
    50,     0,     0,     0,   586,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   154,   155,   156,   557,   157,   158,
   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
   169,   170,   154,   155,   156,   645,   157,   158,   159,   160,
   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
   155,   156,   623,   157,   158,   159,   160,   161,   162,   163,
   164,   165,   166,   167,   168,   169,   170,   156,     0,   157,
   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
   168,   169,   170
};

static const short yycheck[] = {    38,
    39,    51,    27,    28,    29,   120,    49,    22,   101,   204,
    20,     2,     3,    57,     2,     3,   186,    21,    22,   145,
     2,     3,   384,   115,   224,    63,   212,     2,     3,   420,
   230,   282,   226,    43,     9,    10,    11,   106,   116,     1,
    31,    51,   133,    31,     3,    20,    82,    22,    22,    31,
    75,    73,    74,   225,   112,   461,    31,    79,   119,   231,
   133,    38,     9,    85,   175,    39,     1,   239,    43,    30,
     1,    30,   111,    95,    49,   181,    51,   102,    30,    10,
    38,   125,    57,     5,   446,     7,    38,   202,   180,     3,
     4,    50,    25,   103,     0,     3,     4,   107,    38,    76,
    59,   507,    35,    36,    37,     3,   116,   569,    82,     0,
     3,     4,   137,    46,   150,    59,   152,    59,    76,   289,
    82,    54,   183,    98,    59,    76,   101,   101,   103,    76,
    81,   106,   107,    31,   482,   497,    76,   176,    27,   643,
   218,   116,   186,   182,   222,   133,   237,    59,   173,   174,
   125,    82,   221,   559,   502,   213,    76,    82,   620,   133,
    76,    81,    30,   414,   237,    81,   224,   671,    82,    30,
    59,    60,   230,   279,    82,    77,   150,   639,   152,   285,
   642,   292,   644,    59,    27,   207,   119,    30,   227,    82,
   652,    59,    60,    36,   585,     3,     4,   130,    59,    60,
   238,     4,   240,     6,     7,    82,   181,   393,   218,    12,
    13,    14,   222,    82,   386,   387,    59,    60,   390,   258,
   245,    76,   684,    77,    76,    28,    81,    81,   590,   251,
   234,   206,   236,    81,    77,   407,   408,   409,    81,     9,
   412,   413,    50,   218,   370,   289,   221,   222,   287,   237,
   183,    76,    59,    77,   424,   441,    81,    81,   444,     3,
     4,    76,   236,   237,    77,   437,   291,   325,    81,   327,
   363,   364,   466,    77,    77,    78,     1,    81,    76,     4,
     5,     6,     7,   298,   217,    78,    30,    12,    13,    14,
   401,    78,    27,   297,   298,    30,    77,   312,    76,   405,
    81,    36,    27,    28,   279,    30,    50,   282,   333,   479,
   285,    36,   404,    77,   486,    59,     1,    81,   410,     4,
     5,     6,     7,   298,   298,    10,    77,    12,    13,    14,
    81,     4,     5,     6,     7,   393,    77,    78,   312,    12,
    13,    14,    77,    28,    76,   406,    81,    77,    30,   521,
   411,    81,    77,   363,   364,    28,    81,    82,   464,   465,
    77,    36,    59,    60,    81,   471,   472,   392,    50,    82,
   374,   375,   422,   499,   432,     3,     4,    59,    60,    76,
   424,    59,    60,    58,   442,    60,   444,    76,   363,   364,
   433,    77,   367,   378,   566,   405,   381,    82,    76,    38,
   526,   375,    59,   149,    77,    50,    51,    52,   154,   155,
   582,    27,   422,   159,   160,   161,   162,   163,   164,   165,
   166,   167,   168,   169,   170,     3,   451,     9,   467,     7,
   405,    83,     3,     4,   634,   479,   636,    77,     1,   414,
    36,     4,     5,     6,     7,   420,    77,   422,    36,    12,
    13,    14,    30,    78,   464,   465,    59,    60,   433,    30,
   499,   471,   472,    81,   489,    28,    76,    38,     1,     7,
     3,     4,    50,   406,   499,    59,    60,    76,   411,    50,
    38,    59,    60,   678,    59,    60,    76,   526,    59,   464,
   465,   686,    30,   515,    83,   621,   471,   472,   537,     3,
   615,   526,     3,     4,    77,    78,     7,    76,   499,    77,
    78,   499,    50,   538,   260,   261,    83,   499,    36,    82,
    76,    59,    60,    76,   499,    76,    30,    32,   567,    30,
   545,   570,   571,   555,    83,   661,   662,   587,    78,   578,
   544,   545,   585,    59,    60,    38,    50,     3,     4,    50,
    78,     7,     3,     4,   593,    59,    60,    78,    59,    60,
    76,   600,    59,    60,   555,    89,    90,   555,   464,   465,
   545,   545,   611,   555,    30,    83,   634,   587,   636,    30,
   555,     4,   621,     6,     7,    76,   332,     3,    77,    12,
    13,    14,    78,    81,    50,    78,   621,    78,   344,    50,
    38,    38,    78,    59,   643,    28,    81,    30,    59,    60,
   585,     1,   587,     3,     4,     5,     6,     7,    78,    83,
    10,    78,    12,    13,    14,    38,   665,    50,    59,     3,
    59,   377,   671,     7,    59,    38,    59,    60,    28,     7,
    30,     1,    77,     3,     4,     5,     6,     7,     8,     9,
   396,    11,    12,    13,    14,    15,    30,    17,    18,    19,
    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    30,    31,    77,    33,    34,    38,    50,    77,    77,    16,
    40,    78,    59,    43,   430,    59,    76,    59,    48,    49,
    50,    77,    77,    76,    54,    55,     5,     6,     7,    59,
     5,     6,     7,    12,    13,    14,   452,    12,    13,    14,
     3,     4,     5,     6,     7,   461,   462,    77,    78,    79,
    80,     1,    82,     3,     4,    30,     6,     7,     8,     9,
    17,    11,    12,    13,    14,    77,   482,    76,    76,   485,
    54,    55,    77,    57,    58,    59,    60,    76,    28,    29,
    77,    31,     9,    33,    34,    77,   502,    77,    59,   505,
    40,   507,    76,    43,    81,     6,     7,    77,    48,    49,
    50,    12,    13,    14,    54,    55,   522,    76,     1,    59,
    76,     4,    77,     6,     7,    77,     0,   533,     0,    12,
    13,    14,    46,    47,    48,    49,    50,    51,    52,    79,
    80,   570,    82,   213,   442,    28,   555,   292,    31,    53,
   556,   423,   291,   559,     1,   430,     3,     4,     5,     6,
     7,     8,     9,   189,    11,    12,    13,    14,    15,   505,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,   335,    33,    34,   237,     4,
     5,     6,     7,    40,    77,    78,    43,    12,    13,    14,
   606,    48,    49,    50,   327,   460,   432,    54,    55,   245,
   442,     1,    59,    28,     4,     5,     6,     7,   333,   394,
    10,   621,    12,    13,    14,    48,    49,    50,    51,    52,
    77,   666,    79,    80,     1,    82,     3,     4,    28,   444,
    30,     8,     9,   621,    11,   668,   286,    -1,    15,   367,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,    59,
    60,    48,    49,    50,    -1,    -1,    76,    54,    55,    -1,
    -1,    -1,    59,     1,    -1,    -1,     4,    -1,     6,     7,
    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
    77,    78,    79,    80,     1,    82,     3,     4,    -1,    -1,
    28,     8,     9,    31,    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,     4,
     5,     6,     7,    40,    -1,    10,    43,    12,    13,    14,
    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
    -1,    -1,    59,    28,    -1,    30,    -1,    -1,    -1,     4,
     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
    77,    -1,    79,    80,     1,    82,     3,     4,    -1,    -1,
    -1,     8,     9,    28,    11,    30,    -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,     3,     4,    -1,    -1,    -1,     8,     9,
    -1,    11,    45,    46,    47,    48,    49,    50,    51,    52,
    77,    -1,    79,    80,    -1,    82,    -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,     3,     4,    -1,    -1,    -1,     8,     9,
    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    82,    -1,    -1,    -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,     3,    -1,    -1,    -1,    -1,     8,     9,
    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    29,
    -1,    31,    -1,    33,    34,    -1,    36,    -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,     3,    -1,    -1,    -1,    -1,     8,     9,
    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    -1,    82,    -1,    -1,    -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,     3,    59,
    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,     5,
     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    79,
    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,    34,
    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,    -1,
    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,    -1,
     4,     5,     6,     7,    79,    80,    -1,    82,    12,    13,
    14,    77,     3,    -1,    -1,    81,    82,     8,     9,    -1,
    11,    -1,    -1,    27,    28,    -1,    30,    -1,    -1,    -1,
    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    29,     3,
    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
    -1,    -1,    43,    -1,    -1,    59,    60,    48,    49,    50,
    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,
    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,    43,
    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,     8,
     9,    -1,    11,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    79,    80,    -1,    -1,    83,
    29,     3,    31,    -1,    33,    34,     8,     9,    -1,    11,
    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
    49,    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,
    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
    79,    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,
    -1,     8,     9,    -1,    11,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    -1,    79,    80,    -1,
    -1,    83,    29,     3,    31,    -1,    33,    34,     8,     9,
    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    29,
    -1,    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,
    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
    50,    -1,    79,    80,    54,    55,    83,    -1,     3,    59,
    -1,    -1,    -1,     8,     9,    -1,    11,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    79,
    80,    -1,    -1,    83,    29,    -1,    31,    -1,    33,    34,
    10,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52,    -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,    -1,    -1,    -1,    48,    49,    50,    30,    -1,    -1,
    54,    55,    35,    36,    37,    59,    39,    40,    41,    42,
    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    -1,    -1,    -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,    -1,    -1,     8,     9,
    -1,    11,    44,    45,    46,    47,    48,    49,    50,    51,
    52,    -1,    -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,
     3,     4,     5,     6,     7,     8,     9,    -1,    11,    12,
    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
    80,    -1,    82,    -1,    -1,    28,    29,    30,    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,     4,    59,     6,     7,     8,
     9,    -1,    11,    12,    13,    14,    -1,     3,    -1,    -1,
    -1,    -1,     8,     9,    -1,    11,    79,    80,    -1,    28,
    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
    -1,    40,    -1,    29,    43,    31,    -1,    33,    34,    48,
    49,    50,    -1,    -1,    40,    54,    55,    43,    -1,    -1,
    59,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
     3,    -1,    -1,    59,    -1,     8,     9,    -1,    11,    -1,
    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    77,    -1,    79,    80,    -1,    29,     3,    31,    -1,
    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,
    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
    -1,    54,    55,    29,     3,    31,    59,    33,    34,     8,
     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,
    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,    55,
    29,     3,    31,    59,    33,    34,     8,     9,    -1,    11,
    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
    49,    50,    -1,    79,    80,    54,    55,    29,    -1,    31,
    59,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
    79,    80,    54,    55,    -1,    -1,     1,    59,     3,     4,
     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    -1,
    -1,    -1,    27,    28,    -1,    30,    31,     4,     5,     6,
     7,     4,     5,     6,     7,    12,    13,    14,    -1,    12,
    13,    14,    -1,    -1,    10,    50,    -1,    -1,    -1,    -1,
    -1,    28,    -1,    30,    59,    28,    -1,    30,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
    36,    37,    77,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    40,    41,    42,
    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    77,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    35,    36,    37,    83,    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,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
    36,    37,    83,    39,    40,    41,    42,    43,    44,    45,
    46,    47,    48,    49,    50,    51,    52,    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/lib/bison.simple"
/* This file comes from bison-1.28.  */

/* 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., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, 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.  */

/* 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.  */

#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C.  */
/* This used to test MSDOS, but that is a bad idea
   since that symbol is in the user namespace.  */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
	 instead, just don't use alloca.  */
#include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace.
   So I turned it off.   rms, 2 May 1997.  */
/* #include <malloc.h>  */
 #pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
		 and on HPUX 10.  Eventually we can turn this on.  */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */
#endif /* not GNU C */
#endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */

#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif

/* 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	goto yyacceptlab
#define YYABORT 	goto yyabortlab
#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

/* Define __yy_memcpy.  Note that the size argument
   should be passed with type unsigned int, because that is what the non-GCC
   definitions require.  With GCC, __builtin_memcpy takes an arg
   of type size_t, but it can handle unsigned int.  */

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

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

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

#else /* __cplusplus */

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

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

#endif
#endif

#line 217 "/usr/lib/bison.simple"

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

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

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif

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

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

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

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

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

  int yystacksize = YYINITDEPTH;
  int yyfree_stacks = 0;

#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");
	  if (yyfree_stacks)
	    {
	      free (yyss);
	      free (yyvs);
#ifdef YYLSP_NEEDED
	      free (yyls);
#endif
	    }
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
      yyfree_stacks = 1;
#endif
      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss, (char *)yyss1,
		   size * (unsigned int) sizeof (*yyssp));
      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
		   size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1,
		   size * (unsigned int) 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 245 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids an empty source file");
		  finish_file ();
		;
    break;}
case 2:
#line 250 "c-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 264 "c-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 265 "c-parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 272 "c-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 10:
#line 280 "c-parse.y"
{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
    break;}
case 11:
#line 285 "c-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 12:
#line 295 "c-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 13:
#line 300 "c-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 305 "c-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 15:
#line 307 "c-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 18:
#line 311 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
    break;}
case 19:
#line 317 "c-parse.y"
{ if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 20:
#line 322 "c-parse.y"
{ store_parm_decls (); ;
    break;}
case 21:
#line 324 "c-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 22:
#line 330 "c-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 23:
#line 335 "c-parse.y"
{ if (! start_function (current_declspecs, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 24:
#line 340 "c-parse.y"
{ store_parm_decls (); ;
    break;}
case 25:
#line 342 "c-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 26:
#line 348 "c-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 27:
#line 353 "c-parse.y"
{ if (! start_function (NULL_TREE, yyvsp[0].ttype,
					prefix_attributes, NULL_TREE, 0))
		    YYERROR1;
		  reinit_parse_for_function (); ;
    break;}
case 28:
#line 358 "c-parse.y"
{ store_parm_decls (); ;
    break;}
case 29:
#line 360 "c-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 30:
#line 366 "c-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 33:
#line 378 "c-parse.y"
{ yyval.code = ADDR_EXPR; ;
    break;}
case 34:
#line 380 "c-parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 35:
#line 382 "c-parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 36:
#line 384 "c-parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 37:
#line 386 "c-parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 38:
#line 388 "c-parse.y"
{ yyval.code = BIT_NOT_EXPR; ;
    break;}
case 39:
#line 390 "c-parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 40:
#line 394 "c-parse.y"
{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
    break;}
case 41:
#line 399 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 43:
#line 405 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 44:
#line 407 "c-parse.y"
{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 46:
#line 413 "c-parse.y"
{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 47:
#line 416 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
    break;}
case 48:
#line 419 "c-parse.y"
{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
		  overflow_warning (yyval.ttype); ;
    break;}
case 49:
#line 423 "c-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 50:
#line 451 "c-parse.y"
{ skip_evaluation--;
		  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
		      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
		    error ("`sizeof' applied to a bit-field");
		  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
    break;}
case 51:
#line 457 "c-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 52:
#line 460 "c-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
    break;}
case 53:
#line 463 "c-parse.y"
{ skip_evaluation--;
		  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
    break;}
case 54:
#line 466 "c-parse.y"
{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 55:
#line 468 "c-parse.y"
{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
    break;}
case 56:
#line 472 "c-parse.y"
{ skip_evaluation++; ;
    break;}
case 57:
#line 476 "c-parse.y"
{ skip_evaluation++; ;
    break;}
case 59:
#line 482 "c-parse.y"
{ tree type = groktypename (yyvsp[-2].ttype);
		  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
    break;}
case 60:
#line 485 "c-parse.y"
{ start_init (NULL_TREE, NULL, 0);
		  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
		  really_start_incremental_init (yyvsp[-2].ttype); ;
    break;}
case 61:
#line 489 "c-parse.y"
{ char *name;
		  tree result = pop_init_level (0);
		  tree type = yyvsp[-5].ttype;
		  finish_init ();

		  if (pedantic && ! flag_isoc9x)
		    pedwarn ("ANSI C forbids constructor expressions");
		  if (TYPE_NAME (type) != 0)
		    {
		      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
			name = IDENTIFIER_POINTER (TYPE_NAME (type));
		      else
			name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
		    }
		  else
		    name = "";
		  yyval.ttype = result;
		  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
		    {
		      int failure = complete_array_type (type, yyval.ttype, 1);
		      if (failure)
			abort ();
		    }
		;
    break;}
case 63:
#line 518 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 64:
#line 520 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 65:
#line 522 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 66:
#line 524 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 67:
#line 526 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 68:
#line 528 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 69:
#line 530 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 70:
#line 532 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 71:
#line 534 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 72:
#line 536 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 73:
#line 538 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 74:
#line 540 "c-parse.y"
{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 75:
#line 542 "c-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 76:
#line 545 "c-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 77:
#line 548 "c-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
    break;}
case 78:
#line 551 "c-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 79:
#line 554 "c-parse.y"
{ yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
		  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
    break;}
case 80:
#line 557 "c-parse.y"
{ skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
				      - (yyvsp[-4].ttype == boolean_false_node)); ;
    break;}
case 81:
#line 560 "c-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 82:
#line 563 "c-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 83:
#line 570 "c-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 84:
#line 573 "c-parse.y"
{ char class;
		  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
		;
    break;}
case 85:
#line 581 "c-parse.y"
{ char class;
		  yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
		  /* This inhibits warnings in truthvalue_conversion.  */
		  class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
		  if (class == 'e' || class == '1'
		      || class == '2' || class == '<')
		    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
		;
    break;}
case 86:
#line 593 "c-parse.y"
{
		  yyval.ttype = lastiddecl;
		  if (!yyval.ttype || yyval.ttype == error_mark_node)
		    {
		      if (yychar == YYEMPTY)
			yychar = YYLEX;
		      if (yychar == '(')
			{
			    {
			      /* 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
			{
			    {
			      if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
				  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
				{
				  error ("`%s' undeclared (first use in this function)",
					 IDENTIFIER_POINTER (yyvsp[0].ttype));

				  if (! undeclared_variable_notice)
				    {
				      error ("(Each undeclared identifier is reported only once");
				      error ("for each function it appears in.)");
				      undeclared_variable_notice = 1;
				    }
				}
			      yyval.ttype = error_mark_node;
			      /* Prevent repeated error messages.  */
			      IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
			      IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
			    }
			}
		    }
		  else if (TREE_TYPE (yyval.ttype) == error_mark_node)
		    yyval.ttype = error_mark_node;
		  else if (C_DECL_ANTICIPATED (yyval.ttype))
		    {
		      /* The first time we see a build-in function used,
			 if it has not been declared.  */
		      C_DECL_ANTICIPATED (yyval.ttype) = 0;
		      if (yychar == YYEMPTY)
			yychar = YYLEX;
		      if (yychar == '(')
			{
			  /* Omit the implicit declaration we
			     would ordinarily do, so we don't lose
			     the actual built in type.
			     But print a diagnostic for the mismatch.  */
			    if (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;
		    }

		  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 88:
#line 692 "c-parse.y"
{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
    break;}
case 89:
#line 694 "c-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 90:
#line 700 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 91:
#line 702 "c-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 92:
#line 716 "c-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 93:
#line 739 "c-parse.y"
{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 94:
#line 741 "c-parse.y"
{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 95:
#line 743 "c-parse.y"
{
		    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 96:
#line 747 "c-parse.y"
{
                  tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");

                    yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
		;
    break;}
case 97:
#line 753 "c-parse.y"
{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 98:
#line 755 "c-parse.y"
{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
    break;}
case 100:
#line 762 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 103:
#line 771 "c-parse.y"
{ c_mark_varargs ();
		  if (pedantic)
		    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
    break;}
case 104:
#line 781 "c-parse.y"
{ ;
    break;}
case 109:
#line 797 "c-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 110:
#line 802 "c-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 111:
#line 807 "c-parse.y"
{ shadow_tag_warned (yyvsp[-1].ttype, 1);
		  pedwarn ("empty declaration"); ;
    break;}
case 112:
#line 810 "c-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 113:
#line 819 "c-parse.y"
{ ;
    break;}
case 118:
#line 834 "c-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 119:
#line 845 "c-parse.y"
{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
    break;}
case 120:
#line 850 "c-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 855 "c-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 122:
#line 860 "c-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 123:
#line 865 "c-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 124:
#line 870 "c-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ;
    break;}
case 125:
#line 872 "c-parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 126:
#line 874 "c-parse.y"
{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
    break;}
case 127:
#line 884 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 128:
#line 886 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 129:
#line 890 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 130:
#line 892 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 131:
#line 894 "c-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 132:
#line 899 "c-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 133:
#line 904 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 134:
#line 906 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 135:
#line 911 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 136:
#line 913 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 137:
#line 915 "c-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 138:
#line 928 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 139:
#line 930 "c-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 140:
#line 932 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 141:
#line 934 "c-parse.y"
{ yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 142:
#line 939 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 143:
#line 942 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 144:
#line 944 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 145:
#line 947 "c-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 146:
#line 961 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 147:
#line 963 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
    break;}
case 148:
#line 967 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 149:
#line 969 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 152:
#line 979 "c-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 153:
#line 983 "c-parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
    break;}
case 154:
#line 985 "c-parse.y"
{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
    break;}
case 162:
#line 1007 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 163:
#line 1009 "c-parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 164:
#line 1016 "c-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 165:
#line 1021 "c-parse.y"
{ finish_init ();
		  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 166:
#line 1024 "c-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 167:
#line 1032 "c-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 168:
#line 1037 "c-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 169:
#line 1041 "c-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 170:
#line 1049 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 171:
#line 1051 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 172:
#line 1056 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 173:
#line 1058 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 174:
#line 1063 "c-parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 175:
#line 1068 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 176:
#line 1070 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 177:
#line 1075 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 178:
#line 1077 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 179:
#line 1079 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 180:
#line 1081 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 181:
#line 1083 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 187:
#line 1101 "c-parse.y"
{ really_start_incremental_init (NULL_TREE);
		  /* Note that the call to clear_momentary
		     is in process_init_element.  */
		  push_momentary (); ;
    break;}
case 188:
#line 1106 "c-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 189:
#line 1114 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 190:
#line 1120 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids empty initializer braces"); ;
    break;}
case 196:
#line 1136 "c-parse.y"
{ set_init_label (yyvsp[-1].ttype); ;
    break;}
case 199:
#line 1143 "c-parse.y"
{ push_init_level (0); ;
    break;}
case 200:
#line 1145 "c-parse.y"
{ process_init_element (pop_init_level (0)); ;
    break;}
case 201:
#line 1147 "c-parse.y"
{ process_init_element (yyvsp[0].ttype); ;
    break;}
case 205:
#line 1158 "c-parse.y"
{ set_init_label (yyvsp[0].ttype); ;
    break;}
case 206:
#line 1163 "c-parse.y"
{ set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 207:
#line 1165 "c-parse.y"
{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 208:
#line 1170 "c-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 209:
#line 1179 "c-parse.y"
{ store_parm_decls (); ;
    break;}
case 210:
#line 1187 "c-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 211:
#line 1193 "c-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 212:
#line 1202 "c-parse.y"
{ store_parm_decls (); ;
    break;}
case 213:
#line 1210 "c-parse.y"
{ finish_function (1);
		  pop_c_function_context (); ;
    break;}
case 216:
#line 1226 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 217:
#line 1228 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 218:
#line 1233 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 219:
#line 1235 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 220:
#line 1237 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 221:
#line 1244 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 223:
#line 1255 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 224:
#line 1260 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
		  if (! flag_isoc9x)
		    error ("`[*]' in parameter declaration only allowed in ISO C 9x");
		;
    break;}
case 225:
#line 1265 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 226:
#line 1267 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 227:
#line 1269 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 228:
#line 1276 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 230:
#line 1285 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 231:
#line 1290 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 232:
#line 1292 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 233:
#line 1294 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
		  if (! flag_isoc9x)
		    error ("`[*]' in parameter declaration only allowed in ISO C 9x");
		;
    break;}
case 234:
#line 1299 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 235:
#line 1301 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 236:
#line 1308 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 238:
#line 1314 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 239:
#line 1316 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 240:
#line 1321 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 241:
#line 1323 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 242:
#line 1328 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 243:
#line 1330 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 244:
#line 1335 "c-parse.y"
{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
		  /* Start scope of tag before parsing components.  */
		;
    break;}
case 245:
#line 1339 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
    break;}
case 246:
#line 1341 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
		;
    break;}
case 247:
#line 1345 "c-parse.y"
{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
    break;}
case 248:
#line 1347 "c-parse.y"
{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
    break;}
case 249:
#line 1349 "c-parse.y"
{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
    break;}
case 250:
#line 1351 "c-parse.y"
{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
				      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
		;
    break;}
case 251:
#line 1355 "c-parse.y"
{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
    break;}
case 252:
#line 1357 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
    break;}
case 253:
#line 1360 "c-parse.y"
{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 254:
#line 1363 "c-parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_enum (NULL_TREE); ;
    break;}
case 255:
#line 1366 "c-parse.y"
{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
		  resume_momentary (yyvsp[-5].itype); ;
    break;}
case 256:
#line 1369 "c-parse.y"
{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
    break;}
case 260:
#line 1380 "c-parse.y"
{ if (pedantic && ! flag_isoc9x)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 261:
#line 1386 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 262:
#line 1388 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		  pedwarn ("no semicolon at end of struct or union"); ;
    break;}
case 263:
#line 1393 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 264:
#line 1395 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 265:
#line 1397 "c-parse.y"
{ if (pedantic)
		    pedwarn ("extra semicolon in struct or union specified"); ;
    break;}
case 266:
#line 1412 "c-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 267:
#line 1418 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids member declarations with no members");
		  shadow_tag(yyvsp[0].ttype);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 268:
#line 1423 "c-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 269:
#line 1429 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids member declarations with no members");
		  shadow_tag(yyvsp[0].ttype);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 270:
#line 1434 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 271:
#line 1436 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
    break;}
case 273:
#line 1443 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 274:
#line 1448 "c-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 275:
#line 1452 "c-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 276:
#line 1455 "c-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 278:
#line 1467 "c-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 279:
#line 1472 "c-parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 280:
#line 1478 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 281:
#line 1480 "c-parse.y"
{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 282:
#line 1485 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 283:
#line 1487 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 284:
#line 1492 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 286:
#line 1498 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 287:
#line 1500 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 288:
#line 1505 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 289:
#line 1507 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 290:
#line 1512 "c-parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 291:
#line 1515 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 292:
#line 1517 "c-parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 293:
#line 1519 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 294:
#line 1521 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 295:
#line 1523 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 296:
#line 1525 "c-parse.y"
{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 297:
#line 1527 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 298:
#line 1529 "c-parse.y"
{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 299:
#line 1533 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 300:
#line 1542 "c-parse.y"
{
		  if (pedantic && yyvsp[0].ends_in_label)
		    pedwarn ("ANSI C forbids label at end of compound statement");
		;
    break;}
case 302:
#line 1551 "c-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 303:
#line 1553 "c-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 307:
#line 1565 "c-parse.y"
{ emit_line_note (input_filename, lineno);
		  pushlevel (0);
		  clear_last_expr ();
		  push_momentary ();
		  expand_start_bindings (0);
		;
    break;}
case 309:
#line 1578 "c-parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C forbids label declarations"); ;
    break;}
case 312:
#line 1589 "c-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 1603 "c-parse.y"
{;
    break;}
case 315:
#line 1607 "c-parse.y"
{ compstmt_count++; ;
    break;}
case 316:
#line 1610 "c-parse.y"
{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
    break;}
case 317:
#line 1612 "c-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 318:
#line 1620 "c-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 319:
#line 1628 "c-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 322:
#line 1648 "c-parse.y"
{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
		  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
				       compstmt_count);
		  yyval.itype = stmt_count;
		  if_stmt_file = yyvsp[-5].filename;
		  if_stmt_line = yyvsp[-4].lineno;
		  position_after_white_space (); ;
    break;}
case 323:
#line 1662 "c-parse.y"
{ stmt_count++;
		  compstmt_count++;
		  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
		  /* See comment in `while' alternative, above.  */
		  emit_nop ();
		  expand_start_loop_continue_elsewhere (1);
		  position_after_white_space (); ;
    break;}
case 324:
#line 1670 "c-parse.y"
{ expand_loop_continue_here (); ;
    break;}
case 325:
#line 1674 "c-parse.y"
{ yyval.filename = input_filename; ;
    break;}
case 326:
#line 1678 "c-parse.y"
{ yyval.lineno = lineno; ;
    break;}
case 327:
#line 1683 "c-parse.y"
{ ;
    break;}
case 328:
#line 1688 "c-parse.y"
{ ;
    break;}
case 329:
#line 1693 "c-parse.y"
{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
    break;}
case 330:
#line 1698 "c-parse.y"
{ yyval.ends_in_label = 0; ;
    break;}
case 331:
#line 1700 "c-parse.y"
{ yyval.ends_in_label = 1; ;
    break;}
case 332:
#line 1706 "c-parse.y"
{ stmt_count++; ;
    break;}
case 334:
#line 1709 "c-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 335:
#line 1726 "c-parse.y"
{ c_expand_start_else ();
		  yyvsp[-1].itype = stmt_count;
		  position_after_white_space (); ;
    break;}
case 336:
#line 1730 "c-parse.y"
{ c_expand_end_cond ();
		  if (extra_warnings && stmt_count == yyvsp[-3].itype)
		    warning ("empty body in an else-statement"); ;
    break;}
case 337:
#line 1734 "c-parse.y"
{ c_expand_end_cond ();
		  /* This warning is here instead of in simple_if, because we
		     do not want a warning if an empty if is followed by an
		     else statement.  Increment stmt_count so we don't
		     give a second error if this is a nested `if'.  */
		  if (extra_warnings && stmt_count++ == yyvsp[0].itype)
		    warning_with_file_and_line (if_stmt_file, if_stmt_line,
						"empty body in an if-statement"); ;
    break;}
case 338:
#line 1746 "c-parse.y"
{ c_expand_end_cond (); ;
    break;}
case 339:
#line 1748 "c-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 340:
#line 1758 "c-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 341:
#line 1767 "c-parse.y"
{ expand_end_loop (); ;
    break;}
case 342:
#line 1770 "c-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 343:
#line 1777 "c-parse.y"
{ expand_end_loop ();
		  clear_momentary (); ;
    break;}
case 344:
#line 1781 "c-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 345:
#line 1793 "c-parse.y"
{ yyvsp[0].lineno = lineno;
		  yyval.filename = input_filename; ;
    break;}
case 346:
#line 1796 "c-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 347:
#line 1812 "c-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 348:
#line 1823 "c-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 349:
#line 1831 "c-parse.y"
{ expand_end_case (yyvsp[-3].ttype);
		  if (yychar == CONSTANT || yychar == STRING)
		    pop_momentary_nofree ();
		  else
		    pop_momentary (); ;
    break;}
case 350:
#line 1837 "c-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 351:
#line 1842 "c-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 352:
#line 1847 "c-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
		  c_expand_return (NULL_TREE); ;
    break;}
case 353:
#line 1851 "c-parse.y"
{ stmt_count++;
		  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
		  c_expand_return (yyvsp[-1].ttype); ;
    break;}
case 354:
#line 1855 "c-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 355:
#line 1866 "c-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 356:
#line 1873 "c-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 357:
#line 1881 "c-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 358:
#line 1887 "c-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 359:
#line 1898 "c-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 362:
#line 1913 "c-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 363:
#line 1934 "c-parse.y"
{
	    if (yyvsp[-1].itype)
	      iterator_for_loop_end (yyvsp[-3].ttype);
	  ;
    break;}
case 364:
#line 1969 "c-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype);
		  register tree label
		    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);

		  stmt_count++;

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

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

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

		      if (success == 1)
			error ("case label not within a switch statement");
		      else if (success == 2)
			{
			  error ("duplicate case value");
			  error_with_decl (duplicate, "this is the first entry for that value");
			}
		      else if (success == 3)
			warning ("case value out of range");
		      else if (success == 5)
			error ("case label within scope of cleanup or variable array");
		    }
		  position_after_white_space (); ;
    break;}
case 365:
#line 2000 "c-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 366:
#line 2031 "c-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 367:
#line 2046 "c-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
		  stmt_count++;
		  emit_nop ();
		  if (label)
		    {
		      expand_label (label);
		      decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
		    }
		  position_after_white_space (); ;
    break;}
case 368:
#line 2061 "c-parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 369:
#line 2064 "c-parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 370:
#line 2069 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 372:
#line 2076 "c-parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 375:
#line 2083 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 376:
#line 2088 "c-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 377:
#line 2093 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
    break;}
case 378:
#line 2095 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
    break;}
case 379:
#line 2101 "c-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (0); ;
    break;}
case 380:
#line 2105 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 382:
#line 2113 "c-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 383:
#line 2121 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 384:
#line 2123 "c-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
    break;}
case 385:
#line 2129 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 386:
#line 2131 "c-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 387:
#line 2141 "c-parse.y"
{ yyval.ttype = get_parm_info (1); ;
    break;}
case 388:
#line 2143 "c-parse.y"
{ yyval.ttype = get_parm_info (0); ;
    break;}
case 389:
#line 2148 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 390:
#line 2150 "c-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 391:
#line 2157 "c-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 2166 "c-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 2175 "c-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 2184 "c-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 2194 "c-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 396:
#line 2208 "c-parse.y"
{ pushlevel (0);
		  clear_parm_order ();
		  declare_parm_level (1); ;
    break;}
case 397:
#line 2212 "c-parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  parmlist_tags_warning ();
		  poplevel (0, 0, 0); ;
    break;}
case 399:
#line 2220 "c-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 400:
#line 2230 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 401:
#line 2232 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 402:
#line 2238 "c-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 403:
#line 2240 "c-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 404:
#line 2245 "c-parse.y"
{ yyval.ttype = SAVE_WARN_FLAGS();
		  pedantic = 0;
		  warn_pointer_arith = 0; ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/lib/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

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

  *++yyvsp = yyval;

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

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

  yyn = yyr1[yyn];

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

  goto yynewstate;

yyerrlab:   /* here on detecting error */

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

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

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

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

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

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

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

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

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

      yychar = YYEMPTY;
    }

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

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

  goto yyerrhandle;

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

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

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

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

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

yyerrhandle:

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

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

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

  if (yyn == YYFINAL)
    YYACCEPT;

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

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

  yystate = yyn;
  goto yynewstate;

 yyacceptlab:
  /* YYACCEPT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 0;

 yyabortlab:
  /* YYABORT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 1;
}
#line 2250 "c-parse.y"

