# line 2 "grammar.y"
/*
** This is a bare-bones prototype for an ANSI C parser.
**
** It is based on _The C Programming Language,
** Second Edition_, Kernighan and Ritchie, Printice Hall, 1988.
*/
#include <sys/types.h>
#include "ansi.h"
#include "host.h"
#include "hash.h"
#include "files.h"
#include "il.h"
#include "nodeop.h"
#include "types.h"
#include "type_util.h"
#define NO_LNINFO

static symbol_t *cur_func;

# line 22 "grammar.y"
typedef union  {
    int val;
	node_t *nod;
	symbol_t *sym;
	typeinfo_t *typ;
} YYSTYPE;
# define BAD_TOKEN 257
# define INTEGER_CONSTANT 258
# define CHARACTER_CONSTANT 259
# define FLOATING_CONSTANT 260
# define ENUMERATION_CONSTANT 261
# define IDENTIFIER 262
# define STRING 263
# define TYPEDEF_NAME 264
# define SIZEOF 265
# define PTR_OP 266
# define INC_OP 267
# define DEC_OP 268
# define LEFT_OP 269
# define RIGHT_OP 270
# define LE_OP 271
# define GE_OP 272
# define EQ_OP 273
# define NE_OP 274
# define AND_OP 275
# define OR_OP 276
# define MUL_ASSIGN 277
# define DIV_ASSIGN 278
# define MOD_ASSIGN 279
# define ADD_ASSIGN 280
# define SUB_ASSIGN 281
# define LEFT_ASSIGN 282
# define RIGHT_ASSIGN 283
# define AND_ASSIGN 284
# define XOR_ASSIGN 285
# define OR_ASSIGN 286
# define TYPEDEF 287
# define EXTERN 288
# define STATIC 289
# define AUTO 290
# define REGISTER 291
# define CHAR 292
# define SHORT 293
# define INT 294
# define LONG 295
# define SIGNED 296
# define UNSIGNED 297
# define FLOAT 298
# define DOUBLE 299
# define CONST 300
# define VOLATILE 301
# define VOID 302
# define STRUCT 303
# define UNION 304
# define ENUM 305
# define ELIPSIS 306
# define DOTDOT 307
# define CASE 308
# define DEFAULT 309
# define IF 310
# define SWITCH 311
# define WHILE 312
# define DO 313
# define FOR 314
# define GOTO 315
# define CONTINUE 316
# define BREAK 317
# define RETURN 318
# define THEN 319
# define ELSE 320
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern int yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
YYSTYPE yylval, yyval;
typedef int yytabelem;
# define YYERRCODE 256

# line 705 "grammar.y"

yytabelem yyexca[] ={
-1, 1,
	0, -1,
	-2, 7,
-1, 3,
	287, 9,
	-2, 1,
-1, 7,
	287, 9,
	123, 3,
	-2, 1,
-1, 11,
	262, 31,
	287, 9,
	59, 31,
	44, 31,
	40, 31,
	41, 31,
	91, 31,
	42, 31,
	-2, 1,
-1, 12,
	262, 33,
	287, 9,
	59, 33,
	44, 33,
	40, 33,
	41, 33,
	91, 33,
	42, 33,
	-2, 1,
-1, 13,
	262, 35,
	287, 9,
	59, 35,
	44, 35,
	40, 35,
	41, 35,
	91, 35,
	42, 35,
	-2, 1,
-1, 26,
	61, 2,
	-2, 67,
-1, 27,
	40, 3,
	-2, 10,
-1, 36,
	287, 9,
	123, 21,
	-2, 1,
-1, 51,
	40, 3,
	-2, 11,
-1, 63,
	123, 5,
	-2, 1,
-1, 75,
	40, 3,
	-2, 10,
-1, 80,
	287, 9,
	123, 3,
	125, 4,
	-2, 1,
-1, 88,
	123, 5,
	-2, 60,
-1, 135,
	40, 3,
	-2, 11,
-1, 138,
	123, 3,
	125, 4,
	-2, 1,
-1, 139,
	287, 9,
	123, 3,
	125, 4,
	-2, 1,
-1, 155,
	123, 3,
	-2, 1,
-1, 162,
	58, 13,
	-2, 237,
-1, 163,
	58, 14,
	-2, 246,
-1, 201,
	262, 70,
	58, 70,
	40, 70,
	41, 70,
	91, 70,
	42, 70,
	-2, 1,
-1, 202,
	262, 72,
	58, 72,
	40, 72,
	41, 72,
	91, 72,
	42, 72,
	-2, 1,
-1, 216,
	59, 4,
	44, 4,
	61, 4,
	40, 4,
	91, 4,
	-2, 98,
-1, 221,
	287, 9,
	-2, 1,
-1, 227,
	123, 3,
	125, 4,
	-2, 1,
-1, 228,
	123, 3,
	-2, 1,
-1, 230,
	123, 3,
	-2, 1,
-1, 243,
	58, 2,
	-2, 49,
-1, 256,
	125, 6,
	-2, 1,
-1, 299,
	59, 4,
	44, 4,
	61, 4,
	40, 4,
	91, 4,
	-2, 97,
-1, 301,
	59, 4,
	44, 4,
	61, 4,
	40, 4,
	91, 4,
	-2, 99,
-1, 312,
	123, 3,
	-2, 1,
-1, 330,
	125, 6,
	-2, 1,
-1, 361,
	123, 3,
	-2, 1,
-1, 362,
	123, 3,
	-2, 1,
-1, 363,
	123, 3,
	-2, 1,
-1, 392,
	123, 3,
	-2, 1,
-1, 408,
	123, 3,
	-2, 1,
-1, 411,
	123, 3,
	-2, 1,
-1, 412,
	123, 3,
	-2, 1,
-1, 414,
	123, 3,
	-2, 1,
-1, 423,
	123, 3,
	-2, 1,
-1, 425,
	123, 3,
	-2, 1,
-1, 426,
	123, 3,
	-2, 1,
-1, 431,
	123, 3,
	-2, 1,
	};
# define YYNPROD 247
# define YYLAST 1205
yytabelem yyact[]={

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

 -1000, -1000, -1000,    -4, -1000, -1000, -1000,  -193,    36,   393,
 -1000,  -193,  -193,  -193, -1000, -1000,     7,  -263, -1000, -1000,
 -1000, -1000,  -211, -1000, -1000, -1000, -1000,    66,   -25, -1000,
 -1000, -1000, -1000, -1000,    36, -1000,  -193, -1000, -1000,    27,
    36, -1000,   119,   262, -1000,    36, -1000, -1000, -1000, -1000,
 -1000,    66, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000,  -216,   -86, -1000, -1000,   102, -1000,   871,
   377,   -25, -1000, -1000,   339,    66,     7, -1000, -1000, -1000,
   181, -1000, -1000,   118, -1000, -1000, -1000,    25, -1000,  -229,
 -1000, -1000,  -210,    23,   831, -1000,    62, -1000,   -35,  -249,
     0,    38,   387,  -243,   -28,  -230,   272,   419, -1000, -1000,
   482,    34,   936,   936,   904,   925, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
     9, -1000, -1000, -1000,   371,    66, -1000,    -5,   420,   181,
 -1000, -1000, -1000, -1000, -1000, -1000, -1000,   157,   904,   153,
 -1000,   392,   351,   350,   349,   420,   333,  -216,   115,   114,
   856,  -237, -1000, -1000, -1000, -1000,   294, -1000,  -174,    12,
 -1000,    97, -1000,   100,  -210, -1000, -1000,   831, -1000,   904,
   904,   904,   904,   904,   904,   904,   904,   904,   904,   904,
   904,   904,   904,   904,   904,   904,   904,   904,   307,   504,
 -1000,  -174,  -174,   904,   781,  -216,  -216, -1000, -1000, -1000,
   904, -1000, -1000, -1000,   482,   303, -1000,   500,   226, -1000,
 -1000,  -193,     1, -1000,   -11, -1000,   -12,   420,   420,   149,
   420, -1000,   904,   904,   904,   904,  -301,   753,   112, -1000,
 -1000, -1000,   376, -1000,   904, -1000, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000, -1000,  -174, -1000,    91,  -174,
 -1000, -1000,  -210,   904,    93, -1000,    92, -1000,   188,  -249,
     0,    38,   387,  -243,   -28,   -28,  -230,  -230,  -230,  -230,
   272,   272,   419,   419, -1000, -1000, -1000,   904, -1000,   268,
 -1000, -1000,   120, -1000,   498, -1000, -1000, -1000,   302, -1000,
 -1000, -1000,  -221,  -291,   166,   296, -1000,   475, -1000, -1000,
   -14, -1000,   420, -1000, -1000,   469,   467,   465,   295,   731,
   375, -1000, -1000, -1000,   -16, -1000,   194, -1000,   144,   904,
  -174, -1000, -1000, -1000, -1000,   495,   904, -1000, -1000,   332,
   314,   359,   673, -1000, -1000,   904, -1000, -1000, -1000, -1000,
 -1000, -1000, -1000, -1000, -1000,    19,    88, -1000, -1000, -1000,
 -1000,   420,   420,   420,   904,   659,   370,   625, -1000,   111,
    91,   904, -1000,   -26, -1000, -1000, -1000,   314,   600,   286,
   284, -1000,   282, -1000,    61, -1000, -1000, -1000,  -312, -1000,
 -1000,   463,   420,   444,   586,   572,   236, -1000, -1000, -1000,
 -1000, -1000,    49, -1000,   270, -1000, -1000, -1000,   420,   109,
 -1000,   420,   420,   443,   420,   439,   548, -1000, -1000, -1000,
 -1000, -1000, -1000,   420, -1000,   420,   420,   413, -1000, -1000,
 -1000,   420, -1000 };
