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

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