github.com/roboticscm/goman@v0.0.0-20210203095141-87c07b4a0a55/src/cmd/5a/y.tab.c (about)

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