yytabelem yypgo[]={

     0,   587,   392,   585,   584,   583,   582,   569,   299,    63,
   568,   201,   517,   143,   166,    51,    84,   567,   566,    56,
     5,    22,   565,     7,   564,   562,   560,   145,    82,     4,
   558,    49,     1,   557,     2,    54,    70,   165,   140,    69,
    64,    90,   105,    71,    79,   555,     3,   554,    25,   553,
    13,    12,   233,   543,     6,   551,    14,    19,     9,   523,
   438,   550,   394,    33,   106,    20,   172,    10,   549,   526,
   518,   536,   220,   512,   486,   167,   473,   422,     0,   467,
   459,   447,   445,   433,    85 };
yytabelem yyr1[]={

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

     0,     0,     0,     1,     1,     0,     0,     0,     0,     0,
     0,     0,     7,     2,     2,     0,     4,     5,     5,     4,
     4,     1,     8,     5,     7,     4,     7,     9,     4,     2,
     5,     3,     5,     2,     5,     3,     5,     5,     3,     3,
     3,     3,     5,     3,     3,     3,     3,     3,     3,     2,
     3,     3,     3,     3,     3,     3,     3,     3,    13,    15,
     5,     3,     3,     2,     5,     2,     7,     2,    11,     9,
     3,     5,     3,     5,     2,     7,     2,     5,     7,     9,
    11,     5,     2,     7,     3,     7,     4,     7,     2,     7,
     7,     9,    13,    11,    13,     4,     7,    11,     9,    11,
     3,     5,     5,     7,     2,     5,     2,     7,     2,     7,
     9,     7,     9,     2,     7,     2,     7,     9,     2,     7,
     4,     7,     2,     2,     5,     7,     5,     7,     7,     9,
     5,     7,     7,     9,     2,     2,     2,     2,     2,     2,
     6,     8,     6,     2,     4,     8,    10,    10,    12,     2,
     4,    10,    14,    10,    10,    14,    12,    14,    14,    16,
    14,    16,    16,    18,     6,     4,     4,     4,     7,     2,
     7,     2,     7,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     2,    11,     2,     2,     7,     2,
     7,     2,     7,     2,     7,     2,     7,     2,     7,     7,
     2,     7,     7,     7,     7,     2,     7,     7,     2,     7,
     7,     2,     7,     7,     7,     2,     9,     2,     5,     5,
     5,     5,     9,     3,     3,     3,     3,     3,     3,     2,
     9,     7,     9,     7,     7,     5,     5,     2,     2,     2,
     7,     2,     7,     2,     2,     2,     2 };
yytabelem yychk[]={

 -1000,   -61,   -73,   -68,   -24,   -13,   -74,   -25,   -12,   -53,
   -59,    -4,    -8,    -2,   -52,   -60,   -56,   -70,   288,   289,
   290,   291,   -62,    -1,   300,   301,   -50,   -51,    42,   293,
   295,   296,   297,   262,    40,   -75,   -14,   -77,   -13,   -64,
   -12,   -59,   -63,   -53,    59,    44,   -63,   -12,   -12,   -12,
   -71,   -51,   -60,   287,   -10,   302,   292,   294,   298,   299,
   264,   -18,   -17,    -7,   305,   303,   304,   -63,   -71,    91,
   -64,    -3,   -56,    -2,   -50,   -51,   -56,   -76,   -13,   -65,
   123,   -63,    59,   -63,   -52,   -72,   -72,   -66,   -27,   -62,
   262,   261,   123,   -27,    61,    93,   -29,   -46,   -45,   -44,
   -43,   -42,   -41,   -40,   -39,   -38,   -37,   -36,   -35,   -34,
    40,   -33,   267,   268,    -5,   265,   -30,    38,    42,    43,
    45,   126,    33,   262,   -26,   263,   258,   259,   260,   261,
    40,   -56,    -2,    41,   -64,   -51,   -75,   -65,   -84,   -14,
   -78,   -79,   -77,   -80,   -81,   -82,   -83,   -27,   308,   309,
    59,   -32,   310,   311,   312,   313,   314,   315,   316,   317,
   318,   -62,   262,   261,   -31,   -46,   -34,    59,   123,   -66,
   264,   -16,   -15,   262,   123,   -48,   -31,   123,    93,    63,
   276,   275,   124,    94,    38,   273,   274,    60,    62,   271,
   272,   269,   270,    43,    45,    42,    47,    37,    -9,   -32,
   -11,    -8,    -2,    91,    40,    46,   266,   267,   268,   -34,
    40,   -34,   -35,   -34,    40,   -23,    41,   -28,   -22,   262,
   -21,   -69,    40,   125,   -65,   -78,   -65,   -84,    58,   -29,
    58,    59,    44,    40,    40,    40,   -78,    40,   -27,    59,
    59,    59,   -32,   264,    -6,    61,   277,   278,   279,   280,
   281,   282,   283,   284,   285,   286,   -19,   -20,   -11,   123,
   -63,   125,    44,    61,   -16,   -62,   -49,   -48,   -32,   -44,
   -43,   -42,   -41,   -40,   -39,   -39,   -38,   -38,   -38,   -38,
   -37,   -37,   -36,   -36,   -35,   -35,   -35,    41,    41,   -63,
   -11,   -11,   -32,    41,   -47,   -31,   -27,   -27,    -9,    41,
   -65,    41,    44,    44,   -12,   -23,    41,   -28,   125,   125,
   -65,   -78,    58,   -78,   -31,   -32,   -32,   -32,   312,    59,
   -32,    59,    59,   -31,   -67,   -20,   -55,   -54,   -50,    58,
   -19,   -15,   -29,   125,   125,    44,    58,   -35,   -57,   -56,
   -58,    40,    91,    93,    41,    44,    41,   -65,   -65,   262,
   306,   -21,   -50,   -63,   -57,   -56,    40,    41,    41,   125,
   -78,    41,    41,    41,    40,    59,   -32,    59,   125,   -63,
    44,    58,   -29,   -67,   125,   -48,   -46,   -58,    91,    40,
   -57,    41,   -23,    93,   -29,   -31,   -63,   -63,   -78,   -78,
   -78,   -32,    41,   -32,    59,    59,   -32,    59,   -54,   -29,
   125,    93,   -29,    41,   -23,    41,    41,    93,   320,    41,
   -78,    41,    41,   -32,    41,   -32,    59,    93,    41,   -78,
    59,   -78,   -78,    41,   -78,    41,    41,   -32,   -78,   -78,
   -78,    41,   -78 };
