From 6353e05f4ff4d5319ccec4672117b3a6372279c7 Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Fri, 8 Dec 2006 18:07:09 +0000 Subject: [PATCH] Hopefully these are the regenerated files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32362 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/llvmAsmParser.cpp.cvs | 4876 +++++++++++++-------------- lib/AsmParser/llvmAsmParser.h.cvs | 45 +- lib/AsmParser/llvmAsmParser.y.cvs | 14 + 3 files changed, 2319 insertions(+), 2616 deletions(-) diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs index 681990382f0..955fb871f5d 100644 --- a/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -1,9 +1,7 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 1.875c. */ -/* 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. +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 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 @@ -17,24 +15,16 @@ 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. */ + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - 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. +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local @@ -46,9 +36,6 @@ /* Identify Bison output. */ #define YYBISON 1 -/* Bison version. */ -#define YYBISON_VERSION "2.3" - /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -58,7 +45,8 @@ /* Using locations. */ #define YYLSP_NEEDED 0 -/* Substitute the variable and function names. */ +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ #define yyparse llvmAsmparse #define yylex llvmAsmlex #define yyerror llvmAsmerror @@ -218,7 +206,6 @@ SHUFFLEVECTOR = 399 }; #endif -/* Tokens. */ #define ESINT64VAL 258 #define EUINT64VAL 259 #define SINTVAL 260 @@ -366,7 +353,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 14 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" #include "ParserInternals.h" #include "llvm/CallingConv.h" @@ -1221,15 +1208,9 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) { # 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 855 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" -{ +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 855 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" +typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; std::pair *ArgVal; @@ -1270,10 +1251,9 @@ typedef union YYSTYPE llvm::Module::Endianness Endianness; llvm::ICmpInst::Predicate IPredicate; llvm::FCmpInst::Predicate FPredicate; -} -/* Line 193 of yacc.c. */ -#line 1276 "llvmAsmParser.tab.c" - YYSTYPE; +} YYSTYPE; +/* Line 191 of yacc.c. */ +#line 1257 "llvmAsmParser.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -1284,171 +1264,56 @@ typedef union YYSTYPE /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 1289 "llvmAsmParser.tab.c" +/* Line 214 of yacc.c. */ +#line 1269 "llvmAsmParser.tab.c" -#ifdef short -# undef short -#endif +#if ! defined (yyoverflow) || YYERROR_VERBOSE -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int +# ifndef YYFREE +# define YYFREE free # endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif +# ifndef YYMALLOC +# define YYMALLOC malloc # endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; -#endif -{ - return i; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif +# else +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif # endif # endif # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # else +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined _STDLIB_H \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; + short yyss; YYSTYPE yyvs; }; @@ -1458,24 +1323,24 @@ union yyalloc /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ +# if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ - YYSIZE_T yyi; \ + register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif @@ -1493,33 +1358,39 @@ union yyalloc yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ - while (YYID (0)) + while (0) #endif -/* YYFINAL -- State number of the termination state. */ +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1509 +#define YYLAST 1476 -/* YYNTOKENS -- Number of terminals. */ +/* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 159 -/* YYNNTS -- Number of nonterminals. */ +/* YYNNTS -- Number of nonterminals. */ #define YYNNTS 78 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 297 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 578 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 299 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 584 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 399 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = +static const unsigned char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1566,7 +1437,7 @@ static const yytype_uint8 yytranslate[] = #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const yytype_uint16 yyprhs[] = +static const unsigned short yyprhs[] = { 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, @@ -1581,27 +1452,27 @@ static const yytype_uint16 yyprhs[] = 200, 201, 203, 204, 208, 210, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 258, 263, - 269, 275, 279, 282, 285, 287, 291, 293, 297, 299, - 300, 305, 309, 313, 318, 323, 327, 330, 333, 336, - 339, 342, 345, 348, 351, 354, 357, 364, 370, 379, - 386, 393, 400, 408, 416, 423, 430, 439, 448, 452, - 454, 456, 458, 460, 463, 466, 471, 474, 476, 481, - 484, 489, 490, 498, 499, 507, 508, 516, 517, 525, - 529, 534, 535, 537, 539, 541, 545, 549, 553, 557, - 561, 565, 567, 568, 570, 572, 574, 575, 578, 582, - 584, 586, 590, 592, 593, 602, 604, 606, 610, 612, - 614, 617, 618, 620, 622, 623, 628, 629, 631, 633, - 635, 637, 639, 641, 643, 645, 647, 651, 653, 659, - 661, 663, 665, 667, 670, 673, 676, 680, 683, 684, - 686, 689, 692, 696, 706, 716, 725, 739, 741, 743, - 750, 756, 759, 766, 774, 776, 780, 782, 783, 786, - 788, 794, 800, 806, 813, 820, 823, 828, 833, 840, - 845, 850, 857, 864, 867, 875, 877, 880, 881, 883, - 884, 888, 895, 899, 906, 909, 914, 921 + 269, 275, 279, 282, 288, 293, 296, 298, 302, 304, + 308, 310, 311, 316, 320, 324, 329, 334, 338, 341, + 344, 347, 350, 353, 356, 359, 362, 365, 368, 375, + 381, 390, 397, 404, 411, 419, 427, 434, 441, 450, + 459, 463, 465, 467, 469, 471, 474, 477, 482, 485, + 487, 492, 495, 500, 501, 509, 510, 518, 519, 527, + 528, 536, 540, 545, 546, 548, 550, 552, 556, 560, + 564, 568, 572, 576, 578, 579, 581, 583, 585, 586, + 589, 593, 595, 597, 601, 603, 604, 613, 615, 617, + 621, 623, 625, 628, 629, 631, 633, 634, 639, 640, + 642, 644, 646, 648, 650, 652, 654, 656, 658, 662, + 664, 670, 672, 674, 676, 678, 681, 684, 687, 691, + 694, 695, 697, 700, 703, 707, 717, 727, 736, 750, + 752, 754, 761, 767, 770, 777, 785, 787, 791, 793, + 794, 797, 799, 805, 811, 817, 824, 831, 834, 839, + 844, 851, 856, 861, 868, 875, 878, 886, 888, 891, + 892, 894, 895, 899, 906, 910, 917, 920, 925, 932 }; -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short yyrhs[] = { 193, 0, -1, 5, -1, 6, -1, 3, -1, 4, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, @@ -1631,75 +1502,76 @@ static const yytype_int16 yyrhs[] = -1, 185, -1, 220, -1, 147, 4, -1, 183, 148, 188, 149, -1, 150, 4, 151, 186, 152, -1, 153, 4, 151, 186, 154, -1, 155, 187, 156, -1, 155, - 156, -1, 186, 157, -1, 186, -1, 187, 146, 186, - -1, 187, -1, 187, 146, 37, -1, 37, -1, -1, - 184, 150, 191, 152, -1, 184, 150, 152, -1, 184, - 158, 24, -1, 184, 153, 191, 154, -1, 184, 155, - 191, 156, -1, 184, 155, 156, -1, 184, 38, -1, - 184, 39, -1, 184, 220, -1, 184, 190, -1, 184, - 26, -1, 169, 161, -1, 170, 4, -1, 9, 27, - -1, 9, 28, -1, 172, 7, -1, 165, 148, 189, - 36, 184, 149, -1, 123, 148, 189, 234, 149, -1, - 137, 148, 189, 146, 189, 146, 189, 149, -1, 162, - 148, 189, 146, 189, 149, -1, 163, 148, 189, 146, - 189, 149, -1, 164, 148, 189, 146, 189, 149, -1, - 96, 167, 148, 189, 146, 189, 149, -1, 97, 168, - 148, 189, 146, 189, 149, -1, 166, 148, 189, 146, - 189, 149, -1, 142, 148, 189, 146, 189, 149, -1, - 143, 148, 189, 146, 189, 146, 189, 149, -1, 144, - 148, 189, 146, 189, 146, 189, 149, -1, 191, 146, - 189, -1, 189, -1, 32, -1, 33, -1, 194, -1, - 194, 214, -1, 194, 216, -1, 194, 62, 61, 200, - -1, 194, 25, -1, 195, -1, 195, 173, 20, 182, - -1, 195, 216, -1, 195, 62, 61, 200, -1, -1, - 195, 173, 174, 192, 189, 196, 180, -1, -1, 195, - 173, 50, 192, 184, 197, 180, -1, -1, 195, 173, - 45, 192, 184, 198, 180, -1, -1, 195, 173, 47, - 192, 184, 199, 180, -1, 195, 51, 202, -1, 195, - 58, 145, 203, -1, -1, 24, -1, 56, -1, 55, - -1, 53, 145, 201, -1, 54, 145, 4, -1, 52, - 145, 24, -1, 71, 145, 24, -1, 150, 204, 152, - -1, 204, 146, 24, -1, 24, -1, -1, 22, -1, - 24, -1, 205, -1, -1, 184, 206, -1, 208, 146, - 207, -1, 207, -1, 208, -1, 208, 146, 37, -1, - 37, -1, -1, 175, 182, 205, 148, 209, 149, 179, - 176, -1, 29, -1, 155, -1, 174, 210, 211, -1, - 30, -1, 156, -1, 223, 213, -1, -1, 45, -1, - 47, -1, -1, 31, 217, 215, 210, -1, -1, 63, - -1, 3, -1, 4, -1, 7, -1, 27, -1, 28, - -1, 38, -1, 39, -1, 26, -1, 153, 191, 154, - -1, 190, -1, 61, 218, 24, 146, 24, -1, 160, - -1, 205, -1, 220, -1, 219, -1, 184, 221, -1, - 223, 224, -1, 212, 224, -1, 225, 173, 226, -1, - 225, 228, -1, -1, 23, -1, 72, 222, -1, 72, - 8, -1, 73, 21, 221, -1, 73, 9, 221, 146, - 21, 221, 146, 21, 221, -1, 74, 171, 221, 146, - 21, 221, 150, 227, 152, -1, 74, 171, 221, 146, - 21, 221, 150, 152, -1, 75, 175, 182, 221, 148, - 231, 149, 36, 21, 221, 76, 21, 221, -1, 76, - -1, 77, -1, 227, 171, 219, 146, 21, 221, -1, - 171, 219, 146, 21, 221, -1, 173, 233, -1, 184, - 150, 221, 146, 221, 152, -1, 229, 146, 150, 221, - 146, 221, 152, -1, 222, -1, 230, 146, 222, -1, - 230, -1, -1, 60, 59, -1, 59, -1, 162, 184, - 221, 146, 221, -1, 163, 184, 221, 146, 221, -1, - 164, 184, 221, 146, 221, -1, 96, 167, 184, 221, - 146, 221, -1, 97, 168, 184, 221, 146, 221, -1, - 49, 222, -1, 166, 222, 146, 222, -1, 165, 222, - 36, 184, -1, 137, 222, 146, 222, 146, 222, -1, - 141, 222, 146, 184, -1, 142, 222, 146, 222, -1, - 143, 222, 146, 222, 146, 222, -1, 144, 222, 146, - 222, 146, 222, -1, 136, 229, -1, 232, 175, 182, - 221, 148, 231, 149, -1, 236, -1, 146, 230, -1, - -1, 35, -1, -1, 118, 184, 177, -1, 118, 184, - 146, 15, 221, 177, -1, 119, 184, 177, -1, 119, - 184, 146, 15, 221, 177, -1, 120, 222, -1, 235, - 121, 184, 221, -1, 235, 122, 222, 146, 184, 221, - -1, 123, 184, 221, 234, -1 + 156, -1, 153, 155, 187, 156, 154, -1, 153, 155, + 156, 154, -1, 186, 157, -1, 186, -1, 187, 146, + 186, -1, 187, -1, 187, 146, 37, -1, 37, -1, + -1, 184, 150, 191, 152, -1, 184, 150, 152, -1, + 184, 158, 24, -1, 184, 153, 191, 154, -1, 184, + 155, 191, 156, -1, 184, 155, 156, -1, 184, 38, + -1, 184, 39, -1, 184, 220, -1, 184, 190, -1, + 184, 26, -1, 169, 161, -1, 170, 4, -1, 9, + 27, -1, 9, 28, -1, 172, 7, -1, 165, 148, + 189, 36, 184, 149, -1, 123, 148, 189, 234, 149, + -1, 137, 148, 189, 146, 189, 146, 189, 149, -1, + 162, 148, 189, 146, 189, 149, -1, 163, 148, 189, + 146, 189, 149, -1, 164, 148, 189, 146, 189, 149, + -1, 96, 167, 148, 189, 146, 189, 149, -1, 97, + 168, 148, 189, 146, 189, 149, -1, 166, 148, 189, + 146, 189, 149, -1, 142, 148, 189, 146, 189, 149, + -1, 143, 148, 189, 146, 189, 146, 189, 149, -1, + 144, 148, 189, 146, 189, 146, 189, 149, -1, 191, + 146, 189, -1, 189, -1, 32, -1, 33, -1, 194, + -1, 194, 214, -1, 194, 216, -1, 194, 62, 61, + 200, -1, 194, 25, -1, 195, -1, 195, 173, 20, + 182, -1, 195, 216, -1, 195, 62, 61, 200, -1, + -1, 195, 173, 174, 192, 189, 196, 180, -1, -1, + 195, 173, 50, 192, 184, 197, 180, -1, -1, 195, + 173, 45, 192, 184, 198, 180, -1, -1, 195, 173, + 47, 192, 184, 199, 180, -1, 195, 51, 202, -1, + 195, 58, 145, 203, -1, -1, 24, -1, 56, -1, + 55, -1, 53, 145, 201, -1, 54, 145, 4, -1, + 52, 145, 24, -1, 71, 145, 24, -1, 150, 204, + 152, -1, 204, 146, 24, -1, 24, -1, -1, 22, + -1, 24, -1, 205, -1, -1, 184, 206, -1, 208, + 146, 207, -1, 207, -1, 208, -1, 208, 146, 37, + -1, 37, -1, -1, 175, 182, 205, 148, 209, 149, + 179, 176, -1, 29, -1, 155, -1, 174, 210, 211, + -1, 30, -1, 156, -1, 223, 213, -1, -1, 45, + -1, 47, -1, -1, 31, 217, 215, 210, -1, -1, + 63, -1, 3, -1, 4, -1, 7, -1, 27, -1, + 28, -1, 38, -1, 39, -1, 26, -1, 153, 191, + 154, -1, 190, -1, 61, 218, 24, 146, 24, -1, + 160, -1, 205, -1, 220, -1, 219, -1, 184, 221, + -1, 223, 224, -1, 212, 224, -1, 225, 173, 226, + -1, 225, 228, -1, -1, 23, -1, 72, 222, -1, + 72, 8, -1, 73, 21, 221, -1, 73, 9, 221, + 146, 21, 221, 146, 21, 221, -1, 74, 171, 221, + 146, 21, 221, 150, 227, 152, -1, 74, 171, 221, + 146, 21, 221, 150, 152, -1, 75, 175, 182, 221, + 148, 231, 149, 36, 21, 221, 76, 21, 221, -1, + 76, -1, 77, -1, 227, 171, 219, 146, 21, 221, + -1, 171, 219, 146, 21, 221, -1, 173, 233, -1, + 184, 150, 221, 146, 221, 152, -1, 229, 146, 150, + 221, 146, 221, 152, -1, 222, -1, 230, 146, 222, + -1, 230, -1, -1, 60, 59, -1, 59, -1, 162, + 184, 221, 146, 221, -1, 163, 184, 221, 146, 221, + -1, 164, 184, 221, 146, 221, -1, 96, 167, 184, + 221, 146, 221, -1, 97, 168, 184, 221, 146, 221, + -1, 49, 222, -1, 166, 222, 146, 222, -1, 165, + 222, 36, 184, -1, 137, 222, 146, 222, 146, 222, + -1, 141, 222, 146, 184, -1, 142, 222, 146, 222, + -1, 143, 222, 146, 222, 146, 222, -1, 144, 222, + 146, 222, 146, 222, -1, 136, 229, -1, 232, 175, + 182, 221, 148, 231, 149, -1, 236, -1, 146, 230, + -1, -1, 35, -1, -1, 118, 184, 177, -1, 118, + 184, 146, 15, 221, 177, -1, 119, 184, 177, -1, + 119, 184, 146, 15, 221, 177, -1, 120, 222, -1, + 235, 121, 184, 221, -1, 235, 122, 222, 146, 184, + 221, -1, 123, 184, 221, 234, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const unsigned short yyrline[] = { 0, 990, 990, 991, 999, 1000, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1011, 1012, 1012, @@ -1714,29 +1586,29 @@ static const yytype_uint16 yyrline[] = 1102, 1103, 1108, 1109, 1110, 1115, 1129, 1129, 1130, 1130, 1132, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1148, 1152, 1160, 1168, 1181, - 1186, 1198, 1208, 1212, 1223, 1228, 1234, 1235, 1239, 1243, - 1254, 1280, 1294, 1324, 1350, 1371, 1384, 1394, 1399, 1460, - 1467, 1475, 1481, 1487, 1491, 1495, 1503, 1515, 1536, 1544, - 1550, 1561, 1567, 1572, 1577, 1586, 1592, 1598, 1607, 1611, - 1619, 1619, 1629, 1637, 1642, 1646, 1650, 1654, 1669, 1691, - 1694, 1697, 1697, 1705, 1705, 1713, 1713, 1721, 1721, 1730, - 1733, 1736, 1740, 1753, 1754, 1756, 1760, 1769, 1773, 1778, - 1780, 1785, 1790, 1799, 1799, 1800, 1800, 1802, 1809, 1815, - 1822, 1826, 1832, 1837, 1842, 1937, 1937, 1939, 1947, 1947, - 1949, 1954, 1955, 1956, 1958, 1958, 1968, 1972, 1977, 1981, - 1985, 1989, 1993, 1997, 2001, 2005, 2009, 2034, 2038, 2052, - 2056, 2062, 2062, 2068, 2073, 2077, 2086, 2097, 2106, 2118, - 2131, 2135, 2139, 2144, 2153, 2172, 2181, 2237, 2241, 2248, - 2259, 2272, 2281, 2290, 2300, 2304, 2311, 2311, 2313, 2317, - 2322, 2341, 2356, 2370, 2381, 2392, 2405, 2414, 2425, 2433, - 2438, 2444, 2450, 2456, 2471, 2530, 2537, 2540, 2545, 2549, - 2556, 2561, 2567, 2572, 2578, 2586, 2598, 2613 + 1186, 1198, 1208, 1212, 1222, 1226, 1237, 1242, 1248, 1249, + 1253, 1257, 1268, 1294, 1308, 1338, 1364, 1385, 1398, 1408, + 1413, 1474, 1481, 1489, 1495, 1501, 1505, 1509, 1517, 1529, + 1550, 1558, 1564, 1575, 1581, 1586, 1591, 1600, 1606, 1612, + 1621, 1625, 1633, 1633, 1643, 1651, 1656, 1660, 1664, 1668, + 1683, 1705, 1708, 1711, 1711, 1719, 1719, 1727, 1727, 1735, + 1735, 1744, 1747, 1750, 1754, 1767, 1768, 1770, 1774, 1783, + 1787, 1792, 1794, 1799, 1804, 1813, 1813, 1814, 1814, 1816, + 1823, 1829, 1836, 1840, 1846, 1851, 1856, 1951, 1951, 1953, + 1961, 1961, 1963, 1968, 1969, 1970, 1972, 1972, 1982, 1986, + 1991, 1995, 1999, 2003, 2007, 2011, 2015, 2019, 2023, 2048, + 2052, 2066, 2070, 2076, 2076, 2082, 2087, 2091, 2100, 2111, + 2120, 2132, 2145, 2149, 2153, 2158, 2167, 2186, 2195, 2251, + 2255, 2262, 2273, 2286, 2295, 2304, 2314, 2318, 2325, 2325, + 2327, 2331, 2336, 2355, 2370, 2384, 2395, 2406, 2419, 2428, + 2439, 2447, 2452, 2458, 2464, 2470, 2485, 2544, 2551, 2554, + 2559, 2563, 2570, 2575, 2581, 2586, 2592, 2600, 2612, 2627 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL", @@ -1784,7 +1656,7 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = +static const unsigned short yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1806,7 +1678,7 @@ static const yytype_uint16 yytoknum[] = # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const unsigned char yyr1[] = { 0, 159, 160, 160, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, @@ -1821,27 +1693,27 @@ static const yytype_uint8 yyr1[] = 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 187, 187, 188, 188, 188, 188, - 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 191, 191, - 192, 192, 193, 194, 194, 194, 194, 194, 195, 195, - 195, 196, 195, 197, 195, 198, 195, 199, 195, 195, - 195, 195, 200, 201, 201, 202, 202, 202, 202, 203, - 204, 204, 204, 205, 205, 206, 206, 207, 208, 208, - 209, 209, 209, 209, 210, 211, 211, 212, 213, 213, - 214, 215, 215, 215, 217, 216, 218, 218, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 220, - 220, 221, 221, 222, 223, 223, 224, 225, 225, 225, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, - 227, 228, 229, 229, 230, 230, 231, 231, 232, 232, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 234, 234, 235, 235, - 236, 236, 236, 236, 236, 236, 236, 236 + 186, 186, 186, 186, 186, 186, 187, 187, 188, 188, + 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 191, 191, 192, 192, 193, 194, 194, 194, 194, 194, + 195, 195, 195, 196, 195, 197, 195, 198, 195, 199, + 195, 195, 195, 195, 200, 201, 201, 202, 202, 202, + 202, 203, 204, 204, 204, 205, 205, 206, 206, 207, + 208, 208, 209, 209, 209, 209, 210, 211, 211, 212, + 213, 213, 214, 215, 215, 215, 217, 216, 218, 218, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 220, 220, 221, 221, 222, 223, 223, 224, 225, + 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 227, 227, 228, 229, 229, 230, 230, 231, 231, + 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 236 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const unsigned char yyr2[] = { 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1856,499 +1728,495 @@ static const yytype_uint8 yyr2[] = 0, 1, 0, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, - 5, 3, 2, 2, 1, 3, 1, 3, 1, 0, - 4, 3, 3, 4, 4, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 6, 5, 8, 6, - 6, 6, 7, 7, 6, 6, 8, 8, 3, 1, - 1, 1, 1, 2, 2, 4, 2, 1, 4, 2, - 4, 0, 7, 0, 7, 0, 7, 0, 7, 3, - 4, 0, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 1, 0, 1, 1, 1, 0, 2, 3, 1, - 1, 3, 1, 0, 8, 1, 1, 3, 1, 1, - 2, 0, 1, 1, 0, 4, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, - 1, 1, 1, 2, 2, 2, 3, 2, 0, 1, - 2, 2, 3, 9, 9, 8, 13, 1, 1, 6, - 5, 2, 6, 7, 1, 3, 1, 0, 2, 1, - 5, 5, 5, 6, 6, 2, 4, 4, 6, 4, - 4, 6, 6, 2, 7, 1, 2, 0, 1, 0, - 3, 6, 3, 6, 2, 4, 6, 4 + 5, 3, 2, 5, 4, 2, 1, 3, 1, 3, + 1, 0, 4, 3, 3, 4, 4, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 6, 5, + 8, 6, 6, 6, 7, 7, 6, 6, 8, 8, + 3, 1, 1, 1, 1, 2, 2, 4, 2, 1, + 4, 2, 4, 0, 7, 0, 7, 0, 7, 0, + 7, 3, 4, 0, 1, 1, 1, 3, 3, 3, + 3, 3, 3, 1, 0, 1, 1, 1, 0, 2, + 3, 1, 1, 3, 1, 0, 8, 1, 1, 3, + 1, 1, 2, 0, 1, 1, 0, 4, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 5, 1, 1, 1, 1, 2, 2, 2, 3, 2, + 0, 1, 2, 2, 3, 9, 9, 8, 13, 1, + 1, 6, 5, 2, 6, 7, 1, 3, 1, 0, + 2, 1, 5, 5, 5, 6, 6, 2, 4, 4, + 6, 4, 4, 6, 6, 2, 7, 1, 2, 0, + 1, 0, 3, 6, 3, 6, 2, 4, 6, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const unsigned short yydefact[] = { - 191, 0, 86, 177, 1, 176, 224, 79, 80, 81, - 82, 83, 84, 85, 0, 87, 248, 173, 174, 248, - 203, 204, 0, 0, 0, 86, 0, 179, 221, 0, - 0, 88, 89, 90, 91, 92, 93, 0, 0, 249, - 245, 78, 218, 219, 220, 244, 0, 0, 0, 0, - 189, 0, 0, 0, 0, 0, 0, 0, 77, 222, - 223, 87, 192, 175, 94, 2, 3, 107, 111, 112, + 193, 0, 86, 179, 1, 178, 226, 79, 80, 81, + 82, 83, 84, 85, 0, 87, 250, 175, 176, 250, + 205, 206, 0, 0, 0, 86, 0, 181, 223, 0, + 0, 88, 89, 90, 91, 92, 93, 0, 0, 251, + 247, 78, 220, 221, 222, 246, 0, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 77, 224, + 225, 87, 194, 177, 94, 2, 3, 107, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 0, 0, 0, 0, 239, 0, 0, 106, - 125, 110, 240, 126, 215, 216, 217, 289, 247, 0, - 0, 0, 0, 202, 190, 180, 178, 170, 171, 0, - 0, 0, 0, 225, 127, 0, 0, 109, 132, 134, - 0, 0, 139, 133, 288, 0, 269, 0, 0, 0, - 0, 87, 257, 258, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 0, 0, 36, 37, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 246, 87, 261, 0, 285, 197, - 194, 193, 195, 196, 198, 201, 0, 185, 187, 183, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 0, 0, 0, 0, 181, 0, 0, 0, 131, - 213, 138, 136, 0, 0, 275, 268, 251, 250, 0, - 0, 68, 72, 67, 71, 66, 70, 65, 69, 73, - 74, 0, 0, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 0, 63, 64, 59, 60, 61, 62, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 0, 97, 97, 294, 0, 0, 283, 0, 0, 0, + 123, 124, 0, 0, 0, 0, 241, 0, 0, 106, + 125, 110, 242, 126, 217, 218, 219, 291, 249, 0, + 0, 0, 0, 204, 192, 182, 180, 172, 173, 0, + 0, 0, 0, 227, 127, 0, 0, 0, 109, 132, + 136, 0, 0, 141, 135, 290, 0, 271, 0, 0, + 0, 0, 87, 259, 260, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 0, 0, 0, 0, 0, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 0, 0, 36, 37, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 248, 87, 263, 0, 287, + 199, 196, 195, 197, 198, 200, 203, 0, 187, 189, + 185, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 0, 0, 0, 0, 183, 0, 0, 0, + 0, 0, 131, 215, 140, 138, 0, 0, 277, 270, + 253, 252, 0, 0, 68, 72, 67, 71, 66, 70, + 65, 69, 73, 74, 0, 0, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 0, 63, 64, 59, + 60, 61, 62, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 0, 97, 97, 296, 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 199, 102, 102, 102, 153, 154, 4, 5, 151, - 152, 155, 150, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 201, 102, 102, 102, 155, 156, + 4, 5, 153, 154, 157, 152, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 148, 102, 108, 108, 135, 212, 206, 209, - 210, 0, 0, 128, 228, 229, 230, 235, 231, 232, - 233, 234, 226, 0, 237, 242, 241, 243, 0, 252, - 0, 0, 0, 0, 0, 290, 0, 292, 287, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 200, 0, 186, 188, 184, 0, - 0, 0, 0, 0, 0, 0, 141, 169, 0, 0, - 145, 0, 142, 0, 0, 0, 0, 0, 182, 129, - 130, 205, 207, 0, 100, 137, 227, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 0, 0, 279, 280, 0, 0, 0, 0, 0, 277, - 276, 0, 295, 0, 0, 0, 104, 102, 0, 0, - 287, 0, 0, 0, 0, 0, 140, 143, 144, 0, - 0, 0, 0, 0, 211, 208, 101, 95, 0, 236, - 0, 0, 267, 0, 0, 97, 98, 97, 264, 286, - 0, 0, 0, 0, 0, 270, 271, 272, 267, 0, - 99, 105, 103, 0, 0, 0, 0, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 214, 0, 0, - 0, 266, 0, 273, 274, 0, 291, 293, 0, 0, - 0, 278, 281, 282, 0, 296, 0, 0, 157, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 238, - 0, 0, 0, 265, 262, 0, 284, 0, 0, 0, - 165, 0, 0, 159, 160, 161, 156, 164, 0, 255, - 0, 0, 0, 263, 162, 163, 0, 0, 0, 253, - 0, 254, 0, 0, 158, 166, 167, 0, 0, 0, - 0, 0, 0, 260, 0, 0, 259, 256 + 0, 0, 0, 0, 151, 150, 102, 108, 108, 134, + 0, 137, 214, 208, 211, 212, 0, 0, 128, 230, + 231, 232, 237, 233, 234, 235, 236, 228, 0, 239, + 244, 243, 245, 0, 254, 0, 0, 0, 0, 0, + 292, 0, 294, 289, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, + 0, 188, 190, 186, 0, 0, 0, 0, 0, 0, + 0, 143, 171, 0, 0, 147, 0, 144, 0, 0, + 0, 0, 0, 184, 129, 130, 133, 207, 209, 0, + 100, 139, 229, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 0, 0, 0, 281, 282, + 0, 0, 0, 0, 0, 279, 278, 0, 297, 0, + 0, 0, 104, 102, 0, 0, 289, 0, 0, 0, + 0, 0, 142, 145, 146, 0, 0, 0, 0, 0, + 213, 210, 101, 95, 0, 238, 0, 0, 269, 0, + 0, 97, 98, 97, 266, 288, 0, 0, 0, 0, + 0, 272, 273, 274, 269, 0, 99, 105, 103, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 268, 0, 275, + 276, 0, 293, 295, 0, 0, 0, 280, 283, 284, + 0, 298, 0, 0, 159, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 96, 240, 0, 0, 0, 267, + 264, 0, 286, 0, 0, 0, 167, 0, 0, 161, + 162, 163, 158, 166, 0, 257, 0, 0, 0, 265, + 164, 165, 0, 0, 0, 255, 0, 256, 0, 0, + 160, 168, 169, 0, 0, 0, 0, 0, 0, 262, + 0, 0, 261, 258 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const short yydefgoto[] = { - -1, 86, 299, 316, 317, 318, 319, 320, 253, 270, - 211, 212, 241, 213, 25, 15, 37, 497, 355, 436, - 457, 376, 437, 87, 88, 214, 90, 91, 120, 223, - 387, 344, 388, 109, 1, 2, 3, 323, 294, 292, - 293, 63, 192, 50, 104, 196, 92, 402, 329, 330, - 331, 38, 96, 16, 44, 17, 61, 18, 28, 407, - 345, 93, 347, 468, 19, 40, 41, 184, 551, 98, - 276, 501, 502, 185, 186, 418, 187, 188 + -1, 86, 302, 319, 320, 321, 322, 323, 256, 273, + 212, 213, 244, 214, 25, 15, 37, 503, 360, 442, + 463, 381, 443, 87, 88, 215, 90, 91, 121, 226, + 392, 349, 393, 109, 1, 2, 3, 326, 297, 295, + 296, 63, 193, 50, 104, 197, 92, 408, 334, 335, + 336, 38, 96, 16, 44, 17, 61, 18, 28, 413, + 350, 93, 352, 474, 19, 40, 41, 185, 557, 98, + 279, 507, 508, 186, 187, 424, 188, 189 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -517 -static const yytype_int16 yypact[] = +#define YYPACT_NINF -529 +static const short yypact[] = { - -517, 40, 69, 528, -517, -517, -517, -517, -517, -517, - -517, -517, -517, -517, 16, 90, 76, -517, -517, 5, - -517, -517, 50, -40, 71, 37, -15, -517, -4, 124, - 164, -517, -517, -517, -517, -517, -517, 1244, -18, -517, - -517, 125, -517, -517, -517, -517, 45, 53, 54, 59, - -517, 67, 124, 1244, 103, 103, 103, 103, -517, -517, - -517, 90, -517, -517, -517, -517, -517, 70, -517, -517, - -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, - -517, -517, 197, 215, 216, 670, -517, 125, 73, -517, - -517, -62, -517, -517, -517, -517, -517, 1349, -517, 198, - 111, 219, 200, 201, -517, -517, -517, -517, -517, 1264, - 1264, 1264, 1309, -517, -517, 75, 77, -517, -517, -62, - -108, 81, 1051, -517, -517, 1264, -517, 168, 1354, 24, - 112, 90, -517, -517, -517, -517, -517, -517, -517, -517, - -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, - -517, -517, 108, 65, 1264, 1264, 1264, 1264, -517, -517, - -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, - 1264, 1264, -517, -517, -517, 1264, 1264, 1264, 1264, 1264, - 1264, 1264, 1264, 1264, -517, 90, -517, 42, -517, -517, - -517, -517, -517, -517, -517, -517, -110, -517, -517, -517, - 157, 183, 226, 185, 227, 189, 228, 191, 230, 231, - 235, 193, 239, 237, 577, -517, 1264, 1264, 1264, -517, - 1092, -517, 89, 96, 763, -517, -517, 70, -517, 763, - 763, -517, -517, -517, -517, -517, -517, -517, -517, -517, - -517, 763, 1244, -517, -517, -517, -517, -517, -517, -517, - -517, -517, -517, 1264, -517, -517, -517, -517, -517, -517, - -517, -517, -517, -517, -517, -517, -517, -517, -517, -517, - 1264, 101, 102, -517, 763, 99, 107, 109, 110, 113, - 114, 115, 763, 763, 763, 218, 116, 1244, 1264, 1264, - 233, -517, 117, 117, 117, -517, -517, -517, -517, -517, - -517, -517, -517, -517, -517, 108, 65, 119, 120, 121, - 123, 126, 998, 1309, 728, 234, 127, 128, 129, 130, - 131, -517, -517, 117, -56, -142, -62, -517, 125, -517, - 118, 132, 1149, -517, -517, -517, -517, -517, -517, -517, - -517, -517, 202, 1309, -517, -517, -517, -517, 136, -517, - 137, 763, 763, 763, -7, -517, -2, -517, 138, 763, - 122, 1264, 1264, 1264, 1264, 1264, 146, 147, 148, 1264, - 1264, 763, 763, 149, -517, -20, -517, -517, -517, 150, - 156, 1309, 1309, 1309, 1309, 1309, -517, -517, -76, -57, - -517, -71, -517, 1309, 1309, 1309, 1309, 1309, -517, -517, - -517, -517, -517, 1203, 262, -517, -517, 249, -48, 284, - 285, 159, 165, 166, 763, 306, 763, 1264, -517, 167, - 763, 169, -517, -517, 170, 171, 763, 763, 763, -517, - -517, 173, -517, 1264, 290, 314, -517, 117, 1309, 1309, - 138, 176, 177, 188, 190, 1309, -517, -517, -517, 195, - 196, 206, 283, 208, -517, -517, -517, 272, 209, -517, - 763, 763, 1264, 763, 763, 210, -517, 210, -517, 211, - 763, 212, 1264, 1264, 1264, -517, -517, -517, 1264, 763, - -517, -517, -517, 213, 214, 186, 1309, 1309, 1309, 1309, - -517, 1309, 1309, 1309, 1264, 1309, 333, -517, 319, 221, - 220, 211, 222, -517, -517, 289, -517, -517, 1264, 217, - 763, -517, -517, -517, 223, -517, 1309, 1309, -517, 229, - 224, 232, 236, 225, 238, 240, 241, 242, -517, -517, - 326, 10, 328, -517, -517, 248, -517, 253, 254, 1309, - -517, 1309, 1309, -517, -517, -517, -517, -517, 763, -517, - 905, 51, 344, -517, -517, -517, 256, 261, 263, -517, - 265, -517, 905, 763, -517, -517, -517, 347, 267, 300, - 763, 356, 358, -517, 763, 763, -517, -517 + -529, 21, 408, 495, -529, -529, -529, -529, -529, -529, + -529, -529, -529, -529, -24, 145, 43, -529, -529, -8, + -529, -529, -20, -63, 30, 137, -51, -529, 152, 73, + 147, -529, -529, -529, -529, -529, -529, 1211, -3, -529, + -529, 176, -529, -529, -529, -529, -32, 57, 71, 72, + -529, 35, 73, 1211, 46, 46, 46, 46, -529, -529, + -529, 145, -529, -529, -529, -529, -529, 74, -529, -529, + -529, -529, -529, -529, -529, -529, -529, -529, -529, -529, + -529, -529, 217, 219, 4, 90, -529, 176, 77, -529, + -529, -105, -529, -529, -529, -529, -529, 1316, -529, 202, + 67, 223, 204, 205, -529, -529, -529, -529, -529, 1231, + 1231, 1231, 1276, -529, -529, 82, 83, 637, -529, -529, + -105, -117, 87, 1018, -529, -529, 1231, -529, 179, 1321, + 15, 178, 145, -529, -529, -529, -529, -529, -529, -529, + -529, -529, -529, -529, -529, -529, -529, -529, -529, -529, + -529, -529, -529, 195, 378, 1231, 1231, 1231, 1231, -529, + -529, -529, -529, -529, -529, -529, -529, -529, -529, -529, + -529, 1231, 1231, -529, -529, -529, 1231, 1231, 1231, 1231, + 1231, 1231, 1231, 1231, 1231, -529, 145, -529, 11, -529, + -529, -529, -529, -529, -529, -529, -529, -98, -529, -529, + -529, 109, 157, 235, 168, 238, 173, 240, 201, 244, + 245, 250, 203, 254, 252, 544, -529, 1231, 1231, 106, + -111, 1231, -529, 1059, -529, 115, 113, 730, -529, -529, + 74, -529, 730, 730, -529, -529, -529, -529, -529, -529, + -529, -529, -529, -529, 730, 1211, -529, -529, -529, -529, + -529, -529, -529, -529, -529, -529, 1231, -529, -529, -529, + -529, -529, -529, -529, -529, -529, -529, -529, -529, -529, + -529, -529, -529, 1231, 117, 124, -529, 730, 121, 129, + 135, 136, 139, 140, 141, 730, 730, 730, 267, 158, + 1211, 1231, 1231, 282, -529, 161, 161, 161, -529, -529, + -529, -529, -529, -529, -529, -529, -529, -529, 195, 378, + 160, 162, 163, 164, 165, 965, 1276, 695, 285, 167, + 170, 171, 172, 174, -529, -529, 161, -64, -87, -529, + 169, -105, -529, 176, -529, 175, 190, 1116, -529, -529, + -529, -529, -529, -529, -529, -529, -529, 253, 1276, -529, + -529, -529, -529, 182, -529, 194, 730, 730, 730, -1, + -529, 5, -529, 196, 730, 193, 1231, 1231, 1231, 1231, + 1231, 198, 199, 200, 1231, 1231, 730, 730, 207, -529, + -11, -529, -529, -529, 206, 208, 1276, 1276, 1276, 1276, + 1276, -529, -529, -66, -78, -529, -85, -529, 1276, 1276, + 1276, 1276, 1276, -529, -529, -529, -529, -529, -529, 1170, + 290, -529, -529, 323, -77, 327, 328, 209, 212, 216, + 730, 346, 730, 1231, -529, 218, 730, 220, -529, -529, + 222, 224, 730, 730, 730, -529, -529, 215, -529, 1231, + 331, 347, -529, 161, 1276, 1276, 196, 225, 227, 229, + 230, 1276, -529, -529, -529, 231, 234, 246, 329, 247, + -529, -529, -529, 312, 248, -529, 730, 730, 1231, 730, + 730, 255, -529, 255, -529, 257, 730, 264, 1231, 1231, + 1231, -529, -529, -529, 1231, 730, -529, -529, -529, 265, + 268, 232, 1276, 1276, 1276, 1276, -529, 1276, 1276, 1276, + 1231, 1276, 386, -529, 375, 269, 270, 257, 251, -529, + -529, 361, -529, -529, 1231, 271, 730, -529, -529, -529, + 272, -529, 1276, 1276, -529, 273, 275, 276, 279, 277, + 281, 283, 287, 291, -529, -529, 407, 114, 398, -529, + -529, 292, -529, 296, 297, 1276, -529, 1276, 1276, -529, + -529, -529, -529, -529, 730, -529, 872, 153, 427, -529, + -529, -529, 307, 308, 309, -529, 313, -529, 872, 730, + -529, -529, -529, 440, 318, 389, 730, 446, 447, -529, + 730, 730, -529, -529 }; /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = +static const short yypgoto[] = { - -517, -517, -517, 286, 288, 291, 317, 320, 134, 80, - -127, -125, -502, -517, 340, 391, -114, -517, -265, 14, - -517, -284, -517, -51, -517, -37, -517, -66, 297, -517, - -94, 207, -283, 52, -517, -517, -517, -517, -517, -517, - -517, 368, -517, -517, -517, -517, 3, -517, 26, -517, - -517, 372, -517, -517, -517, -517, -517, 431, -517, -517, - -516, 56, 79, -124, -517, 421, -517, -517, -517, -517, - -517, 25, -35, -517, -517, 4, -517, -517 + -529, -529, -529, 372, 374, 379, 381, 382, 188, 166, + -130, -128, -510, -529, 439, 456, -123, -529, -270, 88, + -529, -285, -529, -49, -529, -37, -529, -68, -36, -529, + -110, 284, -298, 60, -529, -529, -529, -529, -529, -529, + -529, 445, -529, -529, -529, -529, 3, -529, 91, -529, + -529, 441, -529, -529, -529, -529, -529, 498, -529, -529, + -528, -202, 40, -119, -529, 484, -529, -529, -529, -529, + -529, 81, 24, -529, -529, 59, -529, -529 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -173 -static const yytype_int16 yytable[] = +#define YYTABLE_NINF -175 +static const short yytable[] = { - 89, 225, 106, 239, 228, 240, 26, 357, 414, 377, - 378, 94, 400, 416, 434, 123, 89, 242, 215, 119, - 231, 232, 233, 234, 235, 236, 237, 238, 39, 550, - 389, 391, 273, 229, 560, 42, 290, 435, 218, 398, - 4, 59, 291, 60, 26, 230, 568, 277, 219, 562, - 415, 278, 279, 280, 281, 415, 119, 53, 285, 286, - 408, 231, 232, 233, 234, 235, 236, 237, 238, -172, - 445, 287, 197, 198, 199, 445, 446, 29, 7, 8, - 9, 10, 54, 12, 55, 448, -108, 56, 224, 445, - 121, 224, 254, 255, 5, 123, 399, 447, 445, 39, - 6, 123, 46, 47, 48, 51, 459, 110, 111, 112, - 7, 8, 9, 10, 11, 12, 13, 271, 272, 224, - 274, 49, 231, 232, 233, 234, 235, 236, 237, 238, - 58, 14, 52, 275, 224, 107, 108, 95, 224, 224, - 224, 224, 282, 283, 284, 224, 224, 20, 62, 21, - 324, 325, 326, 482, 30, 31, 32, 33, 34, 35, - 36, 43, 549, 288, 289, 373, 190, 191, 64, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 328, 295, 296, -68, -68, -67, -67, - 99, 351, -66, -66, -65, -65, 297, 298, 100, 101, - 506, 114, 507, 561, 102, 89, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 352, 103, -109, 115, - 116, 122, 189, 193, 194, 195, 216, 226, 217, 220, - -72, -71, -70, 353, -69, 332, 371, 421, -75, 423, - 424, 425, -76, 300, 301, 333, 430, 354, 356, 359, - 89, 372, 224, 360, 369, 361, 362, 374, 392, 363, - 364, 365, 370, 375, 403, 406, 326, 381, 382, 383, - 322, 384, 420, 458, 385, 393, 394, 395, 396, 397, - 346, 404, 409, 410, 417, 346, 346, 440, 441, 442, - 443, 444, 426, 427, 428, 433, 434, 346, 438, 449, - 450, 451, 452, 453, 439, 460, 461, 462, 348, 349, - 466, 463, 464, 470, 480, 472, 473, 474, 481, 494, - 350, 478, 486, 487, 224, 422, 224, 224, 224, 496, - 346, 401, 429, 224, 488, 518, 489, 528, 346, 346, - 346, 491, 492, 529, 483, 484, 415, 548, 511, 512, - 513, 490, 493, 358, 495, 498, 505, 508, 510, 516, - 517, 366, 367, 368, 552, 563, 328, 530, 570, 534, - 531, 532, 536, 540, 543, 539, 572, 574, 541, 575, - 224, 97, 542, 179, 533, 180, 380, 544, 181, 545, - 546, 547, 519, 520, 521, 522, 479, 523, 524, 525, - 553, 527, 554, 555, 239, 564, 240, 346, 346, 346, - 565, 567, 566, 571, 182, 346, 57, 183, 456, 222, - 105, 321, 537, 538, 239, 224, 240, 346, 346, 455, - 411, 412, 413, 113, 27, 224, 224, 224, 419, 379, - 45, 224, 469, 514, 485, 556, 0, 557, 558, 0, - 431, 432, 0, 0, 0, 0, 0, 526, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 346, 224, 346, 0, 0, 0, 346, 0, 0, 0, - 0, 0, 346, 346, 346, 0, 0, 0, 0, 0, - 0, 0, 0, 465, 0, 467, 0, 0, 0, 471, - 0, 0, 0, 0, 0, 475, 476, 477, 0, 0, - 0, 0, 0, 0, 0, 0, 346, 346, 0, 346, - 346, 0, 0, 0, 0, 0, 346, 0, 0, 0, - 0, 0, 0, 0, 0, 346, 0, 0, 0, 499, - 500, 0, 503, 504, 0, 0, 0, 0, -78, 509, - 20, 0, 21, 0, 0, 0, 0, 0, 515, 6, - -78, -78, 0, 0, 0, 0, 346, 0, 0, -78, - -78, -78, -78, -78, -78, -78, 0, 0, -78, 22, - 0, 0, 65, 66, 0, 0, 23, 0, 0, 535, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 0, 21, 0, 302, 346, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 303, 304, 0, 0, 346, - 0, 0, 0, 0, 0, 0, 346, 559, 0, 0, - 346, 346, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 573, - 0, 0, 0, 576, 577, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 305, 306, 65, 66, 0, 117, 68, + 89, 242, 216, 243, 106, 362, 26, 228, 116, 245, + 231, 382, 383, 325, 420, 39, 89, 120, 394, 396, + 422, 4, 42, 440, 232, 351, 94, 556, 566, 221, + 351, 351, 46, 47, 48, 221, 233, 29, 276, 222, + 574, 403, 351, -108, 26, 330, 441, 568, 293, 120, + 414, 49, 124, 280, 294, 120, 421, 281, 282, 283, + 284, 451, 421, 290, 288, 289, 39, 405, 451, 451, + 124, 454, 198, 199, 200, 351, 453, 465, 107, 108, + 451, 220, 51, 351, 351, 351, 452, 225, 404, 227, + 122, 52, 227, 124, 58, 65, 66, 62, 118, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 20, 0, 21, 0, 0, 0, 0, 0, - 307, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 0, 308, 172, 173, 174, 81, 309, - 310, 311, 0, 0, 0, 0, 0, 312, 0, 0, - 313, 0, 314, 65, 66, 315, 117, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 79, 80, + 79, 80, 20, 99, 21, 110, 111, 112, 274, 275, + 227, 277, 191, 192, 234, 235, 236, 237, 238, 239, + 240, 241, 291, 292, 278, 227, 298, 299, 81, 227, + 227, 227, 227, 285, 286, 287, 227, 227, 43, 327, + 328, 64, 95, 331, 351, 351, 351, 53, 488, 117, + -68, -68, 351, 234, 235, 236, 237, 238, 239, 240, + 241, -67, -67, 378, 351, 351, -66, -66, 7, 8, + 9, 10, 54, 12, 55, 103, 333, 56, 234, 235, + 236, 237, 238, 239, 240, 241, 356, 59, 20, 60, + 21, 512, 100, 513, -65, -65, 300, 301, 89, 30, + 31, 32, 33, 34, 35, 36, 101, 102, 351, 357, + 351, 114, -109, 115, 351, 123, 190, 194, 195, 196, + 351, 351, 351, 217, 218, 223, 358, 82, 229, -72, + 83, 376, -71, 84, -70, 85, 119, 427, -69, 429, + 430, 431, -75, 89, 377, 227, 436, -76, 303, 304, + 329, 337, 338, 359, 351, 351, 555, 351, 351, 331, + 361, 364, 353, 354, 351, 365, 446, 447, 448, 449, + 450, 366, 367, 351, 355, 368, 369, 370, 455, 456, + 457, 458, 459, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 374, 375, 567, 379, 380, 386, 397, + 387, 388, 389, 390, 351, 398, 412, 363, 399, 400, + 401, 409, 402, 406, 440, 371, 372, 373, 415, 227, + 428, 227, 227, 227, 489, 490, 407, 435, 227, 410, + 416, 496, 423, 426, 432, 433, 434, 464, 466, 467, + 472, 487, 351, 439, 444, 486, 445, 468, 469, 517, + 518, 519, 470, 484, 476, 500, 478, 351, 479, 502, + 480, 492, 333, 493, 351, 494, 495, 497, 351, 351, + 498, 524, 525, 526, 527, 528, 227, 529, 530, 531, + 534, 533, 499, 501, 504, 539, 417, 418, 419, 535, + 538, 511, 485, 514, 425, 257, 258, 242, -174, 243, + 516, 522, 543, 544, 523, 536, 437, 438, 421, 545, + 537, 542, 547, 540, 546, 548, 549, 242, 554, 243, + 550, 227, 551, 5, 558, 562, 552, 563, 564, 6, + 553, 227, 227, 227, 559, 560, 561, 227, 569, 7, + 8, 9, 10, 11, 12, 13, 570, 571, 572, 573, + 471, 576, 473, 532, 577, 578, 477, 580, 581, 180, + 14, 181, 481, 482, 483, 385, 182, 227, 183, 184, + 97, 57, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 384, 105, 462, 324, + 461, 27, 113, 45, 475, 491, 505, 506, 520, 509, + 510, 0, 0, 0, 0, -78, 515, 20, 0, 21, + 0, 0, 0, 0, 0, 521, 6, -78, -78, 0, + 0, 0, 0, 0, 0, 0, -78, -78, -78, -78, + -78, -78, -78, 0, 0, -78, 22, 0, 0, 65, + 66, 0, 0, 23, 0, 0, 541, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 21, 0, + 305, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 306, 307, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 575, + 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, + 582, 583, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 308, 309, 65, 66, 0, 118, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, + 0, 21, 0, 0, 0, 0, 0, 310, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 0, 311, 173, 174, 175, 81, 312, 313, 314, 0, + 0, 0, 0, 0, 315, 0, 0, 316, 0, 317, + 65, 66, 318, 118, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 79, 80, 20, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 339, 340, 65, 66, 341, 0, 0, + 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 21, 0, 342, 343, 344, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 345, 346, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 0, 0, 83, 0, 0, + 84, 347, 85, 219, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 308, 309, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 0, 0, 84, 0, + 85, 395, 0, 310, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 0, 311, 173, 174, + 175, 0, 312, 313, 314, 339, 340, 0, 0, 341, + 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 342, 343, + 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 345, 346, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 308, 309, + 65, 66, 0, 118, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 79, 80, 20, 0, 21, + 0, 0, 0, 0, 0, 310, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 311, + 173, 174, 175, 81, 312, 313, 314, 0, 0, 0, + 0, 0, 0, 65, 66, 348, 118, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 334, 335, 65, 66, - 336, 0, 0, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 21, 0, 337, - 338, 339, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 340, 341, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, - 83, 0, 0, 84, 342, 85, 118, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 305, - 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 0, 83, 0, - 0, 84, 0, 85, 390, 0, 307, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, - 308, 172, 173, 174, 0, 309, 310, 311, 334, 335, - 0, 0, 336, 0, 0, 0, 343, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 337, 338, 339, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 340, 341, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 305, 306, 65, 66, 0, 117, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 79, 80, - 20, 0, 21, 0, 0, 0, 0, 0, 307, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 0, 308, 172, 173, 174, 81, 309, 310, 311, - 0, 0, 0, 0, 0, 0, 65, 66, 343, 117, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 20, 0, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 66, 81, - 117, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 20, 0, 21, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 0, 0, 82, 0, 0, 83, 0, - 386, 84, 0, 85, 65, 66, 0, 117, 68, 69, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 0, 0, 0, 0, 65, 66, 81, 118, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 81, 82, 0, - 0, 83, 0, 0, 84, 0, 85, 0, 65, 66, - 0, 117, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 20, 0, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 454, 0, 83, 0, 0, 84, 0, 85, 0, 65, - 66, 81, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 20, 0, 21, 65, - 66, 0, 117, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, - 0, 0, 81, 0, 0, 0, 82, 0, 0, 83, - 0, 0, 84, 0, 85, 0, 0, 0, 0, 0, - 0, 0, 81, 0, 65, 66, 0, 117, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 79, - 80, 20, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 0, 83, 0, 0, 84, 81, 85, 65, - 66, 0, 227, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 20, 0, 21, 0, - 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, - 0, 82, 0, 0, 83, 0, 0, 84, 125, 85, - 0, 0, 81, 0, 0, 0, 0, 0, 126, 127, - 0, 82, 0, 0, 83, 0, 0, 84, 0, 85, - 0, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 82, 0, 0, 83, - 0, 0, 84, 0, 85, 0, 0, 154, 155, 156, - 0, 0, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 0, 0, 0, 0, 0, 0, - 0, 82, 0, 0, 83, 0, 0, 84, 0, 85 + 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, + 0, 0, 82, 0, 0, 83, 0, 391, 84, 0, + 85, 65, 66, 0, 118, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 20, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 82, 0, 0, 83, 0, + 0, 84, 0, 85, 0, 65, 66, 0, 118, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 20, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 82, 460, 0, 83, + 0, 0, 84, 0, 85, 0, 65, 66, 81, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 20, 0, 21, 65, 66, 0, 118, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 20, 0, 21, 0, 0, 0, 81, + 0, 0, 0, 82, 0, 0, 83, 0, 0, 84, + 0, 85, 0, 0, 0, 0, 0, 0, 0, 81, + 0, 65, 66, 0, 118, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 79, 80, 20, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, + 83, 0, 0, 84, 81, 85, 65, 66, 0, 230, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 20, 0, 21, 0, 0, 0, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 0, 0, 84, 126, 85, 0, 0, 81, + 0, 0, 0, 0, 0, 127, 128, 0, 82, 0, + 0, 83, 0, 0, 84, 0, 85, 0, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 0, 0, 84, + 0, 85, 0, 0, 155, 156, 157, 0, 0, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 0, 0, 0, 0, 0, 0, 0, 82, 0, + 0, 83, 0, 0, 84, 0, 85 }; -static const yytype_int16 yycheck[] = +static const short yycheck[] = { - 37, 125, 53, 130, 128, 130, 3, 272, 15, 293, - 294, 29, 154, 15, 34, 157, 53, 131, 112, 85, - 10, 11, 12, 13, 14, 15, 16, 17, 23, 531, - 313, 314, 156, 9, 550, 30, 146, 57, 146, 323, - 0, 45, 152, 47, 41, 21, 562, 171, 156, 551, - 57, 175, 176, 177, 178, 57, 122, 20, 182, 183, - 343, 10, 11, 12, 13, 14, 15, 16, 17, 0, - 146, 185, 109, 110, 111, 146, 152, 61, 41, 42, - 43, 44, 45, 46, 47, 156, 148, 50, 125, 146, - 87, 128, 27, 28, 25, 157, 152, 154, 146, 23, - 31, 157, 52, 53, 54, 145, 154, 55, 56, 57, - 41, 42, 43, 44, 45, 46, 47, 154, 155, 156, - 157, 71, 10, 11, 12, 13, 14, 15, 16, 17, - 145, 62, 61, 170, 171, 32, 33, 155, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 22, 24, 24, - 216, 217, 218, 437, 64, 65, 66, 67, 68, 69, - 70, 156, 152, 121, 122, 289, 55, 56, 4, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 220, 27, 28, 3, 4, 3, 4, - 145, 242, 3, 4, 3, 4, 3, 4, 145, 145, - 465, 4, 467, 152, 145, 242, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 253, 150, 148, 4, - 4, 148, 24, 4, 24, 24, 151, 59, 151, 148, - 4, 4, 4, 270, 4, 146, 287, 361, 7, 363, - 364, 365, 7, 4, 7, 149, 370, 146, 146, 150, - 287, 288, 289, 146, 36, 146, 146, 24, 24, 146, - 146, 146, 146, 146, 146, 63, 332, 148, 148, 148, - 214, 148, 150, 24, 148, 148, 148, 148, 148, 148, - 224, 149, 146, 146, 146, 229, 230, 381, 382, 383, - 384, 385, 146, 146, 146, 146, 34, 241, 148, 393, - 394, 395, 396, 397, 148, 21, 21, 148, 229, 230, - 4, 146, 146, 146, 24, 146, 146, 146, 4, 36, - 241, 148, 146, 146, 361, 362, 363, 364, 365, 57, - 274, 328, 369, 370, 146, 149, 146, 4, 282, 283, - 284, 146, 146, 24, 438, 439, 57, 21, 472, 473, - 474, 445, 146, 274, 146, 146, 146, 146, 146, 146, - 146, 282, 283, 284, 36, 21, 403, 146, 21, 152, - 150, 149, 149, 149, 149, 146, 76, 21, 146, 21, - 417, 41, 146, 97, 508, 97, 306, 149, 97, 149, - 149, 149, 486, 487, 488, 489, 433, 491, 492, 493, - 152, 495, 149, 149, 531, 149, 531, 351, 352, 353, - 149, 146, 149, 146, 97, 359, 25, 97, 404, 122, - 52, 214, 516, 517, 551, 462, 551, 371, 372, 403, - 351, 352, 353, 61, 3, 472, 473, 474, 359, 305, - 19, 478, 417, 478, 440, 539, -1, 541, 542, -1, - 371, 372, -1, -1, -1, -1, -1, 494, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 414, 508, 416, -1, -1, -1, 420, -1, -1, -1, - -1, -1, 426, 427, 428, -1, -1, -1, -1, -1, - -1, -1, -1, 414, -1, 416, -1, -1, -1, 420, - -1, -1, -1, -1, -1, 426, 427, 428, -1, -1, - -1, -1, -1, -1, -1, -1, 460, 461, -1, 463, - 464, -1, -1, -1, -1, -1, 470, -1, -1, -1, - -1, -1, -1, -1, -1, 479, -1, -1, -1, 460, - 461, -1, 463, 464, -1, -1, -1, -1, 20, 470, - 22, -1, 24, -1, -1, -1, -1, -1, 479, 31, - 32, 33, -1, -1, -1, -1, 510, -1, -1, 41, - 42, 43, 44, 45, 46, 47, -1, -1, 50, 51, - -1, -1, 5, 6, -1, -1, 58, -1, -1, 510, - 62, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, 24, -1, 26, 548, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 38, 39, -1, -1, 563, - -1, -1, -1, -1, -1, -1, 570, 548, -1, -1, - 574, 575, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 563, -1, -1, -1, -1, -1, -1, 570, - -1, -1, -1, 574, 575, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 5, 6, -1, 8, 9, + 37, 131, 112, 131, 53, 275, 3, 126, 4, 132, + 129, 296, 297, 215, 15, 23, 53, 85, 316, 317, + 15, 0, 30, 34, 9, 227, 29, 537, 556, 146, + 232, 233, 52, 53, 54, 146, 21, 61, 157, 156, + 568, 326, 244, 148, 41, 156, 57, 557, 146, 117, + 348, 71, 157, 172, 152, 123, 57, 176, 177, 178, + 179, 146, 57, 186, 183, 184, 23, 154, 146, 146, + 157, 156, 109, 110, 111, 277, 154, 154, 32, 33, + 146, 117, 145, 285, 286, 287, 152, 123, 152, 126, + 87, 61, 129, 157, 145, 5, 6, 24, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, -1, 137, 138, 139, 140, 48, 142, - 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, - 153, -1, 155, 5, 6, 158, 8, 9, 10, 11, + 20, 21, 22, 145, 24, 55, 56, 57, 155, 156, + 157, 158, 55, 56, 10, 11, 12, 13, 14, 15, + 16, 17, 121, 122, 171, 172, 27, 28, 48, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 156, 217, + 218, 4, 155, 221, 356, 357, 358, 20, 443, 155, + 3, 4, 364, 10, 11, 12, 13, 14, 15, 16, + 17, 3, 4, 292, 376, 377, 3, 4, 41, 42, + 43, 44, 45, 46, 47, 150, 223, 50, 10, 11, + 12, 13, 14, 15, 16, 17, 245, 45, 22, 47, + 24, 471, 145, 473, 3, 4, 3, 4, 245, 64, + 65, 66, 67, 68, 69, 70, 145, 145, 420, 256, + 422, 4, 148, 4, 426, 148, 24, 4, 24, 24, + 432, 433, 434, 151, 151, 148, 273, 147, 59, 4, + 150, 290, 4, 153, 4, 155, 156, 366, 4, 368, + 369, 370, 7, 290, 291, 292, 375, 7, 4, 7, + 154, 146, 149, 146, 466, 467, 152, 469, 470, 337, + 146, 150, 232, 233, 476, 146, 386, 387, 388, 389, + 390, 146, 146, 485, 244, 146, 146, 146, 398, 399, + 400, 401, 402, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 36, 146, 152, 24, 146, 148, 24, + 148, 148, 148, 148, 516, 148, 63, 277, 148, 148, + 148, 146, 148, 154, 34, 285, 286, 287, 146, 366, + 367, 368, 369, 370, 444, 445, 333, 374, 375, 149, + 146, 451, 146, 150, 146, 146, 146, 24, 21, 21, + 4, 4, 554, 146, 148, 24, 148, 148, 146, 478, + 479, 480, 146, 148, 146, 36, 146, 569, 146, 57, + 146, 146, 409, 146, 576, 146, 146, 146, 580, 581, + 146, 149, 492, 493, 494, 495, 423, 497, 498, 499, + 4, 501, 146, 146, 146, 514, 356, 357, 358, 24, + 149, 146, 439, 146, 364, 27, 28, 537, 0, 537, + 146, 146, 522, 523, 146, 146, 376, 377, 57, 146, + 150, 149, 146, 152, 149, 146, 149, 557, 21, 557, + 149, 468, 149, 25, 36, 545, 149, 547, 548, 31, + 149, 478, 479, 480, 152, 149, 149, 484, 21, 41, + 42, 43, 44, 45, 46, 47, 149, 149, 149, 146, + 420, 21, 422, 500, 146, 76, 426, 21, 21, 97, + 62, 97, 432, 433, 434, 309, 97, 514, 97, 97, + 41, 25, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 308, 52, 410, 215, + 409, 3, 61, 19, 423, 446, 466, 467, 484, 469, + 470, -1, -1, -1, -1, 20, 476, 22, -1, 24, + -1, -1, -1, -1, -1, 485, 31, 32, 33, -1, + -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, + 45, 46, 47, -1, -1, 50, 51, -1, -1, 5, + 6, -1, -1, 58, -1, -1, 516, 62, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, 24, -1, + 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 38, 39, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 569, + -1, -1, -1, -1, -1, -1, 576, -1, -1, -1, + 580, 581, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 5, 6, -1, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + -1, 24, -1, -1, -1, -1, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 48, 142, 143, 144, -1, + -1, -1, -1, -1, 150, -1, -1, 153, -1, 155, + 5, 6, 158, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, + -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, 24, -1, 26, 27, 28, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 38, 39, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 147, -1, -1, 150, -1, -1, + 153, 61, 155, 156, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 147, -1, -1, 150, -1, -1, 153, -1, + 155, 156, -1, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, -1, 142, 143, 144, 3, 4, -1, -1, 7, + -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, + 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 38, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, -1, -1, -1, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 48, 142, 143, 144, -1, -1, -1, + -1, -1, -1, 5, 6, 153, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, -1, -1, -1, -1, -1, 48, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, 24, -1, 26, - 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 38, 39, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, - 150, -1, -1, 153, 61, 155, 156, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 147, -1, -1, 150, -1, - -1, 153, -1, 155, 156, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, - 137, 138, 139, 140, -1, 142, 143, 144, 3, 4, - -1, -1, 7, -1, -1, -1, 153, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 26, 27, 28, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 38, 39, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 5, 6, -1, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, -1, 24, -1, -1, -1, -1, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, -1, 137, 138, 139, 140, 48, 142, 143, 144, - -1, -1, -1, -1, -1, -1, 5, 6, 153, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, -1, -1, -1, -1, -1, 5, 6, 48, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 48, -1, -1, -1, -1, 147, -1, -1, 150, -1, - 152, 153, -1, 155, 5, 6, -1, 8, 9, 10, + -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, + -1, -1, -1, -1, 5, 6, 48, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 48, 147, -1, - -1, 150, -1, -1, 153, -1, 155, -1, 5, 6, - -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, - 37, -1, 150, -1, -1, 153, -1, 155, -1, 5, - 6, 48, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, -1, 24, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, - -1, -1, 48, -1, -1, -1, 147, -1, -1, 150, - -1, -1, 153, -1, 155, -1, -1, -1, -1, -1, - -1, -1, 48, -1, 5, 6, -1, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, -1, 24, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 147, -1, -1, 150, -1, -1, 153, 48, 155, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, - -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, - -1, 147, -1, -1, 150, -1, -1, 153, 49, 155, - -1, -1, 48, -1, -1, -1, -1, -1, 59, 60, - -1, 147, -1, -1, 150, -1, -1, 153, -1, 155, - -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 147, -1, -1, 150, - -1, -1, 153, -1, 155, -1, -1, 118, 119, 120, - -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, - -1, 147, -1, -1, 150, -1, -1, 153, -1, 155 + -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, + -1, -1, 147, -1, -1, 150, -1, 152, 153, -1, + 155, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, + 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 147, -1, -1, 150, -1, + -1, 153, -1, 155, -1, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, -1, 24, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 147, 37, -1, 150, + -1, -1, 153, -1, 155, -1, 5, 6, 48, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, -1, 24, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, -1, 24, -1, -1, -1, 48, + -1, -1, -1, 147, -1, -1, 150, -1, -1, 153, + -1, 155, -1, -1, -1, -1, -1, -1, -1, 48, + -1, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, + 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, + 150, -1, -1, 153, 48, 155, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, + -1, 35, -1, -1, -1, -1, -1, -1, 147, -1, + -1, 150, -1, -1, 153, 49, 155, -1, -1, 48, + -1, -1, -1, -1, -1, 59, 60, -1, 147, -1, + -1, 150, -1, -1, 153, -1, 155, -1, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 147, -1, -1, 150, -1, -1, 153, + -1, 155, -1, -1, 118, 119, 120, -1, -1, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, -1, -1, -1, -1, -1, -1, -1, 147, -1, + -1, 150, -1, -1, 153, -1, 155 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const unsigned char yystos[] = { 0, 193, 194, 195, 0, 25, 31, 41, 42, 43, 44, 45, 46, 47, 62, 174, 212, 214, 216, 223, @@ -2361,55 +2229,72 @@ static const yytype_uint8 yystos[] = 21, 48, 147, 150, 153, 155, 160, 182, 183, 184, 185, 186, 205, 220, 29, 155, 211, 173, 228, 145, 145, 145, 145, 150, 203, 200, 182, 32, 33, 192, - 192, 192, 192, 210, 4, 4, 4, 8, 156, 186, - 187, 205, 148, 157, 35, 49, 59, 60, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 118, 119, 120, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 162, - 163, 164, 165, 166, 226, 232, 233, 235, 236, 24, - 55, 56, 201, 4, 24, 24, 204, 184, 184, 184, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 169, 170, 172, 184, 189, 151, 151, 146, 156, - 148, 37, 187, 188, 184, 222, 59, 8, 222, 9, - 21, 10, 11, 12, 13, 14, 15, 16, 17, 169, - 170, 171, 175, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 167, 27, 28, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 168, 184, 184, 222, 184, 184, 229, 222, 222, 222, - 222, 222, 184, 184, 184, 222, 222, 175, 121, 122, - 146, 152, 198, 199, 197, 27, 28, 3, 4, 161, - 4, 7, 26, 38, 39, 96, 97, 123, 137, 142, - 143, 144, 150, 153, 155, 158, 162, 163, 164, 165, - 166, 190, 220, 196, 186, 186, 186, 37, 184, 207, - 208, 209, 146, 149, 3, 4, 7, 26, 27, 28, - 38, 39, 61, 153, 190, 219, 220, 221, 221, 221, - 221, 182, 184, 184, 146, 177, 146, 177, 221, 150, - 146, 146, 146, 146, 146, 146, 221, 221, 221, 36, - 146, 182, 184, 222, 24, 146, 180, 180, 180, 167, - 168, 148, 148, 148, 148, 148, 152, 189, 191, 191, - 156, 191, 24, 148, 148, 148, 148, 148, 180, 152, - 154, 205, 206, 146, 149, 37, 63, 218, 191, 146, - 146, 221, 221, 221, 15, 57, 15, 146, 234, 221, - 150, 222, 184, 222, 222, 222, 146, 146, 146, 184, - 222, 221, 221, 146, 34, 57, 178, 181, 148, 148, - 189, 189, 189, 189, 189, 146, 152, 154, 156, 189, - 189, 189, 189, 189, 37, 207, 178, 179, 24, 154, - 21, 21, 148, 146, 146, 221, 4, 221, 222, 230, - 146, 221, 146, 146, 146, 221, 221, 221, 148, 184, - 24, 4, 180, 189, 189, 234, 146, 146, 146, 146, - 189, 146, 146, 146, 36, 146, 57, 176, 146, 221, - 221, 230, 231, 221, 221, 146, 177, 177, 146, 221, - 146, 222, 222, 222, 231, 221, 146, 146, 149, 189, - 189, 189, 189, 189, 189, 189, 184, 189, 4, 24, - 146, 150, 149, 222, 152, 221, 149, 189, 189, 146, - 149, 146, 146, 149, 149, 149, 149, 149, 21, 152, - 171, 227, 36, 152, 149, 149, 189, 189, 189, 221, - 219, 152, 171, 21, 149, 149, 149, 146, 219, 221, - 21, 146, 76, 221, 21, 21, 221, 221 + 192, 192, 192, 210, 4, 4, 4, 155, 8, 156, + 186, 187, 205, 148, 157, 35, 49, 59, 60, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 118, 119, 120, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 162, 163, 164, 165, 166, 226, 232, 233, 235, 236, + 24, 55, 56, 201, 4, 24, 24, 204, 184, 184, + 184, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 169, 170, 172, 184, 189, 151, 151, 156, + 187, 146, 156, 148, 37, 187, 188, 184, 222, 59, + 8, 222, 9, 21, 10, 11, 12, 13, 14, 15, + 16, 17, 169, 170, 171, 175, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 167, 27, 28, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 168, 184, 184, 222, 184, 184, 229, + 222, 222, 222, 222, 222, 184, 184, 184, 222, 222, + 175, 121, 122, 146, 152, 198, 199, 197, 27, 28, + 3, 4, 161, 4, 7, 26, 38, 39, 96, 97, + 123, 137, 142, 143, 144, 150, 153, 155, 158, 162, + 163, 164, 165, 166, 190, 220, 196, 186, 186, 154, + 156, 186, 37, 184, 207, 208, 209, 146, 149, 3, + 4, 7, 26, 27, 28, 38, 39, 61, 153, 190, + 219, 220, 221, 221, 221, 221, 182, 184, 184, 146, + 177, 146, 177, 221, 150, 146, 146, 146, 146, 146, + 146, 221, 221, 221, 36, 146, 182, 184, 222, 24, + 146, 180, 180, 180, 167, 168, 148, 148, 148, 148, + 148, 152, 189, 191, 191, 156, 191, 24, 148, 148, + 148, 148, 148, 180, 152, 154, 154, 205, 206, 146, + 149, 37, 63, 218, 191, 146, 146, 221, 221, 221, + 15, 57, 15, 146, 234, 221, 150, 222, 184, 222, + 222, 222, 146, 146, 146, 184, 222, 221, 221, 146, + 34, 57, 178, 181, 148, 148, 189, 189, 189, 189, + 189, 146, 152, 154, 156, 189, 189, 189, 189, 189, + 37, 207, 178, 179, 24, 154, 21, 21, 148, 146, + 146, 221, 4, 221, 222, 230, 146, 221, 146, 146, + 146, 221, 221, 221, 148, 184, 24, 4, 180, 189, + 189, 234, 146, 146, 146, 146, 189, 146, 146, 146, + 36, 146, 57, 176, 146, 221, 221, 230, 231, 221, + 221, 146, 177, 177, 146, 221, 146, 222, 222, 222, + 231, 221, 146, 146, 149, 189, 189, 189, 189, 189, + 189, 189, 184, 189, 4, 24, 146, 150, 149, 222, + 152, 221, 149, 189, 189, 146, 149, 146, 146, 149, + 149, 149, 149, 149, 21, 152, 171, 227, 36, 152, + 149, 149, 189, 189, 189, 221, 219, 152, 171, 21, + 149, 149, 149, 146, 219, 221, 21, 146, 76, 221, + 21, 21, 221, 221 }; +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) @@ -2435,63 +2320,30 @@ do \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ + YYPOPSTACK; \ goto yybackup; \ } \ else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ + { \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ -while (YYID (0)) - +while (0) #define YYTERROR 1 #define YYERRCODE 256 +/* YYLLOC_DEFAULT -- Compute the default location (before the actions + are run). */ -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + ((Current).first_line = (Rhs)[1].first_line, \ + (Current).first_column = (Rhs)[1].first_column, \ + (Current).last_line = (Rhs)[N].last_line, \ + (Current).last_column = (Rhs)[N].last_column) #endif - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM @@ -2512,96 +2364,42 @@ while (YYID (0)) do { \ if (yydebug) \ YYFPRINTF Args; \ -} while (YYID (0)) +} while (0) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +# define YYDSYMPRINT(Args) \ +do { \ + if (yydebug) \ + yysymprint Args; \ +} while (0) - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined (__STDC__) || defined (__cplusplus) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (short *bottom, short *top) #else static void yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; + short *bottom; + short *top; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) + for (/* Nothing. */; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } @@ -2610,52 +2408,45 @@ yy_stack_print (bottom, top) do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined (__STDC__) || defined (__cplusplus) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (int yyrule) #else static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; +yy_reduce_print (yyrule) int yyrule; #endif { - int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); - } + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) + yy_reduce_print (Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -2670,9 +2461,13 @@ int yydebug; if the built-in stack extension method is used). Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 +# undef YYMAXDEPTH +#endif + #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif @@ -2682,47 +2477,45 @@ int yydebug; #if YYERROR_VERBOSE # ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H +# if defined (__GLIBC__) && defined (_STRING_H) # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) -#else -static YYSIZE_T +# else yystrlen (yystr) - const char *yystr; -#endif + const char *yystr; +# endif { - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) + register const char *yys = yystr; + + while (*yys++ != '\0') continue; - return yylen; + + return yys - yystr - 1; } # endif # endif # ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * +# if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) -#else -static char * +# else yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif + char *yydest; + const char *yysrc; +# endif { - char *yyd = yydest; - const char *yys = yysrc; + register char *yyd = yydest; + register const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; @@ -2732,192 +2525,70 @@ yystpcpy (yydest, yysrc) # endif # endif -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; +#endif /* !YYERROR_VERBOSE */ - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined (__STDC__) || defined (__cplusplus) static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; int yytype; YYSTYPE *yyvaluep; #endif { - YYUSE (yyvaluep); + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + if (yytype < YYNTOKENS) + { + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); +# ifdef YYPRINT + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + } + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yytype, yyvaluep) + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; switch (yytype) { default: - break; + break; } } @@ -2925,13 +2596,13 @@ yydestruct (yymsg, yytype, yyvaluep) /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus +# if defined (__STDC__) || defined (__cplusplus) int yyparse (void *YYPARSE_PARAM); -#else +# else int yyparse (); -#endif +# endif #else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); #else int yyparse (); @@ -2940,10 +2611,10 @@ int yyparse (); -/* 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. */ @@ -2956,18 +2627,14 @@ int yynerrs; `----------*/ #ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif #else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void) #else @@ -2978,19 +2645,13 @@ yyparse () #endif { - int yystate; - int yyn; + register int yystate; + register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ + /* Lookahead 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, @@ -3001,18 +2662,18 @@ yyparse () to reallocate them elsewhere. */ /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + short yyssa[YYINITDEPTH]; + short *yyss = yyssa; + register short *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + register YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) +#define YYPOPSTACK (yyvsp--, yyssp--) YYSIZE_T yystacksize = YYINITDEPTH; @@ -3021,9 +2682,9 @@ yyparse () YYSTYPE yyval; - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ + int yylen; YYDPRINTF ((stderr, "Starting parse\n")); @@ -3047,7 +2708,8 @@ yyparse () `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ + have just been pushed. so pushing a state here evens the stacks. + */ yyssp++; yysetstate: @@ -3060,18 +2722,18 @@ yyparse () #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of + /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + short *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 be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), + yyoverflow ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), @@ -3082,21 +2744,21 @@ yyparse () } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; + goto yyoverflowlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyoverflowlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + short *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) - goto yyexhaustedlab; + goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); @@ -3127,17 +2789,19 @@ yyparse () `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ - /* First try to decide what to do without reference to look-ahead 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: ")); @@ -3152,7 +2816,7 @@ yybackup: else { yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to @@ -3172,21 +2836,22 @@ yybackup: if (yyn == YYFINAL) YYACCEPT; + /* Shift the lookahead token. */ + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; + + /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; - *++yyvsp = yylval; - goto yynewstate; @@ -3222,690 +2887,712 @@ yyreduce: switch (yyn) { case 3: -#line 991 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 991 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(1) - (1)].UIntVal) > (uint32_t)INT32_MAX) // Outside of my range! + if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); - (yyval.SIntVal) = (int32_t)(yyvsp[(1) - (1)].UIntVal); + yyval.SIntVal = (int32_t)yyvsp[0].UIntVal; CHECK_FOR_ERROR ;} break; case 5: -#line 1000 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1000 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(1) - (1)].UInt64Val) > (uint64_t)INT64_MAX) // Outside of my range! + if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range! GEN_ERROR("Value too large for type!"); - (yyval.SInt64Val) = (int64_t)(yyvsp[(1) - (1)].UInt64Val); + yyval.SInt64Val = (int64_t)yyvsp[0].UInt64Val; CHECK_FOR_ERROR ;} break; case 39: -#line 1017 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;} +#line 1017 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_EQ; ;} break; case 40: -#line 1017 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;} +#line 1017 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_NE; ;} break; case 41: -#line 1018 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;} +#line 1018 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_SLT; ;} break; case 42: -#line 1018 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;} +#line 1018 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_SGT; ;} break; case 43: -#line 1019 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;} +#line 1019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_SLE; ;} break; case 44: -#line 1019 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;} +#line 1019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_SGE; ;} break; case 45: -#line 1020 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;} +#line 1020 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_ULT; ;} break; case 46: -#line 1020 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;} +#line 1020 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_UGT; ;} break; case 47: -#line 1021 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;} +#line 1021 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_ULE; ;} break; case 48: -#line 1021 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;} +#line 1021 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.IPredicate = ICmpInst::ICMP_UGE; ;} break; case 49: -#line 1025 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;} +#line 1025 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_OEQ; ;} break; case 50: -#line 1025 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;} +#line 1025 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_ONE; ;} break; case 51: -#line 1026 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;} +#line 1026 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_OLT; ;} break; case 52: -#line 1026 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;} +#line 1026 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_OGT; ;} break; case 53: -#line 1027 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;} +#line 1027 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_OLE; ;} break; case 54: -#line 1027 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;} +#line 1027 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_OGE; ;} break; case 55: -#line 1028 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;} +#line 1028 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_ORD; ;} break; case 56: -#line 1028 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;} +#line 1028 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_UNO; ;} break; case 57: -#line 1029 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;} +#line 1029 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_UEQ; ;} break; case 58: -#line 1029 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;} +#line 1029 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_UNE; ;} break; case 59: -#line 1030 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;} +#line 1030 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_ULT; ;} break; case 60: -#line 1030 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;} +#line 1030 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_UGT; ;} break; case 61: -#line 1031 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;} +#line 1031 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_ULE; ;} break; case 62: -#line 1031 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;} +#line 1031 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_UGE; ;} break; case 63: -#line 1032 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;} +#line 1032 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_TRUE; ;} break; case 64: -#line 1033 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;} +#line 1033 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.FPredicate = FCmpInst::FCMP_FALSE; ;} break; case 77: -#line 1044 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1044 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal); + yyval.StrVal = yyvsp[-1].StrVal; CHECK_FOR_ERROR ;} break; case 78: -#line 1048 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1048 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.StrVal) = 0; + yyval.StrVal = 0; CHECK_FOR_ERROR ;} break; case 79: -#line 1053 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::InternalLinkage; ;} +#line 1053 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::InternalLinkage; ;} break; case 80: -#line 1054 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;} +#line 1054 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::LinkOnceLinkage; ;} break; case 81: -#line 1055 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::WeakLinkage; ;} +#line 1055 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::WeakLinkage; ;} break; case 82: -#line 1056 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;} +#line 1056 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::AppendingLinkage; ;} break; case 83: -#line 1057 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;} +#line 1057 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 84: -#line 1058 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;} +#line 1058 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::DLLExportLinkage; ;} break; case 85: -#line 1059 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;} +#line 1059 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::ExternalWeakLinkage; ;} break; case 86: -#line 1060 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;} +#line 1060 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Linkage = GlobalValue::ExternalLinkage; ;} break; case 87: -#line 1062 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::C; ;} +#line 1062 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::C; ;} break; case 88: -#line 1063 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::C; ;} +#line 1063 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::C; ;} break; case 89: -#line 1064 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::CSRet; ;} +#line 1064 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::CSRet; ;} break; case 90: -#line 1065 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::Fast; ;} +#line 1065 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::Fast; ;} break; case 91: -#line 1066 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::Cold; ;} +#line 1066 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::Cold; ;} break; case 92: -#line 1067 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::X86_StdCall; ;} +#line 1067 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::X86_StdCall; ;} break; case 93: -#line 1068 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = CallingConv::X86_FastCall; ;} +#line 1068 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = CallingConv::X86_FastCall; ;} break; case 94: -#line 1069 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1069 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val)) + if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val) GEN_ERROR("Calling conv too large!"); - (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val); + yyval.UIntVal = yyvsp[0].UInt64Val; CHECK_FOR_ERROR ;} break; case 95: -#line 1078 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = 0; ;} +#line 1078 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = 0; ;} break; case 96: -#line 1079 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1079 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val); - if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) + yyval.UIntVal = yyvsp[0].UInt64Val; + if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal)) GEN_ERROR("Alignment must be a power of two!"); CHECK_FOR_ERROR ;} break; case 97: -#line 1085 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.UIntVal) = 0; ;} +#line 1085 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.UIntVal = 0; ;} break; case 98: -#line 1086 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1086 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val); - if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal))) + yyval.UIntVal = yyvsp[0].UInt64Val; + if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal)) GEN_ERROR("Alignment must be a power of two!"); CHECK_FOR_ERROR ;} break; case 99: -#line 1094 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1094 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - for (unsigned i = 0, e = strlen((yyvsp[(2) - (2)].StrVal)); i != e; ++i) - if ((yyvsp[(2) - (2)].StrVal)[i] == '"' || (yyvsp[(2) - (2)].StrVal)[i] == '\\') + for (unsigned i = 0, e = strlen(yyvsp[0].StrVal); i != e; ++i) + if (yyvsp[0].StrVal[i] == '"' || yyvsp[0].StrVal[i] == '\\') GEN_ERROR("Invalid character in section name!"); - (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal); + yyval.StrVal = yyvsp[0].StrVal; CHECK_FOR_ERROR ;} break; case 100: -#line 1102 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.StrVal) = 0; ;} +#line 1102 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.StrVal = 0; ;} break; case 101: -#line 1103 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;} +#line 1103 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.StrVal = yyvsp[0].StrVal; ;} break; case 102: -#line 1108 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1108 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" {;} break; case 103: -#line 1109 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1109 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" {;} break; case 104: -#line 1110 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1110 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurGV->setSection((yyvsp[(1) - (1)].StrVal)); - free((yyvsp[(1) - (1)].StrVal)); + CurGV->setSection(yyvsp[0].StrVal); + free(yyvsp[0].StrVal); CHECK_FOR_ERROR ;} break; case 105: -#line 1115 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1115 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val))) + if (yyvsp[0].UInt64Val != 0 && !isPowerOf2_32(yyvsp[0].UInt64Val)) GEN_ERROR("Alignment must be a power of two!"); - CurGV->setAlignment((yyvsp[(2) - (2)].UInt64Val)); + CurGV->setAlignment(yyvsp[0].UInt64Val); CHECK_FOR_ERROR ;} break; case 107: -#line 1129 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); ;} +#line 1129 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;} break; case 109: -#line 1130 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); ;} +#line 1130 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;} break; case 110: -#line 1132 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { if (!UpRefs.empty()) - GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription()); - (yyval.TypeVal) = (yyvsp[(1) - (1)].TypeVal); + GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription()); + yyval.TypeVal = yyvsp[0].TypeVal; CHECK_FOR_ERROR ;} break; case 124: -#line 1144 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1144 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.TypeVal) = new PATypeHolder(OpaqueType::get()); + yyval.TypeVal = new PATypeHolder(OpaqueType::get()); CHECK_FOR_ERROR ;} break; case 125: -#line 1148 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1148 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType)); + yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); CHECK_FOR_ERROR ;} break; case 126: -#line 1152 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1152 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Named types are also simple types... - const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal)); + const Type* tmp = getTypeVal(yyvsp[0].ValIDVal); CHECK_FOR_ERROR - (yyval.TypeVal) = new PATypeHolder(tmp); + yyval.TypeVal = new PATypeHolder(tmp); ;} break; case 127: -#line 1160 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1160 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Type UpReference - if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!"); + if (yyvsp[0].UInt64Val > (uint64_t)~0U) GEN_ERROR("Value out of range!"); OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder - UpRefs.push_back(UpRefRecord((unsigned)(yyvsp[(2) - (2)].UInt64Val), OT)); // Add to vector... - (yyval.TypeVal) = new PATypeHolder(OT); + UpRefs.push_back(UpRefRecord((unsigned)yyvsp[0].UInt64Val, OT)); // Add to vector... + yyval.TypeVal = new PATypeHolder(OT); UR_OUT("New Upreference!\n"); CHECK_FOR_ERROR ;} break; case 128: -#line 1168 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1168 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Function derived type? std::vector Params; - for (std::list::iterator I = (yyvsp[(3) - (4)].TypeList)->begin(), - E = (yyvsp[(3) - (4)].TypeList)->end(); I != E; ++I) + for (std::list::iterator I = yyvsp[-1].TypeList->begin(), + E = yyvsp[-1].TypeList->end(); I != E; ++I) Params.push_back(*I); bool isVarArg = Params.size() && Params.back() == Type::VoidTy; if (isVarArg) Params.pop_back(); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FunctionType::get(*(yyvsp[(1) - (4)].TypeVal),Params,isVarArg))); - delete (yyvsp[(3) - (4)].TypeList); // Delete the argument list - delete (yyvsp[(1) - (4)].TypeVal); // Delete the return type handle + yyval.TypeVal = new PATypeHolder(HandleUpRefs(FunctionType::get(*yyvsp[-3].TypeVal,Params,isVarArg))); + delete yyvsp[-1].TypeList; // Delete the argument list + delete yyvsp[-3].TypeVal; // Delete the return type handle CHECK_FOR_ERROR ;} break; case 129: -#line 1181 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1181 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Sized array type? - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val)))); - delete (yyvsp[(4) - (5)].TypeVal); + yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val))); + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 130: -#line 1186 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1186 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Packed array type? - const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get(); - if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val)) + const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get(); + if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val) GEN_ERROR("Unsigned result not equal to signed result"); if (!ElemTy->isPrimitiveType()) GEN_ERROR("Elemental type of a PackedType must be primitive"); - if (!isPowerOf2_32((yyvsp[(2) - (5)].UInt64Val))) + if (!isPowerOf2_32(yyvsp[-3].UInt64Val)) GEN_ERROR("Vector length should be a power of 2!"); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PackedType::get(*(yyvsp[(4) - (5)].TypeVal), (unsigned)(yyvsp[(2) - (5)].UInt64Val)))); - delete (yyvsp[(4) - (5)].TypeVal); + yyval.TypeVal = new PATypeHolder(HandleUpRefs(PackedType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val))); + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 131: -#line 1198 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1198 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Structure type? std::vector Elements; - for (std::list::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(), - E = (yyvsp[(2) - (3)].TypeList)->end(); I != E; ++I) + for (std::list::iterator I = yyvsp[-1].TypeList->begin(), + E = yyvsp[-1].TypeList->end(); I != E; ++I) Elements.push_back(*I); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements))); - delete (yyvsp[(2) - (3)].TypeList); + yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements))); + delete yyvsp[-1].TypeList; CHECK_FOR_ERROR ;} break; case 132: -#line 1208 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1208 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Empty structure type? - (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector())); + yyval.TypeVal = new PATypeHolder(StructType::get(std::vector())); CHECK_FOR_ERROR ;} break; case 133: -#line 1212 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Pointer type? - if (*(yyvsp[(1) - (2)].TypeVal) == Type::LabelTy) - GEN_ERROR("Cannot form a pointer to a basic block"); - (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PointerType::get(*(yyvsp[(1) - (2)].TypeVal)))); - delete (yyvsp[(1) - (2)].TypeVal); +#line 1212 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + std::vector Elements; + for (std::list::iterator I = yyvsp[-2].TypeList->begin(), + E = yyvsp[-2].TypeList->end(); I != E; ++I) + Elements.push_back(*I); + + yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true))); + delete yyvsp[-2].TypeList; CHECK_FOR_ERROR ;} break; case 134: -#line 1223 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.TypeList) = new std::list(); - (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal)); delete (yyvsp[(1) - (1)].TypeVal); +#line 1222 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Empty structure type? + yyval.TypeVal = new PATypeHolder(StructType::get(std::vector(), true)); CHECK_FOR_ERROR ;} break; case 135: -#line 1228 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1226 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Pointer type? + if (*yyvsp[-1].TypeVal == Type::LabelTy) + GEN_ERROR("Cannot form a pointer to a basic block"); + yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal))); + delete yyvsp[-1].TypeVal; + CHECK_FOR_ERROR + ;} + break; + + case 136: +#line 1237 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal)); delete (yyvsp[(3) - (3)].TypeVal); + yyval.TypeList = new std::list(); + yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal; CHECK_FOR_ERROR ;} break; case 137: -#line 1235 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1242 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(Type::VoidTy); - CHECK_FOR_ERROR - ;} - break; - - case 138: -#line 1239 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - ((yyval.TypeList) = new std::list())->push_back(Type::VoidTy); + (yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal; CHECK_FOR_ERROR ;} break; case 139: -#line 1243 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1249 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.TypeList) = new std::list(); + (yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy); CHECK_FOR_ERROR ;} break; case 140: -#line 1254 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Nonempty unsized arr - const ArrayType *ATy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); - if (ATy == 0) - GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); - const Type *ETy = ATy->getElementType(); - int NumElements = ATy->getNumElements(); - - // Verify that we have the correct size... - if (NumElements != -1 && NumElements != (int)(yyvsp[(3) - (4)].ConstVector)->size()) - GEN_ERROR("Type mismatch: constant sized array initialized with " + - utostr((yyvsp[(3) - (4)].ConstVector)->size()) + " arguments, but has size of " + - itostr(NumElements) + "!"); - - // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[(3) - (4)].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()) - GEN_ERROR("Element #" + utostr(i) + " is not of type '" + - ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()->getDescription() + "'."); - } - - (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[(3) - (4)].ConstVector)); - delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); +#line 1253 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + (yyval.TypeList = new std::list())->push_back(Type::VoidTy); CHECK_FOR_ERROR ;} break; case 141: -#line 1280 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1257 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - const ArrayType *ATy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); - if (ATy == 0) - GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); - - int NumElements = ATy->getNumElements(); - if (NumElements != -1 && NumElements != 0) - GEN_ERROR("Type mismatch: constant sized array initialized with 0" - " arguments, but has size of " + itostr(NumElements) +"!"); - (yyval.ConstVal) = ConstantArray::get(ATy, std::vector()); - delete (yyvsp[(1) - (3)].TypeVal); + yyval.TypeList = new std::list(); CHECK_FOR_ERROR ;} break; case 142: -#line 1294 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const ArrayType *ATy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); +#line 1268 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Nonempty unsized arr + const ArrayType *ATy = dyn_cast(yyvsp[-3].TypeVal->get()); if (ATy == 0) GEN_ERROR("Cannot make array constant with type: '" + - (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); - - int NumElements = ATy->getNumElements(); + (*yyvsp[-3].TypeVal)->getDescription() + "'!"); const Type *ETy = ATy->getElementType(); - char *EndStr = UnEscapeLexed((yyvsp[(3) - (3)].StrVal), true); - if (NumElements != -1 && NumElements != (EndStr-(yyvsp[(3) - (3)].StrVal))) - GEN_ERROR("Can't build string constant of size " + - itostr((int)(EndStr-(yyvsp[(3) - (3)].StrVal))) + - " when array has size " + itostr(NumElements) + "!"); - std::vector Vals; - if (ETy == Type::SByteTy) { - for (signed char *C = (signed char *)(yyvsp[(3) - (3)].StrVal); C != (signed char *)EndStr; ++C) - Vals.push_back(ConstantInt::get(ETy, *C)); - } else if (ETy == Type::UByteTy) { - for (unsigned char *C = (unsigned char *)(yyvsp[(3) - (3)].StrVal); - C != (unsigned char*)EndStr; ++C) - Vals.push_back(ConstantInt::get(ETy, *C)); - } else { - free((yyvsp[(3) - (3)].StrVal)); - GEN_ERROR("Cannot build string arrays of non byte sized elements!"); + int NumElements = ATy->getNumElements(); + + // Verify that we have the correct size... + if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size()) + GEN_ERROR("Type mismatch: constant sized array initialized with " + + utostr(yyvsp[-1].ConstVector->size()) + " arguments, but has size of " + + itostr(NumElements) + "!"); + + // Verify all elements are correct type! + for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) { + if (ETy != (*yyvsp[-1].ConstVector)[i]->getType()) + GEN_ERROR("Element #" + utostr(i) + " is not of type '" + + ETy->getDescription() +"' as required!\nIt is of type '"+ + (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'."); } - free((yyvsp[(3) - (3)].StrVal)); - (yyval.ConstVal) = ConstantArray::get(ATy, Vals); - delete (yyvsp[(1) - (3)].TypeVal); + + yyval.ConstVal = ConstantArray::get(ATy, *yyvsp[-1].ConstVector); + delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; CHECK_FOR_ERROR ;} break; case 143: -#line 1324 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Nonempty unsized arr - const PackedType *PTy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); - if (PTy == 0) - GEN_ERROR("Cannot make packed constant with type: '" + - (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); - const Type *ETy = PTy->getElementType(); - int NumElements = PTy->getNumElements(); +#line 1294 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + const ArrayType *ATy = dyn_cast(yyvsp[-2].TypeVal->get()); + if (ATy == 0) + GEN_ERROR("Cannot make array constant with type: '" + + (*yyvsp[-2].TypeVal)->getDescription() + "'!"); - // Verify that we have the correct size... - if (NumElements != -1 && NumElements != (int)(yyvsp[(3) - (4)].ConstVector)->size()) - GEN_ERROR("Type mismatch: constant sized packed initialized with " + - utostr((yyvsp[(3) - (4)].ConstVector)->size()) + " arguments, but has size of " + - itostr(NumElements) + "!"); - - // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[(3) - (4)].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()) - GEN_ERROR("Element #" + utostr(i) + " is not of type '" + - ETy->getDescription() +"' as required!\nIt is of type '"+ - (*(yyvsp[(3) - (4)].ConstVector))[i]->getType()->getDescription() + "'."); - } - - (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[(3) - (4)].ConstVector)); - delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); + int NumElements = ATy->getNumElements(); + if (NumElements != -1 && NumElements != 0) + GEN_ERROR("Type mismatch: constant sized array initialized with 0" + " arguments, but has size of " + itostr(NumElements) +"!"); + yyval.ConstVal = ConstantArray::get(ATy, std::vector()); + delete yyvsp[-2].TypeVal; CHECK_FOR_ERROR ;} break; case 144: -#line 1350 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1308 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - const StructType *STy = dyn_cast((yyvsp[(1) - (4)].TypeVal)->get()); - if (STy == 0) - GEN_ERROR("Cannot make struct constant with type: '" + - (*(yyvsp[(1) - (4)].TypeVal))->getDescription() + "'!"); + const ArrayType *ATy = dyn_cast(yyvsp[-2].TypeVal->get()); + if (ATy == 0) + GEN_ERROR("Cannot make array constant with type: '" + + (*yyvsp[-2].TypeVal)->getDescription() + "'!"); - if ((yyvsp[(3) - (4)].ConstVector)->size() != STy->getNumContainedTypes()) - GEN_ERROR("Illegal number of initializers for structure type!"); - - // Check to ensure that constants are compatible with the type initializer! - for (unsigned i = 0, e = (yyvsp[(3) - (4)].ConstVector)->size(); i != e; ++i) - if ((*(yyvsp[(3) - (4)].ConstVector))[i]->getType() != STy->getElementType(i)) - GEN_ERROR("Expected type '" + - STy->getElementType(i)->getDescription() + - "' for element #" + utostr(i) + - " of structure initializer!"); - - (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[(3) - (4)].ConstVector)); - delete (yyvsp[(1) - (4)].TypeVal); delete (yyvsp[(3) - (4)].ConstVector); + int NumElements = ATy->getNumElements(); + const Type *ETy = ATy->getElementType(); + char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true); + if (NumElements != -1 && NumElements != (EndStr-yyvsp[0].StrVal)) + GEN_ERROR("Can't build string constant of size " + + itostr((int)(EndStr-yyvsp[0].StrVal)) + + " when array has size " + itostr(NumElements) + "!"); + std::vector Vals; + if (ETy == Type::SByteTy) { + for (signed char *C = (signed char *)yyvsp[0].StrVal; C != (signed char *)EndStr; ++C) + Vals.push_back(ConstantInt::get(ETy, *C)); + } else if (ETy == Type::UByteTy) { + for (unsigned char *C = (unsigned char *)yyvsp[0].StrVal; + C != (unsigned char*)EndStr; ++C) + Vals.push_back(ConstantInt::get(ETy, *C)); + } else { + free(yyvsp[0].StrVal); + GEN_ERROR("Cannot build string arrays of non byte sized elements!"); + } + free(yyvsp[0].StrVal); + yyval.ConstVal = ConstantArray::get(ATy, Vals); + delete yyvsp[-2].TypeVal; CHECK_FOR_ERROR ;} break; case 145: -#line 1371 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const StructType *STy = dyn_cast((yyvsp[(1) - (3)].TypeVal)->get()); - if (STy == 0) - GEN_ERROR("Cannot make struct constant with type: '" + - (*(yyvsp[(1) - (3)].TypeVal))->getDescription() + "'!"); +#line 1338 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Nonempty unsized arr + const PackedType *PTy = dyn_cast(yyvsp[-3].TypeVal->get()); + if (PTy == 0) + GEN_ERROR("Cannot make packed constant with type: '" + + (*yyvsp[-3].TypeVal)->getDescription() + "'!"); + const Type *ETy = PTy->getElementType(); + int NumElements = PTy->getNumElements(); - if (STy->getNumContainedTypes() != 0) - GEN_ERROR("Illegal number of initializers for structure type!"); + // Verify that we have the correct size... + if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size()) + GEN_ERROR("Type mismatch: constant sized packed initialized with " + + utostr(yyvsp[-1].ConstVector->size()) + " arguments, but has size of " + + itostr(NumElements) + "!"); - (yyval.ConstVal) = ConstantStruct::get(STy, std::vector()); - delete (yyvsp[(1) - (3)].TypeVal); + // Verify all elements are correct type! + for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) { + if (ETy != (*yyvsp[-1].ConstVector)[i]->getType()) + GEN_ERROR("Element #" + utostr(i) + " is not of type '" + + ETy->getDescription() +"' as required!\nIt is of type '"+ + (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'."); + } + + yyval.ConstVal = ConstantPacked::get(PTy, *yyvsp[-1].ConstVector); + delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; CHECK_FOR_ERROR ;} break; case 146: -#line 1384 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1364 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - const PointerType *PTy = dyn_cast((yyvsp[(1) - (2)].TypeVal)->get()); - if (PTy == 0) - GEN_ERROR("Cannot make null pointer constant with type: '" + - (*(yyvsp[(1) - (2)].TypeVal))->getDescription() + "'!"); + const StructType *STy = dyn_cast(yyvsp[-3].TypeVal->get()); + if (STy == 0) + GEN_ERROR("Cannot make struct constant with type: '" + + (*yyvsp[-3].TypeVal)->getDescription() + "'!"); - (yyval.ConstVal) = ConstantPointerNull::get(PTy); - delete (yyvsp[(1) - (2)].TypeVal); + if (yyvsp[-1].ConstVector->size() != STy->getNumContainedTypes()) + GEN_ERROR("Illegal number of initializers for structure type!"); + + // Check to ensure that constants are compatible with the type initializer! + for (unsigned i = 0, e = yyvsp[-1].ConstVector->size(); i != e; ++i) + if ((*yyvsp[-1].ConstVector)[i]->getType() != STy->getElementType(i)) + GEN_ERROR("Expected type '" + + STy->getElementType(i)->getDescription() + + "' for element #" + utostr(i) + + " of structure initializer!"); + + yyval.ConstVal = ConstantStruct::get(STy, *yyvsp[-1].ConstVector); + delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector; CHECK_FOR_ERROR ;} break; case 147: -#line 1394 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1385 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ConstVal) = UndefValue::get((yyvsp[(1) - (2)].TypeVal)->get()); - delete (yyvsp[(1) - (2)].TypeVal); + const StructType *STy = dyn_cast(yyvsp[-2].TypeVal->get()); + if (STy == 0) + GEN_ERROR("Cannot make struct constant with type: '" + + (*yyvsp[-2].TypeVal)->getDescription() + "'!"); + + if (STy->getNumContainedTypes() != 0) + GEN_ERROR("Illegal number of initializers for structure type!"); + + yyval.ConstVal = ConstantStruct::get(STy, std::vector()); + delete yyvsp[-2].TypeVal; CHECK_FOR_ERROR ;} break; case 148: -#line 1399 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1398 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - const PointerType *Ty = dyn_cast((yyvsp[(1) - (2)].TypeVal)->get()); + const PointerType *PTy = dyn_cast(yyvsp[-1].TypeVal->get()); + if (PTy == 0) + GEN_ERROR("Cannot make null pointer constant with type: '" + + (*yyvsp[-1].TypeVal)->getDescription() + "'!"); + + yyval.ConstVal = ConstantPointerNull::get(PTy); + delete yyvsp[-1].TypeVal; + CHECK_FOR_ERROR + ;} + break; + + case 149: +#line 1408 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get()); + delete yyvsp[-1].TypeVal; + CHECK_FOR_ERROR + ;} + break; + + case 150: +#line 1413 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + const PointerType *Ty = dyn_cast(yyvsp[-1].TypeVal->get()); if (Ty == 0) GEN_ERROR("Global const reference must be a pointer type!"); @@ -3919,7 +3606,7 @@ yyreduce: Function *SavedCurFn = CurFun.CurrentFunction; CurFun.CurrentFunction = 0; - Value *V = getValNonImprovising(Ty, (yyvsp[(2) - (2)].ValIDVal)); + Value *V = getValNonImprovising(Ty, yyvsp[0].ValIDVal); CHECK_FOR_ERROR CurFun.CurrentFunction = SavedCurFn; @@ -3934,14 +3621,14 @@ yyreduce: // First check to see if the forward references value is already created! PerModuleInfo::GlobalRefsType::iterator I = - CurModule.GlobalRefs.find(std::make_pair(PT, (yyvsp[(2) - (2)].ValIDVal))); + CurModule.GlobalRefs.find(std::make_pair(PT, yyvsp[0].ValIDVal)); if (I != CurModule.GlobalRefs.end()) { V = I->second; // Placeholder already exists, use it... - (yyvsp[(2) - (2)].ValIDVal).destroy(); + yyvsp[0].ValIDVal.destroy(); } else { std::string Name; - if ((yyvsp[(2) - (2)].ValIDVal).Type == ValID::NameVal) Name = (yyvsp[(2) - (2)].ValIDVal).Name; + if (yyvsp[0].ValIDVal.Type == ValID::NameVal) Name = yyvsp[0].ValIDVal.Name; // Create the forward referenced global. GlobalValue *GV; @@ -3956,308 +3643,308 @@ yyreduce: } // Keep track of the fact that we have a forward ref to recycle it - CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, (yyvsp[(2) - (2)].ValIDVal)), GV)); + CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, yyvsp[0].ValIDVal), GV)); V = GV; } } - (yyval.ConstVal) = cast(V); - delete (yyvsp[(1) - (2)].TypeVal); // Free the type handle - CHECK_FOR_ERROR - ;} - break; - - case 149: -#line 1460 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(1) - (2)].TypeVal)->get() != (yyvsp[(2) - (2)].ConstVal)->getType()) - GEN_ERROR("Mismatched types for constant expression!"); - (yyval.ConstVal) = (yyvsp[(2) - (2)].ConstVal); - delete (yyvsp[(1) - (2)].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 150: -#line 1467 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const Type *Ty = (yyvsp[(1) - (2)].TypeVal)->get(); - if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) - GEN_ERROR("Cannot create a null initialized value of this type!"); - (yyval.ConstVal) = Constant::getNullValue(Ty); - delete (yyvsp[(1) - (2)].TypeVal); + yyval.ConstVal = cast(V); + delete yyvsp[-1].TypeVal; // Free the type handle CHECK_FOR_ERROR ;} break; case 151: -#line 1475 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // integral constants - if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val))) - GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)); +#line 1474 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType()) + GEN_ERROR("Mismatched types for constant expression!"); + yyval.ConstVal = yyvsp[0].ConstVal; + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 152: -#line 1481 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // integral constants - if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val))) - GEN_ERROR("Constant value doesn't fit in type!"); - (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)); +#line 1481 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + const Type *Ty = yyvsp[-1].TypeVal->get(); + if (isa(Ty) || Ty == Type::LabelTy || isa(Ty)) + GEN_ERROR("Cannot create a null initialized value of this type!"); + yyval.ConstVal = Constant::getNullValue(Ty); + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 153: -#line 1487 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Boolean constants - (yyval.ConstVal) = ConstantBool::getTrue(); +#line 1489 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // integral constants + if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val)) + GEN_ERROR("Constant value doesn't fit in type!"); + yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val); CHECK_FOR_ERROR ;} break; case 154: -#line 1491 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Boolean constants - (yyval.ConstVal) = ConstantBool::getFalse(); +#line 1495 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // integral constants + if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val)) + GEN_ERROR("Constant value doesn't fit in type!"); + yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val); CHECK_FOR_ERROR ;} break; case 155: -#line 1495 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Float & Double constants - if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].FPVal))) - GEN_ERROR("Floating point constant invalid for type!!"); - (yyval.ConstVal) = ConstantFP::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].FPVal)); +#line 1501 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Boolean constants + yyval.ConstVal = ConstantBool::getTrue(); CHECK_FOR_ERROR ;} break; case 156: -#line 1503 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1505 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Boolean constants + yyval.ConstVal = ConstantBool::getFalse(); + CHECK_FOR_ERROR + ;} + break; + + case 157: +#line 1509 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Float & Double constants + if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal)) + GEN_ERROR("Floating point constant invalid for type!!"); + yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal); + CHECK_FOR_ERROR + ;} + break; + + case 158: +#line 1517 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - Constant *Val = (yyvsp[(3) - (6)].ConstVal); - const Type *Ty = (yyvsp[(5) - (6)].TypeVal)->get(); + Constant *Val = yyvsp[-3].ConstVal; + const Type *Ty = yyvsp[-1].TypeVal->get(); if (!Val->getType()->isFirstClassType()) GEN_ERROR("cast constant expression from a non-primitive type: '" + Val->getType()->getDescription() + "'!"); if (!Ty->isFirstClassType()) GEN_ERROR("cast constant expression to a non-primitive type: '" + Ty->getDescription() + "'!"); - (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[(1) - (6)].CastOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].TypeVal)->get()); - delete (yyvsp[(5) - (6)].TypeVal); - ;} - break; - - case 157: -#line 1515 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!isa((yyvsp[(3) - (5)].ConstVal)->getType())) - GEN_ERROR("GetElementPtr requires a pointer operand!"); - - const Type *IdxTy = - GetElementPtrInst::getIndexedType((yyvsp[(3) - (5)].ConstVal)->getType(), *(yyvsp[(4) - (5)].ValueList), true); - if (!IdxTy) - GEN_ERROR("Index list invalid for constant getelementptr!"); - - std::vector IdxVec; - for (unsigned i = 0, e = (yyvsp[(4) - (5)].ValueList)->size(); i != e; ++i) - if (Constant *C = dyn_cast((*(yyvsp[(4) - (5)].ValueList))[i])) - IdxVec.push_back(C); - else - GEN_ERROR("Indices to constant getelementptr must be constants!"); - - delete (yyvsp[(4) - (5)].ValueList); - - (yyval.ConstVal) = ConstantExpr::getGetElementPtr((yyvsp[(3) - (5)].ConstVal), IdxVec); - CHECK_FOR_ERROR - ;} - break; - - case 158: -#line 1536 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::BoolTy) - GEN_ERROR("Select condition must be of boolean type!"); - if ((yyvsp[(5) - (8)].ConstVal)->getType() != (yyvsp[(7) - (8)].ConstVal)->getType()) - GEN_ERROR("Select operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getSelect((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); - CHECK_FOR_ERROR + yyval.ConstVal = ConstantExpr::getCast(yyvsp[-5].CastOpVal, yyvsp[-3].ConstVal, yyvsp[-1].TypeVal->get()); + delete yyvsp[-1].TypeVal; ;} break; case 159: -#line 1544 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1529 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) - GEN_ERROR("Binary operator types must match!"); - CHECK_FOR_ERROR; - (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); + if (!isa(yyvsp[-2].ConstVal->getType())) + GEN_ERROR("GetElementPtr requires a pointer operand!"); + + const Type *IdxTy = + GetElementPtrInst::getIndexedType(yyvsp[-2].ConstVal->getType(), *yyvsp[-1].ValueList, true); + if (!IdxTy) + GEN_ERROR("Index list invalid for constant getelementptr!"); + + std::vector IdxVec; + for (unsigned i = 0, e = yyvsp[-1].ValueList->size(); i != e; ++i) + if (Constant *C = dyn_cast((*yyvsp[-1].ValueList)[i])) + IdxVec.push_back(C); + else + GEN_ERROR("Indices to constant getelementptr must be constants!"); + + delete yyvsp[-1].ValueList; + + yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, IdxVec); + CHECK_FOR_ERROR ;} break; case 160: -#line 1550 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1550 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) - GEN_ERROR("Logical operator types must match!"); - if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isIntegral()) { - if (!isa((yyvsp[(3) - (6)].ConstVal)->getType()) || - !cast((yyvsp[(3) - (6)].ConstVal)->getType())->getElementType()->isIntegral()) - GEN_ERROR("Logical operator requires integral operands!"); - } - (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); + if (yyvsp[-5].ConstVal->getType() != Type::BoolTy) + GEN_ERROR("Select condition must be of boolean type!"); + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("Select operand types must match!"); + yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); CHECK_FOR_ERROR ;} break; case 161: -#line 1561 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1558 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType()) - GEN_ERROR("setcc operand types must match!"); - (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].BinaryOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); - CHECK_FOR_ERROR + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("Binary operator types must match!"); + CHECK_FOR_ERROR; + yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ;} break; case 162: -#line 1567 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1564 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType()) - GEN_ERROR("icmp operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getICmp((yyvsp[(2) - (7)].IPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) - (7)].ConstVal)); + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("Logical operator types must match!"); + if (!yyvsp[-3].ConstVal->getType()->isIntegral()) { + if (!isa(yyvsp[-3].ConstVal->getType()) || + !cast(yyvsp[-3].ConstVal->getType())->getElementType()->isIntegral()) + GEN_ERROR("Logical operator requires integral operands!"); + } + yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); + CHECK_FOR_ERROR ;} break; case 163: -#line 1572 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1575 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType()) - GEN_ERROR("fcmp operand types must match!"); - (yyval.ConstVal) = ConstantExpr::getFCmp((yyvsp[(2) - (7)].FPredicate), (yyvsp[(4) - (7)].ConstVal), (yyvsp[(6) - (7)].ConstVal)); + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("setcc operand types must match!"); + yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); + CHECK_FOR_ERROR ;} break; case 164: -#line 1577 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1581 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if ((yyvsp[(5) - (6)].ConstVal)->getType() != Type::UByteTy) - GEN_ERROR("Shift count for shift constant must be unsigned byte!"); - if (!(yyvsp[(3) - (6)].ConstVal)->getType()->isInteger()) - GEN_ERROR("Shift constant expression requires integer operand!"); - CHECK_FOR_ERROR; - (yyval.ConstVal) = ConstantExpr::get((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); - CHECK_FOR_ERROR + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("icmp operand types must match!"); + yyval.ConstVal = ConstantExpr::getICmp(yyvsp[-5].IPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ;} break; case 165: -#line 1586 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1586 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal))) - GEN_ERROR("Invalid extractelement operands!"); - (yyval.ConstVal) = ConstantExpr::getExtractElement((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)); - CHECK_FOR_ERROR + if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType()) + GEN_ERROR("fcmp operand types must match!"); + yyval.ConstVal = ConstantExpr::getFCmp(yyvsp[-5].FPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); ;} break; case 166: -#line 1592 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1591 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal))) - GEN_ERROR("Invalid insertelement operands!"); - (yyval.ConstVal) = ConstantExpr::getInsertElement((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); + if (yyvsp[-1].ConstVal->getType() != Type::UByteTy) + GEN_ERROR("Shift count for shift constant must be unsigned byte!"); + if (!yyvsp[-3].ConstVal->getType()->isInteger()) + GEN_ERROR("Shift constant expression requires integer operand!"); + CHECK_FOR_ERROR; + yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); CHECK_FOR_ERROR ;} break; case 167: -#line 1598 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1600 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal))) - GEN_ERROR("Invalid shufflevector operands!"); - (yyval.ConstVal) = ConstantExpr::getShuffleVector((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)); + if (!ExtractElementInst::isValidOperands(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) + GEN_ERROR("Invalid extractelement operands!"); + yyval.ConstVal = ConstantExpr::getExtractElement(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); CHECK_FOR_ERROR ;} break; case 168: -#line 1607 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1606 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal)); + if (!InsertElementInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) + GEN_ERROR("Invalid insertelement operands!"); + yyval.ConstVal = ConstantExpr::getInsertElement(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); CHECK_FOR_ERROR ;} break; case 169: -#line 1611 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1612 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ConstVector) = new std::vector(); - (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal)); + if (!ShuffleVectorInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal)) + GEN_ERROR("Invalid shufflevector operands!"); + yyval.ConstVal = ConstantExpr::getShuffleVector(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal); CHECK_FOR_ERROR ;} break; case 170: -#line 1619 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.BoolVal) = false; ;} +#line 1621 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal); + CHECK_FOR_ERROR + ;} break; case 171: -#line 1619 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.BoolVal) = true; ;} +#line 1625 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ConstVector = new std::vector(); + yyval.ConstVector->push_back(yyvsp[0].ConstVal); + CHECK_FOR_ERROR + ;} break; case 172: -#line 1629 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1633 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.BoolVal = false; ;} + break; + + case 173: +#line 1633 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.BoolVal = true; ;} + break; + + case 174: +#line 1643 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = ParserResult = (yyvsp[(1) - (1)].ModuleVal); + yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal; CurModule.ModuleDone(); CHECK_FOR_ERROR; ;} break; - case 173: -#line 1637 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + case 175: +#line 1651 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); + yyval.ModuleVal = yyvsp[-1].ModuleVal; CurFun.FunctionDone(); CHECK_FOR_ERROR ;} break; - case 174: -#line 1642 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); - CHECK_FOR_ERROR - ;} - break; - - case 175: -#line 1646 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ModuleVal) = (yyvsp[(1) - (4)].ModuleVal); - CHECK_FOR_ERROR - ;} - break; - case 176: -#line 1650 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1656 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = (yyvsp[(1) - (2)].ModuleVal); + yyval.ModuleVal = yyvsp[-1].ModuleVal; CHECK_FOR_ERROR ;} break; case 177: -#line 1654 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1660 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ModuleVal) = CurModule.CurrentModule; + yyval.ModuleVal = yyvsp[-3].ModuleVal; + CHECK_FOR_ERROR + ;} + break; + + case 178: +#line 1664 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ModuleVal = yyvsp[-1].ModuleVal; + CHECK_FOR_ERROR + ;} + break; + + case 179: +#line 1668 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ModuleVal = CurModule.CurrentModule; // Emit an error if there are any unresolved types left. if (!CurModule.LateResolveTypes.empty()) { const ValID &DID = CurModule.LateResolveTypes.begin()->first; @@ -4271,8 +3958,8 @@ yyreduce: ;} break; - case 178: -#line 1669 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + case 180: +#line 1683 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Eagerly resolve types. This is not an optimization, this is a // requirement that is due to the fact that we could have this: @@ -4283,79 +3970,62 @@ yyreduce: // If types are not resolved eagerly, then the two types will not be // determined to be the same type! // - ResolveTypeTo((yyvsp[(2) - (4)].StrVal), *(yyvsp[(4) - (4)].TypeVal)); + ResolveTypeTo(yyvsp[-2].StrVal, *yyvsp[0].TypeVal); - if (!setTypeName(*(yyvsp[(4) - (4)].TypeVal), (yyvsp[(2) - (4)].StrVal)) && !(yyvsp[(2) - (4)].StrVal)) { + if (!setTypeName(*yyvsp[0].TypeVal, yyvsp[-2].StrVal) && !yyvsp[-2].StrVal) { CHECK_FOR_ERROR // If this is a named type that is not a redefinition, add it to the slot // table. - CurModule.Types.push_back(*(yyvsp[(4) - (4)].TypeVal)); + CurModule.Types.push_back(*yyvsp[0].TypeVal); } - delete (yyvsp[(4) - (4)].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 179: -#line 1691 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Function prototypes can be in const pool - CHECK_FOR_ERROR - ;} - break; - - case 180: -#line 1694 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Asm blocks can be in the const pool + delete yyvsp[0].TypeVal; CHECK_FOR_ERROR ;} break; case 181: -#line 1697 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(5) - (5)].ConstVal) == 0) - GEN_ERROR("Global value initializer is not a constant!"); - CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), (yyvsp[(3) - (5)].Linkage), (yyvsp[(4) - (5)].BoolVal), (yyvsp[(5) - (5)].ConstVal)->getType(), (yyvsp[(5) - (5)].ConstVal)); +#line 1705 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Function prototypes can be in const pool CHECK_FOR_ERROR ;} break; case 182: -#line 1702 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - CurGV = 0; +#line 1708 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Asm blocks can be in the const pool + CHECK_FOR_ERROR ;} break; case 183: -#line 1705 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1711 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::ExternalLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); + if (yyvsp[0].ConstVal == 0) + GEN_ERROR("Global value initializer is not a constant!"); + CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, yyvsp[-2].Linkage, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal); CHECK_FOR_ERROR - delete (yyvsp[(5) - (5)].TypeVal); ;} break; case 184: -#line 1709 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1716 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; - CHECK_FOR_ERROR ;} break; case 185: -#line 1713 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1719 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurGV = ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::DLLImportLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); + CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0); CHECK_FOR_ERROR - delete (yyvsp[(5) - (5)].TypeVal); + delete yyvsp[0].TypeVal; ;} break; case 186: -#line 1717 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1723 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4363,17 +4033,16 @@ yyreduce: break; case 187: -#line 1721 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1727 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurGV = - ParseGlobalVariable((yyvsp[(2) - (5)].StrVal), GlobalValue::ExternalWeakLinkage, (yyvsp[(4) - (5)].BoolVal), *(yyvsp[(5) - (5)].TypeVal), 0); + CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::DLLImportLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0); CHECK_FOR_ERROR - delete (yyvsp[(5) - (5)].TypeVal); + delete yyvsp[0].TypeVal; ;} break; case 188: -#line 1726 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1731 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { CurGV = 0; CHECK_FOR_ERROR @@ -4381,32 +4050,50 @@ yyreduce: break; case 189: -#line 1730 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { +#line 1735 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + CurGV = + ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalWeakLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0); CHECK_FOR_ERROR + delete yyvsp[0].TypeVal; ;} break; case 190: -#line 1733 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1740 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { + CurGV = 0; CHECK_FOR_ERROR ;} break; case 191: -#line 1736 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1744 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { + CHECK_FOR_ERROR ;} break; case 192: -#line 1740 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1747 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + CHECK_FOR_ERROR + ;} + break; + + case 193: +#line 1750 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + ;} + break; + + case 194: +#line 1754 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm(); - char *EndStr = UnEscapeLexed((yyvsp[(1) - (1)].StrVal), true); - std::string NewAsm((yyvsp[(1) - (1)].StrVal), EndStr); - free((yyvsp[(1) - (1)].StrVal)); + char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true); + std::string NewAsm(yyvsp[0].StrVal, EndStr); + free(yyvsp[0].StrVal); if (AsmSoFar.empty()) CurModule.CurrentModule->setModuleInlineAsm(NewAsm); @@ -4416,171 +4103,171 @@ yyreduce: ;} break; - case 193: -#line 1753 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Endianness) = Module::BigEndian; ;} - break; - - case 194: -#line 1754 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.Endianness) = Module::LittleEndian; ;} - break; - case 195: -#line 1756 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - CurModule.CurrentModule->setEndianness((yyvsp[(3) - (3)].Endianness)); - CHECK_FOR_ERROR - ;} +#line 1767 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Endianness = Module::BigEndian; ;} break; case 196: -#line 1760 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(3) - (3)].UInt64Val) == 32) - CurModule.CurrentModule->setPointerSize(Module::Pointer32); - else if ((yyvsp[(3) - (3)].UInt64Val) == 64) - CurModule.CurrentModule->setPointerSize(Module::Pointer64); - else - GEN_ERROR("Invalid pointer size: '" + utostr((yyvsp[(3) - (3)].UInt64Val)) + "'!"); - CHECK_FOR_ERROR - ;} +#line 1768 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.Endianness = Module::LittleEndian; ;} break; case 197: -#line 1769 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1770 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->setTargetTriple((yyvsp[(3) - (3)].StrVal)); - free((yyvsp[(3) - (3)].StrVal)); + CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness); + CHECK_FOR_ERROR ;} break; case 198: -#line 1773 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1774 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->setDataLayout((yyvsp[(3) - (3)].StrVal)); - free((yyvsp[(3) - (3)].StrVal)); + if (yyvsp[0].UInt64Val == 32) + CurModule.CurrentModule->setPointerSize(Module::Pointer32); + else if (yyvsp[0].UInt64Val == 64) + CurModule.CurrentModule->setPointerSize(Module::Pointer64); + else + GEN_ERROR("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!"); + CHECK_FOR_ERROR + ;} + break; + + case 199: +#line 1783 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal); + free(yyvsp[0].StrVal); ;} break; case 200: -#line 1780 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1787 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - CurModule.CurrentModule->addLibrary((yyvsp[(3) - (3)].StrVal)); - free((yyvsp[(3) - (3)].StrVal)); - CHECK_FOR_ERROR - ;} - break; - - case 201: -#line 1785 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - CurModule.CurrentModule->addLibrary((yyvsp[(1) - (1)].StrVal)); - free((yyvsp[(1) - (1)].StrVal)); - CHECK_FOR_ERROR - ;} + CurModule.CurrentModule->setDataLayout(yyvsp[0].StrVal); + free(yyvsp[0].StrVal); + ;} break; case 202: -#line 1790 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1794 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); + free(yyvsp[0].StrVal); + CHECK_FOR_ERROR + ;} + break; + + case 203: +#line 1799 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal); + free(yyvsp[0].StrVal); + CHECK_FOR_ERROR + ;} + break; + + case 204: +#line 1804 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { CHECK_FOR_ERROR ;} break; - case 206: -#line 1800 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.StrVal) = 0; ;} + case 208: +#line 1814 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.StrVal = 0; ;} break; - case 207: -#line 1802 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + case 209: +#line 1816 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (*(yyvsp[(1) - (2)].TypeVal) == Type::VoidTy) + if (*yyvsp[-1].TypeVal == Type::VoidTy) GEN_ERROR("void typed arguments are invalid!"); - (yyval.ArgVal) = new std::pair((yyvsp[(1) - (2)].TypeVal), (yyvsp[(2) - (2)].StrVal)); + yyval.ArgVal = new std::pair(yyvsp[-1].TypeVal, yyvsp[0].StrVal); CHECK_FOR_ERROR ;} break; - case 208: -#line 1809 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList); - (yyvsp[(1) - (3)].ArgList)->push_back(*(yyvsp[(3) - (3)].ArgVal)); - delete (yyvsp[(3) - (3)].ArgVal); - CHECK_FOR_ERROR - ;} - break; - - case 209: -#line 1815 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ArgList) = new std::vector >(); - (yyval.ArgList)->push_back(*(yyvsp[(1) - (1)].ArgVal)); - delete (yyvsp[(1) - (1)].ArgVal); - CHECK_FOR_ERROR - ;} - break; - case 210: -#line 1822 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1823 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList); + yyval.ArgList = yyvsp[-2].ArgList; + yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal); + delete yyvsp[0].ArgVal; CHECK_FOR_ERROR ;} break; case 211: -#line 1826 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1829 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList); - (yyval.ArgList)->push_back(std::pair(new PATypeHolder(Type::VoidTy), 0)); + yyval.ArgList = new std::vector >(); + yyval.ArgList->push_back(*yyvsp[0].ArgVal); + delete yyvsp[0].ArgVal; CHECK_FOR_ERROR ;} break; case 212: -#line 1832 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1836 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = new std::vector >(); - (yyval.ArgList)->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); + yyval.ArgList = yyvsp[0].ArgList; CHECK_FOR_ERROR ;} break; case 213: -#line 1837 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1840 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ArgList) = 0; + yyval.ArgList = yyvsp[-2].ArgList; + yyval.ArgList->push_back(std::pair(new PATypeHolder(Type::VoidTy), 0)); CHECK_FOR_ERROR ;} break; case 214: -#line 1843 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1846 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - UnEscapeLexed((yyvsp[(3) - (8)].StrVal)); - std::string FunctionName((yyvsp[(3) - (8)].StrVal)); - free((yyvsp[(3) - (8)].StrVal)); // Free strdup'd memory! + yyval.ArgList = new std::vector >(); + yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0)); + CHECK_FOR_ERROR + ;} + break; + + case 215: +#line 1851 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ArgList = 0; + CHECK_FOR_ERROR + ;} + break; + + case 216: +#line 1857 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + UnEscapeLexed(yyvsp[-5].StrVal); + std::string FunctionName(yyvsp[-5].StrVal); + free(yyvsp[-5].StrVal); // Free strdup'd memory! - if (!(*(yyvsp[(2) - (8)].TypeVal))->isFirstClassType() && *(yyvsp[(2) - (8)].TypeVal) != Type::VoidTy) + if (!(*yyvsp[-6].TypeVal)->isFirstClassType() && *yyvsp[-6].TypeVal != Type::VoidTy) GEN_ERROR("LLVM functions cannot return aggregate types!"); std::vector ParamTypeList; - if ((yyvsp[(5) - (8)].ArgList)) { // If there are arguments... - for (std::vector >::iterator I = (yyvsp[(5) - (8)].ArgList)->begin(); - I != (yyvsp[(5) - (8)].ArgList)->end(); ++I) + if (yyvsp[-3].ArgList) { // If there are arguments... + for (std::vector >::iterator I = yyvsp[-3].ArgList->begin(); + I != yyvsp[-3].ArgList->end(); ++I) ParamTypeList.push_back(I->first->get()); } bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy; if (isVarArg) ParamTypeList.pop_back(); - const FunctionType *FT = FunctionType::get(*(yyvsp[(2) - (8)].TypeVal), ParamTypeList, isVarArg); + const FunctionType *FT = FunctionType::get(*yyvsp[-6].TypeVal, ParamTypeList, isVarArg); const PointerType *PFT = PointerType::get(FT); - delete (yyvsp[(2) - (8)].TypeVal); + delete yyvsp[-6].TypeVal; ValID ID; if (!FunctionName.empty()) { @@ -4624,24 +4311,24 @@ yyreduce: // another function. Fn->setLinkage(CurFun.Linkage); } - Fn->setCallingConv((yyvsp[(1) - (8)].UIntVal)); - Fn->setAlignment((yyvsp[(8) - (8)].UIntVal)); - if ((yyvsp[(7) - (8)].StrVal)) { - Fn->setSection((yyvsp[(7) - (8)].StrVal)); - free((yyvsp[(7) - (8)].StrVal)); + Fn->setCallingConv(yyvsp[-7].UIntVal); + Fn->setAlignment(yyvsp[0].UIntVal); + if (yyvsp[-1].StrVal) { + Fn->setSection(yyvsp[-1].StrVal); + free(yyvsp[-1].StrVal); } // Add all of the arguments we parsed to the function... - if ((yyvsp[(5) - (8)].ArgList)) { // Is null if empty... + if (yyvsp[-3].ArgList) { // Is null if empty... if (isVarArg) { // Nuke the last entry - assert((yyvsp[(5) - (8)].ArgList)->back().first->get() == Type::VoidTy && (yyvsp[(5) - (8)].ArgList)->back().second == 0&& + assert(yyvsp[-3].ArgList->back().first->get() == Type::VoidTy && yyvsp[-3].ArgList->back().second == 0&& "Not a varargs marker!"); - delete (yyvsp[(5) - (8)].ArgList)->back().first; - (yyvsp[(5) - (8)].ArgList)->pop_back(); // Delete the last entry + delete yyvsp[-3].ArgList->back().first; + yyvsp[-3].ArgList->pop_back(); // Delete the last entry } Function::arg_iterator ArgIt = Fn->arg_begin(); - for (std::vector >::iterator I = (yyvsp[(5) - (8)].ArgList)->begin(); - I != (yyvsp[(5) - (8)].ArgList)->end(); ++I, ++ArgIt) { + for (std::vector >::iterator I = yyvsp[-3].ArgList->begin(); + I != yyvsp[-3].ArgList->end(); ++I, ++ArgIt) { delete I->first; // Delete the typeholder... setValueName(ArgIt, I->second); // Insert arg into symtab... @@ -4649,140 +4336,140 @@ yyreduce: InsertValue(ArgIt); } - delete (yyvsp[(5) - (8)].ArgList); // We're now done with the argument list + delete yyvsp[-3].ArgList; // We're now done with the argument list } CHECK_FOR_ERROR ;} break; - case 217: -#line 1939 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" + case 219: +#line 1953 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.FunctionVal) = CurFun.CurrentFunction; + yyval.FunctionVal = CurFun.CurrentFunction; // Make sure that we keep track of the linkage type even if there was a // previous "declare". - (yyval.FunctionVal)->setLinkage((yyvsp[(1) - (3)].Linkage)); -;} - break; - - case 220: -#line 1949 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); - CHECK_FOR_ERROR + yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage); ;} break; case 222: -#line 1955 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} - break; - - case 223: -#line 1956 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} +#line 1963 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.FunctionVal = yyvsp[-1].FunctionVal; + CHECK_FOR_ERROR +;} break; case 224: -#line 1958 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { CurFun.isDeclare = true; ;} +#line 1969 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { CurFun.Linkage = GlobalValue::DLLImportLinkage; ;} break; case 225: -#line 1958 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1970 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { CurFun.Linkage = GlobalValue::ExternalWeakLinkage; ;} + break; + + case 226: +#line 1972 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { CurFun.isDeclare = true; ;} + break; + + case 227: +#line 1972 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.FunctionVal) = CurFun.CurrentFunction; + yyval.FunctionVal = CurFun.CurrentFunction; CurFun.FunctionDone(); CHECK_FOR_ERROR ;} break; - case 226: -#line 1968 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = false; - CHECK_FOR_ERROR - ;} - break; - - case 227: -#line 1972 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = true; - CHECK_FOR_ERROR - ;} - break; - case 228: -#line 1977 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // A reference to a direct constant - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val)); +#line 1982 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.BoolVal = false; CHECK_FOR_ERROR ;} break; case 229: -#line 1981 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1986 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val)); + yyval.BoolVal = true; CHECK_FOR_ERROR ;} break; case 230: -#line 1985 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Perhaps it's an FP constant? - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal)); +#line 1991 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // A reference to a direct constant + yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val); CHECK_FOR_ERROR ;} break; case 231: -#line 1989 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 1995 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::create(ConstantBool::getTrue()); + yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val); CHECK_FOR_ERROR ;} break; case 232: -#line 1993 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValIDVal) = ValID::create(ConstantBool::getFalse()); +#line 1999 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Perhaps it's an FP constant? + yyval.ValIDVal = ValID::create(yyvsp[0].FPVal); CHECK_FOR_ERROR ;} break; case 233: -#line 1997 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2003 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::createNull(); + yyval.ValIDVal = ValID::create(ConstantBool::getTrue()); CHECK_FOR_ERROR ;} break; case 234: -#line 2001 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2007 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.ValIDVal) = ValID::createUndef(); + yyval.ValIDVal = ValID::create(ConstantBool::getFalse()); CHECK_FOR_ERROR ;} break; case 235: -#line 2005 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // A vector zero constant. - (yyval.ValIDVal) = ValID::createZeroInit(); +#line 2011 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValIDVal = ValID::createNull(); CHECK_FOR_ERROR ;} break; case 236: -#line 2009 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2015 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValIDVal = ValID::createUndef(); + CHECK_FOR_ERROR + ;} + break; + + case 237: +#line 2019 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // A vector zero constant. + yyval.ValIDVal = ValID::createZeroInit(); + CHECK_FOR_ERROR + ;} + break; + + case 238: +#line 2023 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Nonempty unsized packed vector - const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType(); - int NumElements = (yyvsp[(2) - (3)].ConstVector)->size(); + const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType(); + int NumElements = yyvsp[-1].ConstVector->size(); PackedType* pt = PackedType::get(ETy, NumElements); PATypeHolder* PTy = new PATypeHolder( @@ -4794,128 +4481,112 @@ yyreduce: ); // Verify all elements are correct type! - for (unsigned i = 0; i < (yyvsp[(2) - (3)].ConstVector)->size(); i++) { - if (ETy != (*(yyvsp[(2) - (3)].ConstVector))[i]->getType()) + for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) { + if (ETy != (*yyvsp[-1].ConstVector)[i]->getType()) GEN_ERROR("Element #" + utostr(i) + " is not of type '" + ETy->getDescription() +"' as required!\nIt is of type '" + - (*(yyvsp[(2) - (3)].ConstVector))[i]->getType()->getDescription() + "'."); + (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'."); } - (yyval.ValIDVal) = ValID::create(ConstantPacked::get(pt, *(yyvsp[(2) - (3)].ConstVector))); - delete PTy; delete (yyvsp[(2) - (3)].ConstVector); - CHECK_FOR_ERROR - ;} - break; - - case 237: -#line 2034 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal)); - CHECK_FOR_ERROR - ;} - break; - - case 238: -#line 2038 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - char *End = UnEscapeLexed((yyvsp[(3) - (5)].StrVal), true); - std::string AsmStr = std::string((yyvsp[(3) - (5)].StrVal), End); - End = UnEscapeLexed((yyvsp[(5) - (5)].StrVal), true); - std::string Constraints = std::string((yyvsp[(5) - (5)].StrVal), End); - (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[(2) - (5)].BoolVal)); - free((yyvsp[(3) - (5)].StrVal)); - free((yyvsp[(5) - (5)].StrVal)); + yyval.ValIDVal = ValID::create(ConstantPacked::get(pt, *yyvsp[-1].ConstVector)); + delete PTy; delete yyvsp[-1].ConstVector; CHECK_FOR_ERROR ;} break; case 239: -#line 2052 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Is it an integer reference...? - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SIntVal)); +#line 2048 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal); CHECK_FOR_ERROR ;} break; case 240: -#line 2056 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2052 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + char *End = UnEscapeLexed(yyvsp[-2].StrVal, true); + std::string AsmStr = std::string(yyvsp[-2].StrVal, End); + End = UnEscapeLexed(yyvsp[0].StrVal, true); + std::string Constraints = std::string(yyvsp[0].StrVal, End); + yyval.ValIDVal = ValID::createInlineAsm(AsmStr, Constraints, yyvsp[-3].BoolVal); + free(yyvsp[-2].StrVal); + free(yyvsp[0].StrVal); + CHECK_FOR_ERROR + ;} + break; + + case 241: +#line 2066 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Is it an integer reference...? + yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal); + CHECK_FOR_ERROR + ;} + break; + + case 242: +#line 2070 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { // Is it a named reference...? - (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].StrVal)); - CHECK_FOR_ERROR - ;} - break; - - case 243: -#line 2068 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValueVal) = getVal(*(yyvsp[(1) - (2)].TypeVal), (yyvsp[(2) - (2)].ValIDVal)); delete (yyvsp[(1) - (2)].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 244: -#line 2073 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); + yyval.ValIDVal = ValID::create(yyvsp[0].StrVal); CHECK_FOR_ERROR ;} break; case 245: -#line 2077 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Do not allow functions with 0 basic blocks - (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal); +#line 2082 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 246: -#line 2086 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2087 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) - (3)].StrVal)); - CHECK_FOR_ERROR - InsertValue((yyvsp[(3) - (3)].TermInstVal)); - - (yyvsp[(1) - (3)].BasicBlockVal)->getInstList().push_back((yyvsp[(3) - (3)].TermInstVal)); - InsertValue((yyvsp[(1) - (3)].BasicBlockVal)); - (yyval.BasicBlockVal) = (yyvsp[(1) - (3)].BasicBlockVal); + yyval.FunctionVal = yyvsp[-1].FunctionVal; CHECK_FOR_ERROR ;} break; case 247: -#line 2097 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (CastInst *CI1 = dyn_cast((yyvsp[(2) - (2)].InstVal))) - if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) - if (CI2->getParent() == 0) - (yyvsp[(1) - (2)].BasicBlockVal)->getInstList().push_back(CI2); - (yyvsp[(1) - (2)].BasicBlockVal)->getInstList().push_back((yyvsp[(2) - (2)].InstVal)); - (yyval.BasicBlockVal) = (yyvsp[(1) - (2)].BasicBlockVal); +#line 2091 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Do not allow functions with 0 basic blocks + yyval.FunctionVal = yyvsp[-1].FunctionVal; CHECK_FOR_ERROR ;} break; case 248: -#line 2106 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2100 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.BasicBlockVal) = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); + setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal); CHECK_FOR_ERROR + InsertValue(yyvsp[0].TermInstVal); - // Make sure to move the basic block to the correct location in the - // function, instead of leaving it inserted wherever it was first - // referenced. - Function::BasicBlockListType &BBL = - CurFun.CurrentFunction->getBasicBlockList(); - BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal)); + yyvsp[-2].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal); + InsertValue(yyvsp[-2].BasicBlockVal); + yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal; CHECK_FOR_ERROR ;} break; case 249: -#line 2118 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2111 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.BasicBlockVal) = getBBVal(ValID::create((yyvsp[(1) - (1)].StrVal)), true); + if (CastInst *CI1 = dyn_cast(yyvsp[0].InstVal)) + if (CastInst *CI2 = dyn_cast(CI1->getOperand(0))) + if (CI2->getParent() == 0) + yyvsp[-1].BasicBlockVal->getInstList().push_back(CI2); + yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal); + yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal; + CHECK_FOR_ERROR + ;} + break; + + case 250: +#line 2120 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.BasicBlockVal = getBBVal(ValID::create((int)CurFun.NextBBNum++), true); CHECK_FOR_ERROR // Make sure to move the basic block to the correct location in the @@ -4923,483 +4594,113 @@ yyreduce: // referenced. Function::BasicBlockListType &BBL = CurFun.CurrentFunction->getBasicBlockList(); - BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal)); - CHECK_FOR_ERROR - ;} - break; - - case 250: -#line 2131 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Return with a result... - (yyval.TermInstVal) = new ReturnInst((yyvsp[(2) - (2)].ValueVal)); + BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal); CHECK_FOR_ERROR ;} break; case 251: -#line 2135 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Return with no result... - (yyval.TermInstVal) = new ReturnInst(); +#line 2132 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.BasicBlockVal = getBBVal(ValID::create(yyvsp[0].StrVal), true); + CHECK_FOR_ERROR + + // Make sure to move the basic block to the correct location in the + // function, instead of leaving it inserted wherever it was first + // referenced. + Function::BasicBlockListType &BBL = + CurFun.CurrentFunction->getBasicBlockList(); + BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal); CHECK_FOR_ERROR ;} break; case 252: -#line 2139 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Unconditional Branch... - BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal)); +#line 2145 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Return with a result... + yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal); CHECK_FOR_ERROR - (yyval.TermInstVal) = new BranchInst(tmpBB); ;} break; case 253: -#line 2144 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - BasicBlock* tmpBBA = getBBVal((yyvsp[(6) - (9)].ValIDVal)); +#line 2149 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Return with no result... + yyval.TermInstVal = new ReturnInst(); CHECK_FOR_ERROR - BasicBlock* tmpBBB = getBBVal((yyvsp[(9) - (9)].ValIDVal)); - CHECK_FOR_ERROR - Value* tmpVal = getVal(Type::BoolTy, (yyvsp[(3) - (9)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.TermInstVal) = new BranchInst(tmpBBA, tmpBBB, tmpVal); ;} break; case 254: -#line 2153 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) - (9)].ValIDVal)); +#line 2153 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Unconditional Branch... + BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal); CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (9)].ValIDVal)); - CHECK_FOR_ERROR - SwitchInst *S = new SwitchInst(tmpVal, tmpBB, (yyvsp[(8) - (9)].JumpTable)->size()); - (yyval.TermInstVal) = S; + yyval.TermInstVal = new BranchInst(tmpBB); + ;} + break; - std::vector >::iterator I = (yyvsp[(8) - (9)].JumpTable)->begin(), - E = (yyvsp[(8) - (9)].JumpTable)->end(); + case 255: +#line 2158 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + BasicBlock* tmpBBA = getBBVal(yyvsp[-3].ValIDVal); + CHECK_FOR_ERROR + BasicBlock* tmpBBB = getBBVal(yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + Value* tmpVal = getVal(Type::BoolTy, yyvsp[-6].ValIDVal); + CHECK_FOR_ERROR + yyval.TermInstVal = new BranchInst(tmpBBA, tmpBBB, tmpVal); + ;} + break; + + case 256: +#line 2167 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + Value* tmpVal = getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal); + CHECK_FOR_ERROR + BasicBlock* tmpBB = getBBVal(yyvsp[-3].ValIDVal); + CHECK_FOR_ERROR + SwitchInst *S = new SwitchInst(tmpVal, tmpBB, yyvsp[-1].JumpTable->size()); + yyval.TermInstVal = S; + + std::vector >::iterator I = yyvsp[-1].JumpTable->begin(), + E = yyvsp[-1].JumpTable->end(); for (; I != E; ++I) { if (ConstantInt *CI = dyn_cast(I->first)) S->addCase(CI, I->second); else GEN_ERROR("Switch case is constant, but not a simple integer!"); } - delete (yyvsp[(8) - (9)].JumpTable); - CHECK_FOR_ERROR - ;} - break; - - case 255: -#line 2172 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) - (8)].ValIDVal)); - CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (8)].ValIDVal)); - CHECK_FOR_ERROR - SwitchInst *S = new SwitchInst(tmpVal, tmpBB, 0); - (yyval.TermInstVal) = S; - CHECK_FOR_ERROR - ;} - break; - - case 256: -#line 2182 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const PointerType *PFTy; - const FunctionType *Ty; - - if (!(PFTy = dyn_cast((yyvsp[(3) - (13)].TypeVal)->get())) || - !(Ty = dyn_cast(PFTy->getElementType()))) { - // Pull out the types of all of the arguments... - std::vector ParamTypes; - if ((yyvsp[(6) - (13)].ValueList)) { - for (std::vector::iterator I = (yyvsp[(6) - (13)].ValueList)->begin(), E = (yyvsp[(6) - (13)].ValueList)->end(); - I != E; ++I) - ParamTypes.push_back((*I)->getType()); - } - - bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; - if (isVarArg) ParamTypes.pop_back(); - - Ty = FunctionType::get((yyvsp[(3) - (13)].TypeVal)->get(), ParamTypes, isVarArg); - PFTy = PointerType::get(Ty); - } - - Value *V = getVal(PFTy, (yyvsp[(4) - (13)].ValIDVal)); // Get the function we're calling... - CHECK_FOR_ERROR - BasicBlock *Normal = getBBVal((yyvsp[(10) - (13)].ValIDVal)); - CHECK_FOR_ERROR - BasicBlock *Except = getBBVal((yyvsp[(13) - (13)].ValIDVal)); - CHECK_FOR_ERROR - - // Create the call node... - if (!(yyvsp[(6) - (13)].ValueList)) { // Has no arguments? - (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, std::vector()); - } else { // Has arguments? - // Loop through FunctionType's arguments and ensure they are specified - // correctly! - // - FunctionType::param_iterator I = Ty->param_begin(); - FunctionType::param_iterator E = Ty->param_end(); - std::vector::iterator ArgI = (yyvsp[(6) - (13)].ValueList)->begin(), ArgE = (yyvsp[(6) - (13)].ValueList)->end(); - - for (; ArgI != ArgE && I != E; ++ArgI, ++I) - if ((*ArgI)->getType() != *I) - GEN_ERROR("Parameter " +(*ArgI)->getName()+ " is not of type '" + - (*I)->getDescription() + "'!"); - - if (I != E || (ArgI != ArgE && !Ty->isVarArg())) - GEN_ERROR("Invalid number of parameters detected!"); - - (yyval.TermInstVal) = new InvokeInst(V, Normal, Except, *(yyvsp[(6) - (13)].ValueList)); - } - cast((yyval.TermInstVal))->setCallingConv((yyvsp[(2) - (13)].UIntVal)); - - delete (yyvsp[(3) - (13)].TypeVal); - delete (yyvsp[(6) - (13)].ValueList); + delete yyvsp[-1].JumpTable; CHECK_FOR_ERROR ;} break; case 257: -#line 2237 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2186 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.TermInstVal) = new UnwindInst(); + Value* tmpVal = getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal); + CHECK_FOR_ERROR + BasicBlock* tmpBB = getBBVal(yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + SwitchInst *S = new SwitchInst(tmpVal, tmpBB, 0); + yyval.TermInstVal = S; CHECK_FOR_ERROR ;} break; case 258: -#line 2241 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2196 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.TermInstVal) = new UnreachableInst(); - CHECK_FOR_ERROR - ;} - break; + const PointerType *PFTy; + const FunctionType *Ty; - case 259: -#line 2248 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable); - Constant *V = cast(getValNonImprovising((yyvsp[(2) - (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal))); - CHECK_FOR_ERROR - if (V == 0) - GEN_ERROR("May only switch on a constant pool value!"); - - BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (6)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); - ;} - break; - - case 260: -#line 2259 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.JumpTable) = new std::vector >(); - Constant *V = cast(getValNonImprovising((yyvsp[(1) - (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal))); - CHECK_FOR_ERROR - - if (V == 0) - GEN_ERROR("May only switch on a constant pool value!"); - - BasicBlock* tmpBB = getBBVal((yyvsp[(5) - (5)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); - ;} - break; - - case 261: -#line 2272 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - // Is this definition named?? if so, assign the name... - setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) - (2)].StrVal)); - CHECK_FOR_ERROR - InsertValue((yyvsp[(2) - (2)].InstVal)); - (yyval.InstVal) = (yyvsp[(2) - (2)].InstVal); - CHECK_FOR_ERROR -;} - break; - - case 262: -#line 2281 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Used for PHI nodes - (yyval.PHIList) = new std::list >(); - Value* tmpVal = getVal(*(yyvsp[(1) - (6)].TypeVal), (yyvsp[(3) - (6)].ValIDVal)); - CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[(5) - (6)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.PHIList)->push_back(std::make_pair(tmpVal, tmpBB)); - delete (yyvsp[(1) - (6)].TypeVal); - ;} - break; - - case 263: -#line 2290 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList); - Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first->getType(), (yyvsp[(4) - (7)].ValIDVal)); - CHECK_FOR_ERROR - BasicBlock* tmpBB = getBBVal((yyvsp[(6) - (7)].ValIDVal)); - CHECK_FOR_ERROR - (yyvsp[(1) - (7)].PHIList)->push_back(std::make_pair(tmpVal, tmpBB)); - ;} - break; - - case 264: -#line 2300 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { // Used for call statements, and memory insts... - (yyval.ValueList) = new std::vector(); - (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal)); - ;} - break; - - case 265: -#line 2304 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList); - (yyvsp[(1) - (3)].ValueList)->push_back((yyvsp[(3) - (3)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 267: -#line 2311 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { (yyval.ValueList) = 0; ;} - break; - - case 268: -#line 2313 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = true; - CHECK_FOR_ERROR - ;} - break; - - case 269: -#line 2317 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = false; - CHECK_FOR_ERROR - ;} - break; - - case 270: -#line 2322 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!(*(yyvsp[(2) - (5)].TypeVal))->isInteger() && !(*(yyvsp[(2) - (5)].TypeVal))->isFloatingPoint() && - !isa((*(yyvsp[(2) - (5)].TypeVal)).get())) - GEN_ERROR( - "Arithmetic operator requires integer, FP, or packed operands!"); - if (isa((*(yyvsp[(2) - (5)].TypeVal)).get()) && - ((yyvsp[(1) - (5)].BinaryOpVal) == Instruction::URem || - (yyvsp[(1) - (5)].BinaryOpVal) == Instruction::SRem || - (yyvsp[(1) - (5)].BinaryOpVal) == Instruction::FRem)) - GEN_ERROR("U/S/FRem not supported on packed types!"); - Value* val1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); - CHECK_FOR_ERROR - Value* val2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.InstVal) = BinaryOperator::create((yyvsp[(1) - (5)].BinaryOpVal), val1, val2); - if ((yyval.InstVal) == 0) - GEN_ERROR("binary operator returned null!"); - delete (yyvsp[(2) - (5)].TypeVal); - ;} - break; - - case 271: -#line 2341 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!(*(yyvsp[(2) - (5)].TypeVal))->isIntegral()) { - if (!isa((yyvsp[(2) - (5)].TypeVal)->get()) || - !cast((yyvsp[(2) - (5)].TypeVal)->get())->getElementType()->isIntegral()) - GEN_ERROR("Logical operator requires integral operands!"); - } - Value* tmpVal1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); - CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.InstVal) = BinaryOperator::create((yyvsp[(1) - (5)].BinaryOpVal), tmpVal1, tmpVal2); - if ((yyval.InstVal) == 0) - GEN_ERROR("binary operator returned null!"); - delete (yyvsp[(2) - (5)].TypeVal); - ;} - break; - - case 272: -#line 2356 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if(isa((*(yyvsp[(2) - (5)].TypeVal)).get())) { - GEN_ERROR( - "PackedTypes currently not supported in setcc instructions!"); - } - Value* tmpVal1 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(3) - (5)].ValIDVal)); - CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[(2) - (5)].TypeVal), (yyvsp[(5) - (5)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.InstVal) = new SetCondInst((yyvsp[(1) - (5)].BinaryOpVal), tmpVal1, tmpVal2); - if ((yyval.InstVal) == 0) - GEN_ERROR("binary operator returned null!"); - delete (yyvsp[(2) - (5)].TypeVal); - ;} - break; - - case 273: -#line 2370 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (isa((*(yyvsp[(3) - (6)].TypeVal)).get())) - GEN_ERROR("Packed types not supported by icmp instruction"); - Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4) - (6)].ValIDVal)); - CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.InstVal) = CmpInst::create((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(2) - (6)].IPredicate), tmpVal1, tmpVal2); - if ((yyval.InstVal) == 0) - GEN_ERROR("icmp operator returned null!"); - ;} - break; - - case 274: -#line 2381 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (isa((*(yyvsp[(3) - (6)].TypeVal)).get())) - GEN_ERROR("Packed types not supported by fcmp instruction"); - Value* tmpVal1 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(4) - (6)].ValIDVal)); - CHECK_FOR_ERROR - Value* tmpVal2 = getVal(*(yyvsp[(3) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); - CHECK_FOR_ERROR - (yyval.InstVal) = CmpInst::create((yyvsp[(1) - (6)].OtherOpVal), (yyvsp[(2) - (6)].FPredicate), tmpVal1, tmpVal2); - if ((yyval.InstVal) == 0) - GEN_ERROR("fcmp operator returned null!"); - ;} - break; - - case 275: -#line 2392 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - cerr << "WARNING: Use of eliminated 'not' instruction:" - << " Replacing with 'xor'.\n"; - - Value *Ones = ConstantIntegral::getAllOnesValue((yyvsp[(2) - (2)].ValueVal)->getType()); - if (Ones == 0) - GEN_ERROR("Expected integral type for not instruction!"); - - (yyval.InstVal) = BinaryOperator::create(Instruction::Xor, (yyvsp[(2) - (2)].ValueVal), Ones); - if ((yyval.InstVal) == 0) - GEN_ERROR("Could not create a xor instruction!"); - CHECK_FOR_ERROR - ;} - break; - - case 276: -#line 2405 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(4) - (4)].ValueVal)->getType() != Type::UByteTy) - GEN_ERROR("Shift amount must be ubyte!"); - if (!(yyvsp[(2) - (4)].ValueVal)->getType()->isInteger()) - GEN_ERROR("Shift constant expression requires integer operand!"); - CHECK_FOR_ERROR; - (yyval.InstVal) = new ShiftInst((yyvsp[(1) - (4)].OtherOpVal), (yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 277: -#line 2414 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - Value* Val = (yyvsp[(2) - (4)].ValueVal); - const Type* Ty = (yyvsp[(4) - (4)].TypeVal)->get(); - if (!Val->getType()->isFirstClassType()) - GEN_ERROR("cast from a non-primitive type: '" + - Val->getType()->getDescription() + "'!"); - if (!Ty->isFirstClassType()) - GEN_ERROR("cast to a non-primitive type: '" + Ty->getDescription() +"'!"); - (yyval.InstVal) = CastInst::create((yyvsp[(1) - (4)].CastOpVal), (yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].TypeVal)->get()); - delete (yyvsp[(4) - (4)].TypeVal); - ;} - break; - - case 278: -#line 2425 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if ((yyvsp[(2) - (6)].ValueVal)->getType() != Type::BoolTy) - GEN_ERROR("select condition must be boolean!"); - if ((yyvsp[(4) - (6)].ValueVal)->getType() != (yyvsp[(6) - (6)].ValueVal)->getType()) - GEN_ERROR("select value types should match!"); - (yyval.InstVal) = new SelectInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 279: -#line 2433 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.InstVal) = new VAArgInst((yyvsp[(2) - (4)].ValueVal), *(yyvsp[(4) - (4)].TypeVal)); - delete (yyvsp[(4) - (4)].TypeVal); - CHECK_FOR_ERROR - ;} - break; - - case 280: -#line 2438 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!ExtractElementInst::isValidOperands((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal))) - GEN_ERROR("Invalid extractelement operands!"); - (yyval.InstVal) = new ExtractElementInst((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 281: -#line 2444 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!InsertElementInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal))) - GEN_ERROR("Invalid insertelement operands!"); - (yyval.InstVal) = new InsertElementInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 282: -#line 2450 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal))) - GEN_ERROR("Invalid shufflevector operands!"); - (yyval.InstVal) = new ShuffleVectorInst((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)); - CHECK_FOR_ERROR - ;} - break; - - case 283: -#line 2456 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first->getType(); - if (!Ty->isFirstClassType()) - GEN_ERROR("PHI node operands must be of first class type!"); - (yyval.InstVal) = new PHINode(Ty); - ((PHINode*)(yyval.InstVal))->reserveOperandSpace((yyvsp[(2) - (2)].PHIList)->size()); - while ((yyvsp[(2) - (2)].PHIList)->begin() != (yyvsp[(2) - (2)].PHIList)->end()) { - if ((yyvsp[(2) - (2)].PHIList)->front().first->getType() != Ty) - GEN_ERROR("All elements of a PHI node must be of the same type!"); - cast((yyval.InstVal))->addIncoming((yyvsp[(2) - (2)].PHIList)->front().first, (yyvsp[(2) - (2)].PHIList)->front().second); - (yyvsp[(2) - (2)].PHIList)->pop_front(); - } - delete (yyvsp[(2) - (2)].PHIList); // Free the list... - CHECK_FOR_ERROR - ;} - break; - - case 284: -#line 2471 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - const PointerType *PFTy = 0; - const FunctionType *Ty = 0; - - if (!(PFTy = dyn_cast((yyvsp[(3) - (7)].TypeVal)->get())) || + if (!(PFTy = dyn_cast(yyvsp[-10].TypeVal->get())) || !(Ty = dyn_cast(PFTy->getElementType()))) { // Pull out the types of all of the arguments... std::vector ParamTypes; - if ((yyvsp[(6) - (7)].ValueList)) { - for (std::vector::iterator I = (yyvsp[(6) - (7)].ValueList)->begin(), E = (yyvsp[(6) - (7)].ValueList)->end(); + if (yyvsp[-7].ValueList) { + for (std::vector::iterator I = yyvsp[-7].ValueList->begin(), E = yyvsp[-7].ValueList->end(); I != E; ++I) ParamTypes.push_back((*I)->getType()); } @@ -5407,31 +4708,27 @@ yyreduce: bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; if (isVarArg) ParamTypes.pop_back(); - if (!(*(yyvsp[(3) - (7)].TypeVal))->isFirstClassType() && *(yyvsp[(3) - (7)].TypeVal) != Type::VoidTy) - GEN_ERROR("LLVM functions cannot return aggregate types!"); - - Ty = FunctionType::get((yyvsp[(3) - (7)].TypeVal)->get(), ParamTypes, isVarArg); + Ty = FunctionType::get(yyvsp[-10].TypeVal->get(), ParamTypes, isVarArg); PFTy = PointerType::get(Ty); } - Value *V = getVal(PFTy, (yyvsp[(4) - (7)].ValIDVal)); // Get the function we're calling... + Value *V = getVal(PFTy, yyvsp[-9].ValIDVal); // Get the function we're calling... + CHECK_FOR_ERROR + BasicBlock *Normal = getBBVal(yyvsp[-3].ValIDVal); + CHECK_FOR_ERROR + BasicBlock *Except = getBBVal(yyvsp[0].ValIDVal); CHECK_FOR_ERROR // Create the call node... - if (!(yyvsp[(6) - (7)].ValueList)) { // Has no arguments? - // Make sure no arguments is a good thing! - if (Ty->getNumParams() != 0) - GEN_ERROR("No arguments passed to a function that " - "expects arguments!"); - - (yyval.InstVal) = new CallInst(V, std::vector()); + if (!yyvsp[-7].ValueList) { // Has no arguments? + yyval.TermInstVal = new InvokeInst(V, Normal, Except, std::vector()); } else { // Has arguments? // Loop through FunctionType's arguments and ensure they are specified // correctly! // FunctionType::param_iterator I = Ty->param_begin(); FunctionType::param_iterator E = Ty->param_end(); - std::vector::iterator ArgI = (yyvsp[(6) - (7)].ValueList)->begin(), ArgE = (yyvsp[(6) - (7)].ValueList)->end(); + std::vector::iterator ArgI = yyvsp[-7].ValueList->begin(), ArgE = yyvsp[-7].ValueList->end(); for (; ArgI != ArgE && I != E; ++ArgI, ++I) if ((*ArgI)->getType() != *I) @@ -5441,166 +4738,557 @@ yyreduce: if (I != E || (ArgI != ArgE && !Ty->isVarArg())) GEN_ERROR("Invalid number of parameters detected!"); - (yyval.InstVal) = new CallInst(V, *(yyvsp[(6) - (7)].ValueList)); + yyval.TermInstVal = new InvokeInst(V, Normal, Except, *yyvsp[-7].ValueList); } - cast((yyval.InstVal))->setTailCall((yyvsp[(1) - (7)].BoolVal)); - cast((yyval.InstVal))->setCallingConv((yyvsp[(2) - (7)].UIntVal)); - delete (yyvsp[(3) - (7)].TypeVal); - delete (yyvsp[(6) - (7)].ValueList); + cast(yyval.TermInstVal)->setCallingConv(yyvsp[-11].UIntVal); + + delete yyvsp[-10].TypeVal; + delete yyvsp[-7].ValueList; + CHECK_FOR_ERROR + ;} + break; + + case 259: +#line 2251 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.TermInstVal = new UnwindInst(); + CHECK_FOR_ERROR + ;} + break; + + case 260: +#line 2255 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.TermInstVal = new UnreachableInst(); + CHECK_FOR_ERROR + ;} + break; + + case 261: +#line 2262 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.JumpTable = yyvsp[-5].JumpTable; + Constant *V = cast(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); + CHECK_FOR_ERROR + if (V == 0) + GEN_ERROR("May only switch on a constant pool value!"); + + BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.JumpTable->push_back(std::make_pair(V, tmpBB)); + ;} + break; + + case 262: +#line 2273 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.JumpTable = new std::vector >(); + Constant *V = cast(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal)); + CHECK_FOR_ERROR + + if (V == 0) + GEN_ERROR("May only switch on a constant pool value!"); + + BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.JumpTable->push_back(std::make_pair(V, tmpBB)); + ;} + break; + + case 263: +#line 2286 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + // Is this definition named?? if so, assign the name... + setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal); + CHECK_FOR_ERROR + InsertValue(yyvsp[0].InstVal); + yyval.InstVal = yyvsp[0].InstVal; + CHECK_FOR_ERROR +;} + break; + + case 264: +#line 2295 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Used for PHI nodes + yyval.PHIList = new std::list >(); + Value* tmpVal = getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal); + CHECK_FOR_ERROR + BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal); + CHECK_FOR_ERROR + yyval.PHIList->push_back(std::make_pair(tmpVal, tmpBB)); + delete yyvsp[-5].TypeVal; + ;} + break; + + case 265: +#line 2304 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.PHIList = yyvsp[-6].PHIList; + Value* tmpVal = getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal); + CHECK_FOR_ERROR + BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal); + CHECK_FOR_ERROR + yyvsp[-6].PHIList->push_back(std::make_pair(tmpVal, tmpBB)); + ;} + break; + + case 266: +#line 2314 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { // Used for call statements, and memory insts... + yyval.ValueList = new std::vector(); + yyval.ValueList->push_back(yyvsp[0].ValueVal); + ;} + break; + + case 267: +#line 2318 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValueList = yyvsp[-2].ValueList; + yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal); + CHECK_FOR_ERROR + ;} + break; + + case 269: +#line 2325 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { yyval.ValueList = 0; ;} + break; + + case 270: +#line 2327 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.BoolVal = true; + CHECK_FOR_ERROR + ;} + break; + + case 271: +#line 2331 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.BoolVal = false; + CHECK_FOR_ERROR + ;} + break; + + case 272: +#line 2336 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && + !isa((*yyvsp[-3].TypeVal).get())) + GEN_ERROR( + "Arithmetic operator requires integer, FP, or packed operands!"); + if (isa((*yyvsp[-3].TypeVal).get()) && + (yyvsp[-4].BinaryOpVal == Instruction::URem || + yyvsp[-4].BinaryOpVal == Instruction::SRem || + yyvsp[-4].BinaryOpVal == Instruction::FRem)) + GEN_ERROR("U/S/FRem not supported on packed types!"); + Value* val1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + Value* val2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, val1, val2); + if (yyval.InstVal == 0) + GEN_ERROR("binary operator returned null!"); + delete yyvsp[-3].TypeVal; + ;} + break; + + case 273: +#line 2355 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!(*yyvsp[-3].TypeVal)->isIntegral()) { + if (!isa(yyvsp[-3].TypeVal->get()) || + !cast(yyvsp[-3].TypeVal->get())->getElementType()->isIntegral()) + GEN_ERROR("Logical operator requires integral operands!"); + } + Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, tmpVal1, tmpVal2); + if (yyval.InstVal == 0) + GEN_ERROR("binary operator returned null!"); + delete yyvsp[-3].TypeVal; + ;} + break; + + case 274: +#line 2370 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if(isa((*yyvsp[-3].TypeVal).get())) { + GEN_ERROR( + "PackedTypes currently not supported in setcc instructions!"); + } + Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = new SetCondInst(yyvsp[-4].BinaryOpVal, tmpVal1, tmpVal2); + if (yyval.InstVal == 0) + GEN_ERROR("binary operator returned null!"); + delete yyvsp[-3].TypeVal; + ;} + break; + + case 275: +#line 2384 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (isa((*yyvsp[-3].TypeVal).get())) + GEN_ERROR("Packed types not supported by icmp instruction"); + Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].IPredicate, tmpVal1, tmpVal2); + if (yyval.InstVal == 0) + GEN_ERROR("icmp operator returned null!"); + ;} + break; + + case 276: +#line 2395 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (isa((*yyvsp[-3].TypeVal).get())) + GEN_ERROR("Packed types not supported by fcmp instruction"); + Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); + CHECK_FOR_ERROR + Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].FPredicate, tmpVal1, tmpVal2); + if (yyval.InstVal == 0) + GEN_ERROR("fcmp operator returned null!"); + ;} + break; + + case 277: +#line 2406 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + cerr << "WARNING: Use of eliminated 'not' instruction:" + << " Replacing with 'xor'.\n"; + + Value *Ones = ConstantIntegral::getAllOnesValue(yyvsp[0].ValueVal->getType()); + if (Ones == 0) + GEN_ERROR("Expected integral type for not instruction!"); + + yyval.InstVal = BinaryOperator::create(Instruction::Xor, yyvsp[0].ValueVal, Ones); + if (yyval.InstVal == 0) + GEN_ERROR("Could not create a xor instruction!"); + CHECK_FOR_ERROR + ;} + break; + + case 278: +#line 2419 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (yyvsp[0].ValueVal->getType() != Type::UByteTy) + GEN_ERROR("Shift amount must be ubyte!"); + if (!yyvsp[-2].ValueVal->getType()->isInteger()) + GEN_ERROR("Shift constant expression requires integer operand!"); + CHECK_FOR_ERROR; + yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); + CHECK_FOR_ERROR + ;} + break; + + case 279: +#line 2428 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + Value* Val = yyvsp[-2].ValueVal; + const Type* Ty = yyvsp[0].TypeVal->get(); + if (!Val->getType()->isFirstClassType()) + GEN_ERROR("cast from a non-primitive type: '" + + Val->getType()->getDescription() + "'!"); + if (!Ty->isFirstClassType()) + GEN_ERROR("cast to a non-primitive type: '" + Ty->getDescription() +"'!"); + yyval.InstVal = CastInst::create(yyvsp[-3].CastOpVal, yyvsp[-2].ValueVal, yyvsp[0].TypeVal->get()); + delete yyvsp[0].TypeVal; + ;} + break; + + case 280: +#line 2439 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (yyvsp[-4].ValueVal->getType() != Type::BoolTy) + GEN_ERROR("select condition must be boolean!"); + if (yyvsp[-2].ValueVal->getType() != yyvsp[0].ValueVal->getType()) + GEN_ERROR("select value types should match!"); + yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); + CHECK_FOR_ERROR + ;} + break; + + case 281: +#line 2447 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal); + delete yyvsp[0].TypeVal; + CHECK_FOR_ERROR + ;} + break; + + case 282: +#line 2452 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!ExtractElementInst::isValidOperands(yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) + GEN_ERROR("Invalid extractelement operands!"); + yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal); + CHECK_FOR_ERROR + ;} + break; + + case 283: +#line 2458 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!InsertElementInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) + GEN_ERROR("Invalid insertelement operands!"); + yyval.InstVal = new InsertElementInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); + CHECK_FOR_ERROR + ;} + break; + + case 284: +#line 2464 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!ShuffleVectorInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal)) + GEN_ERROR("Invalid shufflevector operands!"); + yyval.InstVal = new ShuffleVectorInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal); CHECK_FOR_ERROR ;} break; case 285: -#line 2530 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2470 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal); + const Type *Ty = yyvsp[0].PHIList->front().first->getType(); + if (!Ty->isFirstClassType()) + GEN_ERROR("PHI node operands must be of first class type!"); + yyval.InstVal = new PHINode(Ty); + ((PHINode*)yyval.InstVal)->reserveOperandSpace(yyvsp[0].PHIList->size()); + while (yyvsp[0].PHIList->begin() != yyvsp[0].PHIList->end()) { + if (yyvsp[0].PHIList->front().first->getType() != Ty) + GEN_ERROR("All elements of a PHI node must be of the same type!"); + cast(yyval.InstVal)->addIncoming(yyvsp[0].PHIList->front().first, yyvsp[0].PHIList->front().second); + yyvsp[0].PHIList->pop_front(); + } + delete yyvsp[0].PHIList; // Free the list... CHECK_FOR_ERROR ;} break; case 286: -#line 2537 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValueList) = (yyvsp[(2) - (2)].ValueList); +#line 2485 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + const PointerType *PFTy = 0; + const FunctionType *Ty = 0; + + if (!(PFTy = dyn_cast(yyvsp[-4].TypeVal->get())) || + !(Ty = dyn_cast(PFTy->getElementType()))) { + // Pull out the types of all of the arguments... + std::vector ParamTypes; + if (yyvsp[-1].ValueList) { + for (std::vector::iterator I = yyvsp[-1].ValueList->begin(), E = yyvsp[-1].ValueList->end(); + I != E; ++I) + ParamTypes.push_back((*I)->getType()); + } + + bool isVarArg = ParamTypes.size() && ParamTypes.back() == Type::VoidTy; + if (isVarArg) ParamTypes.pop_back(); + + if (!(*yyvsp[-4].TypeVal)->isFirstClassType() && *yyvsp[-4].TypeVal != Type::VoidTy) + GEN_ERROR("LLVM functions cannot return aggregate types!"); + + Ty = FunctionType::get(yyvsp[-4].TypeVal->get(), ParamTypes, isVarArg); + PFTy = PointerType::get(Ty); + } + + Value *V = getVal(PFTy, yyvsp[-3].ValIDVal); // Get the function we're calling... + CHECK_FOR_ERROR + + // Create the call node... + if (!yyvsp[-1].ValueList) { // Has no arguments? + // Make sure no arguments is a good thing! + if (Ty->getNumParams() != 0) + GEN_ERROR("No arguments passed to a function that " + "expects arguments!"); + + yyval.InstVal = new CallInst(V, std::vector()); + } else { // Has arguments? + // Loop through FunctionType's arguments and ensure they are specified + // correctly! + // + FunctionType::param_iterator I = Ty->param_begin(); + FunctionType::param_iterator E = Ty->param_end(); + std::vector::iterator ArgI = yyvsp[-1].ValueList->begin(), ArgE = yyvsp[-1].ValueList->end(); + + for (; ArgI != ArgE && I != E; ++ArgI, ++I) + if ((*ArgI)->getType() != *I) + GEN_ERROR("Parameter " +(*ArgI)->getName()+ " is not of type '" + + (*I)->getDescription() + "'!"); + + if (I != E || (ArgI != ArgE && !Ty->isVarArg())) + GEN_ERROR("Invalid number of parameters detected!"); + + yyval.InstVal = new CallInst(V, *yyvsp[-1].ValueList); + } + cast(yyval.InstVal)->setTailCall(yyvsp[-6].BoolVal); + cast(yyval.InstVal)->setCallingConv(yyvsp[-5].UIntVal); + delete yyvsp[-4].TypeVal; + delete yyvsp[-1].ValueList; CHECK_FOR_ERROR ;} break; case 287: -#line 2540 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.ValueList) = new std::vector(); +#line 2544 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.InstVal = yyvsp[0].InstVal; CHECK_FOR_ERROR ;} break; case 288: -#line 2545 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = true; +#line 2551 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValueList = yyvsp[0].ValueList; CHECK_FOR_ERROR ;} break; case 289: -#line 2549 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" - { - (yyval.BoolVal) = false; +#line 2554 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + yyval.ValueList = new std::vector(); CHECK_FOR_ERROR ;} break; case 290: -#line 2556 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2559 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = new MallocInst(*(yyvsp[(2) - (3)].TypeVal), 0, (yyvsp[(3) - (3)].UIntVal)); - delete (yyvsp[(2) - (3)].TypeVal); + yyval.BoolVal = true; CHECK_FOR_ERROR ;} break; case 291: -#line 2561 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2563 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[(4) - (6)].PrimType), (yyvsp[(5) - (6)].ValIDVal)); + yyval.BoolVal = false; CHECK_FOR_ERROR - (yyval.InstVal) = new MallocInst(*(yyvsp[(2) - (6)].TypeVal), tmpVal, (yyvsp[(6) - (6)].UIntVal)); - delete (yyvsp[(2) - (6)].TypeVal); ;} break; case 292: -#line 2567 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2570 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - (yyval.InstVal) = new AllocaInst(*(yyvsp[(2) - (3)].TypeVal), 0, (yyvsp[(3) - (3)].UIntVal)); - delete (yyvsp[(2) - (3)].TypeVal); + yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal); + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 293: -#line 2572 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2575 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - Value* tmpVal = getVal((yyvsp[(4) - (6)].PrimType), (yyvsp[(5) - (6)].ValIDVal)); + Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal); CHECK_FOR_ERROR - (yyval.InstVal) = new AllocaInst(*(yyvsp[(2) - (6)].TypeVal), tmpVal, (yyvsp[(6) - (6)].UIntVal)); - delete (yyvsp[(2) - (6)].TypeVal); + yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal); + delete yyvsp[-4].TypeVal; ;} break; case 294: -#line 2578 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2581 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[(2) - (2)].ValueVal)->getType())) - GEN_ERROR("Trying to free nonpointer type " + - (yyvsp[(2) - (2)].ValueVal)->getType()->getDescription() + "!"); - (yyval.InstVal) = new FreeInst((yyvsp[(2) - (2)].ValueVal)); + yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal); + delete yyvsp[-1].TypeVal; CHECK_FOR_ERROR ;} break; case 295: -#line 2586 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2586 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[(3) - (4)].TypeVal)->get())) - GEN_ERROR("Can't load from nonpointer type: " + - (*(yyvsp[(3) - (4)].TypeVal))->getDescription()); - if (!cast((yyvsp[(3) - (4)].TypeVal)->get())->getElementType()->isFirstClassType()) - GEN_ERROR("Can't load from pointer of non-first-class type: " + - (*(yyvsp[(3) - (4)].TypeVal))->getDescription()); - Value* tmpVal = getVal(*(yyvsp[(3) - (4)].TypeVal), (yyvsp[(4) - (4)].ValIDVal)); + Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal); CHECK_FOR_ERROR - (yyval.InstVal) = new LoadInst(tmpVal, "", (yyvsp[(1) - (4)].BoolVal)); - delete (yyvsp[(3) - (4)].TypeVal); + yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal); + delete yyvsp[-4].TypeVal; ;} break; case 296: -#line 2598 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2592 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - const PointerType *PT = dyn_cast((yyvsp[(5) - (6)].TypeVal)->get()); - if (!PT) - GEN_ERROR("Can't store to a nonpointer type: " + - (*(yyvsp[(5) - (6)].TypeVal))->getDescription()); - const Type *ElTy = PT->getElementType(); - if (ElTy != (yyvsp[(3) - (6)].ValueVal)->getType()) - GEN_ERROR("Can't store '" + (yyvsp[(3) - (6)].ValueVal)->getType()->getDescription() + - "' into space of type '" + ElTy->getDescription() + "'!"); - - Value* tmpVal = getVal(*(yyvsp[(5) - (6)].TypeVal), (yyvsp[(6) - (6)].ValIDVal)); + if (!isa(yyvsp[0].ValueVal->getType())) + GEN_ERROR("Trying to free nonpointer type " + + yyvsp[0].ValueVal->getType()->getDescription() + "!"); + yyval.InstVal = new FreeInst(yyvsp[0].ValueVal); CHECK_FOR_ERROR - (yyval.InstVal) = new StoreInst((yyvsp[(3) - (6)].ValueVal), tmpVal, (yyvsp[(1) - (6)].BoolVal)); - delete (yyvsp[(5) - (6)].TypeVal); ;} break; case 297: -#line 2613 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2600 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" { - if (!isa((yyvsp[(2) - (4)].TypeVal)->get())) + if (!isa(yyvsp[-1].TypeVal->get())) + GEN_ERROR("Can't load from nonpointer type: " + + (*yyvsp[-1].TypeVal)->getDescription()); + if (!cast(yyvsp[-1].TypeVal->get())->getElementType()->isFirstClassType()) + GEN_ERROR("Can't load from pointer of non-first-class type: " + + (*yyvsp[-1].TypeVal)->getDescription()); + Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = new LoadInst(tmpVal, "", yyvsp[-3].BoolVal); + delete yyvsp[-1].TypeVal; + ;} + break; + + case 298: +#line 2612 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + const PointerType *PT = dyn_cast(yyvsp[-1].TypeVal->get()); + if (!PT) + GEN_ERROR("Can't store to a nonpointer type: " + + (*yyvsp[-1].TypeVal)->getDescription()); + const Type *ElTy = PT->getElementType(); + if (ElTy != yyvsp[-3].ValueVal->getType()) + GEN_ERROR("Can't store '" + yyvsp[-3].ValueVal->getType()->getDescription() + + "' into space of type '" + ElTy->getDescription() + "'!"); + + Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); + CHECK_FOR_ERROR + yyval.InstVal = new StoreInst(yyvsp[-3].ValueVal, tmpVal, yyvsp[-5].BoolVal); + delete yyvsp[-1].TypeVal; + ;} + break; + + case 299: +#line 2627 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" + { + if (!isa(yyvsp[-2].TypeVal->get())) GEN_ERROR("getelementptr insn requires pointer operand!"); - if (!GetElementPtrInst::getIndexedType(*(yyvsp[(2) - (4)].TypeVal), *(yyvsp[(4) - (4)].ValueList), true)) + if (!GetElementPtrInst::getIndexedType(*yyvsp[-2].TypeVal, *yyvsp[0].ValueList, true)) GEN_ERROR("Invalid getelementptr indices for type '" + - (*(yyvsp[(2) - (4)].TypeVal))->getDescription()+ "'!"); - Value* tmpVal = getVal(*(yyvsp[(2) - (4)].TypeVal), (yyvsp[(3) - (4)].ValIDVal)); + (*yyvsp[-2].TypeVal)->getDescription()+ "'!"); + Value* tmpVal = getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal); CHECK_FOR_ERROR - (yyval.InstVal) = new GetElementPtrInst(tmpVal, *(yyvsp[(4) - (4)].ValueList)); - delete (yyvsp[(2) - (4)].TypeVal); - delete (yyvsp[(4) - (4)].ValueList); + yyval.InstVal = new GetElementPtrInst(tmpVal, *yyvsp[0].ValueList); + delete yyvsp[-2].TypeVal; + delete yyvsp[0].ValueList; ;} break; -/* Line 1267 of yacc.c. */ -#line 5598 "llvmAsmParser.tab.c" - default: break; } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - YYPOPSTACK (yylen); - yylen = 0; +/* Line 1000 of yacc.c. */ +#line 5287 "llvmAsmParser.tab.c" + + yyvsp -= yylen; + yyssp -= yylen; + + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -5629,65 +5317,99 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } +#if YYERROR_VERBOSE + yyn = yypact[yystate]; - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif + if (YYPACT_NINF < yyn && yyn < YYLAST) + { + YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; + char *yymsg; + int yyx; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg != 0) + { + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); + + if (yycount < 5) + { + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yyp = yystpcpy (yyp, yyprefix); + yyp = yystpcpy (yyp, yytname[yyx]); + yyprefix = " or "; + } + } + yyerror (yymsg); + YYSTACK_FREE (yymsg); + } + else + yyerror ("syntax error; also virtual memory exhausted"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); } 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) - { - /* Return failure if at end of input. */ + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ if (yychar == YYEOF) - YYABORT; - } + for (;;) + { + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); + } + } else { - yydestruct ("Error: discarding", - yytoken, &yylval); + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); yychar = YYEMPTY; + } } - /* 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; @@ -5697,17 +5419,15 @@ yyerrlab: `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) goto yyerrorlab; +#endif - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); + yyvsp -= yylen; + yyssp -= yylen; yystate = *yyssp; goto yyerrlab1; @@ -5736,10 +5456,9 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + YYPOPSTACK; yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } @@ -5747,12 +5466,11 @@ yyerrlab1: if (yyn == YYFINAL) YYACCEPT; + YYDPRINTF ((stderr, "Shifting error token, ")); + *++yyvsp = yylval; - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - yystate = yyn; goto yynewstate; @@ -5772,43 +5490,25 @@ yyabortlab: goto yyreturn; #ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ +yyoverflowlab: + yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } -#line 2628 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" +#line 2642 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" void llvm::GenerateError(const std::string &message, int LineNo) { diff --git a/lib/AsmParser/llvmAsmParser.h.cvs b/lib/AsmParser/llvmAsmParser.h.cvs index 5e539625f3a..24c92b5c2b2 100644 --- a/lib/AsmParser/llvmAsmParser.h.cvs +++ b/lib/AsmParser/llvmAsmParser.h.cvs @@ -1,9 +1,7 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 1.875c. */ -/* 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. +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 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 @@ -17,21 +15,13 @@ 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. */ + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - 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. */ +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE @@ -183,7 +173,6 @@ SHUFFLEVECTOR = 399 }; #endif -/* Tokens. */ #define ESINT64VAL 258 #define EUINT64VAL 259 #define SINTVAL 260 @@ -330,10 +319,9 @@ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 855 "/Volumes/Gir/devel/llvm/llvm.src/lib/AsmParser/llvmAsmParser.y" -{ +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 855 "/home/vadve/alenhar2/llvm.old/lib/AsmParser/llvmAsmParser.y" +typedef union YYSTYPE { llvm::Module *ModuleVal; llvm::Function *FunctionVal; std::pair *ArgVal; @@ -374,10 +362,9 @@ typedef union YYSTYPE llvm::Module::Endianness Endianness; llvm::ICmpInst::Predicate IPredicate; llvm::FCmpInst::Predicate FPredicate; -} -/* Line 1529 of yacc.c. */ -#line 380 "llvmAsmParser.tab.h" - YYSTYPE; +} YYSTYPE; +/* Line 1275 of yacc.c. */ +#line 368 "llvmAsmParser.tab.h" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -385,3 +372,5 @@ typedef union YYSTYPE extern YYSTYPE llvmAsmlval; + + diff --git a/lib/AsmParser/llvmAsmParser.y.cvs b/lib/AsmParser/llvmAsmParser.y.cvs index 15524baf862..05fc57d82c8 100644 --- a/lib/AsmParser/llvmAsmParser.y.cvs +++ b/lib/AsmParser/llvmAsmParser.y.cvs @@ -1209,6 +1209,20 @@ UpRTypes : '\\' EUINT64VAL { // Type UpReference $$ = new PATypeHolder(StructType::get(std::vector())); CHECK_FOR_ERROR } + | '<' '{' TypeListI '}' '>' { + std::vector Elements; + for (std::list::iterator I = $3->begin(), + E = $3->end(); I != E; ++I) + Elements.push_back(*I); + + $$ = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true))); + delete $3; + CHECK_FOR_ERROR + } + | '<' '{' '}' '>' { // Empty structure type? + $$ = new PATypeHolder(StructType::get(std::vector(), true)); + CHECK_FOR_ERROR + } | UpRTypes '*' { // Pointer type? if (*$1 == Type::LabelTy) GEN_ERROR("Cannot form a pointer to a basic block");