github.com/bgentry/go@v0.0.0-20150121062915-6cf5a733d54d/src/cmd/9a/y.tab.c (about)

     1  /* A Bison parser, made by GNU Bison 2.3.  */
     2  
     3  /* Skeleton implementation for Bison's Yacc-like parsers in C
     4  
     5     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
     6     Free Software Foundation, Inc.
     7  
     8     This program is free software; you can redistribute it and/or modify
     9     it under the terms of the GNU General Public License as published by
    10     the Free Software Foundation; either version 2, or (at your option)
    11     any later version.
    12  
    13     This program is distributed in the hope that it will be useful,
    14     but WITHOUT ANY WARRANTY; without even the implied warranty of
    15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16     GNU General Public License for more details.
    17  
    18     You should have received a copy of the GNU General Public License
    19     along with this program; if not, write to the Free Software
    20     Foundation, Inc., 51 Franklin Street, Fifth Floor,
    21     Boston, MA 02110-1301, USA.  */
    22  
    23  /* As a special exception, you may create a larger work that contains
    24     part or all of the Bison parser skeleton and distribute that work
    25     under terms of your choice, so long as that work isn't itself a
    26     parser generator using the skeleton or a modified version thereof
    27     as a parser skeleton.  Alternatively, if you modify or redistribute
    28     the parser skeleton itself, you may (at your option) remove this
    29     special exception, which will cause the skeleton and the resulting
    30     Bison output files to be licensed under the GNU General Public
    31     License without this special exception.
    32  
    33     This special exception was added by the Free Software Foundation in
    34     version 2.2 of Bison.  */
    35  
    36  /* C LALR(1) parser skeleton written by Richard Stallman, by
    37     simplifying the original so-called "semantic" parser.  */
    38  
    39  /* All symbols defined below should begin with yy or YY, to avoid
    40     infringing on user name space.  This should be done even for local
    41     variables, as they might otherwise be expanded by user macros.
    42     There are some unavoidable exceptions within include files to
    43     define necessary library symbols; they are noted "INFRINGES ON
    44     USER NAME SPACE" below.  */
    45  
    46  /* Identify Bison output.  */
    47  #define YYBISON 1
    48  
    49  /* Bison version.  */
    50  #define YYBISON_VERSION "2.3"
    51  
    52  /* Skeleton name.  */
    53  #define YYSKELETON_NAME "yacc.c"
    54  
    55  /* Pure parsers.  */
    56  #define YYPURE 0
    57  
    58  /* Using locations.  */
    59  #define YYLSP_NEEDED 0
    60  
    61  
    62  
    63  /* Tokens.  */
    64  #ifndef YYTOKENTYPE
    65  # define YYTOKENTYPE
    66     /* Put the tokens into the symbol table, so that GDB and other debuggers
    67        know about them.  */
    68     enum yytokentype {
    69       LMOVW = 258,
    70       LMOVB = 259,
    71       LABS = 260,
    72       LLOGW = 261,
    73       LSHW = 262,
    74       LADDW = 263,
    75       LCMP = 264,
    76       LCROP = 265,
    77       LBRA = 266,
    78       LFMOV = 267,
    79       LFCONV = 268,
    80       LFCMP = 269,
    81       LFADD = 270,
    82       LFMA = 271,
    83       LTRAP = 272,
    84       LXORW = 273,
    85       LNOP = 274,
    86       LEND = 275,
    87       LRETT = 276,
    88       LWORD = 277,
    89       LTEXT = 278,
    90       LDATA = 279,
    91       LRETRN = 280,
    92       LCONST = 281,
    93       LSP = 282,
    94       LSB = 283,
    95       LFP = 284,
    96       LPC = 285,
    97       LCREG = 286,
    98       LFLUSH = 287,
    99       LREG = 288,
   100       LFREG = 289,
   101       LR = 290,
   102       LCR = 291,
   103       LF = 292,
   104       LFPSCR = 293,
   105       LLR = 294,
   106       LCTR = 295,
   107       LSPR = 296,
   108       LSPREG = 297,
   109       LSEG = 298,
   110       LMSR = 299,
   111       LPCDAT = 300,
   112       LFUNCDAT = 301,
   113       LSCHED = 302,
   114       LXLD = 303,
   115       LXST = 304,
   116       LXOP = 305,
   117       LXMV = 306,
   118       LRLWM = 307,
   119       LMOVMW = 308,
   120       LMOVEM = 309,
   121       LMOVFL = 310,
   122       LMTFSB = 311,
   123       LMA = 312,
   124       LFCONST = 313,
   125       LSCONST = 314,
   126       LNAME = 315,
   127       LLAB = 316,
   128       LVAR = 317
   129     };
   130  #endif
   131  /* Tokens.  */
   132  #define LMOVW 258
   133  #define LMOVB 259
   134  #define LABS 260
   135  #define LLOGW 261
   136  #define LSHW 262
   137  #define LADDW 263
   138  #define LCMP 264
   139  #define LCROP 265
   140  #define LBRA 266
   141  #define LFMOV 267
   142  #define LFCONV 268
   143  #define LFCMP 269
   144  #define LFADD 270
   145  #define LFMA 271
   146  #define LTRAP 272
   147  #define LXORW 273
   148  #define LNOP 274
   149  #define LEND 275
   150  #define LRETT 276
   151  #define LWORD 277
   152  #define LTEXT 278
   153  #define LDATA 279
   154  #define LRETRN 280
   155  #define LCONST 281
   156  #define LSP 282
   157  #define LSB 283
   158  #define LFP 284
   159  #define LPC 285
   160  #define LCREG 286
   161  #define LFLUSH 287
   162  #define LREG 288
   163  #define LFREG 289
   164  #define LR 290
   165  #define LCR 291
   166  #define LF 292
   167  #define LFPSCR 293
   168  #define LLR 294
   169  #define LCTR 295
   170  #define LSPR 296
   171  #define LSPREG 297
   172  #define LSEG 298
   173  #define LMSR 299
   174  #define LPCDAT 300
   175  #define LFUNCDAT 301
   176  #define LSCHED 302
   177  #define LXLD 303
   178  #define LXST 304
   179  #define LXOP 305
   180  #define LXMV 306
   181  #define LRLWM 307
   182  #define LMOVMW 308
   183  #define LMOVEM 309
   184  #define LMOVFL 310
   185  #define LMTFSB 311
   186  #define LMA 312
   187  #define LFCONST 313
   188  #define LSCONST 314
   189  #define LNAME 315
   190  #define LLAB 316
   191  #define LVAR 317
   192  
   193  
   194  
   195  
   196  /* Copy the first part of user declarations.  */
   197  #line 30 "a.y"
   198  
   199  #include <u.h>
   200  #include <stdio.h>	/* if we don't, bison will, and a.h re-#defines getc */
   201  #include <libc.h>
   202  #include "a.h"
   203  #include "../../runtime/funcdata.h"
   204  
   205  
   206  /* Enabling traces.  */
   207  #ifndef YYDEBUG
   208  # define YYDEBUG 0
   209  #endif
   210  
   211  /* Enabling verbose error messages.  */
   212  #ifdef YYERROR_VERBOSE
   213  # undef YYERROR_VERBOSE
   214  # define YYERROR_VERBOSE 1
   215  #else
   216  # define YYERROR_VERBOSE 0
   217  #endif
   218  
   219  /* Enabling the token table.  */
   220  #ifndef YYTOKEN_TABLE
   221  # define YYTOKEN_TABLE 0
   222  #endif
   223  
   224  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
   225  typedef union YYSTYPE
   226  #line 38 "a.y"
   227  {
   228  	Sym	*sym;
   229  	vlong	lval;
   230  	double	dval;
   231  	char	sval[8];
   232  	Addr	addr;
   233  }
   234  /* Line 193 of yacc.c.  */
   235  #line 236 "y.tab.c"
   236  	YYSTYPE;
   237  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
   238  # define YYSTYPE_IS_DECLARED 1
   239  # define YYSTYPE_IS_TRIVIAL 1
   240  #endif
   241  
   242  
   243  
   244  /* Copy the second part of user declarations.  */
   245  
   246  
   247  /* Line 216 of yacc.c.  */
   248  #line 249 "y.tab.c"
   249  
   250  #ifdef short
   251  # undef short
   252  #endif
   253  
   254  #ifdef YYTYPE_UINT8
   255  typedef YYTYPE_UINT8 yytype_uint8;
   256  #else
   257  typedef unsigned char yytype_uint8;
   258  #endif
   259  
   260  #ifdef YYTYPE_INT8
   261  typedef YYTYPE_INT8 yytype_int8;
   262  #elif (defined __STDC__ || defined __C99__FUNC__ \
   263       || defined __cplusplus || defined _MSC_VER)
   264  typedef signed char yytype_int8;
   265  #else
   266  typedef short int yytype_int8;
   267  #endif
   268  
   269  #ifdef YYTYPE_UINT16
   270  typedef YYTYPE_UINT16 yytype_uint16;
   271  #else
   272  typedef unsigned short int yytype_uint16;
   273  #endif
   274  
   275  #ifdef YYTYPE_INT16
   276  typedef YYTYPE_INT16 yytype_int16;
   277  #else
   278  typedef short int yytype_int16;
   279  #endif
   280  
   281  #ifndef YYSIZE_T
   282  # ifdef __SIZE_TYPE__
   283  #  define YYSIZE_T __SIZE_TYPE__
   284  # elif defined size_t
   285  #  define YYSIZE_T size_t
   286  # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
   287       || defined __cplusplus || defined _MSC_VER)
   288  #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
   289  #  define YYSIZE_T size_t
   290  # else
   291  #  define YYSIZE_T unsigned int
   292  # endif
   293  #endif
   294  
   295  #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
   296  
   297  #ifndef YY_
   298  # if defined YYENABLE_NLS && YYENABLE_NLS
   299  #  if ENABLE_NLS
   300  #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
   301  #   define YY_(msgid) dgettext ("bison-runtime", msgid)
   302  #  endif
   303  # endif
   304  # ifndef YY_
   305  #  define YY_(msgid) msgid
   306  # endif
   307  #endif
   308  
   309  /* Suppress unused-variable warnings by "using" E.  */
   310  #if ! defined lint || defined __GNUC__
   311  # define YYUSE(e) ((void) (e))
   312  #else
   313  # define YYUSE(e) /* empty */
   314  #endif
   315  
   316  /* Identity function, used to suppress warnings about constant conditions.  */
   317  #ifndef lint
   318  # define YYID(n) (n)
   319  #else
   320  #if (defined __STDC__ || defined __C99__FUNC__ \
   321       || defined __cplusplus || defined _MSC_VER)
   322  static int
   323  YYID (int i)
   324  #else
   325  static int
   326  YYID (i)
   327      int i;
   328  #endif
   329  {
   330    return i;
   331  }
   332  #endif
   333  
   334  #if ! defined yyoverflow || YYERROR_VERBOSE
   335  
   336  /* The parser invokes alloca or malloc; define the necessary symbols.  */
   337  
   338  # ifdef YYSTACK_USE_ALLOCA
   339  #  if YYSTACK_USE_ALLOCA
   340  #   ifdef __GNUC__
   341  #    define YYSTACK_ALLOC __builtin_alloca
   342  #   elif defined __BUILTIN_VA_ARG_INCR
   343  #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
   344  #   elif defined _AIX
   345  #    define YYSTACK_ALLOC __alloca
   346  #   elif defined _MSC_VER
   347  #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
   348  #    define alloca _alloca
   349  #   else
   350  #    define YYSTACK_ALLOC alloca
   351  #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
   352       || defined __cplusplus || defined _MSC_VER)
   353  #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   354  #     ifndef _STDLIB_H
   355  #      define _STDLIB_H 1
   356  #     endif
   357  #    endif
   358  #   endif
   359  #  endif
   360  # endif
   361  
   362  # ifdef YYSTACK_ALLOC
   363     /* Pacify GCC's `empty if-body' warning.  */
   364  #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
   365  #  ifndef YYSTACK_ALLOC_MAXIMUM
   366      /* The OS might guarantee only one guard page at the bottom of the stack,
   367         and a page size can be as small as 4096 bytes.  So we cannot safely
   368         invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
   369         to allow for a few compiler-allocated temporary stack slots.  */
   370  #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
   371  #  endif
   372  # else
   373  #  define YYSTACK_ALLOC YYMALLOC
   374  #  define YYSTACK_FREE YYFREE
   375  #  ifndef YYSTACK_ALLOC_MAXIMUM
   376  #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
   377  #  endif
   378  #  if (defined __cplusplus && ! defined _STDLIB_H \
   379         && ! ((defined YYMALLOC || defined malloc) \
   380  	     && (defined YYFREE || defined free)))
   381  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   382  #   ifndef _STDLIB_H
   383  #    define _STDLIB_H 1
   384  #   endif
   385  #  endif
   386  #  ifndef YYMALLOC
   387  #   define YYMALLOC malloc
   388  #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
   389       || defined __cplusplus || defined _MSC_VER)
   390  void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
   391  #   endif
   392  #  endif
   393  #  ifndef YYFREE
   394  #   define YYFREE free
   395  #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
   396       || defined __cplusplus || defined _MSC_VER)
   397  void free (void *); /* INFRINGES ON USER NAME SPACE */
   398  #   endif
   399  #  endif
   400  # endif
   401  #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
   402  
   403  
   404  #if (! defined yyoverflow \
   405       && (! defined __cplusplus \
   406  	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
   407  
   408  /* A type that is properly aligned for any stack member.  */
   409  union yyalloc
   410  {
   411    yytype_int16 yyss;
   412    YYSTYPE yyvs;
   413    };
   414  
   415  /* The size of the maximum gap between one aligned stack and the next.  */
   416  # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
   417  
   418  /* The size of an array large to enough to hold all stacks, each with
   419     N elements.  */
   420  # define YYSTACK_BYTES(N) \
   421       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
   422        + YYSTACK_GAP_MAXIMUM)
   423  
   424  /* Copy COUNT objects from FROM to TO.  The source and destination do
   425     not overlap.  */
   426  # ifndef YYCOPY
   427  #  if defined __GNUC__ && 1 < __GNUC__
   428  #   define YYCOPY(To, From, Count) \
   429        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
   430  #  else
   431  #   define YYCOPY(To, From, Count)		\
   432        do					\
   433  	{					\
   434  	  YYSIZE_T yyi;				\
   435  	  for (yyi = 0; yyi < (Count); yyi++)	\
   436  	    (To)[yyi] = (From)[yyi];		\
   437  	}					\
   438        while (YYID (0))
   439  #  endif
   440  # endif
   441  
   442  /* Relocate STACK from its old location to the new one.  The
   443     local variables YYSIZE and YYSTACKSIZE give the old and new number of
   444     elements in the stack, and YYPTR gives the new location of the
   445     stack.  Advance YYPTR to a properly aligned location for the next
   446     stack.  */
   447  # define YYSTACK_RELOCATE(Stack)					\
   448      do									\
   449        {									\
   450  	YYSIZE_T yynewbytes;						\
   451  	YYCOPY (&yyptr->Stack, Stack, yysize);				\
   452  	Stack = &yyptr->Stack;						\
   453  	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
   454  	yyptr += yynewbytes / sizeof (*yyptr);				\
   455        }									\
   456      while (YYID (0))
   457  
   458  #endif
   459  
   460  /* YYFINAL -- State number of the termination state.  */
   461  #define YYFINAL  2
   462  /* YYLAST -- Last index in YYTABLE.  */
   463  #define YYLAST   862
   464  
   465  /* YYNTOKENS -- Number of terminals.  */
   466  #define YYNTOKENS  81
   467  /* YYNNTS -- Number of nonterminals.  */
   468  #define YYNNTS  31
   469  /* YYNRULES -- Number of rules.  */
   470  #define YYNRULES  183
   471  /* YYNRULES -- Number of states.  */
   472  #define YYNSTATES  453
   473  
   474  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
   475  #define YYUNDEFTOK  2
   476  #define YYMAXUTOK   317
   477  
   478  #define YYTRANSLATE(YYX)						\
   479    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
   480  
   481  /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
   482  static const yytype_uint8 yytranslate[] =
   483  {
   484         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   485         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   486         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   487         2,     2,     2,     2,     2,     2,    79,    12,     5,     2,
   488        77,    78,    10,     8,    76,     9,     2,    11,     2,     2,
   489         2,     2,     2,     2,     2,     2,     2,     2,    73,    75,
   490         6,    74,     7,     2,     2,     2,     2,     2,     2,     2,
   491         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   492         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   493         2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
   494         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   495         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   496         2,     2,     2,     2,     3,     2,    80,     2,     2,     2,
   497         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   498         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   499         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   500         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   501         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   502         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   503         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   504         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   505         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   506         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   507         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   508         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   509         2,     2,     2,     2,     2,     2,     1,     2,    13,    14,
   510        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
   511        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
   512        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
   513        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
   514        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
   515        65,    66,    67,    68,    69,    70,    71,    72
   516  };
   517  
   518  #if YYDEBUG
   519  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   520     YYRHS.  */
   521  static const yytype_uint16 yyprhs[] =
   522  {
   523         0,     0,     3,     4,     7,     8,    13,    18,    23,    26,
   524        28,    31,    34,    39,    44,    49,    54,    59,    64,    69,
   525        74,    79,    84,    89,    94,    99,   104,   109,   114,   119,
   526       124,   129,   134,   141,   146,   151,   156,   163,   168,   173,
   527       180,   187,   194,   199,   204,   211,   216,   223,   228,   235,
   528       240,   245,   248,   255,   260,   265,   270,   277,   282,   287,
   529       292,   297,   302,   307,   312,   317,   320,   323,   328,   332,
   530       336,   342,   347,   352,   359,   364,   369,   376,   383,   390,
   531       399,   404,   409,   413,   416,   421,   426,   433,   442,   447,
   532       454,   459,   464,   471,   478,   487,   496,   505,   514,   519,
   533       524,   529,   536,   541,   548,   553,   558,   561,   564,   568,
   534       572,   576,   580,   583,   587,   591,   596,   601,   604,   609,
   535       616,   625,   632,   639,   646,   649,   654,   657,   659,   661,
   536       663,   665,   667,   669,   671,   673,   678,   680,   682,   687,
   537       689,   694,   696,   701,   703,   707,   710,   713,   716,   720,
   538       723,   725,   730,   734,   740,   742,   747,   752,   758,   766,
   539       767,   769,   770,   773,   776,   778,   780,   782,   784,   786,
   540       789,   792,   795,   799,   801,   805,   809,   813,   817,   821,
   541       826,   831,   835,   839
   542  };
   543  
   544  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
   545  static const yytype_int8 yyrhs[] =
   546  {
   547        82,     0,    -1,    -1,    82,    83,    -1,    -1,    70,    73,
   548        84,    83,    -1,    70,    74,   111,    75,    -1,    72,    74,
   549       111,    75,    -1,    57,    75,    -1,    75,    -1,    85,    75,
   550        -1,     1,    75,    -1,    13,    87,    76,    87,    -1,    13,
   551       105,    76,    87,    -1,    13,   104,    76,    87,    -1,    14,
   552        87,    76,    87,    -1,    14,   105,    76,    87,    -1,    14,
   553       104,    76,    87,    -1,    22,   105,    76,    96,    -1,    22,
   554       104,    76,    96,    -1,    22,   101,    76,    96,    -1,    22,
   555        96,    76,    96,    -1,    22,    96,    76,   105,    -1,    22,
   556        96,    76,   104,    -1,    13,    87,    76,   105,    -1,    13,
   557        87,    76,   104,    -1,    14,    87,    76,   105,    -1,    14,
   558        87,    76,   104,    -1,    13,    96,    76,   105,    -1,    13,
   559        96,    76,   104,    -1,    13,    94,    76,    96,    -1,    13,
   560        96,    76,    94,    -1,    13,    96,    76,   102,    76,    94,
   561        -1,    13,    94,    76,    97,    -1,    13,   102,    76,    95,
   562        -1,    66,   102,    76,   110,    -1,    13,    87,    76,   102,
   563        76,    90,    -1,    13,    87,    76,    97,    -1,    13,    87,
   564        76,    90,    -1,    18,    87,    76,   103,    76,    87,    -1,
   565        18,   102,    76,   103,    76,    87,    -1,    18,    87,    76,
   566       102,    76,    87,    -1,    18,    87,    76,    87,    -1,    18,
   567       102,    76,    87,    -1,    16,    87,    76,   103,    76,    87,
   568        -1,    16,    87,    76,    87,    -1,    17,    87,    76,   103,
   569        76,    87,    -1,    17,    87,    76,    87,    -1,    17,   102,
   570        76,   103,    76,    87,    -1,    17,   102,    76,    87,    -1,
   571        15,    87,    76,    87,    -1,    15,    87,    -1,    67,    87,
   572        76,   103,    76,    87,    -1,    13,   102,    76,    87,    -1,
   573        13,   100,    76,    87,    -1,    20,    98,    76,    98,    -1,
   574        20,    98,    76,   110,    76,    98,    -1,    13,    97,    76,
   575        97,    -1,    13,    93,    76,    97,    -1,    13,    90,    76,
   576        87,    -1,    13,    93,    76,    87,    -1,    13,    88,    76,
   577        87,    -1,    13,    87,    76,    88,    -1,    13,    97,    76,
   578        93,    -1,    13,    87,    76,    93,    -1,    21,    86,    -1,
   579        21,   105,    -1,    21,    77,    88,    78,    -1,    21,    76,
   580        86,    -1,    21,    76,   105,    -1,    21,    76,    77,    88,
   581        78,    -1,    21,    97,    76,    86,    -1,    21,    97,    76,
   582       105,    -1,    21,    97,    76,    77,    88,    78,    -1,    21,
   583       110,    76,    86,    -1,    21,   110,    76,   105,    -1,    21,
   584       110,    76,    77,    88,    78,    -1,    21,   110,    76,   110,
   585        76,    86,    -1,    21,   110,    76,   110,    76,   105,    -1,
   586        21,   110,    76,   110,    76,    77,    88,    78,    -1,    27,
   587        87,    76,   103,    -1,    27,   102,    76,   103,    -1,    27,
   588        87,   107,    -1,    27,   107,    -1,    23,    96,    76,    96,
   589        -1,    25,    96,    76,    96,    -1,    25,    96,    76,    96,
   590        76,    96,    -1,    26,    96,    76,    96,    76,    96,    76,
   591        96,    -1,    24,    96,    76,    96,    -1,    24,    96,    76,
   592        96,    76,    97,    -1,    19,    87,    76,    87,    -1,    19,
   593        87,    76,   102,    -1,    19,    87,    76,    87,    76,    97,
   594        -1,    19,    87,    76,   102,    76,    97,    -1,    62,   102,
   595        76,    87,    76,   102,    76,    87,    -1,    62,   102,    76,
   596        87,    76,    99,    76,    87,    -1,    62,    87,    76,    87,
   597        76,   102,    76,    87,    -1,    62,    87,    76,    87,    76,
   598        99,    76,    87,    -1,    63,   105,    76,    87,    -1,    63,
   599        87,    76,   105,    -1,    58,   104,    76,    87,    -1,    58,
   600       104,    76,   102,    76,    87,    -1,    59,    87,    76,   104,
   601        -1,    59,    87,    76,   102,    76,   104,    -1,    61,   104,
   602        76,    87,    -1,    61,    87,    76,   104,    -1,    60,   104,
   603        -1,    29,   107,    -1,    29,    87,   107,    -1,    29,    96,
   604       107,    -1,    29,    76,    87,    -1,    29,    76,    96,    -1,
   605        29,   102,    -1,    32,   102,   107,    -1,    32,   100,   107,
   606        -1,    55,   102,    76,   102,    -1,    56,   102,    76,   105,
   607        -1,    30,   107,    -1,    33,   106,    76,   102,    -1,    33,
   608       106,    76,   110,    76,   102,    -1,    33,   106,    76,   110,
   609        76,   102,     9,   110,    -1,    34,   106,    11,   110,    76,
   610       102,    -1,    34,   106,    11,   110,    76,   100,    -1,    34,
   611       106,    11,   110,    76,   101,    -1,    35,   107,    -1,   110,
   612        77,    40,    78,    -1,    70,   108,    -1,   103,    -1,    89,
   613        -1,    91,    -1,    49,    -1,    46,    -1,    50,    -1,    54,
   614        -1,    52,    -1,    51,    77,   110,    78,    -1,    92,    -1,
   615        48,    -1,    48,    77,   110,    78,    -1,    44,    -1,    47,
   616        77,   110,    78,    -1,    41,    -1,    46,    77,   110,    78,
   617        -1,   110,    -1,   110,    76,   110,    -1,    79,   105,    -1,
   618        79,    69,    -1,    79,    68,    -1,    79,     9,    68,    -1,
   619        79,   110,    -1,    43,    -1,    45,    77,   110,    78,    -1,
   620        77,   103,    78,    -1,    77,   103,     8,   103,    78,    -1,
   621       106,    -1,   110,    77,   103,    78,    -1,   110,    77,   109,
   622        78,    -1,    70,   108,    77,   109,    78,    -1,    70,     6,
   623         7,   108,    77,    38,    78,    -1,    -1,    76,    -1,    -1,
   624         8,   110,    -1,     9,   110,    -1,    38,    -1,    37,    -1,
   625        39,    -1,    36,    -1,    72,    -1,     9,   110,    -1,     8,
   626       110,    -1,    80,   110,    -1,    77,   111,    78,    -1,   110,
   627        -1,   111,     8,   111,    -1,   111,     9,   111,    -1,   111,
   628        10,   111,    -1,   111,    11,   111,    -1,   111,    12,   111,
   629        -1,   111,     6,     6,   111,    -1,   111,     7,     7,   111,
   630        -1,   111,     5,   111,    -1,   111,     4,   111,    -1,   111,
   631         3,   111,    -1
   632  };
   633  
   634  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
   635  static const yytype_uint16 yyrline[] =
   636  {
   637         0,    66,    66,    67,    71,    70,    79,    84,    90,    94,
   638        95,    96,   102,   106,   110,   114,   118,   122,   129,   133,
   639       137,   141,   145,   149,   156,   160,   164,   168,   175,   179,
   640       186,   190,   194,   198,   202,   206,   213,   217,   221,   231,
   641       235,   239,   243,   247,   251,   255,   259,   263,   267,   271,
   642       275,   279,   286,   293,   297,   304,   308,   316,   320,   324,
   643       328,   332,   336,   340,   344,   353,   357,   361,   365,   369,
   644       373,   377,   381,   385,   389,   393,   397,   401,   409,   417,
   645       428,   432,   436,   440,   447,   451,   455,   459,   463,   467,
   646       474,   478,   482,   486,   493,   497,   501,   505,   512,   516,
   647       524,   528,   532,   536,   540,   544,   548,   555,   559,   563,
   648       567,   571,   575,   582,   586,   593,   602,   613,   620,   625,
   649       632,   642,   646,   650,   657,   663,   669,   680,   688,   689,
   650       692,   700,   708,   716,   723,   729,   735,   738,   746,   754,
   651       760,   768,   774,   782,   790,   811,   816,   824,   830,   837,
   652       845,   846,   854,   861,   871,   872,   881,   889,   897,   906,
   653       907,   910,   913,   917,   923,   924,   925,   928,   929,   933,
   654       937,   941,   945,   951,   952,   956,   960,   964,   968,   972,
   655       976,   980,   984,   988
   656  };
   657  #endif
   658  
   659  #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
   660  /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   661     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   662  static const char *const yytname[] =
   663  {
   664    "$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'",
   665    "'-'", "'*'", "'/'", "'%'", "LMOVW", "LMOVB", "LABS", "LLOGW", "LSHW",
   666    "LADDW", "LCMP", "LCROP", "LBRA", "LFMOV", "LFCONV", "LFCMP", "LFADD",
   667    "LFMA", "LTRAP", "LXORW", "LNOP", "LEND", "LRETT", "LWORD", "LTEXT",
   668    "LDATA", "LRETRN", "LCONST", "LSP", "LSB", "LFP", "LPC", "LCREG",
   669    "LFLUSH", "LREG", "LFREG", "LR", "LCR", "LF", "LFPSCR", "LLR", "LCTR",
   670    "LSPR", "LSPREG", "LSEG", "LMSR", "LPCDAT", "LFUNCDAT", "LSCHED", "LXLD",
   671    "LXST", "LXOP", "LXMV", "LRLWM", "LMOVMW", "LMOVEM", "LMOVFL", "LMTFSB",
   672    "LMA", "LFCONST", "LSCONST", "LNAME", "LLAB", "LVAR", "':'", "'='",
   673    "';'", "','", "'('", "')'", "'$'", "'~'", "$accept", "prog", "line",
   674    "@1", "inst", "rel", "rreg", "xlreg", "lr", "lcr", "ctr", "msr", "psr",
   675    "fpscr", "fpscrf", "freg", "creg", "cbit", "mask", "ximm", "fimm", "imm",
   676    "sreg", "regaddr", "addr", "name", "comma", "offset", "pointer", "con",
   677    "expr", 0
   678  };
   679  #endif
   680  
   681  # ifdef YYPRINT
   682  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   683     token YYLEX-NUM.  */
   684  static const yytype_uint16 yytoknum[] =
   685  {
   686         0,   256,   257,   124,    94,    38,    60,    62,    43,    45,
   687        42,    47,    37,   258,   259,   260,   261,   262,   263,   264,
   688       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
   689       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
   690       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
   691       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
   692       305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
   693       315,   316,   317,    58,    61,    59,    44,    40,    41,    36,
   694       126
   695  };
   696  # endif
   697  
   698  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
   699  static const yytype_uint8 yyr1[] =
   700  {
   701         0,    81,    82,    82,    84,    83,    83,    83,    83,    83,
   702        83,    83,    85,    85,    85,    85,    85,    85,    85,    85,
   703        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   704        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   705        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   706        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   707        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   708        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   709        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   710        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   711        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   712        85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
   713        85,    85,    85,    85,    85,    86,    86,    87,    88,    88,
   714        89,    90,    91,    92,    93,    93,    93,    94,    95,    96,
   715        96,    97,    97,    98,    99,   100,   100,   101,   101,   102,
   716       103,   103,   104,   104,   105,   105,   106,   106,   106,   107,
   717       107,   108,   108,   108,   109,   109,   109,   110,   110,   110,
   718       110,   110,   110,   111,   111,   111,   111,   111,   111,   111,
   719       111,   111,   111,   111
   720  };
   721  
   722  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
   723  static const yytype_uint8 yyr2[] =
   724  {
   725         0,     2,     0,     2,     0,     4,     4,     4,     2,     1,
   726         2,     2,     4,     4,     4,     4,     4,     4,     4,     4,
   727         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
   728         4,     4,     6,     4,     4,     4,     6,     4,     4,     6,
   729         6,     6,     4,     4,     6,     4,     6,     4,     6,     4,
   730         4,     2,     6,     4,     4,     4,     6,     4,     4,     4,
   731         4,     4,     4,     4,     4,     2,     2,     4,     3,     3,
   732         5,     4,     4,     6,     4,     4,     6,     6,     6,     8,
   733         4,     4,     3,     2,     4,     4,     6,     8,     4,     6,
   734         4,     4,     6,     6,     8,     8,     8,     8,     4,     4,
   735         4,     6,     4,     6,     4,     4,     2,     2,     3,     3,
   736         3,     3,     2,     3,     3,     4,     4,     2,     4,     6,
   737         8,     6,     6,     6,     2,     4,     2,     1,     1,     1,
   738         1,     1,     1,     1,     1,     4,     1,     1,     4,     1,
   739         4,     1,     4,     1,     3,     2,     2,     2,     3,     2,
   740         1,     4,     3,     5,     1,     4,     4,     5,     7,     0,
   741         1,     0,     2,     2,     1,     1,     1,     1,     1,     2,
   742         2,     2,     3,     1,     3,     3,     3,     3,     3,     4,
   743         4,     3,     3,     3
   744  };
   745  
   746  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   747     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   748     means the default is an error.  */
   749  static const yytype_uint8 yydefact[] =
   750  {
   751         2,     0,     1,     0,     0,     0,     0,     0,     0,     0,
   752         0,     0,     0,     0,     0,     0,     0,     0,   159,   159,
   753       159,     0,     0,     0,   159,     0,     0,     0,     0,     0,
   754         0,     0,     0,     0,     0,     0,     0,     0,     9,     3,
   755         0,    11,     0,     0,   167,   141,   150,   139,     0,   131,
   756         0,   137,   130,   132,     0,   134,   133,   161,   168,     0,
   757         0,     0,     0,     0,   128,     0,   129,   136,     0,     0,
   758         0,     0,     0,     0,   127,     0,     0,   154,     0,     0,
   759         0,     0,    51,     0,     0,     0,     0,     0,     0,     0,
   760         0,     0,   143,     0,   161,     0,     0,    65,     0,    66,
   761         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   762       160,   159,     0,    83,   160,   159,   159,   112,   107,   117,
   763       159,   159,     0,     0,     0,   124,     0,     0,     8,     0,
   764         0,     0,   106,     0,     0,     0,     0,     0,     0,     0,
   765         0,     4,     0,     0,    10,   170,   169,     0,     0,     0,
   766         0,     0,     0,     0,     0,     0,   173,     0,   146,   145,
   767       149,   171,     0,     0,     0,     0,     0,     0,     0,     0,
   768         0,     0,     0,     0,     0,     0,     0,     0,     0,   149,
   769         0,     0,     0,     0,     0,     0,   126,     0,    68,    69,
   770         0,     0,     0,     0,     0,     0,   147,     0,     0,     0,
   771         0,     0,     0,     0,     0,   160,    82,     0,   110,   111,
   772       108,   109,   114,   113,     0,     0,     0,     0,     0,     0,
   773         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   774         0,     0,     0,     0,     0,     0,   161,   162,   163,     0,
   775         0,   152,     0,     0,     0,     0,     0,     0,     0,     0,
   776         0,     0,   172,    12,    62,    38,    64,    37,     0,    25,
   777        24,    61,    59,    60,    58,    30,    33,    31,     0,    29,
   778        28,    63,    57,    54,     0,    53,    34,    14,    13,   165,
   779       164,   166,     0,     0,    15,    27,    26,    17,    16,    50,
   780        45,   127,    47,   127,    49,   127,    42,     0,   127,    43,
   781       127,    90,    91,    55,   143,     0,    67,     0,    71,    72,
   782         0,    74,    75,     0,     0,   148,    21,    23,    22,    20,
   783        19,    18,    84,    88,    85,     0,    80,    81,   118,     0,
   784         0,   115,   116,   100,     0,     0,   102,   105,   104,     0,
   785         0,    99,    98,    35,     0,     5,     6,     7,   151,   142,
   786       140,   135,     0,     0,     0,   183,   182,   181,     0,     0,
   787       174,   175,   176,   177,   178,     0,     0,     0,   155,   156,
   788         0,     0,     0,     0,     0,     0,     0,     0,     0,    70,
   789         0,     0,     0,   125,     0,     0,     0,     0,     0,     0,
   790         0,     0,     0,     0,     0,   157,   153,   179,   180,   131,
   791        36,    32,     0,    44,    46,    48,    41,    39,    40,    92,
   792        93,    56,    73,    76,     0,    77,    78,    89,    86,     0,
   793       119,     0,   122,   123,   121,   101,   103,     0,     0,     0,
   794         0,     0,    52,     0,   138,     0,     0,     0,     0,     0,
   795         0,     0,     0,     0,   158,    79,    87,   120,    97,    96,
   796       144,    95,    94
   797  };
   798  
   799  /* YYDEFGOTO[NTERM-NUM].  */
   800  static const yytype_int16 yydefgoto[] =
   801  {
   802        -1,     1,    39,   229,    40,    97,    62,    63,    64,    65,
   803        66,    67,    68,    69,   276,    70,    71,    91,   427,    72,
   804       103,    73,    74,    75,   159,    77,   113,   154,   283,   156,
   805       157
   806  };
   807  
   808  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   809     STATE-NUM.  */
   810  #define YYPACT_NINF -176
   811  static const yytype_int16 yypact[] =
   812  {
   813      -176,   464,  -176,   -63,   560,   637,    97,    97,   -24,   -24,
   814        97,   556,   317,   618,    12,    12,    12,    12,   -27,    47,
   815       -47,   -29,   725,   725,   -47,   -26,   -26,   -43,   -17,    97,
   816       -17,   -23,   -24,   658,   -26,    97,    51,   -11,  -176,  -176,
   817        -2,  -176,   556,   556,  -176,  -176,  -176,  -176,    -1,     2,
   818        11,  -176,  -176,  -176,    24,  -176,  -176,    91,  -176,    26,
   819       716,   556,    57,    65,  -176,    85,  -176,  -176,    92,    98,
   820       104,   110,   119,   134,  -176,   155,   160,  -176,    69,   162,
   821       165,   170,   172,   176,   556,   179,   180,   182,   183,   185,
   822       556,   187,  -176,     2,    91,   736,   326,  -176,   196,  -176,
   823        52,     6,   197,   198,   202,   203,   215,   216,   217,   222,
   824      -176,   223,   235,  -176,    73,   -47,   -47,  -176,  -176,  -176,
   825       -47,   -47,   239,    79,   178,  -176,   240,   246,  -176,    97,
   826       247,   248,  -176,   252,   253,   255,   262,   263,   266,   267,
   827       268,  -176,   556,   556,  -176,  -176,  -176,   556,   556,   556,
   828       556,   193,   556,   556,   166,     9,  -176,   278,  -176,  -176,
   829        69,  -176,   607,    97,    97,   109,    20,   683,    61,    97,
   830        27,    97,    97,   340,   637,    97,    97,    97,    97,  -176,
   831        97,    97,   -24,    97,   -24,   556,   166,   326,  -176,  -176,
   832       199,   152,   742,   762,   153,   283,  -176,   696,    12,    12,
   833        12,    12,    12,    12,    12,    97,  -176,    97,  -176,  -176,
   834      -176,  -176,  -176,  -176,   382,     4,   556,   -26,   725,   -24,
   835        72,   -17,    97,    97,    97,   725,    97,   556,    97,   527,
   836       436,   567,   274,   276,   277,   279,   154,  -176,  -176,     4,
   837        97,  -176,   556,   556,   556,   353,   339,   556,   556,   556,
   838       556,   556,  -176,  -176,  -176,  -176,  -176,  -176,   284,  -176,
   839      -176,  -176,  -176,  -176,  -176,  -176,  -176,  -176,   295,  -176,
   840      -176,  -176,  -176,  -176,   303,  -176,  -176,  -176,  -176,  -176,
   841      -176,  -176,   304,   308,  -176,  -176,  -176,  -176,  -176,  -176,
   842      -176,   305,  -176,   316,  -176,   323,  -176,   325,   333,  -176,
   843       334,   335,   336,  -176,   343,   342,  -176,   326,  -176,  -176,
   844       326,  -176,  -176,   139,   344,  -176,  -176,  -176,  -176,  -176,
   845      -176,  -176,  -176,   345,   348,   349,  -176,  -176,  -176,   354,
   846       355,  -176,  -176,  -176,   356,   357,  -176,  -176,  -176,   360,
   847       373,  -176,  -176,  -176,   374,  -176,  -176,  -176,  -176,  -176,
   848      -176,  -176,   327,   377,   379,   298,   612,   506,   556,   556,
   849       125,   125,  -176,  -176,  -176,   405,   410,   556,  -176,  -176,
   850        97,    97,    97,    97,    97,    97,    -8,    -8,   556,  -176,
   851       385,   388,   782,  -176,    -8,    12,    12,   -26,   381,    97,
   852       -17,   382,   382,    97,   429,  -176,  -176,   498,   498,  -176,
   853      -176,  -176,   390,  -176,  -176,  -176,  -176,  -176,  -176,  -176,
   854      -176,  -176,  -176,  -176,   326,  -176,  -176,  -176,  -176,   393,
   855       462,   712,  -176,  -176,  -176,  -176,  -176,   398,   399,   416,
   856       419,   426,  -176,   451,  -176,   454,    12,   556,   328,    97,
   857        97,   556,    97,    97,  -176,  -176,  -176,  -176,  -176,  -176,
   858      -176,  -176,  -176
   859  };
   860  
   861  /* YYPGOTO[NTERM-NUM].  */
   862  static const yytype_int16 yypgoto[] =
   863  {
   864      -176,  -176,   306,  -176,  -176,   -88,    -5,   -73,  -176,  -154,
   865      -176,  -176,  -137,  -158,  -176,    67,    39,  -175,   141,   -15,
   866       149,   113,   167,    80,    32,   200,   124,   -83,   299,    35,
   867        70
   868  };
   869  
   870  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   871     positive, shift that token.  If negative, reduce the rule which
   872     number is the opposite.  If zero, do what YYDEFACT says.
   873     If YYTABLE_NINF, syntax error.  */
   874  #define YYTABLE_NINF -1
   875  static const yytype_uint16 yytable[] =
   876  {
   877        79,    82,    83,    85,    87,    89,   120,   188,   255,   267,
   878       303,   186,    41,   111,   115,   195,    46,   240,    48,    46,
   879        46,    48,    48,   191,   131,   256,   133,   135,   137,   110,
   880       140,   271,   128,    45,    42,    43,    76,    81,    93,    78,
   881        78,   279,   280,   281,    99,   105,    92,   100,    78,   110,
   882        60,    98,    84,    84,   129,    84,    47,   123,   123,    50,
   883       129,    45,    44,   143,    47,   138,    93,    50,    78,    46,
   884        46,    48,    48,   144,   196,   274,   147,   145,   146,   148,
   885       102,   106,   107,   108,   109,    80,   116,   241,   149,   254,
   886        46,    47,    48,   104,    50,   160,   161,   151,    58,   152,
   887       153,   150,    45,    90,   308,   311,    61,    93,   130,   208,
   888       132,   134,    54,    55,   305,    56,    46,    47,    48,   179,
   889        50,    86,    88,   114,   141,   142,    84,   189,   193,   194,
   890       190,   112,   117,   162,   121,   249,   250,   251,   126,   127,
   891        46,   163,    48,   118,   119,   136,   173,   139,   125,   129,
   892        45,    84,    46,   352,    48,    93,   215,   253,   261,   262,
   893       263,   164,   152,   153,   273,   275,   277,   278,   165,   284,
   894       287,   288,   289,   290,   166,   292,   294,   296,   299,   301,
   895       167,   209,   232,   233,   234,   235,   168,   237,   238,   216,
   896       279,   280,   281,   314,   260,   169,    46,    78,    48,   270,
   897       236,   257,    78,   411,   264,   266,   286,   272,   401,    78,
   898       170,   400,   230,   231,   333,   382,   194,   338,   339,   340,
   899       304,   342,   122,   124,   309,   312,   155,   190,   313,   318,
   900       306,   171,    78,   265,   380,   206,   172,   381,   174,   210,
   901       211,   175,   259,   239,   212,   213,   176,   269,   177,   329,
   902       332,   330,   178,    78,   285,   180,   181,   341,   182,   183,
   903        78,   184,   343,   185,   316,   319,   320,   321,   322,   323,
   904       324,   325,   192,   197,   198,   258,   194,   317,   199,   200,
   905       268,   242,   243,   244,   245,   246,   247,   248,   249,   250,
   906       251,   201,   202,   203,   415,   297,   155,   302,   204,   205,
   907       336,   337,   243,   244,   245,   246,   247,   248,   249,   250,
   908       251,   207,   355,   356,   357,   214,   217,   360,   361,   362,
   909       363,   364,   218,   219,   220,    42,    43,   328,   221,   222,
   910       331,   223,   334,   335,    42,    43,    42,    43,   224,   225,
   911       282,   435,   226,   227,   228,   291,   359,   293,   295,   298,
   912       300,   315,   348,    44,   349,   350,   252,   351,    45,   358,
   913       365,   282,    44,    93,    44,   403,   404,   405,   406,   407,
   914       408,   366,   326,   422,   327,    52,    53,   279,   280,   281,
   915       367,   370,   368,    46,   425,    48,   369,    94,   432,    58,
   916        42,    43,   371,    95,    96,   344,   315,    61,    58,   372,
   917        58,   373,   402,    90,   394,    90,    61,   354,    61,   374,
   918       375,   376,   377,    92,   416,   409,   410,   190,    44,   378,
   919       379,   384,   383,   417,   385,   386,   429,   429,   397,   398,
   920       387,   388,   389,   390,   448,   449,   391,   451,   452,   242,
   921       243,   244,   245,   246,   247,   248,   249,   250,   251,   392,
   922       393,   399,   418,   419,    58,   395,   160,   396,    51,    90,
   923       421,    84,    61,   412,     2,     3,   413,   433,   434,   436,
   924       426,   437,   447,   146,   439,   440,   450,     4,     5,     6,
   925         7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
   926        17,    18,   441,    19,    20,   442,    21,    22,    23,    24,
   927       420,   424,   443,   446,   428,   431,   247,   248,   249,   250,
   928       251,   346,   245,   246,   247,   248,   249,   250,   251,    25,
   929        26,    27,    28,    29,    30,    31,    32,    33,     3,   444,
   930        34,    35,   445,   430,    36,   345,    37,   423,   353,    38,
   931         4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
   932        14,    15,    16,    17,    18,     0,    19,    20,     0,    21,
   933        22,    23,    24,     0,    42,    43,     0,     0,    42,    43,
   934       242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
   935         0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
   936        33,     0,    44,    34,    35,     0,    44,    36,     0,    37,
   937         0,    45,    38,    46,    47,    48,    49,    50,    51,    52,
   938        53,    54,    55,     0,    56,    42,    43,   244,   245,   246,
   939       247,   248,   249,   250,   251,     0,    42,    43,    58,     0,
   940        57,     0,    58,    90,     0,     0,    61,    59,     0,    60,
   941        61,     0,   347,    44,     0,    42,    43,     0,    45,     0,
   942        46,     0,    48,    49,    44,     0,    52,    53,    54,    55,
   943         0,    56,    47,     0,     0,    50,    42,    43,     0,     0,
   944         0,     0,     0,    44,     0,     0,     0,    57,     0,    58,
   945        46,     0,    48,     0,    59,     0,    84,    61,    57,     0,
   946        58,    42,    43,     0,    44,    59,     0,   101,    61,     0,
   947         0,    46,     0,    48,    42,    43,     0,    57,     0,    58,
   948         0,     0,     0,     0,    59,     0,     0,    61,     0,    44,
   949        42,   438,     0,     0,    42,    43,     0,     0,    57,     0,
   950        58,    51,    44,    42,    43,    90,     0,     0,    61,     0,
   951        47,     0,     0,    50,    42,    43,     0,     0,    44,     0,
   952        42,    43,    44,    57,     0,    58,     0,     0,     0,     0,
   953        59,    44,    84,    61,     0,     0,    57,     0,    58,     0,
   954        42,    43,    44,    59,     0,     0,    61,     0,    44,     0,
   955       196,   158,    57,     0,    58,   158,    57,     0,    58,    90,
   956        42,    43,    61,    90,     0,    57,    61,    58,    44,     0,
   957         0,     0,    90,     0,     0,    61,    94,     0,    58,     0,
   958         0,     0,    94,   187,    58,     0,    61,     0,    44,   307,
   959         0,     0,    61,     0,     0,     0,     0,     0,     0,     0,
   960         0,     0,    94,     0,    58,     0,     0,     0,     0,   310,
   961         0,     0,    61,     0,     0,     0,     0,     0,     0,     0,
   962         0,     0,    94,     0,    58,     0,     0,     0,     0,   414,
   963         0,     0,    61
   964  };
   965  
   966  static const yytype_int16 yycheck[] =
   967  {
   968         5,     6,     7,     8,     9,    10,    21,    95,   162,   167,
   969       185,    94,    75,    18,    19,     9,    43,     8,    45,    43,
   970        43,    45,    45,    96,    29,   162,    31,    32,    33,    76,
   971        35,   168,    75,    41,     8,     9,     4,     5,    46,     4,
   972         5,    37,    38,    39,    12,    13,    11,    12,    13,    76,
   973        79,    12,    79,    79,    77,    79,    44,    22,    23,    47,
   974        77,    41,    36,    74,    44,    33,    46,    47,    33,    43,
   975        43,    45,    45,    75,    68,    48,    77,    42,    43,    77,
   976        13,    14,    15,    16,    17,     5,    19,    78,    77,   162,
   977        43,    44,    45,    13,    47,    60,    61,     6,    72,     8,
   978         9,    77,    41,    77,   192,   193,    80,    46,    28,   114,
   979        30,    31,    51,    52,   187,    54,    43,    44,    45,    84,
   980        47,     8,     9,    76,    73,    74,    79,    95,    76,    77,
   981        95,    18,    19,    76,    21,    10,    11,    12,    25,    26,
   982        43,    76,    45,    19,    20,    32,    77,    34,    24,    77,
   983        41,    79,    43,   236,    45,    46,    77,   162,   163,   164,
   984       165,    76,     8,     9,   169,   170,   171,   172,    76,   174,
   985       175,   176,   177,   178,    76,   180,   181,   182,   183,   184,
   986        76,   114,   147,   148,   149,   150,    76,   152,   153,    11,
   987        37,    38,    39,    40,   162,    76,    43,   162,    45,   167,
   988         7,   162,   167,   378,   165,   166,   174,   168,   366,   174,
   989        76,   365,   142,   143,   219,    76,    77,   222,   223,   224,
   990       185,   226,    22,    23,   192,   193,    59,   192,   193,   197,
   991        78,    76,   197,   166,   307,   111,    76,   310,    76,   115,
   992       116,    76,   162,    77,   120,   121,    76,   167,    76,   214,
   993       218,   216,    76,   218,   174,    76,    76,   225,    76,    76,
   994       225,    76,   227,    76,   197,   198,   199,   200,   201,   202,
   995       203,   204,    76,    76,    76,   162,    77,   197,    76,    76,
   996       167,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   997        12,    76,    76,    76,   382,   182,   129,   184,    76,    76,
   998       220,   221,     4,     5,     6,     7,     8,     9,    10,    11,
   999        12,    76,   242,   243,   244,    76,    76,   247,   248,   249,
  1000       250,   251,    76,    76,    76,     8,     9,   214,    76,    76,
  1001       217,    76,   219,   220,     8,     9,     8,     9,    76,    76,
  1002       173,   414,    76,    76,    76,   178,     7,   180,   181,   182,
  1003       183,    68,    78,    36,    78,    78,    78,    78,    41,     6,
  1004        76,   194,    36,    46,    36,   370,   371,   372,   373,   374,
  1005       375,    76,   205,   388,   207,    49,    50,    37,    38,    39,
  1006        77,    76,    78,    43,   389,    45,    78,    70,   393,    72,
  1007         8,     9,    76,    76,    77,   228,    68,    80,    72,    76,
  1008        72,    76,   367,    77,    77,    77,    80,   240,    80,    76,
  1009        76,    76,    76,   378,   382,   376,   377,   382,    36,    76,
  1010        78,    76,    78,   384,    76,    76,   391,   392,   358,   359,
  1011        76,    76,    76,    76,   439,   440,    76,   442,   443,     3,
  1012         4,     5,     6,     7,     8,     9,    10,    11,    12,    76,
  1013        76,    46,   385,   386,    72,    78,   421,    78,    48,    77,
  1014        79,    79,    80,    78,     0,     1,    78,    38,    78,    76,
  1015       390,     9,   437,   438,    76,    76,   441,    13,    14,    15,
  1016        16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  1017        26,    27,    76,    29,    30,    76,    32,    33,    34,    35,
  1018       387,   388,    76,   436,   391,   392,     8,     9,    10,    11,
  1019        12,    75,     6,     7,     8,     9,    10,    11,    12,    55,
  1020        56,    57,    58,    59,    60,    61,    62,    63,     1,    78,
  1021        66,    67,    78,   392,    70,   229,    72,   388,   239,    75,
  1022        13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
  1023        23,    24,    25,    26,    27,    -1,    29,    30,    -1,    32,
  1024        33,    34,    35,    -1,     8,     9,    -1,    -1,     8,     9,
  1025         3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
  1026        -1,    -1,    55,    56,    57,    58,    59,    60,    61,    62,
  1027        63,    -1,    36,    66,    67,    -1,    36,    70,    -1,    72,
  1028        -1,    41,    75,    43,    44,    45,    46,    47,    48,    49,
  1029        50,    51,    52,    -1,    54,     8,     9,     5,     6,     7,
  1030         8,     9,    10,    11,    12,    -1,     8,     9,    72,    -1,
  1031        70,    -1,    72,    77,    -1,    -1,    80,    77,    -1,    79,
  1032        80,    -1,    75,    36,    -1,     8,     9,    -1,    41,    -1,
  1033        43,    -1,    45,    46,    36,    -1,    49,    50,    51,    52,
  1034        -1,    54,    44,    -1,    -1,    47,     8,     9,    -1,    -1,
  1035        -1,    -1,    -1,    36,    -1,    -1,    -1,    70,    -1,    72,
  1036        43,    -1,    45,    -1,    77,    -1,    79,    80,    70,    -1,
  1037        72,     8,     9,    -1,    36,    77,    -1,    79,    80,    -1,
  1038        -1,    43,    -1,    45,     8,     9,    -1,    70,    -1,    72,
  1039        -1,    -1,    -1,    -1,    77,    -1,    -1,    80,    -1,    36,
  1040         8,     9,    -1,    -1,     8,     9,    -1,    -1,    70,    -1,
  1041        72,    48,    36,     8,     9,    77,    -1,    -1,    80,    -1,
  1042        44,    -1,    -1,    47,     8,     9,    -1,    -1,    36,    -1,
  1043         8,     9,    36,    70,    -1,    72,    -1,    -1,    -1,    -1,
  1044        77,    36,    79,    80,    -1,    -1,    70,    -1,    72,    -1,
  1045         8,     9,    36,    77,    -1,    -1,    80,    -1,    36,    -1,
  1046        68,    69,    70,    -1,    72,    69,    70,    -1,    72,    77,
  1047         8,     9,    80,    77,    -1,    70,    80,    72,    36,    -1,
  1048        -1,    -1,    77,    -1,    -1,    80,    70,    -1,    72,    -1,
  1049        -1,    -1,    70,    77,    72,    -1,    80,    -1,    36,    77,
  1050        -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1051        -1,    -1,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,
  1052        -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1053        -1,    -1,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,
  1054        -1,    -1,    80
  1055  };
  1056  
  1057  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
  1058     symbol of state STATE-NUM.  */
  1059  static const yytype_uint8 yystos[] =
  1060  {
  1061         0,    82,     0,     1,    13,    14,    15,    16,    17,    18,
  1062        19,    20,    21,    22,    23,    24,    25,    26,    27,    29,
  1063        30,    32,    33,    34,    35,    55,    56,    57,    58,    59,
  1064        60,    61,    62,    63,    66,    67,    70,    72,    75,    83,
  1065        85,    75,     8,     9,    36,    41,    43,    44,    45,    46,
  1066        47,    48,    49,    50,    51,    52,    54,    70,    72,    77,
  1067        79,    80,    87,    88,    89,    90,    91,    92,    93,    94,
  1068        96,    97,   100,   102,   103,   104,   105,   106,   110,    87,
  1069       104,   105,    87,    87,    79,    87,   102,    87,   102,    87,
  1070        77,    98,   110,    46,    70,    76,    77,    86,    97,   105,
  1071       110,    79,    96,   101,   104,   105,    96,    96,    96,    96,
  1072        76,    87,   102,   107,    76,    87,    96,   102,   107,   107,
  1073       100,   102,   106,   110,   106,   107,   102,   102,    75,    77,
  1074       104,    87,   104,    87,   104,    87,   102,    87,   105,   102,
  1075        87,    73,    74,    74,    75,   110,   110,    77,    77,    77,
  1076        77,     6,     8,     9,   108,   103,   110,   111,    69,   105,
  1077       110,   110,    76,    76,    76,    76,    76,    76,    76,    76,
  1078        76,    76,    76,    77,    76,    76,    76,    76,    76,   110,
  1079        76,    76,    76,    76,    76,    76,   108,    77,    86,   105,
  1080       110,    88,    76,    76,    77,     9,    68,    76,    76,    76,
  1081        76,    76,    76,    76,    76,    76,   107,    76,    87,    96,
  1082       107,   107,   107,   107,    76,    77,    11,    76,    76,    76,
  1083        76,    76,    76,    76,    76,    76,    76,    76,    76,    84,
  1084       111,   111,   110,   110,   110,   110,     7,   110,   110,    77,
  1085         8,    78,     3,     4,     5,     6,     7,     8,     9,    10,
  1086        11,    12,    78,    87,    88,    90,    93,    97,   102,   104,
  1087       105,    87,    87,    87,    97,    96,    97,    94,   102,   104,
  1088       105,    93,    97,    87,    48,    87,    95,    87,    87,    37,
  1089        38,    39,   103,   109,    87,   104,   105,    87,    87,    87,
  1090        87,   103,    87,   103,    87,   103,    87,   102,   103,    87,
  1091       103,    87,   102,    98,   110,    88,    78,    77,    86,   105,
  1092        77,    86,   105,   110,    40,    68,    96,   104,   105,    96,
  1093        96,    96,    96,    96,    96,    96,   103,   103,   102,   110,
  1094       110,   102,   105,    87,   102,   102,   104,   104,    87,    87,
  1095        87,   105,    87,   110,   103,    83,    75,    75,    78,    78,
  1096        78,    78,   108,   109,   103,   111,   111,   111,     6,     7,
  1097       111,   111,   111,   111,   111,    76,    76,    77,    78,    78,
  1098        76,    76,    76,    76,    76,    76,    76,    76,    76,    78,
  1099        88,    88,    76,    78,    76,    76,    76,    76,    76,    76,
  1100        76,    76,    76,    76,    77,    78,    78,   111,   111,    46,
  1101        90,    94,   110,    87,    87,    87,    87,    87,    87,    97,
  1102        97,    98,    78,    78,    77,    86,   105,    97,    96,    96,
  1103       102,    79,   100,   101,   102,    87,   104,    99,   102,   110,
  1104        99,   102,    87,    38,    78,    88,    76,     9,     9,    76,
  1105        76,    76,    76,    76,    78,    78,    96,   110,    87,    87,
  1106       110,    87,    87
  1107  };
  1108  
  1109  #define yyerrok		(yyerrstatus = 0)
  1110  #define yyclearin	(yychar = YYEMPTY)
  1111  #define YYEMPTY		(-2)
  1112  #define YYEOF		0
  1113  
  1114  #define YYACCEPT	goto yyacceptlab
  1115  #define YYABORT		goto yyabortlab
  1116  #define YYERROR		goto yyerrorlab
  1117  
  1118  
  1119  /* Like YYERROR except do call yyerror.  This remains here temporarily
  1120     to ease the transition to the new meaning of YYERROR, for GCC.
  1121     Once GCC version 2 has supplanted version 1, this can go.  */
  1122  
  1123  #define YYFAIL		goto yyerrlab
  1124  
  1125  #define YYRECOVERING()  (!!yyerrstatus)
  1126  
  1127  #define YYBACKUP(Token, Value)					\
  1128  do								\
  1129    if (yychar == YYEMPTY && yylen == 1)				\
  1130      {								\
  1131        yychar = (Token);						\
  1132        yylval = (Value);						\
  1133        yytoken = YYTRANSLATE (yychar);				\
  1134        YYPOPSTACK (1);						\
  1135        goto yybackup;						\
  1136      }								\
  1137    else								\
  1138      {								\
  1139        yyerror (YY_("syntax error: cannot back up")); \
  1140        YYERROR;							\
  1141      }								\
  1142  while (YYID (0))
  1143  
  1144  
  1145  #define YYTERROR	1
  1146  #define YYERRCODE	256
  1147  
  1148  
  1149  /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
  1150     If N is 0, then set CURRENT to the empty location which ends
  1151     the previous symbol: RHS[0] (always defined).  */
  1152  
  1153  #define YYRHSLOC(Rhs, K) ((Rhs)[K])
  1154  #ifndef YYLLOC_DEFAULT
  1155  # define YYLLOC_DEFAULT(Current, Rhs, N)				\
  1156      do									\
  1157        if (YYID (N))                                                    \
  1158  	{								\
  1159  	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
  1160  	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
  1161  	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
  1162  	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
  1163  	}								\
  1164        else								\
  1165  	{								\
  1166  	  (Current).first_line   = (Current).last_line   =		\
  1167  	    YYRHSLOC (Rhs, 0).last_line;				\
  1168  	  (Current).first_column = (Current).last_column =		\
  1169  	    YYRHSLOC (Rhs, 0).last_column;				\
  1170  	}								\
  1171      while (YYID (0))
  1172  #endif
  1173  
  1174  
  1175  /* YY_LOCATION_PRINT -- Print the location on the stream.
  1176     This macro was not mandated originally: define only if we know
  1177     we won't break user code: when these are the locations we know.  */
  1178  
  1179  #ifndef YY_LOCATION_PRINT
  1180  # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
  1181  #  define YY_LOCATION_PRINT(File, Loc)			\
  1182       fprintf (File, "%d.%d-%d.%d",			\
  1183  	      (Loc).first_line, (Loc).first_column,	\
  1184  	      (Loc).last_line,  (Loc).last_column)
  1185  # else
  1186  #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
  1187  # endif
  1188  #endif
  1189  
  1190  
  1191  /* YYLEX -- calling `yylex' with the right arguments.  */
  1192  
  1193  #ifdef YYLEX_PARAM
  1194  # define YYLEX yylex (YYLEX_PARAM)
  1195  #else
  1196  # define YYLEX yylex ()
  1197  #endif
  1198  
  1199  /* Enable debugging if requested.  */
  1200  #if YYDEBUG
  1201  
  1202  # ifndef YYFPRINTF
  1203  #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
  1204  #  define YYFPRINTF fprintf
  1205  # endif
  1206  
  1207  # define YYDPRINTF(Args)			\
  1208  do {						\
  1209    if (yydebug)					\
  1210      YYFPRINTF Args;				\
  1211  } while (YYID (0))
  1212  
  1213  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
  1214  do {									  \
  1215    if (yydebug)								  \
  1216      {									  \
  1217        YYFPRINTF (stderr, "%s ", Title);					  \
  1218        yy_symbol_print (stderr,						  \
  1219  		  Type, Value); \
  1220        YYFPRINTF (stderr, "\n");						  \
  1221      }									  \
  1222  } while (YYID (0))
  1223  
  1224  
  1225  /*--------------------------------.
  1226  | Print this symbol on YYOUTPUT.  |
  1227  `--------------------------------*/
  1228  
  1229  /*ARGSUSED*/
  1230  #if (defined __STDC__ || defined __C99__FUNC__ \
  1231       || defined __cplusplus || defined _MSC_VER)
  1232  static void
  1233  yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
  1234  #else
  1235  static void
  1236  yy_symbol_value_print (yyoutput, yytype, yyvaluep)
  1237      FILE *yyoutput;
  1238      int yytype;
  1239      YYSTYPE const * const yyvaluep;
  1240  #endif
  1241  {
  1242    if (!yyvaluep)
  1243      return;
  1244  # ifdef YYPRINT
  1245    if (yytype < YYNTOKENS)
  1246      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
  1247  # else
  1248    YYUSE (yyoutput);
  1249  # endif
  1250    switch (yytype)
  1251      {
  1252        default:
  1253  	break;
  1254      }
  1255  }
  1256  
  1257  
  1258  /*--------------------------------.
  1259  | Print this symbol on YYOUTPUT.  |
  1260  `--------------------------------*/
  1261  
  1262  #if (defined __STDC__ || defined __C99__FUNC__ \
  1263       || defined __cplusplus || defined _MSC_VER)
  1264  static void
  1265  yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
  1266  #else
  1267  static void
  1268  yy_symbol_print (yyoutput, yytype, yyvaluep)
  1269      FILE *yyoutput;
  1270      int yytype;
  1271      YYSTYPE const * const yyvaluep;
  1272  #endif
  1273  {
  1274    if (yytype < YYNTOKENS)
  1275      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  1276    else
  1277      YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
  1278  
  1279    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
  1280    YYFPRINTF (yyoutput, ")");
  1281  }
  1282  
  1283  /*------------------------------------------------------------------.
  1284  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
  1285  | TOP (included).                                                   |
  1286  `------------------------------------------------------------------*/
  1287  
  1288  #if (defined __STDC__ || defined __C99__FUNC__ \
  1289       || defined __cplusplus || defined _MSC_VER)
  1290  static void
  1291  yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
  1292  #else
  1293  static void
  1294  yy_stack_print (bottom, top)
  1295      yytype_int16 *bottom;
  1296      yytype_int16 *top;
  1297  #endif
  1298  {
  1299    YYFPRINTF (stderr, "Stack now");
  1300    for (; bottom <= top; ++bottom)
  1301      YYFPRINTF (stderr, " %d", *bottom);
  1302    YYFPRINTF (stderr, "\n");
  1303  }
  1304  
  1305  # define YY_STACK_PRINT(Bottom, Top)				\
  1306  do {								\
  1307    if (yydebug)							\
  1308      yy_stack_print ((Bottom), (Top));				\
  1309  } while (YYID (0))
  1310  
  1311  
  1312  /*------------------------------------------------.
  1313  | Report that the YYRULE is going to be reduced.  |
  1314  `------------------------------------------------*/
  1315  
  1316  #if (defined __STDC__ || defined __C99__FUNC__ \
  1317       || defined __cplusplus || defined _MSC_VER)
  1318  static void
  1319  yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
  1320  #else
  1321  static void
  1322  yy_reduce_print (yyvsp, yyrule)
  1323      YYSTYPE *yyvsp;
  1324      int yyrule;
  1325  #endif
  1326  {
  1327    int yynrhs = yyr2[yyrule];
  1328    int yyi;
  1329    unsigned long int yylno = yyrline[yyrule];
  1330    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
  1331  	     yyrule - 1, yylno);
  1332    /* The symbols being reduced.  */
  1333    for (yyi = 0; yyi < yynrhs; yyi++)
  1334      {
  1335        fprintf (stderr, "   $%d = ", yyi + 1);
  1336        yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
  1337  		       &(yyvsp[(yyi + 1) - (yynrhs)])
  1338  		       		       );
  1339        fprintf (stderr, "\n");
  1340      }
  1341  }
  1342  
  1343  # define YY_REDUCE_PRINT(Rule)		\
  1344  do {					\
  1345    if (yydebug)				\
  1346      yy_reduce_print (yyvsp, Rule); \
  1347  } while (YYID (0))
  1348  
  1349  /* Nonzero means print parse trace.  It is left uninitialized so that
  1350     multiple parsers can coexist.  */
  1351  int yydebug;
  1352  #else /* !YYDEBUG */
  1353  # define YYDPRINTF(Args)
  1354  # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
  1355  # define YY_STACK_PRINT(Bottom, Top)
  1356  # define YY_REDUCE_PRINT(Rule)
  1357  #endif /* !YYDEBUG */
  1358  
  1359  
  1360  /* YYINITDEPTH -- initial size of the parser's stacks.  */
  1361  #ifndef	YYINITDEPTH
  1362  # define YYINITDEPTH 200
  1363  #endif
  1364  
  1365  /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
  1366     if the built-in stack extension method is used).
  1367  
  1368     Do not make this value too large; the results are undefined if
  1369     YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
  1370     evaluated with infinite-precision integer arithmetic.  */
  1371  
  1372  #ifndef YYMAXDEPTH
  1373  # define YYMAXDEPTH 10000
  1374  #endif
  1375  
  1376  
  1377  
  1378  #if YYERROR_VERBOSE
  1379  
  1380  # ifndef yystrlen
  1381  #  if defined __GLIBC__ && defined _STRING_H
  1382  #   define yystrlen strlen
  1383  #  else
  1384  /* Return the length of YYSTR.  */
  1385  #if (defined __STDC__ || defined __C99__FUNC__ \
  1386       || defined __cplusplus || defined _MSC_VER)
  1387  static YYSIZE_T
  1388  yystrlen (const char *yystr)
  1389  #else
  1390  static YYSIZE_T
  1391  yystrlen (yystr)
  1392      const char *yystr;
  1393  #endif
  1394  {
  1395    YYSIZE_T yylen;
  1396    for (yylen = 0; yystr[yylen]; yylen++)
  1397      continue;
  1398    return yylen;
  1399  }
  1400  #  endif
  1401  # endif
  1402  
  1403  # ifndef yystpcpy
  1404  #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
  1405  #   define yystpcpy stpcpy
  1406  #  else
  1407  /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
  1408     YYDEST.  */
  1409  #if (defined __STDC__ || defined __C99__FUNC__ \
  1410       || defined __cplusplus || defined _MSC_VER)
  1411  static char *
  1412  yystpcpy (char *yydest, const char *yysrc)
  1413  #else
  1414  static char *
  1415  yystpcpy (yydest, yysrc)
  1416      char *yydest;
  1417      const char *yysrc;
  1418  #endif
  1419  {
  1420    char *yyd = yydest;
  1421    const char *yys = yysrc;
  1422  
  1423    while ((*yyd++ = *yys++) != '\0')
  1424      continue;
  1425  
  1426    return yyd - 1;
  1427  }
  1428  #  endif
  1429  # endif
  1430  
  1431  # ifndef yytnamerr
  1432  /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
  1433     quotes and backslashes, so that it's suitable for yyerror.  The
  1434     heuristic is that double-quoting is unnecessary unless the string
  1435     contains an apostrophe, a comma, or backslash (other than
  1436     backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
  1437     null, do not copy; instead, return the length of what the result
  1438     would have been.  */
  1439  static YYSIZE_T
  1440  yytnamerr (char *yyres, const char *yystr)
  1441  {
  1442    if (*yystr == '"')
  1443      {
  1444        YYSIZE_T yyn = 0;
  1445        char const *yyp = yystr;
  1446  
  1447        for (;;)
  1448  	switch (*++yyp)
  1449  	  {
  1450  	  case '\'':
  1451  	  case ',':
  1452  	    goto do_not_strip_quotes;
  1453  
  1454  	  case '\\':
  1455  	    if (*++yyp != '\\')
  1456  	      goto do_not_strip_quotes;
  1457  	    /* Fall through.  */
  1458  	  default:
  1459  	    if (yyres)
  1460  	      yyres[yyn] = *yyp;
  1461  	    yyn++;
  1462  	    break;
  1463  
  1464  	  case '"':
  1465  	    if (yyres)
  1466  	      yyres[yyn] = '\0';
  1467  	    return yyn;
  1468  	  }
  1469      do_not_strip_quotes: ;
  1470      }
  1471  
  1472    if (! yyres)
  1473      return yystrlen (yystr);
  1474  
  1475    return yystpcpy (yyres, yystr) - yyres;
  1476  }
  1477  # endif
  1478  
  1479  /* Copy into YYRESULT an error message about the unexpected token
  1480     YYCHAR while in state YYSTATE.  Return the number of bytes copied,
  1481     including the terminating null byte.  If YYRESULT is null, do not
  1482     copy anything; just return the number of bytes that would be
  1483     copied.  As a special case, return 0 if an ordinary "syntax error"
  1484     message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
  1485     size calculation.  */
  1486  static YYSIZE_T
  1487  yysyntax_error (char *yyresult, int yystate, int yychar)
  1488  {
  1489    int yyn = yypact[yystate];
  1490  
  1491    if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
  1492      return 0;
  1493    else
  1494      {
  1495        int yytype = YYTRANSLATE (yychar);
  1496        YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
  1497        YYSIZE_T yysize = yysize0;
  1498        YYSIZE_T yysize1;
  1499        int yysize_overflow = 0;
  1500        enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  1501        char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  1502        int yyx;
  1503  
  1504  # if 0
  1505        /* This is so xgettext sees the translatable formats that are
  1506  	 constructed on the fly.  */
  1507        YY_("syntax error, unexpected %s");
  1508        YY_("syntax error, unexpected %s, expecting %s");
  1509        YY_("syntax error, unexpected %s, expecting %s or %s");
  1510        YY_("syntax error, unexpected %s, expecting %s or %s or %s");
  1511        YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
  1512  # endif
  1513        char *yyfmt;
  1514        char const *yyf;
  1515        static char const yyunexpected[] = "syntax error, unexpected %s";
  1516        static char const yyexpecting[] = ", expecting %s";
  1517        static char const yyor[] = " or %s";
  1518        char yyformat[sizeof yyunexpected
  1519  		    + sizeof yyexpecting - 1
  1520  		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
  1521  		       * (sizeof yyor - 1))];
  1522        char const *yyprefix = yyexpecting;
  1523  
  1524        /* Start YYX at -YYN if negative to avoid negative indexes in
  1525  	 YYCHECK.  */
  1526        int yyxbegin = yyn < 0 ? -yyn : 0;
  1527  
  1528        /* Stay within bounds of both yycheck and yytname.  */
  1529        int yychecklim = YYLAST - yyn + 1;
  1530        int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  1531        int yycount = 1;
  1532  
  1533        yyarg[0] = yytname[yytype];
  1534        yyfmt = yystpcpy (yyformat, yyunexpected);
  1535  
  1536        for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  1537  	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
  1538  	  {
  1539  	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  1540  	      {
  1541  		yycount = 1;
  1542  		yysize = yysize0;
  1543  		yyformat[sizeof yyunexpected - 1] = '\0';
  1544  		break;
  1545  	      }
  1546  	    yyarg[yycount++] = yytname[yyx];
  1547  	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
  1548  	    yysize_overflow |= (yysize1 < yysize);
  1549  	    yysize = yysize1;
  1550  	    yyfmt = yystpcpy (yyfmt, yyprefix);
  1551  	    yyprefix = yyor;
  1552  	  }
  1553  
  1554        yyf = YY_(yyformat);
  1555        yysize1 = yysize + yystrlen (yyf);
  1556        yysize_overflow |= (yysize1 < yysize);
  1557        yysize = yysize1;
  1558  
  1559        if (yysize_overflow)
  1560  	return YYSIZE_MAXIMUM;
  1561  
  1562        if (yyresult)
  1563  	{
  1564  	  /* Avoid sprintf, as that infringes on the user's name space.
  1565  	     Don't have undefined behavior even if the translation
  1566  	     produced a string with the wrong number of "%s"s.  */
  1567  	  char *yyp = yyresult;
  1568  	  int yyi = 0;
  1569  	  while ((*yyp = *yyf) != '\0')
  1570  	    {
  1571  	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
  1572  		{
  1573  		  yyp += yytnamerr (yyp, yyarg[yyi++]);
  1574  		  yyf += 2;
  1575  		}
  1576  	      else
  1577  		{
  1578  		  yyp++;
  1579  		  yyf++;
  1580  		}
  1581  	    }
  1582  	}
  1583        return yysize;
  1584      }
  1585  }
  1586  #endif /* YYERROR_VERBOSE */
  1587  
  1588  
  1589  /*-----------------------------------------------.
  1590  | Release the memory associated to this symbol.  |
  1591  `-----------------------------------------------*/
  1592  
  1593  /*ARGSUSED*/
  1594  #if (defined __STDC__ || defined __C99__FUNC__ \
  1595       || defined __cplusplus || defined _MSC_VER)
  1596  static void
  1597  yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
  1598  #else
  1599  static void
  1600  yydestruct (yymsg, yytype, yyvaluep)
  1601      const char *yymsg;
  1602      int yytype;
  1603      YYSTYPE *yyvaluep;
  1604  #endif
  1605  {
  1606    YYUSE (yyvaluep);
  1607  
  1608    if (!yymsg)
  1609      yymsg = "Deleting";
  1610    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
  1611  
  1612    switch (yytype)
  1613      {
  1614  
  1615        default:
  1616  	break;
  1617      }
  1618  }
  1619  
  1620  
  1621  /* Prevent warnings from -Wmissing-prototypes.  */
  1622  
  1623  #ifdef YYPARSE_PARAM
  1624  #if defined __STDC__ || defined __cplusplus
  1625  int yyparse (void *YYPARSE_PARAM);
  1626  #else
  1627  int yyparse ();
  1628  #endif
  1629  #else /* ! YYPARSE_PARAM */
  1630  #if defined __STDC__ || defined __cplusplus
  1631  int yyparse (void);
  1632  #else
  1633  int yyparse ();
  1634  #endif
  1635  #endif /* ! YYPARSE_PARAM */
  1636  
  1637  
  1638  
  1639  /* The look-ahead symbol.  */
  1640  int yychar;
  1641  
  1642  /* The semantic value of the look-ahead symbol.  */
  1643  YYSTYPE yylval;
  1644  
  1645  /* Number of syntax errors so far.  */
  1646  int yynerrs;
  1647  
  1648  
  1649  
  1650  /*----------.
  1651  | yyparse.  |
  1652  `----------*/
  1653  
  1654  #ifdef YYPARSE_PARAM
  1655  #if (defined __STDC__ || defined __C99__FUNC__ \
  1656       || defined __cplusplus || defined _MSC_VER)
  1657  int
  1658  yyparse (void *YYPARSE_PARAM)
  1659  #else
  1660  int
  1661  yyparse (YYPARSE_PARAM)
  1662      void *YYPARSE_PARAM;
  1663  #endif
  1664  #else /* ! YYPARSE_PARAM */
  1665  #if (defined __STDC__ || defined __C99__FUNC__ \
  1666       || defined __cplusplus || defined _MSC_VER)
  1667  int
  1668  yyparse (void)
  1669  #else
  1670  int
  1671  yyparse ()
  1672  
  1673  #endif
  1674  #endif
  1675  {
  1676    
  1677    int yystate;
  1678    int yyn;
  1679    int yyresult;
  1680    /* Number of tokens to shift before error messages enabled.  */
  1681    int yyerrstatus;
  1682    /* Look-ahead token as an internal (translated) token number.  */
  1683    int yytoken = 0;
  1684  #if YYERROR_VERBOSE
  1685    /* Buffer for error messages, and its allocated size.  */
  1686    char yymsgbuf[128];
  1687    char *yymsg = yymsgbuf;
  1688    YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
  1689  #endif
  1690  
  1691    /* Three stacks and their tools:
  1692       `yyss': related to states,
  1693       `yyvs': related to semantic values,
  1694       `yyls': related to locations.
  1695  
  1696       Refer to the stacks thru separate pointers, to allow yyoverflow
  1697       to reallocate them elsewhere.  */
  1698  
  1699    /* The state stack.  */
  1700    yytype_int16 yyssa[YYINITDEPTH];
  1701    yytype_int16 *yyss = yyssa;
  1702    yytype_int16 *yyssp;
  1703  
  1704    /* The semantic value stack.  */
  1705    YYSTYPE yyvsa[YYINITDEPTH];
  1706    YYSTYPE *yyvs = yyvsa;
  1707    YYSTYPE *yyvsp;
  1708  
  1709  
  1710  
  1711  #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  1712  
  1713    YYSIZE_T yystacksize = YYINITDEPTH;
  1714  
  1715    /* The variables used to return semantic value and location from the
  1716       action routines.  */
  1717    YYSTYPE yyval;
  1718  
  1719  
  1720    /* The number of symbols on the RHS of the reduced rule.
  1721       Keep to zero when no symbol should be popped.  */
  1722    int yylen = 0;
  1723  
  1724    YYDPRINTF ((stderr, "Starting parse\n"));
  1725  
  1726    yystate = 0;
  1727    yyerrstatus = 0;
  1728    yynerrs = 0;
  1729    yychar = YYEMPTY;		/* Cause a token to be read.  */
  1730  
  1731    /* Initialize stack pointers.
  1732       Waste one element of value and location stack
  1733       so that they stay on the same level as the state stack.
  1734       The wasted elements are never initialized.  */
  1735  
  1736    yyssp = yyss;
  1737    yyvsp = yyvs;
  1738  
  1739    goto yysetstate;
  1740  
  1741  /*------------------------------------------------------------.
  1742  | yynewstate -- Push a new state, which is found in yystate.  |
  1743  `------------------------------------------------------------*/
  1744   yynewstate:
  1745    /* In all cases, when you get here, the value and location stacks
  1746       have just been pushed.  So pushing a state here evens the stacks.  */
  1747    yyssp++;
  1748  
  1749   yysetstate:
  1750    *yyssp = yystate;
  1751  
  1752    if (yyss + yystacksize - 1 <= yyssp)
  1753      {
  1754        /* Get the current used size of the three stacks, in elements.  */
  1755        YYSIZE_T yysize = yyssp - yyss + 1;
  1756  
  1757  #ifdef yyoverflow
  1758        {
  1759  	/* Give user a chance to reallocate the stack.  Use copies of
  1760  	   these so that the &'s don't force the real ones into
  1761  	   memory.  */
  1762  	YYSTYPE *yyvs1 = yyvs;
  1763  	yytype_int16 *yyss1 = yyss;
  1764  
  1765  
  1766  	/* Each stack pointer address is followed by the size of the
  1767  	   data in use in that stack, in bytes.  This used to be a
  1768  	   conditional around just the two extra args, but that might
  1769  	   be undefined if yyoverflow is a macro.  */
  1770  	yyoverflow (YY_("memory exhausted"),
  1771  		    &yyss1, yysize * sizeof (*yyssp),
  1772  		    &yyvs1, yysize * sizeof (*yyvsp),
  1773  
  1774  		    &yystacksize);
  1775  
  1776  	yyss = yyss1;
  1777  	yyvs = yyvs1;
  1778        }
  1779  #else /* no yyoverflow */
  1780  # ifndef YYSTACK_RELOCATE
  1781        goto yyexhaustedlab;
  1782  # else
  1783        /* Extend the stack our own way.  */
  1784        if (YYMAXDEPTH <= yystacksize)
  1785  	goto yyexhaustedlab;
  1786        yystacksize *= 2;
  1787        if (YYMAXDEPTH < yystacksize)
  1788  	yystacksize = YYMAXDEPTH;
  1789  
  1790        {
  1791  	yytype_int16 *yyss1 = yyss;
  1792  	union yyalloc *yyptr =
  1793  	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  1794  	if (! yyptr)
  1795  	  goto yyexhaustedlab;
  1796  	YYSTACK_RELOCATE (yyss);
  1797  	YYSTACK_RELOCATE (yyvs);
  1798  
  1799  #  undef YYSTACK_RELOCATE
  1800  	if (yyss1 != yyssa)
  1801  	  YYSTACK_FREE (yyss1);
  1802        }
  1803  # endif
  1804  #endif /* no yyoverflow */
  1805  
  1806        yyssp = yyss + yysize - 1;
  1807        yyvsp = yyvs + yysize - 1;
  1808  
  1809  
  1810        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
  1811  		  (unsigned long int) yystacksize));
  1812  
  1813        if (yyss + yystacksize - 1 <= yyssp)
  1814  	YYABORT;
  1815      }
  1816  
  1817    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  1818  
  1819    goto yybackup;
  1820  
  1821  /*-----------.
  1822  | yybackup.  |
  1823  `-----------*/
  1824  yybackup:
  1825  
  1826    /* Do appropriate processing given the current state.  Read a
  1827       look-ahead token if we need one and don't already have one.  */
  1828  
  1829    /* First try to decide what to do without reference to look-ahead token.  */
  1830    yyn = yypact[yystate];
  1831    if (yyn == YYPACT_NINF)
  1832      goto yydefault;
  1833  
  1834    /* Not known => get a look-ahead token if don't already have one.  */
  1835  
  1836    /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
  1837    if (yychar == YYEMPTY)
  1838      {
  1839        YYDPRINTF ((stderr, "Reading a token: "));
  1840        yychar = YYLEX;
  1841      }
  1842  
  1843    if (yychar <= YYEOF)
  1844      {
  1845        yychar = yytoken = YYEOF;
  1846        YYDPRINTF ((stderr, "Now at end of input.\n"));
  1847      }
  1848    else
  1849      {
  1850        yytoken = YYTRANSLATE (yychar);
  1851        YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
  1852      }
  1853  
  1854    /* If the proper action on seeing token YYTOKEN is to reduce or to
  1855       detect an error, take that action.  */
  1856    yyn += yytoken;
  1857    if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  1858      goto yydefault;
  1859    yyn = yytable[yyn];
  1860    if (yyn <= 0)
  1861      {
  1862        if (yyn == 0 || yyn == YYTABLE_NINF)
  1863  	goto yyerrlab;
  1864        yyn = -yyn;
  1865        goto yyreduce;
  1866      }
  1867  
  1868    if (yyn == YYFINAL)
  1869      YYACCEPT;
  1870  
  1871    /* Count tokens shifted since error; after three, turn off error
  1872       status.  */
  1873    if (yyerrstatus)
  1874      yyerrstatus--;
  1875  
  1876    /* Shift the look-ahead token.  */
  1877    YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  1878  
  1879    /* Discard the shifted token unless it is eof.  */
  1880    if (yychar != YYEOF)
  1881      yychar = YYEMPTY;
  1882  
  1883    yystate = yyn;
  1884    *++yyvsp = yylval;
  1885  
  1886    goto yynewstate;
  1887  
  1888  
  1889  /*-----------------------------------------------------------.
  1890  | yydefault -- do the default action for the current state.  |
  1891  `-----------------------------------------------------------*/
  1892  yydefault:
  1893    yyn = yydefact[yystate];
  1894    if (yyn == 0)
  1895      goto yyerrlab;
  1896    goto yyreduce;
  1897  
  1898  
  1899  /*-----------------------------.
  1900  | yyreduce -- Do a reduction.  |
  1901  `-----------------------------*/
  1902  yyreduce:
  1903    /* yyn is the number of a rule to reduce with.  */
  1904    yylen = yyr2[yyn];
  1905  
  1906    /* If YYLEN is nonzero, implement the default value of the action:
  1907       `$$ = $1'.
  1908  
  1909       Otherwise, the following line sets YYVAL to garbage.
  1910       This behavior is undocumented and Bison
  1911       users should not rely upon it.  Assigning to YYVAL
  1912       unconditionally makes the parser a bit smaller, and it avoids a
  1913       GCC warning that YYVAL may be used uninitialized.  */
  1914    yyval = yyvsp[1-yylen];
  1915  
  1916  
  1917    YY_REDUCE_PRINT (yyn);
  1918    switch (yyn)
  1919      {
  1920          case 4:
  1921  #line 71 "a.y"
  1922      {
  1923  		(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
  1924  		if((yyvsp[(1) - (2)].sym)->type == LLAB && (yyvsp[(1) - (2)].sym)->value != pc)
  1925  			yyerror("redeclaration of %s", (yyvsp[(1) - (2)].sym)->labelname);
  1926  		(yyvsp[(1) - (2)].sym)->type = LLAB;
  1927  		(yyvsp[(1) - (2)].sym)->value = pc;
  1928  	}
  1929      break;
  1930  
  1931    case 6:
  1932  #line 80 "a.y"
  1933      {
  1934  		(yyvsp[(1) - (4)].sym)->type = LVAR;
  1935  		(yyvsp[(1) - (4)].sym)->value = (yyvsp[(3) - (4)].lval);
  1936  	}
  1937      break;
  1938  
  1939    case 7:
  1940  #line 85 "a.y"
  1941      {
  1942  		if((yyvsp[(1) - (4)].sym)->value != (yyvsp[(3) - (4)].lval))
  1943  			yyerror("redeclaration of %s", (yyvsp[(1) - (4)].sym)->name);
  1944  		(yyvsp[(1) - (4)].sym)->value = (yyvsp[(3) - (4)].lval);
  1945  	}
  1946      break;
  1947  
  1948    case 8:
  1949  #line 91 "a.y"
  1950      {
  1951  		nosched = (yyvsp[(1) - (2)].lval);
  1952  	}
  1953      break;
  1954  
  1955    case 12:
  1956  #line 103 "a.y"
  1957      {
  1958  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1959  	}
  1960      break;
  1961  
  1962    case 13:
  1963  #line 107 "a.y"
  1964      {
  1965  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1966  	}
  1967      break;
  1968  
  1969    case 14:
  1970  #line 111 "a.y"
  1971      {
  1972  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1973  	}
  1974      break;
  1975  
  1976    case 15:
  1977  #line 115 "a.y"
  1978      {
  1979  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1980  	}
  1981      break;
  1982  
  1983    case 16:
  1984  #line 119 "a.y"
  1985      {
  1986  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1987  	}
  1988      break;
  1989  
  1990    case 17:
  1991  #line 123 "a.y"
  1992      {
  1993  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  1994  	}
  1995      break;
  1996  
  1997    case 18:
  1998  #line 130 "a.y"
  1999      {
  2000  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2001  	}
  2002      break;
  2003  
  2004    case 19:
  2005  #line 134 "a.y"
  2006      {
  2007  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2008  	}
  2009      break;
  2010  
  2011    case 20:
  2012  #line 138 "a.y"
  2013      {
  2014  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2015  	}
  2016      break;
  2017  
  2018    case 21:
  2019  #line 142 "a.y"
  2020      {
  2021  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2022  	}
  2023      break;
  2024  
  2025    case 22:
  2026  #line 146 "a.y"
  2027      {
  2028  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2029  	}
  2030      break;
  2031  
  2032    case 23:
  2033  #line 150 "a.y"
  2034      {
  2035  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2036  	}
  2037      break;
  2038  
  2039    case 24:
  2040  #line 157 "a.y"
  2041      {
  2042  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2043  	}
  2044      break;
  2045  
  2046    case 25:
  2047  #line 161 "a.y"
  2048      {
  2049  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2050  	}
  2051      break;
  2052  
  2053    case 26:
  2054  #line 165 "a.y"
  2055      {
  2056  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2057  	}
  2058      break;
  2059  
  2060    case 27:
  2061  #line 169 "a.y"
  2062      {
  2063  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2064  	}
  2065      break;
  2066  
  2067    case 28:
  2068  #line 176 "a.y"
  2069      {
  2070  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2071  	}
  2072      break;
  2073  
  2074    case 29:
  2075  #line 180 "a.y"
  2076      {
  2077  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2078  	}
  2079      break;
  2080  
  2081    case 30:
  2082  #line 187 "a.y"
  2083      {
  2084  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2085  	}
  2086      break;
  2087  
  2088    case 31:
  2089  #line 191 "a.y"
  2090      {
  2091  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2092  	}
  2093      break;
  2094  
  2095    case 32:
  2096  #line 195 "a.y"
  2097      {
  2098  		outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr));
  2099  	}
  2100      break;
  2101  
  2102    case 33:
  2103  #line 199 "a.y"
  2104      {
  2105  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2106  	}
  2107      break;
  2108  
  2109    case 34:
  2110  #line 203 "a.y"
  2111      {
  2112  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2113  	}
  2114      break;
  2115  
  2116    case 35:
  2117  #line 207 "a.y"
  2118      {
  2119  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen);
  2120  	}
  2121      break;
  2122  
  2123    case 36:
  2124  #line 214 "a.y"
  2125      {
  2126  		outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr));
  2127  	}
  2128      break;
  2129  
  2130    case 37:
  2131  #line 218 "a.y"
  2132      {
  2133  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2134  	}
  2135      break;
  2136  
  2137    case 38:
  2138  #line 222 "a.y"
  2139      {
  2140  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2141  	}
  2142      break;
  2143  
  2144    case 39:
  2145  #line 232 "a.y"
  2146      {
  2147  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2148  	}
  2149      break;
  2150  
  2151    case 40:
  2152  #line 236 "a.y"
  2153      {
  2154  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2155  	}
  2156      break;
  2157  
  2158    case 41:
  2159  #line 240 "a.y"
  2160      {
  2161  		outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr));
  2162  	}
  2163      break;
  2164  
  2165    case 42:
  2166  #line 244 "a.y"
  2167      {
  2168  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2169  	}
  2170      break;
  2171  
  2172    case 43:
  2173  #line 248 "a.y"
  2174      {
  2175  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2176  	}
  2177      break;
  2178  
  2179    case 44:
  2180  #line 252 "a.y"
  2181      {
  2182  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2183  	}
  2184      break;
  2185  
  2186    case 45:
  2187  #line 256 "a.y"
  2188      {
  2189  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2190  	}
  2191      break;
  2192  
  2193    case 46:
  2194  #line 260 "a.y"
  2195      {
  2196  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2197  	}
  2198      break;
  2199  
  2200    case 47:
  2201  #line 264 "a.y"
  2202      {
  2203  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2204  	}
  2205      break;
  2206  
  2207    case 48:
  2208  #line 268 "a.y"
  2209      {
  2210  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2211  	}
  2212      break;
  2213  
  2214    case 49:
  2215  #line 272 "a.y"
  2216      {
  2217  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2218  	}
  2219      break;
  2220  
  2221    case 50:
  2222  #line 276 "a.y"
  2223      {
  2224  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2225  	}
  2226      break;
  2227  
  2228    case 51:
  2229  #line 280 "a.y"
  2230      {
  2231  		outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), NREG, &(yyvsp[(2) - (2)].addr));
  2232  	}
  2233      break;
  2234  
  2235    case 52:
  2236  #line 287 "a.y"
  2237      {
  2238  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2239  	}
  2240      break;
  2241  
  2242    case 53:
  2243  #line 294 "a.y"
  2244      {
  2245  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2246  	}
  2247      break;
  2248  
  2249    case 54:
  2250  #line 298 "a.y"
  2251      {
  2252  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2253  	}
  2254      break;
  2255  
  2256    case 55:
  2257  #line 305 "a.y"
  2258      {
  2259  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].addr).reg, &(yyvsp[(4) - (4)].addr));
  2260  	}
  2261      break;
  2262  
  2263    case 56:
  2264  #line 309 "a.y"
  2265      {
  2266  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2267  	}
  2268      break;
  2269  
  2270    case 57:
  2271  #line 317 "a.y"
  2272      {
  2273  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2274  	}
  2275      break;
  2276  
  2277    case 58:
  2278  #line 321 "a.y"
  2279      {
  2280  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2281  	}
  2282      break;
  2283  
  2284    case 59:
  2285  #line 325 "a.y"
  2286      {
  2287  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2288  	}
  2289      break;
  2290  
  2291    case 60:
  2292  #line 329 "a.y"
  2293      {
  2294  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2295  	}
  2296      break;
  2297  
  2298    case 61:
  2299  #line 333 "a.y"
  2300      {
  2301  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2302  	}
  2303      break;
  2304  
  2305    case 62:
  2306  #line 337 "a.y"
  2307      {
  2308  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2309  	}
  2310      break;
  2311  
  2312    case 63:
  2313  #line 341 "a.y"
  2314      {
  2315  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2316  	}
  2317      break;
  2318  
  2319    case 64:
  2320  #line 345 "a.y"
  2321      {
  2322  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2323  	}
  2324      break;
  2325  
  2326    case 65:
  2327  #line 354 "a.y"
  2328      {
  2329  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &(yyvsp[(2) - (2)].addr));
  2330  	}
  2331      break;
  2332  
  2333    case 66:
  2334  #line 358 "a.y"
  2335      {
  2336  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &(yyvsp[(2) - (2)].addr));
  2337  	}
  2338      break;
  2339  
  2340    case 67:
  2341  #line 362 "a.y"
  2342      {
  2343  		outcode((yyvsp[(1) - (4)].lval), &nullgen, NREG, &(yyvsp[(3) - (4)].addr));
  2344  	}
  2345      break;
  2346  
  2347    case 68:
  2348  #line 366 "a.y"
  2349      {
  2350  		outcode((yyvsp[(1) - (3)].lval), &nullgen, NREG, &(yyvsp[(3) - (3)].addr));
  2351  	}
  2352      break;
  2353  
  2354    case 69:
  2355  #line 370 "a.y"
  2356      {
  2357  		outcode((yyvsp[(1) - (3)].lval), &nullgen, NREG, &(yyvsp[(3) - (3)].addr));
  2358  	}
  2359      break;
  2360  
  2361    case 70:
  2362  #line 374 "a.y"
  2363      {
  2364  		outcode((yyvsp[(1) - (5)].lval), &nullgen, NREG, &(yyvsp[(4) - (5)].addr));
  2365  	}
  2366      break;
  2367  
  2368    case 71:
  2369  #line 378 "a.y"
  2370      {
  2371  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2372  	}
  2373      break;
  2374  
  2375    case 72:
  2376  #line 382 "a.y"
  2377      {
  2378  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2379  	}
  2380      break;
  2381  
  2382    case 73:
  2383  #line 386 "a.y"
  2384      {
  2385  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(5) - (6)].addr));
  2386  	}
  2387      break;
  2388  
  2389    case 74:
  2390  #line 390 "a.y"
  2391      {
  2392  		outcode((yyvsp[(1) - (4)].lval), &nullgen, (yyvsp[(2) - (4)].lval), &(yyvsp[(4) - (4)].addr));
  2393  	}
  2394      break;
  2395  
  2396    case 75:
  2397  #line 394 "a.y"
  2398      {
  2399  		outcode((yyvsp[(1) - (4)].lval), &nullgen, (yyvsp[(2) - (4)].lval), &(yyvsp[(4) - (4)].addr));
  2400  	}
  2401      break;
  2402  
  2403    case 76:
  2404  #line 398 "a.y"
  2405      {
  2406  		outcode((yyvsp[(1) - (6)].lval), &nullgen, (yyvsp[(2) - (6)].lval), &(yyvsp[(5) - (6)].addr));
  2407  	}
  2408      break;
  2409  
  2410    case 77:
  2411  #line 402 "a.y"
  2412      {
  2413  		Addr g;
  2414  		g = nullgen;
  2415  		g.type = D_CONST;
  2416  		g.offset = (yyvsp[(2) - (6)].lval);
  2417  		outcode((yyvsp[(1) - (6)].lval), &g, (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2418  	}
  2419      break;
  2420  
  2421    case 78:
  2422  #line 410 "a.y"
  2423      {
  2424  		Addr g;
  2425  		g = nullgen;
  2426  		g.type = D_CONST;
  2427  		g.offset = (yyvsp[(2) - (6)].lval);
  2428  		outcode((yyvsp[(1) - (6)].lval), &g, (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2429  	}
  2430      break;
  2431  
  2432    case 79:
  2433  #line 418 "a.y"
  2434      {
  2435  		Addr g;
  2436  		g = nullgen;
  2437  		g.type = D_CONST;
  2438  		g.offset = (yyvsp[(2) - (8)].lval);
  2439  		outcode((yyvsp[(1) - (8)].lval), &g, (yyvsp[(4) - (8)].lval), &(yyvsp[(7) - (8)].addr));
  2440  	}
  2441      break;
  2442  
  2443    case 80:
  2444  #line 429 "a.y"
  2445      {
  2446  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen);
  2447  	}
  2448      break;
  2449  
  2450    case 81:
  2451  #line 433 "a.y"
  2452      {
  2453  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), (yyvsp[(4) - (4)].lval), &nullgen);
  2454  	}
  2455      break;
  2456  
  2457    case 82:
  2458  #line 437 "a.y"
  2459      {
  2460  		outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), NREG, &nullgen);
  2461  	}
  2462      break;
  2463  
  2464    case 83:
  2465  #line 441 "a.y"
  2466      {
  2467  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &nullgen);
  2468  	}
  2469      break;
  2470  
  2471    case 84:
  2472  #line 448 "a.y"
  2473      {
  2474  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2475  	}
  2476      break;
  2477  
  2478    case 85:
  2479  #line 452 "a.y"
  2480      {
  2481  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2482  	}
  2483      break;
  2484  
  2485    case 86:
  2486  #line 456 "a.y"
  2487      {
  2488  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].addr).reg, &(yyvsp[(6) - (6)].addr));
  2489  	}
  2490      break;
  2491  
  2492    case 87:
  2493  #line 460 "a.y"
  2494      {
  2495  		outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr));
  2496  	}
  2497      break;
  2498  
  2499    case 88:
  2500  #line 464 "a.y"
  2501      {
  2502  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2503  	}
  2504      break;
  2505  
  2506    case 89:
  2507  #line 468 "a.y"
  2508      {
  2509  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr));
  2510  	}
  2511      break;
  2512  
  2513    case 90:
  2514  #line 475 "a.y"
  2515      {
  2516  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2517  	}
  2518      break;
  2519  
  2520    case 91:
  2521  #line 479 "a.y"
  2522      {
  2523  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2524  	}
  2525      break;
  2526  
  2527    case 92:
  2528  #line 483 "a.y"
  2529      {
  2530  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr));
  2531  	}
  2532      break;
  2533  
  2534    case 93:
  2535  #line 487 "a.y"
  2536      {
  2537  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(6) - (6)].addr).reg, &(yyvsp[(4) - (6)].addr));
  2538  	}
  2539      break;
  2540  
  2541    case 94:
  2542  #line 494 "a.y"
  2543      {
  2544  		outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr));
  2545  	}
  2546      break;
  2547  
  2548    case 95:
  2549  #line 498 "a.y"
  2550      {
  2551  		outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr));
  2552  	}
  2553      break;
  2554  
  2555    case 96:
  2556  #line 502 "a.y"
  2557      {
  2558  		outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr));
  2559  	}
  2560      break;
  2561  
  2562    case 97:
  2563  #line 506 "a.y"
  2564      {
  2565  		outgcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].addr).reg, &(yyvsp[(6) - (8)].addr), &(yyvsp[(8) - (8)].addr));
  2566  	}
  2567      break;
  2568  
  2569    case 98:
  2570  #line 513 "a.y"
  2571      {
  2572  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2573  	}
  2574      break;
  2575  
  2576    case 99:
  2577  #line 517 "a.y"
  2578      {
  2579  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2580  	}
  2581      break;
  2582  
  2583    case 100:
  2584  #line 525 "a.y"
  2585      {
  2586  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2587  	}
  2588      break;
  2589  
  2590    case 101:
  2591  #line 529 "a.y"
  2592      {
  2593  		outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr));
  2594  	}
  2595      break;
  2596  
  2597    case 102:
  2598  #line 533 "a.y"
  2599      {
  2600  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2601  	}
  2602      break;
  2603  
  2604    case 103:
  2605  #line 537 "a.y"
  2606      {
  2607  		outgcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), NREG, &(yyvsp[(4) - (6)].addr), &(yyvsp[(6) - (6)].addr));
  2608  	}
  2609      break;
  2610  
  2611    case 104:
  2612  #line 541 "a.y"
  2613      {
  2614  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2615  	}
  2616      break;
  2617  
  2618    case 105:
  2619  #line 545 "a.y"
  2620      {
  2621  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2622  	}
  2623      break;
  2624  
  2625    case 106:
  2626  #line 549 "a.y"
  2627      {
  2628  		outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), NREG, &nullgen);
  2629  	}
  2630      break;
  2631  
  2632    case 107:
  2633  #line 556 "a.y"
  2634      {
  2635  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &nullgen);
  2636  	}
  2637      break;
  2638  
  2639    case 108:
  2640  #line 560 "a.y"
  2641      {
  2642  		outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), NREG, &nullgen);
  2643  	}
  2644      break;
  2645  
  2646    case 109:
  2647  #line 564 "a.y"
  2648      {
  2649  		outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), NREG, &nullgen);
  2650  	}
  2651      break;
  2652  
  2653    case 110:
  2654  #line 568 "a.y"
  2655      {
  2656  		outcode((yyvsp[(1) - (3)].lval), &nullgen, NREG, &(yyvsp[(3) - (3)].addr));
  2657  	}
  2658      break;
  2659  
  2660    case 111:
  2661  #line 572 "a.y"
  2662      {
  2663  		outcode((yyvsp[(1) - (3)].lval), &nullgen, NREG, &(yyvsp[(3) - (3)].addr));
  2664  	}
  2665      break;
  2666  
  2667    case 112:
  2668  #line 576 "a.y"
  2669      {
  2670  		outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].addr), NREG, &nullgen);
  2671  	}
  2672      break;
  2673  
  2674    case 113:
  2675  #line 583 "a.y"
  2676      {
  2677  		outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), NREG, &nullgen);
  2678  	}
  2679      break;
  2680  
  2681    case 114:
  2682  #line 587 "a.y"
  2683      {
  2684  		outcode((yyvsp[(1) - (3)].lval), &(yyvsp[(2) - (3)].addr), NREG, &nullgen);
  2685  	}
  2686      break;
  2687  
  2688    case 115:
  2689  #line 594 "a.y"
  2690      {
  2691  		if((yyvsp[(2) - (4)].addr).type != D_CONST || (yyvsp[(4) - (4)].addr).type != D_CONST)
  2692  			yyerror("arguments to PCDATA must be integer constants");
  2693  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2694  	}
  2695      break;
  2696  
  2697    case 116:
  2698  #line 603 "a.y"
  2699      {
  2700  		if((yyvsp[(2) - (4)].addr).type != D_CONST)
  2701  			yyerror("index for FUNCDATA must be integer constant");
  2702  		if((yyvsp[(4) - (4)].addr).type != D_EXTERN && (yyvsp[(4) - (4)].addr).type != D_STATIC && (yyvsp[(4) - (4)].addr).type != D_OREG)
  2703  			yyerror("value for FUNCDATA must be symbol reference");
  2704   		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2705  	}
  2706      break;
  2707  
  2708    case 117:
  2709  #line 614 "a.y"
  2710      {
  2711  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &nullgen);
  2712  	}
  2713      break;
  2714  
  2715    case 118:
  2716  #line 621 "a.y"
  2717      {
  2718  		settext((yyvsp[(2) - (4)].addr).sym);
  2719  		outcode((yyvsp[(1) - (4)].lval), &(yyvsp[(2) - (4)].addr), NREG, &(yyvsp[(4) - (4)].addr));
  2720  	}
  2721      break;
  2722  
  2723    case 119:
  2724  #line 626 "a.y"
  2725      {
  2726  		settext((yyvsp[(2) - (6)].addr).sym);
  2727  		(yyvsp[(6) - (6)].addr).offset &= 0xffffffffull;
  2728  		(yyvsp[(6) - (6)].addr).offset |= (vlong)ArgsSizeUnknown << 32;
  2729  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2730  	}
  2731      break;
  2732  
  2733    case 120:
  2734  #line 633 "a.y"
  2735      {
  2736  		settext((yyvsp[(2) - (8)].addr).sym);
  2737  		(yyvsp[(6) - (8)].addr).offset &= 0xffffffffull;
  2738  		(yyvsp[(6) - (8)].addr).offset |= ((yyvsp[(8) - (8)].lval) & 0xffffffffull) << 32;
  2739  		outcode((yyvsp[(1) - (8)].lval), &(yyvsp[(2) - (8)].addr), (yyvsp[(4) - (8)].lval), &(yyvsp[(6) - (8)].addr));
  2740  	}
  2741      break;
  2742  
  2743    case 121:
  2744  #line 643 "a.y"
  2745      {
  2746  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2747  	}
  2748      break;
  2749  
  2750    case 122:
  2751  #line 647 "a.y"
  2752      {
  2753  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2754  	}
  2755      break;
  2756  
  2757    case 123:
  2758  #line 651 "a.y"
  2759      {
  2760  		outcode((yyvsp[(1) - (6)].lval), &(yyvsp[(2) - (6)].addr), (yyvsp[(4) - (6)].lval), &(yyvsp[(6) - (6)].addr));
  2761  	}
  2762      break;
  2763  
  2764    case 124:
  2765  #line 658 "a.y"
  2766      {
  2767  		outcode((yyvsp[(1) - (2)].lval), &nullgen, NREG, &nullgen);
  2768  	}
  2769      break;
  2770  
  2771    case 125:
  2772  #line 664 "a.y"
  2773      {
  2774  		(yyval.addr) = nullgen;
  2775  		(yyval.addr).type = D_BRANCH;
  2776  		(yyval.addr).offset = (yyvsp[(1) - (4)].lval) + pc;
  2777  	}
  2778      break;
  2779  
  2780    case 126:
  2781  #line 670 "a.y"
  2782      {
  2783  		(yyvsp[(1) - (2)].sym) = labellookup((yyvsp[(1) - (2)].sym));
  2784  		(yyval.addr) = nullgen;
  2785  		if(pass == 2 && (yyvsp[(1) - (2)].sym)->type != LLAB)
  2786  			yyerror("undefined label: %s", (yyvsp[(1) - (2)].sym)->labelname);
  2787  		(yyval.addr).type = D_BRANCH;
  2788  		(yyval.addr).offset = (yyvsp[(1) - (2)].sym)->value + (yyvsp[(2) - (2)].lval);
  2789  	}
  2790      break;
  2791  
  2792    case 127:
  2793  #line 681 "a.y"
  2794      {
  2795  		(yyval.addr) = nullgen;
  2796  		(yyval.addr).type = D_REG;
  2797  		(yyval.addr).reg = (yyvsp[(1) - (1)].lval);
  2798  	}
  2799      break;
  2800  
  2801    case 130:
  2802  #line 693 "a.y"
  2803      {
  2804  		(yyval.addr) = nullgen;
  2805  		(yyval.addr).type = D_SPR;
  2806  		(yyval.addr).offset = (yyvsp[(1) - (1)].lval);
  2807  	}
  2808      break;
  2809  
  2810    case 131:
  2811  #line 701 "a.y"
  2812      {
  2813  		(yyval.addr) = nullgen;
  2814  		(yyval.addr).type = D_CREG;
  2815  		(yyval.addr).reg = NREG;	/* whole register */
  2816  	}
  2817      break;
  2818  
  2819    case 132:
  2820  #line 709 "a.y"
  2821      {
  2822  		(yyval.addr) = nullgen;
  2823  		(yyval.addr).type = D_SPR;
  2824  		(yyval.addr).offset = (yyvsp[(1) - (1)].lval);
  2825  	}
  2826      break;
  2827  
  2828    case 133:
  2829  #line 717 "a.y"
  2830      {
  2831  		(yyval.addr) = nullgen;
  2832  		(yyval.addr).type = D_MSR;
  2833  	}
  2834      break;
  2835  
  2836    case 134:
  2837  #line 724 "a.y"
  2838      {
  2839  		(yyval.addr) = nullgen;
  2840  		(yyval.addr).type = D_SPR;
  2841  		(yyval.addr).offset = (yyvsp[(1) - (1)].lval);
  2842  	}
  2843      break;
  2844  
  2845    case 135:
  2846  #line 730 "a.y"
  2847      {
  2848  		(yyval.addr) = nullgen;
  2849  		(yyval.addr).type = (yyvsp[(1) - (4)].lval);
  2850  		(yyval.addr).offset = (yyvsp[(3) - (4)].lval);
  2851  	}
  2852      break;
  2853  
  2854    case 137:
  2855  #line 739 "a.y"
  2856      {
  2857  		(yyval.addr) = nullgen;
  2858  		(yyval.addr).type = D_FPSCR;
  2859  		(yyval.addr).reg = NREG;
  2860  	}
  2861      break;
  2862  
  2863    case 138:
  2864  #line 747 "a.y"
  2865      {
  2866  		(yyval.addr) = nullgen;
  2867  		(yyval.addr).type = D_FPSCR;
  2868  		(yyval.addr).reg = (yyvsp[(3) - (4)].lval);
  2869  	}
  2870      break;
  2871  
  2872    case 139:
  2873  #line 755 "a.y"
  2874      {
  2875  		(yyval.addr) = nullgen;
  2876  		(yyval.addr).type = D_FREG;
  2877  		(yyval.addr).reg = (yyvsp[(1) - (1)].lval);
  2878  	}
  2879      break;
  2880  
  2881    case 140:
  2882  #line 761 "a.y"
  2883      {
  2884  		(yyval.addr) = nullgen;
  2885  		(yyval.addr).type = D_FREG;
  2886  		(yyval.addr).reg = (yyvsp[(3) - (4)].lval);
  2887  	}
  2888      break;
  2889  
  2890    case 141:
  2891  #line 769 "a.y"
  2892      {
  2893  		(yyval.addr) = nullgen;
  2894  		(yyval.addr).type = D_CREG;
  2895  		(yyval.addr).reg = (yyvsp[(1) - (1)].lval);
  2896  	}
  2897      break;
  2898  
  2899    case 142:
  2900  #line 775 "a.y"
  2901      {
  2902  		(yyval.addr) = nullgen;
  2903  		(yyval.addr).type = D_CREG;
  2904  		(yyval.addr).reg = (yyvsp[(3) - (4)].lval);
  2905  	}
  2906      break;
  2907  
  2908    case 143:
  2909  #line 783 "a.y"
  2910      {
  2911  		(yyval.addr) = nullgen;
  2912  		(yyval.addr).type = D_REG;
  2913  		(yyval.addr).reg = (yyvsp[(1) - (1)].lval);
  2914  	}
  2915      break;
  2916  
  2917    case 144:
  2918  #line 791 "a.y"
  2919      {
  2920  		int mb, me;
  2921  		uint32 v;
  2922  
  2923  		(yyval.addr) = nullgen;
  2924  		(yyval.addr).type = D_CONST;
  2925  		mb = (yyvsp[(1) - (3)].lval);
  2926  		me = (yyvsp[(3) - (3)].lval);
  2927  		if(mb < 0 || mb > 31 || me < 0 || me > 31){
  2928  			yyerror("illegal mask start/end value(s)");
  2929  			mb = me = 0;
  2930  		}
  2931  		if(mb <= me)
  2932  			v = ((uint32)~0L>>mb) & (~0L<<(31-me));
  2933  		else
  2934  			v = ~(((uint32)~0L>>(me+1)) & (~0L<<(31-(mb-1))));
  2935  		(yyval.addr).offset = v;
  2936  	}
  2937      break;
  2938  
  2939    case 145:
  2940  #line 812 "a.y"
  2941      {
  2942  		(yyval.addr) = (yyvsp[(2) - (2)].addr);
  2943  		(yyval.addr).type = D_CONST;
  2944  	}
  2945      break;
  2946  
  2947    case 146:
  2948  #line 817 "a.y"
  2949      {
  2950  		(yyval.addr) = nullgen;
  2951  		(yyval.addr).type = D_SCONST;
  2952  		memcpy((yyval.addr).u.sval, (yyvsp[(2) - (2)].sval), sizeof((yyval.addr).u.sval));
  2953  	}
  2954      break;
  2955  
  2956    case 147:
  2957  #line 825 "a.y"
  2958      {
  2959  		(yyval.addr) = nullgen;
  2960  		(yyval.addr).type = D_FCONST;
  2961  		(yyval.addr).u.dval = (yyvsp[(2) - (2)].dval);
  2962  	}
  2963      break;
  2964  
  2965    case 148:
  2966  #line 831 "a.y"
  2967      {
  2968  		(yyval.addr) = nullgen;
  2969  		(yyval.addr).type = D_FCONST;
  2970  		(yyval.addr).u.dval = -(yyvsp[(3) - (3)].dval);
  2971  	}
  2972      break;
  2973  
  2974    case 149:
  2975  #line 838 "a.y"
  2976      {
  2977  		(yyval.addr) = nullgen;
  2978  		(yyval.addr).type = D_CONST;
  2979  		(yyval.addr).offset = (yyvsp[(2) - (2)].lval);
  2980  	}
  2981      break;
  2982  
  2983    case 151:
  2984  #line 847 "a.y"
  2985      {
  2986  		if((yyval.lval) < 0 || (yyval.lval) >= NREG)
  2987  			print("register value out of range\n");
  2988  		(yyval.lval) = (yyvsp[(3) - (4)].lval);
  2989  	}
  2990      break;
  2991  
  2992    case 152:
  2993  #line 855 "a.y"
  2994      {
  2995  		(yyval.addr) = nullgen;
  2996  		(yyval.addr).type = D_OREG;
  2997  		(yyval.addr).reg = (yyvsp[(2) - (3)].lval);
  2998  		(yyval.addr).offset = 0;
  2999  	}
  3000      break;
  3001  
  3002    case 153:
  3003  #line 862 "a.y"
  3004      {
  3005  		(yyval.addr) = nullgen;
  3006  		(yyval.addr).type = D_OREG;
  3007  		(yyval.addr).reg = (yyvsp[(2) - (5)].lval);
  3008  		(yyval.addr).scale = (yyvsp[(4) - (5)].lval);
  3009  		(yyval.addr).offset = 0;
  3010  	}
  3011      break;
  3012  
  3013    case 155:
  3014  #line 873 "a.y"
  3015      {
  3016  		(yyval.addr) = nullgen;
  3017  		(yyval.addr).type = D_OREG;
  3018  		(yyval.addr).reg = (yyvsp[(3) - (4)].lval);
  3019  		(yyval.addr).offset = (yyvsp[(1) - (4)].lval);
  3020  	}
  3021      break;
  3022  
  3023    case 156:
  3024  #line 882 "a.y"
  3025      {
  3026  		(yyval.addr) = nullgen;
  3027  		(yyval.addr).type = D_OREG;
  3028  		(yyval.addr).name = (yyvsp[(3) - (4)].lval);
  3029  		(yyval.addr).sym = nil;
  3030  		(yyval.addr).offset = (yyvsp[(1) - (4)].lval);
  3031  	}
  3032      break;
  3033  
  3034    case 157:
  3035  #line 890 "a.y"
  3036      {
  3037  		(yyval.addr) = nullgen;
  3038  		(yyval.addr).type = D_OREG;
  3039  		(yyval.addr).name = (yyvsp[(4) - (5)].lval);
  3040  		(yyval.addr).sym = linklookup(ctxt, (yyvsp[(1) - (5)].sym)->name, 0);
  3041  		(yyval.addr).offset = (yyvsp[(2) - (5)].lval);
  3042  	}
  3043      break;
  3044  
  3045    case 158:
  3046  #line 898 "a.y"
  3047      {
  3048  		(yyval.addr) = nullgen;
  3049  		(yyval.addr).type = D_OREG;
  3050  		(yyval.addr).name = D_STATIC;
  3051  		(yyval.addr).sym = linklookup(ctxt, (yyvsp[(1) - (7)].sym)->name, 0);
  3052  		(yyval.addr).offset = (yyvsp[(4) - (7)].lval);
  3053  	}
  3054      break;
  3055  
  3056    case 161:
  3057  #line 910 "a.y"
  3058      {
  3059  		(yyval.lval) = 0;
  3060  	}
  3061      break;
  3062  
  3063    case 162:
  3064  #line 914 "a.y"
  3065      {
  3066  		(yyval.lval) = (yyvsp[(2) - (2)].lval);
  3067  	}
  3068      break;
  3069  
  3070    case 163:
  3071  #line 918 "a.y"
  3072      {
  3073  		(yyval.lval) = -(yyvsp[(2) - (2)].lval);
  3074  	}
  3075      break;
  3076  
  3077    case 168:
  3078  #line 930 "a.y"
  3079      {
  3080  		(yyval.lval) = (yyvsp[(1) - (1)].sym)->value;
  3081  	}
  3082      break;
  3083  
  3084    case 169:
  3085  #line 934 "a.y"
  3086      {
  3087  		(yyval.lval) = -(yyvsp[(2) - (2)].lval);
  3088  	}
  3089      break;
  3090  
  3091    case 170:
  3092  #line 938 "a.y"
  3093      {
  3094  		(yyval.lval) = (yyvsp[(2) - (2)].lval);
  3095  	}
  3096      break;
  3097  
  3098    case 171:
  3099  #line 942 "a.y"
  3100      {
  3101  		(yyval.lval) = ~(yyvsp[(2) - (2)].lval);
  3102  	}
  3103      break;
  3104  
  3105    case 172:
  3106  #line 946 "a.y"
  3107      {
  3108  		(yyval.lval) = (yyvsp[(2) - (3)].lval);
  3109  	}
  3110      break;
  3111  
  3112    case 174:
  3113  #line 953 "a.y"
  3114      {
  3115  		(yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval);
  3116  	}
  3117      break;
  3118  
  3119    case 175:
  3120  #line 957 "a.y"
  3121      {
  3122  		(yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval);
  3123  	}
  3124      break;
  3125  
  3126    case 176:
  3127  #line 961 "a.y"
  3128      {
  3129  		(yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval);
  3130  	}
  3131      break;
  3132  
  3133    case 177:
  3134  #line 965 "a.y"
  3135      {
  3136  		(yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval);
  3137  	}
  3138      break;
  3139  
  3140    case 178:
  3141  #line 969 "a.y"
  3142      {
  3143  		(yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval);
  3144  	}
  3145      break;
  3146  
  3147    case 179:
  3148  #line 973 "a.y"
  3149      {
  3150  		(yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval);
  3151  	}
  3152      break;
  3153  
  3154    case 180:
  3155  #line 977 "a.y"
  3156      {
  3157  		(yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval);
  3158  	}
  3159      break;
  3160  
  3161    case 181:
  3162  #line 981 "a.y"
  3163      {
  3164  		(yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval);
  3165  	}
  3166      break;
  3167  
  3168    case 182:
  3169  #line 985 "a.y"
  3170      {
  3171  		(yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval);
  3172  	}
  3173      break;
  3174  
  3175    case 183:
  3176  #line 989 "a.y"
  3177      {
  3178  		(yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval);
  3179  	}
  3180      break;
  3181  
  3182  
  3183  /* Line 1267 of yacc.c.  */
  3184  #line 3185 "y.tab.c"
  3185        default: break;
  3186      }
  3187    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
  3188  
  3189    YYPOPSTACK (yylen);
  3190    yylen = 0;
  3191    YY_STACK_PRINT (yyss, yyssp);
  3192  
  3193    *++yyvsp = yyval;
  3194  
  3195  
  3196    /* Now `shift' the result of the reduction.  Determine what state
  3197       that goes to, based on the state we popped back to and the rule
  3198       number reduced by.  */
  3199  
  3200    yyn = yyr1[yyn];
  3201  
  3202    yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  3203    if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  3204      yystate = yytable[yystate];
  3205    else
  3206      yystate = yydefgoto[yyn - YYNTOKENS];
  3207  
  3208    goto yynewstate;
  3209  
  3210  
  3211  /*------------------------------------.
  3212  | yyerrlab -- here on detecting error |
  3213  `------------------------------------*/
  3214  yyerrlab:
  3215    /* If not already recovering from an error, report this error.  */
  3216    if (!yyerrstatus)
  3217      {
  3218        ++yynerrs;
  3219  #if ! YYERROR_VERBOSE
  3220        yyerror (YY_("syntax error"));
  3221  #else
  3222        {
  3223  	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
  3224  	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
  3225  	  {
  3226  	    YYSIZE_T yyalloc = 2 * yysize;
  3227  	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
  3228  	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
  3229  	    if (yymsg != yymsgbuf)
  3230  	      YYSTACK_FREE (yymsg);
  3231  	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
  3232  	    if (yymsg)
  3233  	      yymsg_alloc = yyalloc;
  3234  	    else
  3235  	      {
  3236  		yymsg = yymsgbuf;
  3237  		yymsg_alloc = sizeof yymsgbuf;
  3238  	      }
  3239  	  }
  3240  
  3241  	if (0 < yysize && yysize <= yymsg_alloc)
  3242  	  {
  3243  	    (void) yysyntax_error (yymsg, yystate, yychar);
  3244  	    yyerror (yymsg);
  3245  	  }
  3246  	else
  3247  	  {
  3248  	    yyerror (YY_("syntax error"));
  3249  	    if (yysize != 0)
  3250  	      goto yyexhaustedlab;
  3251  	  }
  3252        }
  3253  #endif
  3254      }
  3255  
  3256  
  3257  
  3258    if (yyerrstatus == 3)
  3259      {
  3260        /* If just tried and failed to reuse look-ahead token after an
  3261  	 error, discard it.  */
  3262  
  3263        if (yychar <= YYEOF)
  3264  	{
  3265  	  /* Return failure if at end of input.  */
  3266  	  if (yychar == YYEOF)
  3267  	    YYABORT;
  3268  	}
  3269        else
  3270  	{
  3271  	  yydestruct ("Error: discarding",
  3272  		      yytoken, &yylval);
  3273  	  yychar = YYEMPTY;
  3274  	}
  3275      }
  3276  
  3277    /* Else will try to reuse look-ahead token after shifting the error
  3278       token.  */
  3279    goto yyerrlab1;
  3280  
  3281  
  3282  /*---------------------------------------------------.
  3283  | yyerrorlab -- error raised explicitly by YYERROR.  |
  3284  `---------------------------------------------------*/
  3285  yyerrorlab:
  3286  
  3287    /* Pacify compilers like GCC when the user code never invokes
  3288       YYERROR and the label yyerrorlab therefore never appears in user
  3289       code.  */
  3290    if (/*CONSTCOND*/ 0)
  3291       goto yyerrorlab;
  3292  
  3293    /* Do not reclaim the symbols of the rule which action triggered
  3294       this YYERROR.  */
  3295    YYPOPSTACK (yylen);
  3296    yylen = 0;
  3297    YY_STACK_PRINT (yyss, yyssp);
  3298    yystate = *yyssp;
  3299    goto yyerrlab1;
  3300  
  3301  
  3302  /*-------------------------------------------------------------.
  3303  | yyerrlab1 -- common code for both syntax error and YYERROR.  |
  3304  `-------------------------------------------------------------*/
  3305  yyerrlab1:
  3306    yyerrstatus = 3;	/* Each real token shifted decrements this.  */
  3307  
  3308    for (;;)
  3309      {
  3310        yyn = yypact[yystate];
  3311        if (yyn != YYPACT_NINF)
  3312  	{
  3313  	  yyn += YYTERROR;
  3314  	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
  3315  	    {
  3316  	      yyn = yytable[yyn];
  3317  	      if (0 < yyn)
  3318  		break;
  3319  	    }
  3320  	}
  3321  
  3322        /* Pop the current state because it cannot handle the error token.  */
  3323        if (yyssp == yyss)
  3324  	YYABORT;
  3325  
  3326  
  3327        yydestruct ("Error: popping",
  3328  		  yystos[yystate], yyvsp);
  3329        YYPOPSTACK (1);
  3330        yystate = *yyssp;
  3331        YY_STACK_PRINT (yyss, yyssp);
  3332      }
  3333  
  3334    if (yyn == YYFINAL)
  3335      YYACCEPT;
  3336  
  3337    *++yyvsp = yylval;
  3338  
  3339  
  3340    /* Shift the error token.  */
  3341    YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
  3342  
  3343    yystate = yyn;
  3344    goto yynewstate;
  3345  
  3346  
  3347  /*-------------------------------------.
  3348  | yyacceptlab -- YYACCEPT comes here.  |
  3349  `-------------------------------------*/
  3350  yyacceptlab:
  3351    yyresult = 0;
  3352    goto yyreturn;
  3353  
  3354  /*-----------------------------------.
  3355  | yyabortlab -- YYABORT comes here.  |
  3356  `-----------------------------------*/
  3357  yyabortlab:
  3358    yyresult = 1;
  3359    goto yyreturn;
  3360  
  3361  #ifndef yyoverflow
  3362  /*-------------------------------------------------.
  3363  | yyexhaustedlab -- memory exhaustion comes here.  |
  3364  `-------------------------------------------------*/
  3365  yyexhaustedlab:
  3366    yyerror (YY_("memory exhausted"));
  3367    yyresult = 2;
  3368    /* Fall through.  */
  3369  #endif
  3370  
  3371  yyreturn:
  3372    if (yychar != YYEOF && yychar != YYEMPTY)
  3373       yydestruct ("Cleanup: discarding lookahead",
  3374  		 yytoken, &yylval);
  3375    /* Do not reclaim the symbols of the rule which action triggered
  3376       this YYABORT or YYACCEPT.  */
  3377    YYPOPSTACK (yylen);
  3378    YY_STACK_PRINT (yyss, yyssp);
  3379    while (yyssp != yyss)
  3380      {
  3381        yydestruct ("Cleanup: popping",
  3382  		  yystos[*yyssp], yyvsp);
  3383        YYPOPSTACK (1);
  3384      }
  3385  #ifndef yyoverflow
  3386    if (yyss != yyssa)
  3387      YYSTACK_FREE (yyss);
  3388  #endif
  3389  #if YYERROR_VERBOSE
  3390    if (yymsg != yymsgbuf)
  3391      YYSTACK_FREE (yymsg);
  3392  #endif
  3393    /* Make sure YYID is used.  */
  3394    return YYID (yyresult);
  3395  }
  3396  
  3397  
  3398