yytabelem yydef[]={

    15,    -2,    16,    -2,    17,    18,    19,    -2,     2,     0,
     2,    -2,    -2,    -2,    65,    10,     0,     0,    38,    39,
    40,    41,     0,    43,    56,    57,    -2,    -2,   100,    52,
    53,    54,    55,    88,     0,    20,    -2,     4,    29,     0,
     2,     2,     0,     2,    28,     0,    23,    32,    34,    36,
    95,    -2,    11,    37,    42,    44,    45,    46,    47,    48,
    49,    50,    51,    -2,     1,    61,    62,     0,    86,     0,
     0,   101,   102,   104,     0,    -2,     0,     3,    30,    25,
    -2,    24,    26,     0,    66,    87,    96,     0,    -2,     0,
    13,    14,     0,    81,     0,    90,     0,   186,   184,   187,
   189,   191,   193,   195,   197,   200,   205,   208,   211,   215,
     1,   217,     0,     0,     0,     0,   229,   223,   224,   225,
   226,   227,   228,   237,   238,   239,   243,   244,   245,   246,
     8,   103,   105,    89,     0,    -2,    22,     0,    -2,    -2,
   149,   134,   135,   136,   137,   138,   139,     0,     0,     0,
   143,     0,     0,     0,     0,    -2,     0,     1,     0,     0,
     0,     0,    -2,    -2,   169,   171,   215,    27,     1,     0,
     2,     0,    82,    84,     0,     1,   115,     0,    91,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2,    -2,    -2,     0,     0,     1,     1,   235,   236,   218,
     0,   219,   220,   221,     1,     0,    -2,     0,   106,   113,
   108,    -2,     8,   145,     0,   150,     0,    -2,    -2,     0,
    -2,   144,     0,     0,     0,     0,     0,     0,     0,   165,
   166,   167,     0,    -2,     0,   173,   174,   175,   176,   177,
   178,   179,   180,   181,   182,   183,    -2,    63,     0,     1,
    12,    79,     0,     0,     0,    68,     0,   118,     0,   188,
   190,   192,   194,   196,   198,   199,   201,   202,   203,   204,
   206,   207,   209,   210,   212,   213,   214,     0,   240,   120,
    71,    73,     0,   231,     0,   241,   233,   234,     0,    -2,
    93,    -2,     0,     8,     2,     0,     4,     0,   146,   147,
     0,   140,    -2,   142,   170,     0,     0,     0,     0,     0,
     0,   164,   168,   172,     0,    64,     2,    74,    76,     0,
    -2,    83,    85,    80,   116,     0,     0,   216,   121,   122,
   123,     8,     0,   230,   232,     0,   222,    92,    94,   114,
   107,   109,     2,   111,     2,   122,     8,     4,     4,   148,
   141,    -2,    -2,    -2,     0,     0,     0,     0,    58,     0,
     0,     0,    77,     0,   117,   119,   185,   124,     0,     8,
     0,   130,     0,   126,     0,   242,   110,   112,   151,   153,
   154,     0,    -2,     0,     0,     0,     0,    69,    75,    78,
    59,   128,     0,   132,     0,   125,   131,   127,    -2,     0,
   156,    -2,    -2,     0,    -2,     0,     0,   129,   133,   152,
   155,   157,   158,    -2,   160,    -2,    -2,     0,   159,   161,
   162,    -2,   163 };
typedef struct { char *t_name; int t_val; } yytoktype;
#ifndef YYDEBUG
#	define YYDEBUG	0	/* don't allow debugging */
#endif

#if YYDEBUG

yytoktype yytoks[] =
{
	"BAD_TOKEN",	257,
	"INTEGER_CONSTANT",	258,
	"CHARACTER_CONSTANT",	259,
	"FLOATING_CONSTANT",	260,
	"ENUMERATION_CONSTANT",	261,
	"IDENTIFIER",	262,
	"STRING",	263,
	"TYPEDEF_NAME",	264,
	"SIZEOF",	265,
	"PTR_OP",	266,
	"INC_OP",	267,
	"DEC_OP",	268,
	"LEFT_OP",	269,
	"RIGHT_OP",	270,
	"LE_OP",	271,
	"GE_OP",	272,
	"EQ_OP",	273,
	"NE_OP",	274,
	"AND_OP",	275,
	"OR_OP",	276,
	"MUL_ASSIGN",	277,
	"DIV_ASSIGN",	278,
	"MOD_ASSIGN",	279,
	"ADD_ASSIGN",	280,
	"SUB_ASSIGN",	281,
	"LEFT_ASSIGN",	282,
	"RIGHT_ASSIGN",	283,
	"AND_ASSIGN",	284,
	"XOR_ASSIGN",	285,
	"OR_ASSIGN",	286,
	"TYPEDEF",	287,
	"EXTERN",	288,
	"STATIC",	289,
	"AUTO",	290,
	"REGISTER",	291,
	"CHAR",	292,
	"SHORT",	293,
	"INT",	294,
	"LONG",	295,
	"SIGNED",	296,
	"UNSIGNED",	297,
	"FLOAT",	298,
	"DOUBLE",	299,
	"CONST",	300,
	"VOLATILE",	301,
	"VOID",	302,
	"STRUCT",	303,
	"UNION",	304,
	"ENUM",	305,
	"ELIPSIS",	306,
	"DOTDOT",	307,
	"CASE",	308,
	"DEFAULT",	309,
	"IF",	310,
	"SWITCH",	311,
	"WHILE",	312,
	"DO",	313,
	"FOR",	314,
	"GOTO",	315,
	"CONTINUE",	316,
	"BREAK",	317,
	"RETURN",	318,
	"THEN",	319,
	"ELSE",	320,
	"-unknown-",	-1	/* ends search */
};

