From: Russ Cox Date: Sun, 7 Oct 2012 20:36:29 +0000 (-0400) Subject: cmd/8a: add SSE2 instructions X-Git-Tag: go1.1rc2~2205 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5da37c0901bd420257bd0affe6dbe30ca957f55f;p=gostls13.git cmd/8a: add SSE2 instructions R=ken CC=golang-dev https://golang.org/cl/6614063 --- diff --git a/src/cmd/8a/a.y b/src/cmd/8a/a.y index cf2855977d..e7b8bad60d 100644 --- a/src/cmd/8a/a.y +++ b/src/cmd/8a/a.y @@ -53,7 +53,7 @@ %left '+' '-' %left '*' '/' '%' %token LTYPE0 LTYPE1 LTYPE2 LTYPE3 LTYPE4 -%token LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPES LTYPEM LTYPEI LTYPEG +%token LTYPEC LTYPED LTYPEN LTYPER LTYPET LTYPES LTYPEM LTYPEI LTYPEG LTYPEXC %token LCONST LFP LPC LSB %token LBREG LLREG LSREG LFREG %token LFCONST @@ -63,7 +63,7 @@ %type con2 %type mem imm imm2 reg nam rel rem rim rom omem nmem %type nonnon nonrel nonrem rimnon rimrem remrim -%type spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 +%type spec1 spec2 spec3 spec4 spec5 spec6 spec7 spec8 spec9 %% prog: | prog @@ -116,6 +116,7 @@ inst: | LTYPEM spec6 { outcode($1, &$2); } | LTYPEI spec7 { outcode($1, &$2); } | LTYPEG spec8 { outcode($1, &$2); } +| LTYPEXC spec9 { outcode($1, &$2); } nonnon: { @@ -287,6 +288,14 @@ spec8: /* GLOBL */ $$.to = $5; } +spec9: /* CMPPS/CMPPD */ + reg ',' rem ',' con + { + $$.from = $1; + $$.to = $3; + $$.to.offset = $5; + } + rem: reg | mem diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c index 4c3b0e6a32..cebaa9e5f8 100644 --- a/src/cmd/8a/lex.c +++ b/src/cmd/8a/lex.c @@ -674,6 +674,114 @@ struct "PREFETCHNTA", LTYPE2, APREFETCHNTA, "UNDEF", LTYPE0, AUNDEF, + "ADDPD", LTYPE3, AADDPD, + "ADDPS", LTYPE3, AADDPS, + "ADDSD", LTYPE3, AADDSD, + "ADDSS", LTYPE3, AADDSS, + "ANDNPD", LTYPE3, AANDNPD, + "ANDNPS", LTYPE3, AANDNPS, + "ANDPD", LTYPE3, AANDPD, + "ANDPS", LTYPE3, AANDPS, + "CMPPD", LTYPEXC,ACMPPD, + "CMPPS", LTYPEXC,ACMPPS, + "CMPSD", LTYPEXC,ACMPSD, + "CMPSS", LTYPEXC,ACMPSS, + "COMISD", LTYPE3, ACOMISD, + "COMISS", LTYPE3, ACOMISS, + "CVTPL2PD", LTYPE3, ACVTPL2PD, + "CVTPL2PS", LTYPE3, ACVTPL2PS, + "CVTPD2PL", LTYPE3, ACVTPD2PL, + "CVTPD2PS", LTYPE3, ACVTPD2PS, + "CVTPS2PL", LTYPE3, ACVTPS2PL, + "CVTPS2PD", LTYPE3, ACVTPS2PD, + "CVTSD2SL", LTYPE3, ACVTSD2SL, + "CVTSD2SS", LTYPE3, ACVTSD2SS, + "CVTSL2SD", LTYPE3, ACVTSL2SD, + "CVTSL2SS", LTYPE3, ACVTSL2SS, + "CVTSS2SD", LTYPE3, ACVTSS2SD, + "CVTSS2SL", LTYPE3, ACVTSS2SL, + "CVTTPD2PL", LTYPE3, ACVTTPD2PL, + "CVTTPS2PL", LTYPE3, ACVTTPS2PL, + "CVTTSD2SL", LTYPE3, ACVTTSD2SL, + "CVTTSS2SL", LTYPE3, ACVTTSS2SL, + "DIVPD", LTYPE3, ADIVPD, + "DIVPS", LTYPE3, ADIVPS, + "DIVSD", LTYPE3, ADIVSD, + "DIVSS", LTYPE3, ADIVSS, + "MASKMOVOU", LTYPE3, AMASKMOVOU, + "MASKMOVDQU", LTYPE3, AMASKMOVOU, /* syn */ + "MAXPD", LTYPE3, AMAXPD, + "MAXPS", LTYPE3, AMAXPS, + "MAXSD", LTYPE3, AMAXSD, + "MAXSS", LTYPE3, AMAXSS, + "MINPD", LTYPE3, AMINPD, + "MINPS", LTYPE3, AMINPS, + "MINSD", LTYPE3, AMINSD, + "MINSS", LTYPE3, AMINSS, + "MOVAPD", LTYPE3, AMOVAPD, + "MOVAPS", LTYPE3, AMOVAPS, + "MOVO", LTYPE3, AMOVO, + "MOVOA", LTYPE3, AMOVO, /* syn */ + "MOVOU", LTYPE3, AMOVOU, + "MOVHLPS", LTYPE3, AMOVHLPS, + "MOVHPD", LTYPE3, AMOVHPD, + "MOVHPS", LTYPE3, AMOVHPS, + "MOVLHPS", LTYPE3, AMOVLHPS, + "MOVLPD", LTYPE3, AMOVLPD, + "MOVLPS", LTYPE3, AMOVLPS, + "MOVMSKPD", LTYPE3, AMOVMSKPD, + "MOVMSKPS", LTYPE3, AMOVMSKPS, + "MOVNTO", LTYPE3, AMOVNTO, + "MOVNTDQ", LTYPE3, AMOVNTO, /* syn */ + "MOVNTPD", LTYPE3, AMOVNTPD, + "MOVNTPS", LTYPE3, AMOVNTPS, + "MOVSD", LTYPE3, AMOVSD, + "MOVSS", LTYPE3, AMOVSS, + "MOVUPD", LTYPE3, AMOVUPD, + "MOVUPS", LTYPE3, AMOVUPS, + "MULPD", LTYPE3, AMULPD, + "MULPS", LTYPE3, AMULPS, + "MULSD", LTYPE3, AMULSD, + "MULSS", LTYPE3, AMULSS, + "ORPD", LTYPE3, AORPD, + "ORPS", LTYPE3, AORPS, + "PADDQ", LTYPE3, APADDQ, + "PMAXSW", LTYPE3, APMAXSW, + "PMAXUB", LTYPE3, APMAXUB, + "PMINSW", LTYPE3, APMINSW, + "PMINUB", LTYPE3, APMINUB, + "PSADBW", LTYPE3, APSADBW, + "PSUBB", LTYPE3, APSUBB, + "PSUBL", LTYPE3, APSUBL, + "PSUBQ", LTYPE3, APSUBQ, + "PSUBSB", LTYPE3, APSUBSB, + "PSUBSW", LTYPE3, APSUBSW, + "PSUBUSB", LTYPE3, APSUBUSB, + "PSUBUSW", LTYPE3, APSUBUSW, + "PSUBW", LTYPE3, APSUBW, + "PUNPCKHQDQ", LTYPE3, APUNPCKHQDQ, + "PUNPCKLQDQ", LTYPE3, APUNPCKLQDQ, + "RCPPS", LTYPE3, ARCPPS, + "RCPSS", LTYPE3, ARCPSS, + "RSQRTPS", LTYPE3, ARSQRTPS, + "RSQRTSS", LTYPE3, ARSQRTSS, + "SQRTPD", LTYPE3, ASQRTPD, + "SQRTPS", LTYPE3, ASQRTPS, + "SQRTSD", LTYPE3, ASQRTSD, + "SQRTSS", LTYPE3, ASQRTSS, + "SUBPD", LTYPE3, ASUBPD, + "SUBPS", LTYPE3, ASUBPS, + "SUBSD", LTYPE3, ASUBSD, + "SUBSS", LTYPE3, ASUBSS, + "UCOMISD", LTYPE3, AUCOMISD, + "UCOMISS", LTYPE3, AUCOMISS, + "UNPCKHPD", LTYPE3, AUNPCKHPD, + "UNPCKHPS", LTYPE3, AUNPCKHPS, + "UNPCKLPD", LTYPE3, AUNPCKLPD, + "UNPCKLPS", LTYPE3, AUNPCKLPS, + "XORPD", LTYPE3, AXORPD, + "XORPS", LTYPE3, AXORPS, + 0 }; diff --git a/src/cmd/8a/y.tab.c b/src/cmd/8a/y.tab.c index 56bb9e8989..a2a5271bda 100644 --- a/src/cmd/8a/y.tab.c +++ b/src/cmd/8a/y.tab.c @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,11 +54,50 @@ /* Pure parsers. */ #define YYPURE 0 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 +/* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ +#line 31 "a.y" + +#include +#include /* if we don't, bison will, and a.h re-#defines getc */ +#include +#include "a.h" + + +/* Line 189 of yacc.c */ +#line 81 "y.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -80,20 +118,21 @@ LTYPEM = 269, LTYPEI = 270, LTYPEG = 271, - LCONST = 272, - LFP = 273, - LPC = 274, - LSB = 275, - LBREG = 276, - LLREG = 277, - LSREG = 278, - LFREG = 279, - LFCONST = 280, - LSCONST = 281, - LSP = 282, - LNAME = 283, - LLAB = 284, - LVAR = 285 + LTYPEXC = 272, + LCONST = 273, + LFP = 274, + LPC = 275, + LSB = 276, + LBREG = 277, + LLREG = 278, + LSREG = 279, + LFREG = 280, + LFCONST = 281, + LSCONST = 282, + LSP = 283, + LNAME = 284, + LLAB = 285, + LVAR = 286 }; #endif /* Tokens. */ @@ -111,55 +150,32 @@ #define LTYPEM 269 #define LTYPEI 270 #define LTYPEG 271 -#define LCONST 272 -#define LFP 273 -#define LPC 274 -#define LSB 275 -#define LBREG 276 -#define LLREG 277 -#define LSREG 278 -#define LFREG 279 -#define LFCONST 280 -#define LSCONST 281 -#define LSP 282 -#define LNAME 283 -#define LLAB 284 -#define LVAR 285 - - - - -/* Copy the first part of user declarations. */ -#line 31 "a.y" - -#include -#include /* if we don't, bison will, and a.h re-#defines getc */ -#include -#include "a.h" - +#define LTYPEXC 272 +#define LCONST 273 +#define LFP 274 +#define LPC 275 +#define LSB 276 +#define LBREG 277 +#define LLREG 278 +#define LSREG 279 +#define LFREG 280 +#define LFCONST 281 +#define LSCONST 282 +#define LSP 283 +#define LNAME 284 +#define LLAB 285 +#define LVAR 286 -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 37 "a.y" { + +/* Line 214 of yacc.c */ +#line 37 "a.y" + Sym *sym; int32 lval; struct { @@ -170,22 +186,23 @@ typedef union YYSTYPE char sval[8]; Gen gen; Gen2 gen2; -} -/* Line 193 of yacc.c. */ -#line 176 "y.tab.c" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 194 "y.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 189 "y.tab.c" +/* Line 264 of yacc.c */ +#line 206 "y.tab.c" #ifdef short # undef short @@ -235,7 +252,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS +# if YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -260,14 +277,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -348,9 +365,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -384,12 +401,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -400,20 +417,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 514 +#define YYLAST 521 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 49 +#define YYNTOKENS 50 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 37 +#define YYNNTS 38 /* YYNRULES -- Number of rules. */ -#define YYNRULES 125 +#define YYNRULES 127 /* YYNRULES -- Number of states. */ -#define YYNSTATES 247 +#define YYNSTATES 254 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 285 +#define YYMAXUTOK 286 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -424,16 +441,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 47, 12, 5, 2, - 45, 46, 10, 8, 44, 9, 2, 11, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 41, 42, - 6, 43, 7, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 48, 12, 5, 2, + 46, 47, 10, 8, 45, 9, 2, 11, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 42, 43, + 6, 44, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 48, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -449,7 +466,7 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 1, 2, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40 + 35, 36, 37, 38, 39, 40, 41 }; #if YYDEBUG @@ -459,65 +476,66 @@ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 4, 5, 9, 10, 15, 16, 21, 23, 26, 29, 33, 37, 40, 43, 46, 49, 52, - 55, 58, 61, 64, 67, 70, 73, 76, 79, 80, - 82, 86, 90, 93, 95, 98, 100, 103, 105, 109, - 115, 119, 125, 128, 130, 133, 135, 137, 141, 147, - 151, 157, 160, 162, 166, 170, 176, 178, 180, 182, - 184, 187, 190, 192, 194, 196, 198, 200, 205, 208, - 211, 213, 215, 217, 219, 221, 224, 227, 230, 233, - 238, 244, 248, 251, 253, 256, 260, 265, 267, 269, - 271, 276, 281, 288, 298, 302, 306, 311, 317, 326, - 328, 335, 341, 349, 350, 353, 356, 358, 360, 362, - 364, 366, 369, 372, 375, 379, 381, 385, 389, 393, - 397, 401, 406, 411, 415, 419 + 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, + 83, 85, 89, 93, 96, 98, 101, 103, 106, 108, + 112, 118, 122, 128, 131, 133, 136, 138, 140, 144, + 150, 154, 160, 163, 165, 169, 173, 179, 185, 187, + 189, 191, 193, 196, 199, 201, 203, 205, 207, 209, + 214, 217, 220, 222, 224, 226, 228, 230, 233, 236, + 239, 242, 247, 253, 257, 260, 262, 265, 269, 274, + 276, 278, 280, 285, 290, 297, 307, 311, 315, 320, + 326, 335, 337, 344, 350, 358, 359, 362, 365, 367, + 369, 371, 373, 375, 378, 381, 384, 388, 390, 394, + 398, 402, 406, 410, 415, 420, 424, 428 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 50, 0, -1, -1, -1, 50, 51, 52, -1, -1, - 39, 41, 53, 52, -1, -1, 38, 41, 54, 52, - -1, 42, -1, 55, 42, -1, 1, 42, -1, 38, - 43, 85, -1, 40, 43, 85, -1, 13, 56, -1, - 14, 60, -1, 15, 59, -1, 16, 57, -1, 17, - 58, -1, 21, 61, -1, 19, 62, -1, 22, 63, - -1, 18, 64, -1, 20, 65, -1, 23, 66, -1, - 24, 67, -1, 25, 68, -1, 26, 69, -1, -1, - 44, -1, 72, 44, 70, -1, 70, 44, 72, -1, - 72, 44, -1, 72, -1, 44, 70, -1, 70, -1, - 44, 73, -1, 73, -1, 75, 44, 73, -1, 81, - 11, 84, 44, 75, -1, 78, 44, 76, -1, 78, - 44, 84, 44, 76, -1, 44, 71, -1, 71, -1, - 10, 81, -1, 56, -1, 60, -1, 72, 44, 70, - -1, 72, 44, 70, 41, 32, -1, 72, 44, 70, - -1, 72, 44, 70, 41, 33, -1, 72, 44, -1, - 72, -1, 72, 44, 70, -1, 78, 44, 75, -1, - 78, 44, 84, 44, 75, -1, 74, -1, 78, -1, - 73, -1, 80, -1, 10, 74, -1, 10, 79, -1, - 74, -1, 79, -1, 75, -1, 70, -1, 75, -1, - 84, 45, 29, 46, -1, 38, 82, -1, 39, 82, - -1, 31, -1, 34, -1, 32, -1, 37, -1, 33, - -1, 47, 84, -1, 47, 81, -1, 47, 36, -1, - 47, 35, -1, 47, 45, 35, 46, -1, 47, 45, - 9, 35, 46, -1, 47, 9, 35, -1, 47, 77, - -1, 27, -1, 9, 27, -1, 27, 9, 27, -1, - 9, 27, 9, 27, -1, 79, -1, 80, -1, 84, - -1, 84, 45, 32, 46, -1, 84, 45, 37, 46, - -1, 84, 45, 32, 10, 84, 46, -1, 84, 45, - 32, 46, 45, 32, 10, 84, 46, -1, 45, 32, - 46, -1, 45, 37, 46, -1, 84, 45, 33, 46, - -1, 45, 32, 10, 84, 46, -1, 45, 32, 46, - 45, 32, 10, 84, 46, -1, 81, -1, 81, 45, - 32, 10, 84, 46, -1, 38, 82, 45, 83, 46, - -1, 38, 6, 7, 82, 45, 30, 46, -1, -1, - 8, 84, -1, 9, 84, -1, 30, -1, 37, -1, - 28, -1, 27, -1, 40, -1, 9, 84, -1, 8, - 84, -1, 48, 84, -1, 45, 85, 46, -1, 84, - -1, 85, 8, 85, -1, 85, 9, 85, -1, 85, - 10, 85, -1, 85, 11, 85, -1, 85, 12, 85, - -1, 85, 6, 6, 85, -1, 85, 7, 7, 85, - -1, 85, 5, 85, -1, 85, 4, 85, -1, 85, - 3, 85, -1 + 51, 0, -1, -1, -1, 51, 52, 53, -1, -1, + 40, 42, 54, 53, -1, -1, 39, 42, 55, 53, + -1, 43, -1, 56, 43, -1, 1, 43, -1, 39, + 44, 87, -1, 41, 44, 87, -1, 13, 57, -1, + 14, 61, -1, 15, 60, -1, 16, 58, -1, 17, + 59, -1, 21, 62, -1, 19, 63, -1, 22, 64, + -1, 18, 65, -1, 20, 66, -1, 23, 67, -1, + 24, 68, -1, 25, 69, -1, 26, 70, -1, 27, + 71, -1, -1, 45, -1, 74, 45, 72, -1, 72, + 45, 74, -1, 74, 45, -1, 74, -1, 45, 72, + -1, 72, -1, 45, 75, -1, 75, -1, 77, 45, + 75, -1, 83, 11, 86, 45, 77, -1, 80, 45, + 78, -1, 80, 45, 86, 45, 78, -1, 45, 73, + -1, 73, -1, 10, 83, -1, 57, -1, 61, -1, + 74, 45, 72, -1, 74, 45, 72, 42, 33, -1, + 74, 45, 72, -1, 74, 45, 72, 42, 34, -1, + 74, 45, -1, 74, -1, 74, 45, 72, -1, 80, + 45, 77, -1, 80, 45, 86, 45, 77, -1, 76, + 45, 72, 45, 86, -1, 76, -1, 80, -1, 75, + -1, 82, -1, 10, 76, -1, 10, 81, -1, 76, + -1, 81, -1, 77, -1, 72, -1, 77, -1, 86, + 46, 30, 47, -1, 39, 84, -1, 40, 84, -1, + 32, -1, 35, -1, 33, -1, 38, -1, 34, -1, + 48, 86, -1, 48, 83, -1, 48, 37, -1, 48, + 36, -1, 48, 46, 36, 47, -1, 48, 46, 9, + 36, 47, -1, 48, 9, 36, -1, 48, 79, -1, + 28, -1, 9, 28, -1, 28, 9, 28, -1, 9, + 28, 9, 28, -1, 81, -1, 82, -1, 86, -1, + 86, 46, 33, 47, -1, 86, 46, 38, 47, -1, + 86, 46, 33, 10, 86, 47, -1, 86, 46, 33, + 47, 46, 33, 10, 86, 47, -1, 46, 33, 47, + -1, 46, 38, 47, -1, 86, 46, 34, 47, -1, + 46, 33, 10, 86, 47, -1, 46, 33, 47, 46, + 33, 10, 86, 47, -1, 83, -1, 83, 46, 33, + 10, 86, 47, -1, 39, 84, 46, 85, 47, -1, + 39, 6, 7, 84, 46, 31, 47, -1, -1, 8, + 86, -1, 9, 86, -1, 31, -1, 38, -1, 29, + -1, 28, -1, 41, -1, 9, 86, -1, 8, 86, + -1, 49, 86, -1, 46, 87, 47, -1, 86, -1, + 87, 8, 87, -1, 87, 9, 87, -1, 87, 10, + 87, -1, 87, 11, 87, -1, 87, 12, 87, -1, + 87, 6, 6, 87, -1, 87, 7, 7, 87, -1, + 87, 5, 87, -1, 87, 4, 87, -1, 87, 3, + 87, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -525,17 +543,17 @@ static const yytype_uint16 yyrline[] = { 0, 68, 68, 70, 69, 77, 76, 84, 83, 89, 90, 91, 94, 99, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 121, 125, - 132, 139, 146, 151, 158, 163, 170, 175, 180, 187, - 195, 200, 208, 213, 218, 227, 228, 231, 236, 246, - 251, 261, 266, 271, 278, 283, 291, 292, 295, 296, - 297, 301, 305, 306, 307, 310, 311, 314, 320, 329, - 338, 343, 348, 353, 358, 365, 371, 382, 388, 394, - 400, 406, 414, 423, 428, 433, 438, 445, 446, 449, - 455, 461, 467, 476, 485, 490, 495, 501, 509, 519, - 523, 532, 539, 548, 551, 555, 561, 562, 566, 569, - 570, 574, 578, 582, 586, 592, 593, 597, 601, 605, - 609, 613, 617, 621, 625, 629 + 111, 112, 113, 114, 115, 116, 117, 118, 119, 122, + 126, 133, 140, 147, 152, 159, 164, 171, 176, 181, + 188, 196, 201, 209, 214, 219, 228, 229, 232, 237, + 247, 252, 262, 267, 272, 279, 284, 292, 300, 301, + 304, 305, 306, 310, 314, 315, 316, 319, 320, 323, + 329, 338, 347, 352, 357, 362, 367, 374, 380, 391, + 397, 403, 409, 415, 423, 432, 437, 442, 447, 454, + 455, 458, 464, 470, 476, 485, 494, 499, 504, 510, + 518, 528, 532, 541, 548, 557, 560, 564, 570, 571, + 575, 578, 579, 583, 587, 591, 595, 601, 602, 606, + 610, 614, 618, 622, 626, 630, 634, 638 }; #endif @@ -547,14 +565,14 @@ static const char *const yytname[] = "$end", "error", "$undefined", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "LTYPE0", "LTYPE1", "LTYPE2", "LTYPE3", "LTYPE4", "LTYPEC", "LTYPED", "LTYPEN", "LTYPER", "LTYPET", "LTYPES", - "LTYPEM", "LTYPEI", "LTYPEG", "LCONST", "LFP", "LPC", "LSB", "LBREG", - "LLREG", "LSREG", "LFREG", "LFCONST", "LSCONST", "LSP", "LNAME", "LLAB", - "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'", - "$accept", "prog", "@1", "line", "@2", "@3", "inst", "nonnon", "rimrem", - "remrim", "rimnon", "nonrem", "nonrel", "spec1", "spec2", "spec3", - "spec4", "spec5", "spec6", "spec7", "spec8", "rem", "rom", "rim", "rel", - "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", "nam", "offset", - "pointer", "con", "expr", 0 + "LTYPEM", "LTYPEI", "LTYPEG", "LTYPEXC", "LCONST", "LFP", "LPC", "LSB", + "LBREG", "LLREG", "LSREG", "LFREG", "LFCONST", "LSCONST", "LSP", "LNAME", + "LLAB", "LVAR", "':'", "';'", "'='", "','", "'('", "')'", "'$'", "'~'", + "$accept", "prog", "$@1", "line", "$@2", "$@3", "inst", "nonnon", + "rimrem", "remrim", "rimnon", "nonrem", "nonrel", "spec1", "spec2", + "spec3", "spec4", "spec5", "spec6", "spec7", "spec8", "spec9", "rem", + "rom", "rim", "rel", "reg", "imm", "imm2", "con2", "mem", "omem", "nmem", + "nam", "offset", "pointer", "con", "expr", 0 }; #endif @@ -567,26 +585,26 @@ static const yytype_uint16 yytoknum[] = 42, 47, 37, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 58, 59, 61, 44, 40, 41, 36, 126 + 285, 286, 58, 59, 61, 44, 40, 41, 36, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 49, 50, 51, 50, 53, 52, 54, 52, 52, - 52, 52, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 56, 56, - 57, 58, 59, 59, 60, 60, 61, 61, 61, 62, - 63, 63, 64, 64, 64, 65, 65, 66, 66, 67, - 67, 68, 68, 68, 69, 69, 70, 70, 71, 71, - 71, 71, 71, 71, 71, 72, 72, 73, 73, 73, - 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, - 75, 75, 76, 77, 77, 77, 77, 78, 78, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 79, 80, - 80, 81, 81, 82, 82, 82, 83, 83, 83, 84, - 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85 + 0, 50, 51, 52, 51, 54, 53, 55, 53, 53, + 53, 53, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, + 57, 58, 59, 60, 60, 61, 61, 62, 62, 62, + 63, 64, 64, 65, 65, 65, 66, 66, 67, 67, + 68, 68, 69, 69, 69, 70, 70, 71, 72, 72, + 73, 73, 73, 73, 73, 73, 73, 74, 74, 75, + 75, 75, 76, 76, 76, 76, 76, 77, 77, 77, + 77, 77, 77, 77, 78, 79, 79, 79, 79, 80, + 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 82, 82, 83, 83, 84, 84, 84, 85, 85, + 85, 86, 86, 86, 86, 86, 86, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -594,17 +612,17 @@ static const yytype_uint8 yyr2[] = { 0, 2, 0, 0, 3, 0, 4, 0, 4, 1, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, - 3, 3, 2, 1, 2, 1, 2, 1, 3, 5, - 3, 5, 2, 1, 2, 1, 1, 3, 5, 3, - 5, 2, 1, 3, 3, 5, 1, 1, 1, 1, - 2, 2, 1, 1, 1, 1, 1, 4, 2, 2, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, - 5, 3, 2, 1, 2, 3, 4, 1, 1, 1, - 4, 4, 6, 9, 3, 3, 4, 5, 8, 1, - 6, 5, 7, 0, 2, 2, 1, 1, 1, 1, - 1, 2, 2, 2, 3, 1, 3, 3, 3, 3, - 3, 4, 4, 3, 3, 3 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 1, 3, 3, 2, 1, 2, 1, 2, 1, 3, + 5, 3, 5, 2, 1, 2, 1, 1, 3, 5, + 3, 5, 2, 1, 3, 3, 5, 5, 1, 1, + 1, 1, 2, 2, 1, 1, 1, 1, 1, 4, + 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 4, 5, 3, 2, 1, 2, 3, 4, 1, + 1, 1, 4, 4, 6, 9, 3, 3, 4, 5, + 8, 1, 6, 5, 7, 0, 2, 2, 1, 1, + 1, 1, 1, 2, 2, 2, 3, 1, 3, 3, + 3, 3, 3, 4, 4, 3, 3, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -612,81 +630,83 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 3, 1, 0, 0, 28, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 4, 0, 11, 29, 14, 0, 0, - 109, 70, 72, 74, 71, 73, 103, 110, 0, 0, - 0, 15, 35, 56, 57, 87, 88, 99, 89, 0, - 16, 65, 33, 66, 17, 0, 18, 0, 0, 103, - 103, 0, 22, 43, 58, 62, 64, 63, 59, 89, - 20, 0, 29, 45, 46, 23, 103, 0, 0, 19, - 37, 0, 0, 21, 0, 24, 0, 25, 0, 26, - 52, 27, 0, 7, 0, 5, 0, 10, 112, 111, - 0, 0, 0, 0, 34, 0, 0, 115, 0, 113, - 0, 0, 0, 78, 77, 0, 76, 75, 32, 0, - 0, 60, 61, 44, 68, 69, 0, 42, 0, 0, - 68, 36, 0, 0, 0, 0, 0, 51, 0, 0, - 12, 0, 13, 103, 104, 105, 0, 0, 94, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 81, 0, 0, 30, 31, - 0, 0, 38, 0, 40, 0, 47, 49, 53, 54, - 0, 8, 6, 0, 108, 106, 107, 0, 0, 0, - 125, 124, 123, 0, 0, 116, 117, 118, 119, 120, - 0, 0, 90, 96, 91, 0, 79, 67, 0, 0, - 83, 82, 0, 0, 0, 0, 0, 101, 97, 0, - 121, 122, 0, 0, 0, 80, 39, 84, 0, 41, - 48, 50, 55, 0, 0, 100, 92, 0, 0, 85, - 102, 0, 0, 86, 98, 0, 93 + 2, 3, 1, 0, 0, 29, 0, 0, 0, 0, + 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 4, 0, 11, 30, 14, 0, + 0, 111, 72, 74, 76, 73, 75, 105, 112, 0, + 0, 0, 15, 36, 58, 59, 89, 90, 101, 91, + 0, 16, 67, 34, 68, 17, 0, 18, 0, 0, + 105, 105, 0, 22, 44, 60, 64, 66, 65, 61, + 91, 20, 0, 30, 46, 47, 23, 105, 0, 0, + 19, 38, 0, 0, 21, 0, 24, 0, 25, 0, + 26, 53, 27, 0, 28, 0, 7, 0, 5, 0, + 10, 114, 113, 0, 0, 0, 0, 35, 0, 0, + 117, 0, 115, 0, 0, 0, 80, 79, 0, 78, + 77, 33, 0, 0, 62, 63, 45, 70, 71, 0, + 43, 0, 0, 70, 37, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 12, 0, 13, 105, 106, 107, + 0, 0, 96, 97, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 83, + 0, 0, 31, 32, 0, 0, 39, 0, 41, 0, + 48, 50, 54, 55, 0, 0, 8, 6, 0, 110, + 108, 109, 0, 0, 0, 127, 126, 125, 0, 0, + 118, 119, 120, 121, 122, 0, 0, 92, 98, 93, + 0, 81, 69, 0, 0, 85, 84, 0, 0, 0, + 0, 0, 0, 103, 99, 0, 123, 124, 0, 0, + 0, 82, 40, 86, 0, 42, 49, 51, 56, 57, + 0, 0, 102, 94, 0, 0, 87, 104, 0, 0, + 88, 100, 0, 95 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 3, 23, 141, 139, 24, 27, 54, 56, - 50, 41, 79, 70, 83, 62, 75, 85, 87, 89, - 91, 51, 63, 52, 64, 43, 53, 174, 211, 44, - 45, 46, 47, 103, 187, 48, 108 + -1, 1, 3, 24, 145, 143, 25, 28, 55, 57, + 51, 42, 80, 71, 84, 63, 76, 86, 88, 90, + 92, 94, 52, 64, 53, 65, 44, 54, 178, 216, + 45, 46, 47, 48, 106, 192, 49, 111 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -63 +#define YYPACT_NINF -91 static const yytype_int16 yypact[] = { - -63, 15, -63, 154, -17, 9, 238, 258, 258, 305, - 178, 6, 285, 343, 401, 258, 258, 258, 401, 42, - 13, -8, -63, -63, 21, -63, -63, -63, 451, 451, - -63, -63, -63, -63, -63, -63, 34, -63, 305, 366, - 451, -63, -63, -63, -63, -63, -63, 19, 24, 359, - -63, -63, 26, -63, -63, 38, -63, 43, 305, 34, - 41, 211, -63, -63, -63, -63, -63, -63, -63, 53, - -63, 92, 305, -63, -63, -63, 41, 392, 451, -63, - -63, 60, 71, -63, 73, -63, 76, -63, 82, -63, - 83, -63, 89, -63, 451, -63, 451, -63, -63, -63, - 131, 451, 451, 94, -63, 0, 97, -63, 69, -63, - 112, -6, 407, -63, -63, 416, -63, -63, -63, 305, - 258, -63, -63, -63, 94, -63, 332, -63, 121, 451, - -63, -63, 392, 122, 155, 305, 305, 305, 418, 154, - 476, 154, 476, 41, -63, -63, 8, 451, 107, -63, - 451, 451, 451, 151, 152, 451, 451, 451, 451, 451, - -63, 150, 2, 115, 116, -63, 427, 119, -63, -63, - 120, 137, -63, 14, -63, 141, 148, 156, -63, -63, - 157, -63, -63, 153, -63, -63, -63, 158, 161, 176, - 102, 495, 502, 451, 451, 49, 49, -63, -63, -63, - 451, 451, 168, -63, -63, 187, -63, -63, 167, 207, - 226, -63, 189, 205, 206, 167, 210, -63, -63, 231, - 219, 219, 208, 209, 220, -63, -63, 244, 230, -63, - -63, -63, -63, 214, 451, -63, -63, 251, 235, -63, - -63, 217, 451, -63, -63, 218, -63 + -91, 28, -91, 160, -7, -6, 264, 286, 286, 330, + 208, 9, 308, 364, 18, 286, 286, 286, 18, 80, + 82, -9, 21, -91, -91, 32, -91, -91, -91, 93, + 93, -91, -91, -91, -91, -91, -91, 76, -91, 330, + 387, 93, -91, -91, -91, -91, -91, -91, 40, 54, + 380, -91, -91, 59, -91, -91, 64, -91, 65, 330, + 76, 84, 242, -91, -91, -91, -91, -91, -91, -91, + 89, -91, 108, 330, -91, -91, -91, 84, 414, 93, + -91, -91, 87, 97, -91, 102, -91, 103, -91, 114, + -91, 127, -91, 145, -91, 147, -91, 93, -91, 93, + -91, -91, -91, 184, 93, 93, 148, -91, -4, 150, + -91, 159, -91, 165, 11, 423, -91, -91, 429, -91, + -91, -91, 330, 286, -91, -91, -91, 148, -91, 352, + -91, 73, 93, -91, -91, 414, 163, 42, 330, 330, + 330, 217, 330, 160, 485, 160, 485, 84, -91, -91, + 3, 93, 156, -91, 93, 93, 93, 198, 200, 93, + 93, 93, 93, 93, -91, 199, 15, 161, 166, -91, + 438, 167, -91, -91, 168, 174, -91, 7, -91, 175, + 179, 180, -91, -91, 178, 182, -91, -91, 164, -91, + -91, -91, 177, 181, 196, 494, 502, 509, 93, 93, + 86, 86, -91, -91, -91, 93, 93, 186, -91, -91, + 183, -91, -91, 185, 206, 226, -91, 189, 205, 210, + 185, 93, 224, -91, -91, 249, 146, 146, 213, 214, + 229, -91, -91, 255, 239, -91, -91, -91, -91, -91, + 221, 93, -91, -91, 259, 243, -91, -91, 231, 93, + -91, -91, 232, -91 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -63, -63, -63, -40, -63, -63, -63, 256, -63, -63, - -63, 261, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -1, 213, 5, -11, -3, -9, 65, -63, 10, - 4, -4, -2, -43, -63, -10, -62 + -91, -91, -91, -90, -91, -91, -91, 272, -91, -91, + -91, 273, -91, -91, -91, -91, -91, -91, -91, -91, + -91, -91, -2, 225, 6, -12, -1, -8, 69, -91, + 24, 1, 14, -3, -48, -91, -10, -82 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -696,145 +716,148 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 69, 66, 80, 82, 81, 42, 68, 65, 57, 71, - 147, 42, 201, 55, 67, 2, 124, 125, 98, 99, - 86, 88, 90, 209, 84, 25, 162, 163, 92, 107, - 109, 164, 140, 130, 142, 96, 184, 104, 185, 117, - 100, 210, 101, 102, 36, 186, 148, 116, 202, 101, - 102, 69, 66, 26, 95, 121, 123, 68, 65, 157, - 158, 159, 122, 97, 110, 67, 131, 82, 107, 111, - 118, 104, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 119, 93, 107, 94, 107, 120, 190, 191, - 192, 144, 145, 195, 196, 197, 198, 199, 128, 181, - 183, 182, 99, 129, 132, 107, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 133, 134, 168, 171, - 135, 172, 82, 121, 175, 169, 136, 137, 180, 179, - 122, 220, 221, 138, 176, 177, 178, 188, 143, 146, - 107, 107, 107, 149, 161, 107, 107, 107, 107, 107, - 170, 170, 189, 162, 163, 4, 99, 193, 164, 194, - 200, 203, 204, 28, 29, 206, 207, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 208, 30, 107, 107, 212, 28, 29, 58, 213, - 222, 223, 19, 20, 21, 37, 22, 214, 216, 226, - 78, 215, 173, 40, 217, 30, 232, 218, 219, 31, - 32, 33, 34, 224, 49, 35, 59, 60, 37, 28, - 29, 126, 61, 39, 241, 49, 40, 155, 156, 157, - 158, 159, 245, 225, 227, 228, 173, 230, 30, 231, - 233, 234, 31, 32, 33, 34, 28, 29, 35, 59, - 60, 37, 237, 238, 235, 236, 39, 239, 49, 40, - 240, 242, 243, 244, 246, 30, 28, 29, 73, 31, - 32, 33, 34, 74, 127, 35, 36, 229, 37, 0, - 0, 0, 38, 39, 0, 30, 40, 0, 0, 31, - 32, 33, 34, 28, 29, 35, 36, 0, 37, 0, - 0, 0, 0, 39, 0, 49, 40, 0, 0, 0, - 0, 0, 30, 28, 29, 0, 31, 32, 33, 34, - 0, 0, 35, 36, 0, 37, 0, 0, 0, 72, - 39, 0, 30, 40, 0, 0, 31, 32, 33, 34, - 28, 29, 35, 36, 0, 37, 0, 0, 0, 0, - 39, 28, 29, 40, 0, 0, 0, 0, 0, 30, - 0, 0, 0, 31, 32, 33, 34, 28, 112, 35, - 30, 0, 37, 0, 28, 29, 0, 39, 0, 0, - 40, 76, 60, 37, 0, 0, 30, 77, 78, 0, - 49, 40, 0, 30, 113, 114, 0, 36, 105, 37, - 28, 29, 0, 106, 115, 0, 37, 40, 0, 28, - 29, 78, 0, 0, 40, 28, 29, 0, 0, 30, - 0, 0, 0, 0, 28, 166, 28, 29, 30, 0, - 76, 60, 37, 0, 30, 28, 29, 78, 0, 36, - 40, 37, 165, 30, 0, 30, 39, 37, 0, 40, - 0, 167, 78, 0, 30, 40, 37, 0, 37, 28, - 29, 78, 205, 78, 40, 49, 40, 37, 0, 0, - 0, 0, 78, 0, 0, 40, 0, 0, 30, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 0, - 0, 37, 0, 0, 0, 0, 78, 0, 0, 40, - 152, 153, 154, 155, 156, 157, 158, 159, 153, 154, - 155, 156, 157, 158, 159 + 70, 81, 67, 83, 43, 82, 151, 58, 72, 66, + 43, 68, 127, 128, 56, 144, 214, 146, 95, 101, + 102, 87, 89, 91, 69, 206, 29, 30, 2, 133, + 110, 112, 189, 98, 190, 215, 26, 107, 85, 27, + 120, 191, 93, 152, 166, 167, 31, 119, 37, 168, + 29, 30, 70, 186, 67, 187, 126, 37, 124, 38, + 125, 66, 207, 68, 40, 99, 134, 41, 83, 110, + 31, 107, 195, 196, 197, 100, 69, 200, 201, 202, + 203, 204, 103, 38, 104, 105, 113, 110, 79, 110, + 177, 41, 104, 105, 148, 149, 161, 162, 163, 188, + 114, 29, 30, 174, 121, 102, 166, 167, 110, 122, + 123, 168, 32, 33, 34, 35, 226, 227, 36, 132, + 172, 31, 175, 176, 96, 83, 97, 179, 124, 173, + 125, 184, 135, 183, 38, 131, 180, 181, 182, 79, + 185, 193, 41, 136, 110, 110, 110, 137, 138, 110, + 110, 110, 110, 110, 159, 160, 161, 162, 163, 139, + 102, 4, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 140, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 110, 110, + 141, 147, 142, 174, 150, 228, 229, 153, 165, 20, + 21, 22, 194, 23, 198, 232, 164, 199, 208, 205, + 222, 239, 238, 209, 211, 212, 29, 30, 59, 213, + 217, 218, 219, 220, 223, 29, 30, 221, 224, 225, + 231, 248, 230, 50, 233, 234, 31, 177, 236, 252, + 32, 33, 34, 35, 237, 31, 36, 60, 61, 38, + 29, 30, 129, 62, 40, 240, 50, 41, 38, 241, + 242, 243, 244, 79, 245, 50, 41, 246, 247, 249, + 31, 250, 29, 30, 32, 33, 34, 35, 251, 253, + 36, 60, 61, 38, 74, 75, 235, 130, 40, 0, + 50, 41, 31, 0, 29, 30, 32, 33, 34, 35, + 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, + 40, 0, 0, 41, 31, 0, 29, 30, 32, 33, + 34, 35, 0, 0, 36, 37, 0, 38, 0, 0, + 0, 0, 40, 0, 50, 41, 31, 0, 29, 30, + 32, 33, 34, 35, 0, 0, 36, 37, 0, 38, + 0, 0, 0, 73, 40, 0, 0, 41, 31, 0, + 29, 30, 32, 33, 34, 35, 0, 0, 36, 37, + 0, 38, 29, 30, 0, 0, 40, 0, 0, 41, + 31, 0, 0, 0, 32, 33, 34, 35, 29, 115, + 36, 0, 31, 38, 0, 29, 30, 0, 40, 0, + 0, 41, 0, 77, 61, 38, 0, 0, 31, 78, + 79, 0, 50, 41, 0, 31, 116, 117, 0, 37, + 108, 38, 29, 30, 0, 109, 118, 0, 38, 41, + 0, 29, 30, 79, 0, 0, 41, 29, 170, 0, + 0, 0, 31, 0, 0, 0, 29, 30, 0, 0, + 0, 31, 0, 77, 61, 38, 0, 31, 0, 169, + 79, 0, 0, 41, 38, 171, 31, 0, 0, 79, + 38, 0, 41, 0, 210, 79, 0, 0, 41, 38, + 0, 0, 0, 0, 79, 0, 0, 41, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 156, 157, 158, + 159, 160, 161, 162, 163, 157, 158, 159, 160, 161, + 162, 163 }; static const yytype_int16 yycheck[] = { - 10, 10, 13, 13, 13, 6, 10, 10, 9, 11, - 10, 12, 10, 8, 10, 0, 59, 60, 28, 29, - 15, 16, 17, 9, 14, 42, 32, 33, 18, 39, - 40, 37, 94, 76, 96, 43, 28, 38, 30, 49, - 6, 27, 8, 9, 38, 37, 46, 49, 46, 8, - 9, 61, 61, 44, 41, 58, 58, 61, 61, 10, - 11, 12, 58, 42, 45, 61, 77, 77, 78, 45, - 44, 72, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 44, 41, 94, 43, 96, 44, 150, 151, - 152, 101, 102, 155, 156, 157, 158, 159, 45, 139, - 143, 141, 112, 11, 44, 115, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 46, 45, 44, 119, 129, - 44, 132, 132, 126, 134, 120, 44, 44, 138, 138, - 126, 193, 194, 44, 135, 136, 137, 147, 7, 45, - 150, 151, 152, 46, 32, 155, 156, 157, 158, 159, - 29, 29, 45, 32, 33, 1, 166, 6, 37, 7, - 10, 46, 46, 8, 9, 46, 46, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 44, 27, 193, 194, 44, 8, 9, 10, 41, - 200, 201, 38, 39, 40, 40, 42, 41, 45, 208, - 45, 44, 47, 48, 46, 27, 215, 46, 32, 31, - 32, 33, 34, 45, 47, 37, 38, 39, 40, 8, - 9, 10, 44, 45, 234, 47, 48, 8, 9, 10, - 11, 12, 242, 46, 27, 9, 47, 32, 27, 33, - 30, 10, 31, 32, 33, 34, 8, 9, 37, 38, - 39, 40, 32, 9, 46, 46, 45, 27, 47, 48, - 46, 10, 27, 46, 46, 27, 8, 9, 12, 31, - 32, 33, 34, 12, 61, 37, 38, 212, 40, -1, - -1, -1, 44, 45, -1, 27, 48, -1, -1, 31, - 32, 33, 34, 8, 9, 37, 38, -1, 40, -1, - -1, -1, -1, 45, -1, 47, 48, -1, -1, -1, - -1, -1, 27, 8, 9, -1, 31, 32, 33, 34, - -1, -1, 37, 38, -1, 40, -1, -1, -1, 44, - 45, -1, 27, 48, -1, -1, 31, 32, 33, 34, - 8, 9, 37, 38, -1, 40, -1, -1, -1, -1, - 45, 8, 9, 48, -1, -1, -1, -1, -1, 27, - -1, -1, -1, 31, 32, 33, 34, 8, 9, 37, - 27, -1, 40, -1, 8, 9, -1, 45, -1, -1, - 48, 38, 39, 40, -1, -1, 27, 44, 45, -1, - 47, 48, -1, 27, 35, 36, -1, 38, 32, 40, - 8, 9, -1, 37, 45, -1, 40, 48, -1, 8, - 9, 45, -1, -1, 48, 8, 9, -1, -1, 27, - -1, -1, -1, -1, 8, 9, 8, 9, 27, -1, - 38, 39, 40, -1, 27, 8, 9, 45, -1, 38, - 48, 40, 35, 27, -1, 27, 45, 40, -1, 48, - -1, 35, 45, -1, 27, 48, 40, -1, 40, 8, - 9, 45, 35, 45, 48, 47, 48, 40, -1, -1, - -1, -1, 45, -1, -1, 48, -1, -1, 27, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, 40, -1, -1, -1, -1, 45, -1, -1, 48, - 5, 6, 7, 8, 9, 10, 11, 12, 6, 7, - 8, 9, 10, 11, 12 + 10, 13, 10, 13, 6, 13, 10, 9, 11, 10, + 12, 10, 60, 61, 8, 97, 9, 99, 19, 29, + 30, 15, 16, 17, 10, 10, 8, 9, 0, 77, + 40, 41, 29, 42, 31, 28, 43, 39, 14, 45, + 50, 38, 18, 47, 33, 34, 28, 50, 39, 38, + 8, 9, 62, 143, 62, 145, 59, 39, 59, 41, + 59, 62, 47, 62, 46, 44, 78, 49, 78, 79, + 28, 73, 154, 155, 156, 43, 62, 159, 160, 161, + 162, 163, 6, 41, 8, 9, 46, 97, 46, 99, + 48, 49, 8, 9, 104, 105, 10, 11, 12, 147, + 46, 8, 9, 30, 45, 115, 33, 34, 118, 45, + 45, 38, 32, 33, 34, 35, 198, 199, 38, 11, + 122, 28, 132, 135, 42, 135, 44, 137, 129, 123, + 129, 141, 45, 141, 41, 46, 138, 139, 140, 46, + 142, 151, 49, 46, 154, 155, 156, 45, 45, 159, + 160, 161, 162, 163, 8, 9, 10, 11, 12, 45, + 170, 1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 45, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 198, 199, + 45, 7, 45, 30, 46, 205, 206, 47, 33, 39, + 40, 41, 46, 43, 6, 213, 47, 7, 47, 10, + 46, 221, 220, 47, 47, 47, 8, 9, 10, 45, + 45, 42, 42, 45, 47, 8, 9, 45, 47, 33, + 47, 241, 46, 48, 28, 9, 28, 48, 33, 249, + 32, 33, 34, 35, 34, 28, 38, 39, 40, 41, + 8, 9, 10, 45, 46, 31, 48, 49, 41, 10, + 47, 47, 33, 46, 9, 48, 49, 28, 47, 10, + 28, 28, 8, 9, 32, 33, 34, 35, 47, 47, + 38, 39, 40, 41, 12, 12, 217, 62, 46, -1, + 48, 49, 28, -1, 8, 9, 32, 33, 34, 35, + -1, -1, 38, 39, -1, 41, -1, -1, -1, 45, + 46, -1, -1, 49, 28, -1, 8, 9, 32, 33, + 34, 35, -1, -1, 38, 39, -1, 41, -1, -1, + -1, -1, 46, -1, 48, 49, 28, -1, 8, 9, + 32, 33, 34, 35, -1, -1, 38, 39, -1, 41, + -1, -1, -1, 45, 46, -1, -1, 49, 28, -1, + 8, 9, 32, 33, 34, 35, -1, -1, 38, 39, + -1, 41, 8, 9, -1, -1, 46, -1, -1, 49, + 28, -1, -1, -1, 32, 33, 34, 35, 8, 9, + 38, -1, 28, 41, -1, 8, 9, -1, 46, -1, + -1, 49, -1, 39, 40, 41, -1, -1, 28, 45, + 46, -1, 48, 49, -1, 28, 36, 37, -1, 39, + 33, 41, 8, 9, -1, 38, 46, -1, 41, 49, + -1, 8, 9, 46, -1, -1, 49, 8, 9, -1, + -1, -1, 28, -1, -1, -1, 8, 9, -1, -1, + -1, 28, -1, 39, 40, 41, -1, 28, -1, 36, + 46, -1, -1, 49, 41, 36, 28, -1, -1, 46, + 41, -1, 49, -1, 36, 46, -1, -1, 49, 41, + -1, -1, -1, -1, 46, -1, -1, 49, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 5, 6, 7, + 8, 9, 10, 11, 12, 6, 7, 8, 9, 10, + 11, 12 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 50, 0, 51, 1, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 38, - 39, 40, 42, 52, 55, 42, 44, 56, 8, 9, - 27, 31, 32, 33, 34, 37, 38, 40, 44, 45, - 48, 60, 70, 74, 78, 79, 80, 81, 84, 47, - 59, 70, 72, 75, 57, 72, 58, 70, 10, 38, - 39, 44, 64, 71, 73, 74, 75, 79, 80, 84, - 62, 81, 44, 56, 60, 65, 38, 44, 45, 61, - 73, 75, 84, 63, 78, 66, 72, 67, 72, 68, - 72, 69, 78, 41, 43, 41, 43, 42, 84, 84, - 6, 8, 9, 82, 70, 32, 37, 84, 85, 84, - 45, 45, 9, 35, 36, 45, 81, 84, 44, 44, - 44, 74, 79, 81, 82, 82, 10, 71, 45, 11, - 82, 73, 44, 45, 44, 44, 44, 44, 44, 54, - 85, 53, 85, 7, 84, 84, 45, 10, 46, 46, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 46, 32, 32, 33, 37, 35, 9, 35, 70, 72, - 29, 84, 73, 47, 76, 84, 70, 70, 70, 75, - 84, 52, 52, 82, 28, 30, 37, 83, 84, 45, - 85, 85, 85, 6, 7, 85, 85, 85, 85, 85, - 10, 10, 46, 46, 46, 35, 46, 46, 44, 9, - 27, 77, 44, 41, 41, 44, 45, 46, 46, 32, - 85, 85, 84, 84, 45, 46, 75, 27, 9, 76, - 32, 33, 75, 30, 10, 46, 46, 32, 9, 27, - 46, 84, 10, 27, 46, 84, 46 + 0, 51, 0, 52, 1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 39, 40, 41, 43, 53, 56, 43, 45, 57, 8, + 9, 28, 32, 33, 34, 35, 38, 39, 41, 45, + 46, 49, 61, 72, 76, 80, 81, 82, 83, 86, + 48, 60, 72, 74, 77, 58, 74, 59, 72, 10, + 39, 40, 45, 65, 73, 75, 76, 77, 81, 82, + 86, 63, 83, 45, 57, 61, 66, 39, 45, 46, + 62, 75, 77, 86, 64, 80, 67, 74, 68, 74, + 69, 74, 70, 80, 71, 76, 42, 44, 42, 44, + 43, 86, 86, 6, 8, 9, 84, 72, 33, 38, + 86, 87, 86, 46, 46, 9, 36, 37, 46, 83, + 86, 45, 45, 45, 76, 81, 83, 84, 84, 10, + 73, 46, 11, 84, 75, 45, 46, 45, 45, 45, + 45, 45, 45, 55, 87, 54, 87, 7, 86, 86, + 46, 10, 47, 47, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 47, 33, 33, 34, 38, 36, + 9, 36, 72, 74, 30, 86, 75, 48, 78, 86, + 72, 72, 72, 77, 86, 72, 53, 53, 84, 29, + 31, 38, 85, 86, 46, 87, 87, 87, 6, 7, + 87, 87, 87, 87, 87, 10, 10, 47, 47, 47, + 36, 47, 47, 45, 9, 28, 79, 45, 42, 42, + 45, 45, 46, 47, 47, 33, 87, 87, 86, 86, + 46, 47, 77, 28, 9, 78, 33, 34, 77, 86, + 31, 10, 47, 47, 33, 9, 28, 47, 86, 10, + 28, 47, 86, 47 }; #define yyerrok (yyerrstatus = 0) @@ -908,7 +931,7 @@ while (YYID (0)) we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ @@ -1019,17 +1042,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -1063,11 +1089,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1347,10 +1373,8 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1366,11 +1390,10 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ @@ -1378,9 +1401,9 @@ int yynerrs; -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1404,66 +1427,68 @@ yyparse () #endif #endif { - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -1493,7 +1518,6 @@ yyparse () YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -1501,7 +1525,6 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -1524,9 +1547,8 @@ yyparse () (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -1537,7 +1559,6 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -1547,6 +1568,9 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -1555,16 +1579,16 @@ yyparse () yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1596,20 +1620,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -1649,6 +1669,8 @@ yyreduce: switch (yyn) { case 3: + +/* Line 1455 of yacc.c */ #line 70 "a.y" { stmtline = lineno; @@ -1656,6 +1678,8 @@ yyreduce: break; case 5: + +/* Line 1455 of yacc.c */ #line 77 "a.y" { if((yyvsp[(1) - (2)].sym)->value != pc) @@ -1665,6 +1689,8 @@ yyreduce: break; case 7: + +/* Line 1455 of yacc.c */ #line 84 "a.y" { (yyvsp[(1) - (2)].sym)->type = LLAB; @@ -1673,6 +1699,8 @@ yyreduce: break; case 12: + +/* Line 1455 of yacc.c */ #line 95 "a.y" { (yyvsp[(1) - (3)].sym)->type = LVAR; @@ -1681,6 +1709,8 @@ yyreduce: break; case 13: + +/* Line 1455 of yacc.c */ #line 100 "a.y" { if((yyvsp[(1) - (3)].sym)->value != (yyvsp[(3) - (3)].lval)) @@ -1690,165 +1720,224 @@ yyreduce: break; case 14: + +/* Line 1455 of yacc.c */ #line 105 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 15: + +/* Line 1455 of yacc.c */ #line 106 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 16: + +/* Line 1455 of yacc.c */ #line 107 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 17: + +/* Line 1455 of yacc.c */ #line 108 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 18: + +/* Line 1455 of yacc.c */ #line 109 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 19: + +/* Line 1455 of yacc.c */ #line 110 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 20: + +/* Line 1455 of yacc.c */ #line 111 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 21: + +/* Line 1455 of yacc.c */ #line 112 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 22: + +/* Line 1455 of yacc.c */ #line 113 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 23: + +/* Line 1455 of yacc.c */ #line 114 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 24: + +/* Line 1455 of yacc.c */ #line 115 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 25: + +/* Line 1455 of yacc.c */ #line 116 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 26: + +/* Line 1455 of yacc.c */ #line 117 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 27: + +/* Line 1455 of yacc.c */ #line 118 "a.y" { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } break; case 28: -#line 121 "a.y" + +/* Line 1455 of yacc.c */ +#line 119 "a.y" + { outcode((yyvsp[(1) - (2)].lval), &(yyvsp[(2) - (2)].gen2)); } + break; + + case 29: + +/* Line 1455 of yacc.c */ +#line 122 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = nullgen; } break; - case 29: -#line 126 "a.y" + case 30: + +/* Line 1455 of yacc.c */ +#line 127 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = nullgen; } break; - case 30: -#line 133 "a.y" + case 31: + +/* Line 1455 of yacc.c */ +#line 134 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 31: -#line 140 "a.y" + case 32: + +/* Line 1455 of yacc.c */ +#line 141 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 32: -#line 147 "a.y" + case 33: + +/* Line 1455 of yacc.c */ +#line 148 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (2)].gen); (yyval.gen2).to = nullgen; } break; - case 33: -#line 152 "a.y" + case 34: + +/* Line 1455 of yacc.c */ +#line 153 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (1)].gen); (yyval.gen2).to = nullgen; } break; - case 34: -#line 159 "a.y" + case 35: + +/* Line 1455 of yacc.c */ +#line 160 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(2) - (2)].gen); } break; - case 35: -#line 164 "a.y" + case 36: + +/* Line 1455 of yacc.c */ +#line 165 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(1) - (1)].gen); } break; - case 36: -#line 171 "a.y" + case 37: + +/* Line 1455 of yacc.c */ +#line 172 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(2) - (2)].gen); } break; - case 37: -#line 176 "a.y" + case 38: + +/* Line 1455 of yacc.c */ +#line 177 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(1) - (1)].gen); } break; - case 38: -#line 181 "a.y" + case 39: + +/* Line 1455 of yacc.c */ +#line 182 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 39: -#line 188 "a.y" + case 40: + +/* Line 1455 of yacc.c */ +#line 189 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1856,16 +1945,20 @@ yyreduce: } break; - case 40: -#line 196 "a.y" + case 41: + +/* Line 1455 of yacc.c */ +#line 197 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 41: -#line 201 "a.y" + case 42: + +/* Line 1455 of yacc.c */ +#line 202 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1873,24 +1966,30 @@ yyreduce: } break; - case 42: -#line 209 "a.y" + case 43: + +/* Line 1455 of yacc.c */ +#line 210 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(2) - (2)].gen); } break; - case 43: -#line 214 "a.y" + case 44: + +/* Line 1455 of yacc.c */ +#line 215 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(1) - (1)].gen); } break; - case 44: -#line 219 "a.y" + case 45: + +/* Line 1455 of yacc.c */ +#line 220 "a.y" { (yyval.gen2).from = nullgen; (yyval.gen2).to = (yyvsp[(2) - (2)].gen); @@ -1899,16 +1998,20 @@ yyreduce: } break; - case 47: -#line 232 "a.y" + case 48: + +/* Line 1455 of yacc.c */ +#line 233 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 48: -#line 237 "a.y" + case 49: + +/* Line 1455 of yacc.c */ +#line 238 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).to = (yyvsp[(3) - (5)].gen); @@ -1918,16 +2021,20 @@ yyreduce: } break; - case 49: -#line 247 "a.y" + case 50: + +/* Line 1455 of yacc.c */ +#line 248 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 50: -#line 252 "a.y" + case 51: + +/* Line 1455 of yacc.c */ +#line 253 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).to = (yyvsp[(3) - (5)].gen); @@ -1937,40 +2044,50 @@ yyreduce: } break; - case 51: -#line 262 "a.y" + case 52: + +/* Line 1455 of yacc.c */ +#line 263 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (2)].gen); (yyval.gen2).to = nullgen; } break; - case 52: -#line 267 "a.y" + case 53: + +/* Line 1455 of yacc.c */ +#line 268 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (1)].gen); (yyval.gen2).to = nullgen; } break; - case 53: -#line 272 "a.y" + case 54: + +/* Line 1455 of yacc.c */ +#line 273 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 54: -#line 279 "a.y" + case 55: + +/* Line 1455 of yacc.c */ +#line 280 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (3)].gen); (yyval.gen2).to = (yyvsp[(3) - (3)].gen); } break; - case 55: -#line 284 "a.y" + case 56: + +/* Line 1455 of yacc.c */ +#line 285 "a.y" { (yyval.gen2).from = (yyvsp[(1) - (5)].gen); (yyval.gen2).from.scale = (yyvsp[(3) - (5)].lval); @@ -1978,22 +2095,39 @@ yyreduce: } break; - case 60: -#line 298 "a.y" + case 57: + +/* Line 1455 of yacc.c */ +#line 293 "a.y" + { + (yyval.gen2).from = (yyvsp[(1) - (5)].gen); + (yyval.gen2).to = (yyvsp[(3) - (5)].gen); + (yyval.gen2).to.offset = (yyvsp[(5) - (5)].lval); + } + break; + + case 62: + +/* Line 1455 of yacc.c */ +#line 307 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); } break; - case 61: -#line 302 "a.y" + case 63: + +/* Line 1455 of yacc.c */ +#line 311 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); } break; - case 67: -#line 315 "a.y" + case 69: + +/* Line 1455 of yacc.c */ +#line 324 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2001,8 +2135,10 @@ yyreduce: } break; - case 68: -#line 321 "a.y" + case 70: + +/* Line 1455 of yacc.c */ +#line 330 "a.y" { (yyval.gen) = nullgen; if(pass == 2) @@ -2013,8 +2149,10 @@ yyreduce: } break; - case 69: -#line 330 "a.y" + case 71: + +/* Line 1455 of yacc.c */ +#line 339 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_BRANCH; @@ -2023,48 +2161,60 @@ yyreduce: } break; - case 70: -#line 339 "a.y" + case 72: + +/* Line 1455 of yacc.c */ +#line 348 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; - case 71: -#line 344 "a.y" + case 73: + +/* Line 1455 of yacc.c */ +#line 353 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; - case 72: -#line 349 "a.y" + case 74: + +/* Line 1455 of yacc.c */ +#line 358 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; - case 73: -#line 354 "a.y" + case 75: + +/* Line 1455 of yacc.c */ +#line 363 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SP; } break; - case 74: -#line 359 "a.y" + case 76: + +/* Line 1455 of yacc.c */ +#line 368 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(1) - (1)].lval); } break; - case 75: -#line 366 "a.y" + case 77: + +/* Line 1455 of yacc.c */ +#line 375 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_CONST; @@ -2072,8 +2222,10 @@ yyreduce: } break; - case 76: -#line 372 "a.y" + case 78: + +/* Line 1455 of yacc.c */ +#line 381 "a.y" { (yyval.gen) = (yyvsp[(2) - (2)].gen); (yyval.gen).index = (yyvsp[(2) - (2)].gen).type; @@ -2086,8 +2238,10 @@ yyreduce: } break; - case 77: -#line 383 "a.y" + case 79: + +/* Line 1455 of yacc.c */ +#line 392 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_SCONST; @@ -2095,8 +2249,10 @@ yyreduce: } break; - case 78: -#line 389 "a.y" + case 80: + +/* Line 1455 of yacc.c */ +#line 398 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2104,8 +2260,10 @@ yyreduce: } break; - case 79: -#line 395 "a.y" + case 81: + +/* Line 1455 of yacc.c */ +#line 404 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2113,8 +2271,10 @@ yyreduce: } break; - case 80: -#line 401 "a.y" + case 82: + +/* Line 1455 of yacc.c */ +#line 410 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2122,8 +2282,10 @@ yyreduce: } break; - case 81: -#line 407 "a.y" + case 83: + +/* Line 1455 of yacc.c */ +#line 416 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_FCONST; @@ -2131,8 +2293,10 @@ yyreduce: } break; - case 82: -#line 415 "a.y" + case 84: + +/* Line 1455 of yacc.c */ +#line 424 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_CONST2; @@ -2141,40 +2305,50 @@ yyreduce: } break; - case 83: -#line 424 "a.y" + case 85: + +/* Line 1455 of yacc.c */ +#line 433 "a.y" { (yyval.con2).v1 = (yyvsp[(1) - (1)].lval); (yyval.con2).v2 = 0; } break; - case 84: -#line 429 "a.y" + case 86: + +/* Line 1455 of yacc.c */ +#line 438 "a.y" { (yyval.con2).v1 = -(yyvsp[(2) - (2)].lval); (yyval.con2).v2 = 0; } break; - case 85: -#line 434 "a.y" + case 87: + +/* Line 1455 of yacc.c */ +#line 443 "a.y" { (yyval.con2).v1 = (yyvsp[(1) - (3)].lval); (yyval.con2).v2 = (yyvsp[(3) - (3)].lval); } break; - case 86: -#line 439 "a.y" + case 88: + +/* Line 1455 of yacc.c */ +#line 448 "a.y" { (yyval.con2).v1 = -(yyvsp[(2) - (4)].lval); (yyval.con2).v2 = (yyvsp[(4) - (4)].lval); } break; - case 89: -#line 450 "a.y" + case 91: + +/* Line 1455 of yacc.c */ +#line 459 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2182,8 +2356,10 @@ yyreduce: } break; - case 90: -#line 456 "a.y" + case 92: + +/* Line 1455 of yacc.c */ +#line 465 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2191,8 +2367,10 @@ yyreduce: } break; - case 91: -#line 462 "a.y" + case 93: + +/* Line 1455 of yacc.c */ +#line 471 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_SP; @@ -2200,8 +2378,10 @@ yyreduce: } break; - case 92: -#line 468 "a.y" + case 94: + +/* Line 1455 of yacc.c */ +#line 477 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2212,8 +2392,10 @@ yyreduce: } break; - case 93: -#line 477 "a.y" + case 95: + +/* Line 1455 of yacc.c */ +#line 486 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (9)].lval); @@ -2224,24 +2406,30 @@ yyreduce: } break; - case 94: -#line 486 "a.y" + case 96: + +/* Line 1455 of yacc.c */ +#line 495 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(2) - (3)].lval); } break; - case 95: -#line 491 "a.y" + case 97: + +/* Line 1455 of yacc.c */ +#line 500 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_SP; } break; - case 96: -#line 496 "a.y" + case 98: + +/* Line 1455 of yacc.c */ +#line 505 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(3) - (4)].lval); @@ -2249,8 +2437,10 @@ yyreduce: } break; - case 97: -#line 502 "a.y" + case 99: + +/* Line 1455 of yacc.c */ +#line 511 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+D_NONE; @@ -2260,8 +2450,10 @@ yyreduce: } break; - case 98: -#line 510 "a.y" + case 100: + +/* Line 1455 of yacc.c */ +#line 519 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_INDIR+(yyvsp[(2) - (8)].lval); @@ -2271,15 +2463,19 @@ yyreduce: } break; - case 99: -#line 520 "a.y" + case 101: + +/* Line 1455 of yacc.c */ +#line 529 "a.y" { (yyval.gen) = (yyvsp[(1) - (1)].gen); } break; - case 100: -#line 524 "a.y" + case 102: + +/* Line 1455 of yacc.c */ +#line 533 "a.y" { (yyval.gen) = (yyvsp[(1) - (6)].gen); (yyval.gen).index = (yyvsp[(3) - (6)].lval); @@ -2288,8 +2484,10 @@ yyreduce: } break; - case 101: -#line 533 "a.y" + case 103: + +/* Line 1455 of yacc.c */ +#line 542 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = (yyvsp[(4) - (5)].lval); @@ -2298,8 +2496,10 @@ yyreduce: } break; - case 102: -#line 540 "a.y" + case 104: + +/* Line 1455 of yacc.c */ +#line 549 "a.y" { (yyval.gen) = nullgen; (yyval.gen).type = D_STATIC; @@ -2308,142 +2508,181 @@ yyreduce: } break; - case 103: -#line 548 "a.y" + case 105: + +/* Line 1455 of yacc.c */ +#line 557 "a.y" { (yyval.lval) = 0; } break; - case 104: -#line 552 "a.y" + case 106: + +/* Line 1455 of yacc.c */ +#line 561 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 105: -#line 556 "a.y" + case 107: + +/* Line 1455 of yacc.c */ +#line 565 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 107: -#line 563 "a.y" + case 109: + +/* Line 1455 of yacc.c */ +#line 572 "a.y" { (yyval.lval) = D_AUTO; } break; - case 110: -#line 571 "a.y" + case 112: + +/* Line 1455 of yacc.c */ +#line 580 "a.y" { (yyval.lval) = (yyvsp[(1) - (1)].sym)->value; } break; - case 111: -#line 575 "a.y" + case 113: + +/* Line 1455 of yacc.c */ +#line 584 "a.y" { (yyval.lval) = -(yyvsp[(2) - (2)].lval); } break; - case 112: -#line 579 "a.y" + case 114: + +/* Line 1455 of yacc.c */ +#line 588 "a.y" { (yyval.lval) = (yyvsp[(2) - (2)].lval); } break; - case 113: -#line 583 "a.y" + case 115: + +/* Line 1455 of yacc.c */ +#line 592 "a.y" { (yyval.lval) = ~(yyvsp[(2) - (2)].lval); } break; - case 114: -#line 587 "a.y" + case 116: + +/* Line 1455 of yacc.c */ +#line 596 "a.y" { (yyval.lval) = (yyvsp[(2) - (3)].lval); } break; - case 116: -#line 594 "a.y" + case 118: + +/* Line 1455 of yacc.c */ +#line 603 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) + (yyvsp[(3) - (3)].lval); } break; - case 117: -#line 598 "a.y" + case 119: + +/* Line 1455 of yacc.c */ +#line 607 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) - (yyvsp[(3) - (3)].lval); } break; - case 118: -#line 602 "a.y" + case 120: + +/* Line 1455 of yacc.c */ +#line 611 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) * (yyvsp[(3) - (3)].lval); } break; - case 119: -#line 606 "a.y" + case 121: + +/* Line 1455 of yacc.c */ +#line 615 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) / (yyvsp[(3) - (3)].lval); } break; - case 120: -#line 610 "a.y" + case 122: + +/* Line 1455 of yacc.c */ +#line 619 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) % (yyvsp[(3) - (3)].lval); } break; - case 121: -#line 614 "a.y" + case 123: + +/* Line 1455 of yacc.c */ +#line 623 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) << (yyvsp[(4) - (4)].lval); } break; - case 122: -#line 618 "a.y" + case 124: + +/* Line 1455 of yacc.c */ +#line 627 "a.y" { (yyval.lval) = (yyvsp[(1) - (4)].lval) >> (yyvsp[(4) - (4)].lval); } break; - case 123: -#line 622 "a.y" + case 125: + +/* Line 1455 of yacc.c */ +#line 631 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) & (yyvsp[(3) - (3)].lval); } break; - case 124: -#line 626 "a.y" + case 126: + +/* Line 1455 of yacc.c */ +#line 635 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) ^ (yyvsp[(3) - (3)].lval); } break; - case 125: -#line 630 "a.y" + case 127: + +/* Line 1455 of yacc.c */ +#line 639 "a.y" { (yyval.lval) = (yyvsp[(1) - (3)].lval) | (yyvsp[(3) - (3)].lval); } break; -/* Line 1267 of yacc.c. */ -#line 2447 "y.tab.c" + +/* Line 1455 of yacc.c */ +#line 2686 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2454,7 +2693,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2519,7 +2757,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -2536,7 +2774,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2593,9 +2831,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -2620,7 +2855,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -2631,7 +2866,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered diff --git a/src/cmd/8a/y.tab.h b/src/cmd/8a/y.tab.h index baded0b6e0..b4e8c09695 100644 --- a/src/cmd/8a/y.tab.h +++ b/src/cmd/8a/y.tab.h @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -53,20 +53,21 @@ LTYPEM = 269, LTYPEI = 270, LTYPEG = 271, - LCONST = 272, - LFP = 273, - LPC = 274, - LSB = 275, - LBREG = 276, - LLREG = 277, - LSREG = 278, - LFREG = 279, - LFCONST = 280, - LSCONST = 281, - LSP = 282, - LNAME = 283, - LLAB = 284, - LVAR = 285 + LTYPEXC = 272, + LCONST = 273, + LFP = 274, + LPC = 275, + LSB = 276, + LBREG = 277, + LLREG = 278, + LSREG = 279, + LFREG = 280, + LFCONST = 281, + LSCONST = 282, + LSP = 283, + LNAME = 284, + LLAB = 285, + LVAR = 286 }; #endif /* Tokens. */ @@ -84,28 +85,32 @@ #define LTYPEM 269 #define LTYPEI 270 #define LTYPEG 271 -#define LCONST 272 -#define LFP 273 -#define LPC 274 -#define LSB 275 -#define LBREG 276 -#define LLREG 277 -#define LSREG 278 -#define LFREG 279 -#define LFCONST 280 -#define LSCONST 281 -#define LSP 282 -#define LNAME 283 -#define LLAB 284 -#define LVAR 285 +#define LTYPEXC 272 +#define LCONST 273 +#define LFP 274 +#define LPC 275 +#define LSB 276 +#define LBREG 277 +#define LLREG 278 +#define LSREG 279 +#define LFREG 280 +#define LFCONST 281 +#define LSCONST 282 +#define LSP 283 +#define LNAME 284 +#define LLAB 285 +#define LVAR 286 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 37 "a.y" { + +/* Line 1676 of yacc.c */ +#line 37 "a.y" + Sym *sym; int32 lval; struct { @@ -116,14 +121,17 @@ typedef union YYSTYPE char sval[8]; Gen gen; Gen2 gen2; -} -/* Line 1529 of yacc.c. */ -#line 122 "y.tab.h" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 129 "y.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; +