char * yyreds[] =
{
	"-no such reduction-",
	"NS_ntd : /* empty */",
	"NS_td : /* empty */",
	"NS_scope_push : /* empty */",
	"NS_scope_pop : /* empty */",
	"NS_struct_push : /* empty */",
	"NS_struct_pop : /* empty */",
	"NS_id : /* empty */",
	"NS_new_parm : /* empty */",
	"NS_is_typedef : /* empty */",
	"NS_direct_decl : /* empty */",
	"NS_ptr_decl : /* empty */",
	"identifier : NS_ntd TYPEDEF_NAME NS_td",
	"identifier : IDENTIFIER",
	"identifier : ENUMERATION_CONSTANT",
	"translation_unit : /* empty */",
	"translation_unit : translation_unit external_declaration",
	"external_declaration : NS_id function_definition",
	"external_declaration : NS_id declaration",
	"external_declaration : NS_id untyped_declaration",
	"function_definition : function_head function_body",
	"function_definition : function_head declaration_list",
	"function_definition : function_head declaration_list function_body",
	"function_head : function_declarator NS_td",
	"function_head : declaration_specifiers function_declarator NS_td",
	"function_body : compound_statement NS_scope_pop",
	"declaration : declaration_specifiers NS_td ';'",
	"declaration : declaration_specifiers init_declarator_list NS_td ';'",
	"untyped_declaration : init_declarator_list ';'",
	"declaration_list : declaration",
	"declaration_list : declaration_list declaration",
	"declaration_specifiers : storage_class_specifier",
	"declaration_specifiers : storage_class_specifier declaration_specifiers",
	"declaration_specifiers : type_specifier",
	"declaration_specifiers : type_specifier declaration_specifiers",
	"declaration_specifiers : type_qualifier",
	"declaration_specifiers : type_qualifier declaration_specifiers",
	"storage_class_specifier : NS_is_typedef TYPEDEF",
	"storage_class_specifier : EXTERN",
	"storage_class_specifier : STATIC",
	"storage_class_specifier : AUTO",
	"storage_class_specifier : REGISTER",
	"type_specifier : NS_ntd actual_type_specifier",
	"type_specifier : type_adjective",
	"actual_type_specifier : VOID",
	"actual_type_specifier : CHAR",
	"actual_type_specifier : INT",
	"actual_type_specifier : FLOAT",
	"actual_type_specifier : DOUBLE",
	"actual_type_specifier : TYPEDEF_NAME",
	"actual_type_specifier : struct_or_union_specifier",
	"actual_type_specifier : enum_specifier",
	"type_adjective : SHORT",
	"type_adjective : LONG",
	"type_adjective : SIGNED",
	"type_adjective : UNSIGNED",
	"type_qualifier : CONST",
	"type_qualifier : VOLATILE",
	"struct_or_union_specifier : struct_or_union NS_struct_push '{' struct_declaration_list NS_struct_pop '}'",
	"struct_or_union_specifier : struct_or_union identifier NS_struct_push '{' struct_declaration_list NS_struct_pop '}'",
	"struct_or_union_specifier : struct_or_union identifier",
	"struct_or_union : STRUCT",
	"struct_or_union : UNION",
	"struct_declaration_list : struct_declaration",
	"struct_declaration_list : struct_declaration_list struct_declaration",
	"init_declarator_list : init_declarator",
	"init_declarator_list : init_declarator_list ',' init_declarator",
	"init_declarator : declarator",
	"init_declarator : declarator NS_td '=' initializer NS_ntd",
	"struct_declaration : specifier_qualifier_list struct_declarator_list NS_td ';'",
	"specifier_qualifier_list : type_specifier",
	"specifier_qualifier_list : type_specifier specifier_qualifier_list",
	"specifier_qualifier_list : type_qualifier",
	"specifier_qualifier_list : type_qualifier specifier_qualifier_list",
	"struct_declarator_list : struct_declarator",
	"struct_declarator_list : struct_declarator_list ',' struct_declarator",
	"struct_declarator : declarator",
	"struct_declarator : ':' constant_expression",
	"struct_declarator : declarator ':' constant_expression",
	"enum_specifier : ENUM '{' enumerator_list '}'",
	"enum_specifier : ENUM identifier '{' enumerator_list '}'",
	"enum_specifier : ENUM identifier",
	"enumerator_list : enumerator",
	"enumerator_list : enumerator_list ',' enumerator",
	"enumerator : IDENTIFIER",
	"enumerator : IDENTIFIER '=' constant_expression",
	"declarator : direct_declarator NS_direct_decl",
	"declarator : pointer direct_declarator NS_ptr_decl",
	"direct_declarator : IDENTIFIER",
	"direct_declarator : '(' declarator ')'",
	"direct_declarator : direct_declarator '[' ']'",
	"direct_declarator : direct_declarator '[' constant_expression ']'",
	"direct_declarator : direct_declarator NS_scope_push '(' parameter_type_list ')' NS_scope_pop",
	"direct_declarator : direct_declarator NS_scope_push '(' ')' NS_scope_pop",
	"direct_declarator : direct_declarator NS_scope_push '(' identifier_list ')' NS_scope_pop",
	"function_declarator : direct_function_declarator NS_direct_decl",
	"function_declarator : pointer direct_function_declarator NS_ptr_decl",
	"direct_function_declarator : direct_declarator NS_scope_push '(' parameter_type_list ')'",
	"direct_function_declarator : direct_declarator NS_scope_push '(' ')'",
	"direct_function_declarator : direct_declarator NS_scope_push '(' identifier_list ')'",
	"pointer : '*'",
	"pointer : '*' type_qualifier_list",
	"pointer : '*' pointer",
	"pointer : '*' type_qualifier_list pointer",
	"type_qualifier_list : type_qualifier",
	"type_qualifier_list : type_qualifier_list type_qualifier",
	"parameter_type_list : parameter_list",
	"parameter_type_list : parameter_list ',' ELIPSIS",
	"parameter_list : parameter_declaration",
	"parameter_list : parameter_list ',' parameter_declaration",
	"parameter_declaration : NS_new_parm declaration_specifiers declarator NS_td",
	"parameter_declaration : NS_new_parm declaration_specifiers NS_td",
	"parameter_declaration : NS_new_parm declaration_specifiers abstract_declarator NS_td",
	"identifier_list : IDENTIFIER",
	"identifier_list : identifier_list ',' IDENTIFIER",
	"initializer : assignment_expression",
	"initializer : '{' initializer_list '}'",
	"initializer : '{' initializer_list ',' '}'",
	"initializer_list : initializer",
	"initializer_list : initializer_list ',' initializer",
	"type_name : specifier_qualifier_list NS_td",
	"type_name : specifier_qualifier_list NS_td abstract_declarator",
	"abstract_declarator : pointer",
	"abstract_declarator : direct_abstract_declarator",
	"abstract_declarator : pointer direct_abstract_declarator",
	"direct_abstract_declarator : '(' abstract_declarator ')'",
	"direct_abstract_declarator : '[' ']'",
	"direct_abstract_declarator : '[' constant_expression ']'",
	"direct_abstract_declarator : direct_abstract_declarator '[' ']'",
	"direct_abstract_declarator : direct_abstract_declarator '[' constant_expression ']'",
	"direct_abstract_declarator : '(' ')'",
	"direct_abstract_declarator : '(' parameter_type_list ')'",
	"direct_abstract_declarator : direct_abstract_declarator '(' ')'",
	"direct_abstract_declarator : direct_abstract_declarator '(' parameter_type_list ')'",
	"statement : labeled_statement",
	"statement : compound_statement",
	"statement : expression_statement",
	"statement : selection_statement",
	"statement : iteration_statement",
	"statement : jump_statement",
	"labeled_statement : identifier ':' statement",
	"labeled_statement : CASE constant_expression ':' statement",
	"labeled_statement : DEFAULT ':' statement",
	"expression_statement : ';'",
	"expression_statement : expression ';'",
	"compound_statement : NS_scope_push '{' NS_scope_pop '}'",
	"compound_statement : NS_scope_push '{' statement_list NS_scope_pop '}'",
	"compound_statement : NS_scope_push '{' declaration_list NS_scope_pop '}'",
	"compound_statement : NS_scope_push '{' declaration_list statement_list NS_scope_pop '}'",
	"statement_list : statement",
	"statement_list : statement_list statement",
	"selection_statement : IF '(' expression ')' statement",
	"selection_statement : IF '(' expression ')' statement ELSE statement",
	"selection_statement : SWITCH '(' expression ')' statement",
	"iteration_statement : WHILE '(' expression ')' statement",
	"iteration_statement : DO statement WHILE '(' expression ')' ';'",
	"iteration_statement : FOR '(' ';' ';' ')' statement",
	"iteration_statement : FOR '(' ';' ';' expression ')' statement",
	"iteration_statement : FOR '(' ';' expression ';' ')' statement",
	"iteration_statement : FOR '(' ';' expression ';' expression ')' statement",
	"iteration_statement : FOR '(' expression ';' ';' ')' statement",
	"iteration_statement : FOR '(' expression ';' ';' expression ')' statement",
	"iteration_statement : FOR '(' expression ';' expression ';' ')' statement",
	"iteration_statement : FOR '(' expression ';' expression ';' expression ')' statement",
	"jump_statement : GOTO identifier ';'",
	"jump_statement : CONTINUE ';'",
	"jump_statement : BREAK ';'",
	"jump_statement : RETURN ';'",
	"jump_statement : RETURN expression ';'",
	"expression : assignment_expression",
	"expression : expression ',' assignment_expression",
	"assignment_expression : conditional_expression",
	"assignment_expression : unary_expression assignment_operator assignment_expression",
	"assignment_operator : '='",
	"assignment_operator : MUL_ASSIGN",
	"assignment_operator : DIV_ASSIGN",
	"assignment_operator : MOD_ASSIGN",
	"assignment_operator : ADD_ASSIGN",
	"assignment_operator : SUB_ASSIGN",
	"assignment_operator : LEFT_ASSIGN",
	"assignment_operator : RIGHT_ASSIGN",
	"assignment_operator : AND_ASSIGN",
	"assignment_operator : XOR_ASSIGN",
	"assignment_operator : OR_ASSIGN",
	"conditional_expression : logical_or_expression",
	"conditional_expression : logical_or_expression '?' expression ':' conditional_expression",
	"constant_expression : conditional_expression",
	"logical_or_expression : logical_and_expression",
	"logical_or_expression : logical_or_expression OR_OP logical_and_expression",
	"logical_and_expression : inclusive_or_expression",
	"logical_and_expression : logical_and_expression AND_OP inclusive_or_expression",
	"inclusive_or_expression : exclusive_or_expression",
	"inclusive_or_expression : inclusive_or_expression '|' exclusive_or_expression",
	"exclusive_or_expression : and_expression",
	"exclusive_or_expression : exclusive_or_expression '^' and_expression",
	"and_expression : equality_expression",
	"and_expression : and_expression '&' equality_expression",
	"equality_expression : relational_expression",
	"equality_expression : equality_expression EQ_OP relational_expression",
	"equality_expression : equality_expression NE_OP relational_expression",
	"relational_expression : shift_expression",
	"relational_expression : relational_expression '<' shift_expression",
	"relational_expression : relational_expression '>' shift_expression",
	"relational_expression : relational_expression LE_OP shift_expression",
	"relational_expression : relational_expression GE_OP shift_expression",
	"shift_expression : additive_expression",
	"shift_expression : shift_expression LEFT_OP additive_expression",
	"shift_expression : shift_expression RIGHT_OP additive_expression",
	"additive_expression : multiplicative_expression",
	"additive_expression : additive_expression '+' multiplicative_expression",
	"additive_expression : additive_expression '-' multiplicative_expression",
	"multiplicative_expression : cast_expression",
	"multiplicative_expression : multiplicative_expression '*' cast_expression",
	"multiplicative_expression : multiplicative_expression '/' cast_expression",
	"multiplicative_expression : multiplicative_expression '%' cast_expression",
	"cast_expression : unary_expression",
	"cast_expression : '(' type_name ')' cast_expression",
	"unary_expression : postfix_expression",
	"unary_expression : INC_OP unary_expression",
	"unary_expression : DEC_OP unary_expression",
	"unary_expression : unary_operator cast_expression",
	"unary_expression : SIZEOF unary_expression",
	"unary_expression : SIZEOF '(' type_name ')'",
	"unary_operator : '&'",
	"unary_operator : '*'",
	"unary_operator : '+'",
	"unary_operator : '-'",
	"unary_operator : '~'",
	"unary_operator : '!'",
	"postfix_expression : primary_expression",
	"postfix_expression : postfix_expression '[' expression ']'",
	"postfix_expression : postfix_expression '(' ')'",
	"postfix_expression : postfix_expression '(' argument_expression_list ')'",
	"postfix_expression : postfix_expression '.' identifier",
	"postfix_expression : postfix_expression PTR_OP identifier",
	"postfix_expression : postfix_expression INC_OP",
	"postfix_expression : postfix_expression DEC_OP",
	"primary_expression : IDENTIFIER",
	"primary_expression : constant",
	"primary_expression : STRING",
	"primary_expression : '(' expression ')'",
	"argument_expression_list : assignment_expression",
	"argument_expression_list : argument_expression_list ',' assignment_expression",
	"constant : INTEGER_CONSTANT",
	"constant : CHARACTER_CONSTANT",
	"constant : FLOATING_CONSTANT",
	"constant : ENUMERATION_CONSTANT",
};
#endif /* YYDEBUG */
/* 
 *	Copyright 1987 Silicon Graphics, Inc. - All Rights Reserved
 */

/* #ident	"@(#)yacc:yaccpar	1.10" */
#ident	"$Revision: 1.5 $"

/*
** Skeleton parser driver for yacc output
*/

/*
** yacc user known macros and defines
*/
#define YYERROR		goto yyerrlab
#define YYACCEPT	return(0)
#define YYABORT		return(1)
#define YYBACKUP( newtoken, newvalue )\
{\
	if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
	{\
		yyerror( "syntax error - cannot backup" );\
		goto yyerrlab;\
	}\
	yychar = newtoken;\
	yystate = *yyps;\
	yylval = newvalue;\
	goto yynewstate;\
}
#define YYRECOVERING()	(!!yyerrflag)
#ifndef YYDEBUG
#	define YYDEBUG	1	/* make debugging available */
#endif

/*
** user known globals
*/
int yydebug;			/* set to 1 to get debugging */

/*
** driver internal defines
*/
#define YYFLAG		(-1000)

/*
** global variables used by the parser
*/
YYSTYPE yyv[ YYMAXDEPTH ];	/* value stack */
int yys[ YYMAXDEPTH ];		/* state stack */

YYSTYPE *yypv;			/* top of value stack */
int *yyps;			/* top of state stack */

int yystate;			/* current state */
int yytmp;			/* extra var (lasts between blocks) */

int yynerrs;			/* number of errors */
int yyerrflag;			/* error recovery flag */
int yychar;			/* current input token number */



/*
** yyparse - return 0 if worked, 1 if syntax error not recovered from
*/
int
yyparse()
{
	register YYSTYPE *yypvt;	/* top of value stack for $vars */

	/*
	** Initialize externals - yyparse may be called more than once
	*/
	yypv = &yyv[-1];
	yyps = &yys[-1];
	yystate = 0;
	yytmp = 0;
	yynerrs = 0;
	yyerrflag = 0;
	yychar = -1;

	goto yystack;
	{
		register YYSTYPE *yy_pv;	/* top of value stack */
		register int *yy_ps;		/* top of state stack */
		register int yy_state;		/* current state */
		register int  yy_n;		/* internal state number info */

		/*
		** get globals into registers.
		** branch to here only if YYBACKUP was called.
		*/
	yynewstate:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;
		goto yy_newstate;

		/*
		** get globals into registers.
		** either we just started, or we just finished a reduction
		*/
	yystack:
		yy_pv = yypv;
		yy_ps = yyps;
		yy_state = yystate;

		/*
		** top of for (;;) loop while no reductions done
		*/
	yy_stack:
		/*
		** put a state and value onto the stacks
		*/
#if YYDEBUG
		/*
		** if debugging, look up token value in list of value vs.
		** name pairs.  0 and negative (-1) are special values.
		** Note: linear search is used since time is not a real
		** consideration while debugging.
		*/
		if ( yydebug )
		{
			register int yy_i;

			printf( "State %d, token ", yy_state );
			if ( yychar == 0 )
				printf( "end-of-file\n" );
			else if ( yychar < 0 )
				printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ++yy_ps >= &yys[ YYMAXDEPTH ] )	/* room on stack? */
		{
			yyerror( "yacc stack overflow" );
			YYABORT;
		}
		*yy_ps = yy_state;
		*++yy_pv = yyval;

		/*
		** we have a new state - find out what to do
		*/
	yy_newstate:
		if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
			goto yydefault;		/* simple state */
#if YYDEBUG
		/*
		** if debugging, need to mark whether new token grabbed
		*/
		yytmp = yychar < 0;
#endif
		if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
			yychar = 0;		/* reached EOF */
#if YYDEBUG
		if ( yydebug && yytmp )
		{
			register int yy_i;

			printf( "Received token " );
			if ( yychar == 0 )
				printf( "end-of-file\n" );
			else if ( yychar < 0 )
				printf( "-none-\n" );
			else
			{
				for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
					yy_i++ )
				{
					if ( yytoks[yy_i].t_val == yychar )
						break;
				}
				printf( "%s\n", yytoks[yy_i].t_name );
			}
		}
#endif /* YYDEBUG */
		if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
			goto yydefault;
		if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar )	/*valid shift*/
		{
			yychar = -1;
			yyval = yylval;
			yy_state = yy_n;
			if ( yyerrflag > 0 )
				yyerrflag--;
			goto yy_stack;
		}

	yydefault:
		if ( ( yy_n = yydef[ yy_state ] ) == -2 )
		{
#if YYDEBUG
			yytmp = yychar < 0;
#endif
			if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
				yychar = 0;		/* reached EOF */
#if YYDEBUG
			if ( yydebug && yytmp )
			{
				register int yy_i;

				printf( "Received token " );
				if ( yychar == 0 )
					printf( "end-of-file\n" );
				else if ( yychar < 0 )
					printf( "-none-\n" );
				else
				{
					for ( yy_i = 0;
						yytoks[yy_i].t_val >= 0;
						yy_i++ )
					{
						if ( yytoks[yy_i].t_val
							== yychar )
						{
							break;
						}
					}
					printf( "%s\n", yytoks[yy_i].t_name );
				}
			}
#endif /* YYDEBUG */
			/*
			** look through exception table
			*/
			{
				register int *yyxi = yyexca;

				while ( ( *yyxi != -1 ) ||
					( yyxi[1] != yy_state ) )
				{
					yyxi += 2;
				}
				while ( ( *(yyxi += 2) >= 0 ) &&
					( *yyxi != yychar ) )
					;
				if ( ( yy_n = yyxi[1] ) < 0 )
					YYACCEPT;
			}
		}

		/*
		** check for syntax error
		*/
		if ( yy_n == 0 )	/* have an error */
		{
			/* no worry about speed here! */
			switch ( yyerrflag )
			{
			case 0:		/* new error */
				yyerror( "syntax error" );
				goto skip_init;
			yyerrlab:
				/*
				** get globals into registers.
				** we have a user generated syntax type error
				*/
				yy_pv = yypv;
				yy_ps = yyps;
				yy_state = yystate;
				yynerrs++;
			skip_init:
			case 1:
			case 2:		/* incompletely recovered error */
					/* try again... */
				yyerrflag = 3;
				/*
				** find state where "error" is a legal
				** shift action
				*/
				while ( yy_ps >= yys )
				{
					yy_n = yypact[ *yy_ps ] + YYERRCODE;
					if ( yy_n >= 0 && yy_n < YYLAST &&
						yychk[yyact[yy_n]] == YYERRCODE)					{
						/*
						** simulate shift of "error"
						*/
						yy_state = yyact[ yy_n ];
						goto yy_stack;
					}
					/*
					** current state has no shift on
					** "error", pop stack
					*/
#if YYDEBUG
#	define _POP_ "Error recovery pops state %d, uncovers state %d\n"
					if ( yydebug )
						printf( _POP_, *yy_ps,
							yy_ps[-1] );
#	undef _POP_
#endif
					yy_ps--;
					yy_pv--;
				}
				/*
				** there is no state on stack with "error" as
				** a valid shift.  give up.
				*/
				YYABORT;
			case 3:		/* no shift yet; eat a token */
#if YYDEBUG
				/*
				** if debugging, look up token in list of
				** pairs.  0 and negative shouldn't occur,
				** but since timing doesn't matter when
				** debugging, it doesn't hurt to leave the
				** tests here.
				*/
				if ( yydebug )
				{
					register int yy_i;

					printf( "Error recovery discards " );
					if ( yychar == 0 )
						printf( "token end-of-file\n" );
					else if ( yychar < 0 )
						printf( "token -none-\n" );
					else
					{
						for ( yy_i = 0;
							yytoks[yy_i].t_val >= 0;
							yy_i++ )
						{
							if ( yytoks[yy_i].t_val
								== yychar )
							{
								break;
							}
						}
						printf( "token %s\n",
							yytoks[yy_i].t_name );
					}
				}
#endif /* YYDEBUG */
				if ( yychar == 0 )	/* reached EOF. quit */
					YYABORT;
				yychar = -1;
				goto yy_newstate;
			}
		}/* end if ( yy_n == 0 ) */
		/*
		** reduction by production yy_n
		** put stack tops, etc. so things right after switch
		*/
#if YYDEBUG
		/*
		** if debugging, print the string that is the user's
		** specification of the reduction which is just about
		** to be done.
		*/
		if ( yydebug )
			printf( "Reduce by (%d) \"%s\"\n",
				yy_n, yyreds[ yy_n ] );
#endif
		yytmp = yy_n;			/* value to switch over */
		yypvt = yy_pv;			/* $vars top of value stack */
		/*
		** Look in goto table for next state
		** Sorry about using yy_state here as temporary
		** register variable, but why not, if it works...
		** If yyr2[ yy_n ] doesn't have the low order bit
		** set, then there is no action to be done for
		** this reduction.  So, no saving & unsaving of
		** registers done.  The only difference between the
		** code just after the if and the body of the if is
		** the goto yy_stack in the body.  This way the test
		** can be made before the choice of what to do is needed.
		*/
		{
			/* length of production doubled with extra bit */
			register int yy_len = yyr2[ yy_n ];

			if ( !( yy_len & 01 ) )
			{
				yy_len >>= 1;
				yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
				yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
					*( yy_ps -= yy_len ) + 1;
				if ( yy_state >= YYLAST ||
					yychk[ yy_state =
					yyact[ yy_state ] ] != -yy_n )
				{
					yy_state = yyact[ yypgo[ yy_n ] ];
				}
				goto yy_stack;
			}
			yy_len >>= 1;
			yyval = ( yy_pv -= yy_len )[1];	/* $$ = $1 */
			yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
				*( yy_ps -= yy_len ) + 1;
			if ( yy_state >= YYLAST ||
				yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
			{
				yy_state = yyact[ yypgo[ yy_n ] ];
			}
		}
					/* save until reenter driver code */
		yystate = yy_state;
		yyps = yy_ps;
		yypv = yy_pv;
	}
	/*
	** code supplied by user is placed in this switch
	*/
	switch( yytmp )
	{
		
case 3:
# line 147 "grammar.y"
{ scope_push(); td(); } break;
case 4:
# line 149 "grammar.y"
{ scope_pop(); } break;
case 12:
# line 191 "grammar.y"
{yyval.nod = id_from_typedef(yypvt[-1].typ);} break;
case 17:
# line 211 "grammar.y"
{function_def(yypvt[-0].sym);} break;
case 18:
# line 212 "grammar.y"
{typed_external_decl(yypvt[-0].sym);} break;
case 21:
# line 218 "grammar.y"
{KnR_params(yypvt[-1].sym, yypvt[-0].sym);} break;
case 23:
# line 224 "grammar.y"
{
			yyval.sym = function_spec(0, yypvt[-1].nod);
			cur_func = yyval.sym;
			cur_func->_assume_int = 1;
		} break;
case 24:
# line 230 "grammar.y"
{
			yyval.sym = function_spec(yypvt[-2].typ, yypvt[-1].nod);
			cur_func = yyval.sym;
		} break;
case 26:
# line 241 "grammar.y"
{yyval.sym = novar_declaration(yypvt[-2].typ);} break;
case 27:
# line 243 "grammar.y"
{yyval.sym = var_declaration(yypvt[-3].typ, yypvt[-2].nod);} break;
case 30:
# line 252 "grammar.y"
{yyval.sym = concat_symbols(yypvt[-1].sym,yypvt[-0].sym);} break;
case 31:
# line 256 "grammar.y"
{yyval.typ = typeof_typemod(yypvt[-0].val);} break;
case 32:
# line 257 "grammar.y"
{yyval.typ = concat_types(typeof_typemod(yypvt[-1].val), yypvt[-0].typ);} break;
case 34:
# line 259 "grammar.y"
{yyval.typ = concat_types(yypvt[-1].typ, yypvt[-0].typ);} break;
case 35:
# line 260 "grammar.y"
{yyval.typ = typeof_typemod(yypvt[-0].val);} break;
case 36:
# line 261 "grammar.y"
{yyval.typ = concat_types(typeof_typemod(yypvt[-1].val), yypvt[-0].typ);} break;
case 37:
# line 265 "grammar.y"
{yyval.val = TYPEMOD_TYPEDEF;} break;
case 38:
# line 266 "grammar.y"
{yyval.val = TYPEMOD_EXTERN;} break;
case 39:
# line 267 "grammar.y"
{yyval.val = TYPEMOD_STATIC;} break;
case 40:
# line 268 "grammar.y"
{yyval.val = TYPEMOD_AUTO;} break;
case 41:
# line 269 "grammar.y"
{yyval.val = TYPEMOD_REGISTER;} break;
case 42:
# line 276 "grammar.y"
{yyval.typ = yypvt[-0].typ;} break;
case 43:
# line 277 "grammar.y"
{yyval.typ = typeof_typemod(yypvt[-0].val);} break;
case 44:
# line 281 "grammar.y"
{yyval.typ = typeof_void();} break;
case 45:
# line 282 "grammar.y"
{yyval.typ = typeof_char();} break;
case 46:
# line 283 "grammar.y"
{yyval.typ = typeof_int(0);} break;
case 47:
# line 284 "grammar.y"
{yyval.typ = typeof_float();} break;
case 48:
# line 285 "grammar.y"
{yyval.typ = typeof_double();} break;
case 50:
# line 287 "grammar.y"
{yyval.typ = typeof_specifier(yypvt[-0].sym);} break;
case 51:
# line 288 "grammar.y"
{yyval.typ = typeof_specifier(yypvt[-0].sym);} break;
case 52:
# line 292 "grammar.y"
{yyval.val = TYPEMOD_SHORT;} break;
case 53:
# line 293 "grammar.y"
{yyval.val = TYPEMOD_LONG;} break;
case 54:
# line 294 "grammar.y"
{yyval.val = TYPEMOD_SIGNED;} break;
case 55:
# line 295 "grammar.y"
{yyval.val = TYPEMOD_UNSIGNED;} break;
case 56:
# line 299 "grammar.y"
{yyval.val = TYPEMOD_CONST;} break;
case 57:
# line 300 "grammar.y"
{yyval.val = TYPEMOD_VOLATILE;} break;
case 58:
# line 305 "grammar.y"
{ yyval.sym = anonymous_rec(yypvt[-5].val, yypvt[-2].sym);} break;
case 59:
# line 307 "grammar.y"
{ yyval.sym = named_rec(yypvt[-6].val, yypvt[-5].nod, yypvt[-2].sym);} break;
case 60:
# line 308 "grammar.y"
{ yyval.sym = rec_reference(yypvt[-1].val, yypvt[-0].nod);} break;
case 61:
# line 312 "grammar.y"
{yyval.val = 0;} break;
case 62:
# line 313 "grammar.y"
{yyval.val = 1;} break;
case 64:
# line 318 "grammar.y"
{yyval.sym = concat_symbols(yypvt[-1].sym,yypvt[-0].sym);} break;
case 66:
# line 323 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
case 68:
# line 328 "grammar.y"
{yyval.nod = new_node(_Assign, yypvt[-4].nod, yypvt[-1].nod);} break;
case 69:
# line 334 "grammar.y"
{yyval.sym = field_declaration(yypvt[-3].typ, yypvt[-2].nod);} break;
case 70:
# line 338 "grammar.y"
{yyval.typ = typeof_typespec(yypvt[-0].typ);} break;
case 71:
# line 339 "grammar.y"
{yyval.typ = typeof_typespec(concat_types(yypvt[-1].typ, yypvt[-0].typ));} break;
case 72:
# line 340 "grammar.y"
{yyval.typ = typeof_typespec(typeof_typemod(yypvt[-0].val));} break;
case 73:
# line 341 "grammar.y"
{yyval.typ = typeof_typespec(concat_types(typeof_typemod(yypvt[-1].val),yypvt[-0].typ));} break;
case 75:
# line 346 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
case 77:
# line 351 "grammar.y"
{yyval.nod = new_node(_Bit_Field, 0, yypvt[-0].nod);} break;
case 78:
# line 352 "grammar.y"
{yyval.nod = new_node(_Bit_Field, yypvt[-2].nod, yypvt[-0].nod);} break;
case 79:
# line 356 "grammar.y"
{yyval.sym = anonymous_enum(yypvt[-1].sym);} break;
case 80:
# line 357 "grammar.y"
{yyval.sym = named_enum(yypvt[-3].nod, yypvt[-1].sym);} break;
case 81:
# line 358 "grammar.y"
{yyval.sym = enum_reference(yypvt[-0].nod);} break;
case 83:
# line 363 "grammar.y"
{yyval.sym = concat_symbols(yypvt[-2].sym,yypvt[-0].sym);} break;
case 84:
# line 367 "grammar.y"
{yyval.sym = grok_enumerator(yypvt[-0].nod,0);} break;
case 85:
# line 368 "grammar.y"
{yyval.sym = grok_enumerator(yypvt[-2].nod,yypvt[-0].nod);} break;
case 87:
# line 373 "grammar.y"
{yyval.nod = access_to(yypvt[-2].nod, yypvt[-1].nod);} break;
case 89:
# line 378 "grammar.y"
{yyval.nod = yypvt[-1].nod;} break;
case 90:
# line 379 "grammar.y"
{yyval.nod = new_node(_Array_Index, yypvt[-2].nod, 0);} break;
case 91:
# line 380 "grammar.y"
{yyval.nod = new_node(_Array_Index, yypvt[-3].nod, yypvt[-1].nod);} break;
case 92:
# line 383 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-5].nod, new_node(_Sym,yypvt[-2].sym));} break;
case 93:
# line 385 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-4].nod, 0);} break;
case 94:
# line 387 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-5].nod, yypvt[-2].nod);} break;
case 96:
# line 393 "grammar.y"
{yyval.nod = access_to(yypvt[-2].nod, yypvt[-1].nod);} break;
case 97:
# line 398 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-4].nod, new_node(_Sym,yypvt[-1].sym));} break;
case 98:
# line 400 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-3].nod, 0);} break;
case 99:
# line 402 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-4].nod, yypvt[-1].nod);} break;
case 100:
# line 406 "grammar.y"
{yyval.nod = new_node(_Indirect, 0);} break;
case 101:
# line 407 "grammar.y"
{yyval.nod = new_node(_Indirect, 0);} break;
case 102:
# line 408 "grammar.y"
{yyval.nod = new_node(_Indirect, yypvt[-0].nod);} break;
case 103:
# line 409 "grammar.y"
{yyval.nod = new_node(_Indirect, yypvt[-0].nod);} break;
case 105:
# line 414 "grammar.y"
{yyval.val = yypvt[-1].val | yypvt[-0].val;} break;
case 107:
# line 420 "grammar.y"
{
			yyval.sym = concat_symbols(yypvt[-2].sym, elipsis_arg());
		} break;
case 109:
# line 427 "grammar.y"
{yyval.sym = concat_symbols(yypvt[-2].sym,yypvt[-0].sym);} break;
case 110:
# line 432 "grammar.y"
{yyval.sym = named_abstract_param(yypvt[-2].typ, yypvt[-1].nod);} break;
case 111:
# line 434 "grammar.y"
{yyval.sym = noname_simple_param(yypvt[-1].typ);} break;
case 112:
# line 436 "grammar.y"
{yyval.sym = noname_abstract_param(yypvt[-2].typ, yypvt[-1].nod);} break;
case 114:
# line 441 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
case 116:
# line 446 "grammar.y"
{yyval.nod = new_node(_Aggregate, yypvt[-1].nod);} break;
case 117:
# line 447 "grammar.y"
{yyval.nod = new_node(_Aggregate, new_node(_List, yypvt[-2].nod, 0));} break;
case 119:
# line 452 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
case 121:
# line 458 "grammar.y"
{
			yyval.typ = noname_type(yypvt[-2].typ,yypvt[-0].nod);
		} break;
case 124:
# line 466 "grammar.y"
{yyval.nod = access_to(yypvt[-1].nod, yypvt[-0].nod);} break;
case 125:
# line 470 "grammar.y"
{yyval.nod = yypvt[-1].nod;} break;
case 126:
# line 471 "grammar.y"
{yyval.nod = new_node(_Array_Index, 0, 0);} break;
case 127:
# line 472 "grammar.y"
{yyval.nod = new_node(_Array_Index, 0, yypvt[-1].nod);} break;
case 128:
# line 473 "grammar.y"
{yyval.nod = new_node(_Array_Index, yypvt[-2].nod, 0);} break;
case 129:
# line 474 "grammar.y"
{yyval.nod = new_node(_Array_Index, yypvt[-3].nod, yypvt[-1].nod);} break;
case 130:
# line 475 "grammar.y"
{yyval.nod = new_node(_Func_Call, 0, 0);} break;
case 131:
# line 476 "grammar.y"
{yyval.nod = new_node(_Func_Call, 0, new_node(_Sym,yypvt[-1].sym));} break;
case 132:
# line 477 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-2].nod, 0);} break;
case 133:
# line 478 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-3].nod, new_node(_Sym,yypvt[-1].sym));} break;
case 168:
# line 545 "grammar.y"
{
			if (cur_func) cur_func->_eret = 1;
		} break;
case 170:
# line 553 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
case 172:
# line 560 "grammar.y"
{yyval.nod = new_node(yypvt[-1].val, yypvt[-2].nod, yypvt[-0].nod);} break;
case 173:
# line 564 "grammar.y"
{yyval.val = _Assign;} break;
case 174:
# line 565 "grammar.y"
{yyval.val = _Mul_Assign;} break;
case 175:
# line 566 "grammar.y"
{yyval.val = _Div_Assign;} break;
case 176:
# line 567 "grammar.y"
{yyval.val = _Mod_Assign;} break;
case 177:
# line 568 "grammar.y"
{yyval.val = _Add_Assign;} break;
case 178:
# line 569 "grammar.y"
{yyval.val = _Sub_Assign;} break;
case 179:
# line 570 "grammar.y"
{yyval.val = _Shl_Assign;} break;
case 180:
# line 571 "grammar.y"
{yyval.val = _Shr_Assign;} break;
case 181:
# line 572 "grammar.y"
{yyval.val = _Band_Assign;} break;
case 182:
# line 573 "grammar.y"
{yyval.val = _Xor_Assign;} break;
case 183:
# line 574 "grammar.y"
{yyval.val = _Bor_Assign;} break;
case 185:
# line 581 "grammar.y"
{yyval.nod = new_node(_Cond, yypvt[-4].nod, yypvt[-2].nod, yypvt[-0].nod);} break;
case 188:
# line 592 "grammar.y"
{yyval.nod = new_node(_Lor, yypvt[-2].nod, yypvt[-0].nod);} break;
case 190:
# line 597 "grammar.y"
{yyval.nod = new_node(_Land, yypvt[-2].nod, yypvt[-0].nod);} break;
case 192:
# line 602 "grammar.y"
{yyval.nod = new_node(_Bor, yypvt[-2].nod, yypvt[-0].nod);} break;
case 194:
# line 607 "grammar.y"
{yyval.nod = new_node(_Xor, yypvt[-2].nod, yypvt[-0].nod);} break;
case 196:
# line 612 "grammar.y"
{yyval.nod = new_node(_Band, yypvt[-2].nod, yypvt[-0].nod);} break;
case 198:
# line 617 "grammar.y"
{yyval.nod = new_node(_Eq, yypvt[-2].nod, yypvt[-0].nod);} break;
case 199:
# line 618 "grammar.y"
{yyval.nod = new_node(_Ne, yypvt[-2].nod, yypvt[-0].nod);} break;
case 201:
# line 623 "grammar.y"
{yyval.nod = new_node(_Lt, yypvt[-2].nod, yypvt[-0].nod);} break;
case 202:
# line 624 "grammar.y"
{yyval.nod = new_node(_Gt, yypvt[-2].nod, yypvt[-0].nod);} break;
case 203:
# line 625 "grammar.y"
{yyval.nod = new_node(_Le, yypvt[-2].nod, yypvt[-0].nod);} break;
case 204:
# line 626 "grammar.y"
{yyval.nod = new_node(_Ge, yypvt[-2].nod, yypvt[-0].nod);} break;
case 206:
# line 631 "grammar.y"
{yyval.nod = new_node(_Shl, yypvt[-2].nod, yypvt[-0].nod);} break;
case 207:
# line 632 "grammar.y"
{yyval.nod = new_node(_Shr, yypvt[-2].nod, yypvt[-0].nod);} break;
case 209:
# line 637 "grammar.y"
{yyval.nod = new_node(_Add, yypvt[-2].nod, yypvt[-0].nod);} break;
case 210:
# line 638 "grammar.y"
{yyval.nod = new_node(_Sub, yypvt[-2].nod, yypvt[-0].nod);} break;
case 212:
# line 643 "grammar.y"
{yyval.nod = new_node(_Mul, yypvt[-2].nod, yypvt[-0].nod);} break;
case 213:
# line 644 "grammar.y"
{yyval.nod = new_node(_Div, yypvt[-2].nod, yypvt[-0].nod);} break;
case 214:
# line 645 "grammar.y"
{yyval.nod = new_node(_Rem, yypvt[-2].nod, yypvt[-0].nod);} break;
case 216:
# line 650 "grammar.y"
{yyval.nod = new_node(_Type_Cast, new_node(_Type, yypvt[-2].typ), yypvt[-0].nod);} break;
case 218:
# line 656 "grammar.y"
{yyval.nod = new_node(_Pre_Inc, yypvt[-0].nod);} break;
case 219:
# line 657 "grammar.y"
{yyval.nod = new_node(_Pre_Dec, yypvt[-0].nod);} break;
case 220:
# line 658 "grammar.y"
{yyval.nod = new_node(yypvt[-1].val, yypvt[-0].nod);} break;
case 221:
# line 659 "grammar.y"
{yyval.nod = new_node(_Sizeof, yypvt[-0].nod);} break;
case 222:
# line 660 "grammar.y"
{yyval.nod = new_node(_Sizeof, new_node(_Type, yypvt[-1].typ));} break;
case 223:
# line 665 "grammar.y"
{yyval.val = _Addrof;} break;
case 224:
# line 666 "grammar.y"
{yyval.val = _Indirect;} break;
case 225:
# line 667 "grammar.y"
{yyval.val = _Unary_Plus;} break;
case 226:
# line 668 "grammar.y"
{yyval.val = _Unary_Minus;} break;
case 227:
# line 669 "grammar.y"
{yyval.val = _Ones_Complement;} break;
case 228:
# line 670 "grammar.y"
{yyval.val = _Not;} break;
case 230:
# line 676 "grammar.y"
{yyval.nod = new_node(_Array_Index, yypvt[-3].nod, yypvt[-1].nod);} break;
case 231:
# line 677 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-2].nod, 0);} break;
case 232:
# line 678 "grammar.y"
{yyval.nod = new_node(_Func_Call, yypvt[-3].nod, yypvt[-1].nod);} break;
case 233:
# line 679 "grammar.y"
{yyval.nod = new_node(_Dot_Selected, yypvt[-2].nod, yypvt[-0].nod);} break;
case 234:
# line 680 "grammar.y"
{yyval.nod = new_node(_Arrow_Selected, yypvt[-2].nod, yypvt[-0].nod);} break;
case 235:
# line 681 "grammar.y"
{yyval.nod = new_node(_Post_Inc, yypvt[-1].nod);} break;
case 236:
# line 682 "grammar.y"
{yyval.nod = new_node(_Post_Dec, yypvt[-1].nod);} break;
case 240:
# line 689 "grammar.y"
{yyval.nod = yypvt[-1].nod;} break;
case 242:
# line 694 "grammar.y"
{yyval.nod = new_node(_List, yypvt[-2].nod, yypvt[-0].nod);} break;
	}
	goto yystack;		/* reset registers in driver code */
}


syntax highlighted by Code2HTML, v. 0.9.1