Initial, non-functional, version of llvm-upgrade. This version just echos
its input. Committed for safekeeping purposes. Don't use this yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32030 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-upgrade/UpgradeParser.cpp.cvs b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
new file mode 100644
index 0000000..30393d7
--- /dev/null
+++ b/tools/llvm-upgrade/UpgradeParser.cpp.cvs
@@ -0,0 +1,3489 @@
+/* A Bison parser, made by GNU Bison 2.1.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* 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.  */
+
+/* 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
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.1"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* Substitute the variable and function names.  */
+#define yyparse Upgradeparse
+#define yylex   Upgradelex
+#define yyerror Upgradeerror
+#define yylval  Upgradelval
+#define yychar  Upgradechar
+#define yydebug Upgradedebug
+#define yynerrs Upgradenerrs
+
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     ESINT64VAL = 258,
+     EUINT64VAL = 259,
+     SINTVAL = 260,
+     UINTVAL = 261,
+     FPVAL = 262,
+     VOID = 263,
+     BOOL = 264,
+     SBYTE = 265,
+     UBYTE = 266,
+     SHORT = 267,
+     USHORT = 268,
+     INT = 269,
+     UINT = 270,
+     LONG = 271,
+     ULONG = 272,
+     FLOAT = 273,
+     DOUBLE = 274,
+     TYPE = 275,
+     LABEL = 276,
+     VAR_ID = 277,
+     LABELSTR = 278,
+     STRINGCONSTANT = 279,
+     IMPLEMENTATION = 280,
+     ZEROINITIALIZER = 281,
+     TRUETOK = 282,
+     FALSETOK = 283,
+     BEGINTOK = 284,
+     ENDTOK = 285,
+     DECLARE = 286,
+     GLOBAL = 287,
+     CONSTANT = 288,
+     SECTION = 289,
+     VOLATILE = 290,
+     TO = 291,
+     DOTDOTDOT = 292,
+     NULL_TOK = 293,
+     UNDEF = 294,
+     CONST = 295,
+     INTERNAL = 296,
+     LINKONCE = 297,
+     WEAK = 298,
+     APPENDING = 299,
+     DLLIMPORT = 300,
+     DLLEXPORT = 301,
+     EXTERN_WEAK = 302,
+     OPAQUE = 303,
+     NOT = 304,
+     EXTERNAL = 305,
+     TARGET = 306,
+     TRIPLE = 307,
+     ENDIAN = 308,
+     POINTERSIZE = 309,
+     LITTLE = 310,
+     BIG = 311,
+     ALIGN = 312,
+     DEPLIBS = 313,
+     CALL = 314,
+     TAIL = 315,
+     ASM_TOK = 316,
+     MODULE = 317,
+     SIDEEFFECT = 318,
+     CC_TOK = 319,
+     CCC_TOK = 320,
+     CSRETCC_TOK = 321,
+     FASTCC_TOK = 322,
+     COLDCC_TOK = 323,
+     X86_STDCALLCC_TOK = 324,
+     X86_FASTCALLCC_TOK = 325,
+     DATALAYOUT = 326,
+     RET = 327,
+     BR = 328,
+     SWITCH = 329,
+     INVOKE = 330,
+     UNWIND = 331,
+     UNREACHABLE = 332,
+     ADD = 333,
+     SUB = 334,
+     MUL = 335,
+     UDIV = 336,
+     SDIV = 337,
+     FDIV = 338,
+     UREM = 339,
+     SREM = 340,
+     FREM = 341,
+     AND = 342,
+     OR = 343,
+     XOR = 344,
+     SETLE = 345,
+     SETGE = 346,
+     SETLT = 347,
+     SETGT = 348,
+     SETEQ = 349,
+     SETNE = 350,
+     MALLOC = 351,
+     ALLOCA = 352,
+     FREE = 353,
+     LOAD = 354,
+     STORE = 355,
+     GETELEMENTPTR = 356,
+     TRUNC = 357,
+     ZEXT = 358,
+     SEXT = 359,
+     FPTRUNC = 360,
+     FPEXT = 361,
+     BITCAST = 362,
+     UITOFP = 363,
+     SITOFP = 364,
+     FPTOUI = 365,
+     FPTOSI = 366,
+     INTTOPTR = 367,
+     PTRTOINT = 368,
+     PHI_TOK = 369,
+     SELECT = 370,
+     SHL = 371,
+     LSHR = 372,
+     ASHR = 373,
+     VAARG = 374,
+     EXTRACTELEMENT = 375,
+     INSERTELEMENT = 376,
+     SHUFFLEVECTOR = 377,
+     CAST = 378
+   };
+#endif
+/* Tokens.  */
+#define ESINT64VAL 258
+#define EUINT64VAL 259
+#define SINTVAL 260
+#define UINTVAL 261
+#define FPVAL 262
+#define VOID 263
+#define BOOL 264
+#define SBYTE 265
+#define UBYTE 266
+#define SHORT 267
+#define USHORT 268
+#define INT 269
+#define UINT 270
+#define LONG 271
+#define ULONG 272
+#define FLOAT 273
+#define DOUBLE 274
+#define TYPE 275
+#define LABEL 276
+#define VAR_ID 277
+#define LABELSTR 278
+#define STRINGCONSTANT 279
+#define IMPLEMENTATION 280
+#define ZEROINITIALIZER 281
+#define TRUETOK 282
+#define FALSETOK 283
+#define BEGINTOK 284
+#define ENDTOK 285
+#define DECLARE 286
+#define GLOBAL 287
+#define CONSTANT 288
+#define SECTION 289
+#define VOLATILE 290
+#define TO 291
+#define DOTDOTDOT 292
+#define NULL_TOK 293
+#define UNDEF 294
+#define CONST 295
+#define INTERNAL 296
+#define LINKONCE 297
+#define WEAK 298
+#define APPENDING 299
+#define DLLIMPORT 300
+#define DLLEXPORT 301
+#define EXTERN_WEAK 302
+#define OPAQUE 303
+#define NOT 304
+#define EXTERNAL 305
+#define TARGET 306
+#define TRIPLE 307
+#define ENDIAN 308
+#define POINTERSIZE 309
+#define LITTLE 310
+#define BIG 311
+#define ALIGN 312
+#define DEPLIBS 313
+#define CALL 314
+#define TAIL 315
+#define ASM_TOK 316
+#define MODULE 317
+#define SIDEEFFECT 318
+#define CC_TOK 319
+#define CCC_TOK 320
+#define CSRETCC_TOK 321
+#define FASTCC_TOK 322
+#define COLDCC_TOK 323
+#define X86_STDCALLCC_TOK 324
+#define X86_FASTCALLCC_TOK 325
+#define DATALAYOUT 326
+#define RET 327
+#define BR 328
+#define SWITCH 329
+#define INVOKE 330
+#define UNWIND 331
+#define UNREACHABLE 332
+#define ADD 333
+#define SUB 334
+#define MUL 335
+#define UDIV 336
+#define SDIV 337
+#define FDIV 338
+#define UREM 339
+#define SREM 340
+#define FREM 341
+#define AND 342
+#define OR 343
+#define XOR 344
+#define SETLE 345
+#define SETGE 346
+#define SETLT 347
+#define SETGT 348
+#define SETEQ 349
+#define SETNE 350
+#define MALLOC 351
+#define ALLOCA 352
+#define FREE 353
+#define LOAD 354
+#define STORE 355
+#define GETELEMENTPTR 356
+#define TRUNC 357
+#define ZEXT 358
+#define SEXT 359
+#define FPTRUNC 360
+#define FPEXT 361
+#define BITCAST 362
+#define UITOFP 363
+#define SITOFP 364
+#define FPTOUI 365
+#define FPTOSI 366
+#define INTTOPTR 367
+#define PTRTOINT 368
+#define PHI_TOK 369
+#define SELECT 370
+#define SHL 371
+#define LSHR 372
+#define ASHR 373
+#define VAARG 374
+#define EXTRACTELEMENT 375
+#define INSERTELEMENT 376
+#define SHUFFLEVECTOR 377
+#define CAST 378
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+
+#define YYERROR_VERBOSE 1
+#define YYSTYPE std::string*
+
+#include "ParserInternals.h"
+#include <llvm/ADT/StringExtras.h>
+#include <llvm/System/MappedFile.h>
+#include <algorithm>
+#include <list>
+#include <utility>
+#include <iostream>
+
+
+int yylex();                       // declaration" of xxx warnings.
+int yyparse();
+
+static std::string CurFilename;
+
+static std::ostream *O = 0;
+
+void UpgradeAssembly(const std::string &infile, std::ostream &out)
+{
+  Upgradelineno = 1; 
+  CurFilename = infile;
+  llvm::sys::Path p(infile);
+  llvm::sys::MappedFile mf;
+  mf.open(p);
+  mf.map();
+  const char* base = mf.charBase();
+  size_t sz = mf.size();
+
+  set_scan_bytes(base, sz);
+
+  O = &out;
+
+  if (yyparse()) {
+    std::cerr << "Parse failed.\n";
+    exit(1);
+  }
+}
+
+
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+typedef int YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 219 of yacc.c.  */
+#line 393 "UpgradeParser.tab.c"
+
+#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) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if defined (__STDC__) || defined (__cplusplus)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     define YYINCLUDED_STDLIB_H
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (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 2005 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+#  endif
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifdef __cplusplus
+}
+#  endif
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short int yyss;
+  YYSTYPE yyvs;
+  };
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short int) + 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__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  YYSIZE_T yyi;				\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short int yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  4
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   1246
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  138
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  71
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  251
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  510
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   378
+
+#define YYTRANSLATE(YYX)						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+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,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     127,   128,   136,     2,   125,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     132,   124,   133,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   129,   126,   131,     2,     2,     2,     2,     2,   137,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     130,     2,     2,   134,     2,   135,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    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,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short int yyprhs[] =
+{
+       0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
+      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
+      39,    41,    43,    45,    47,    49,    51,    53,    55,    57,
+      59,    61,    63,    65,    67,    69,    71,    73,    75,    77,
+      79,    82,    83,    85,    87,    89,    91,    93,    95,    97,
+      98,   100,   102,   104,   106,   108,   110,   113,   114,   115,
+     118,   119,   123,   126,   127,   129,   130,   134,   136,   139,
+     141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
+     161,   163,   165,   167,   169,   171,   173,   175,   177,   179,
+     181,   184,   189,   195,   201,   205,   208,   211,   213,   217,
+     219,   223,   225,   226,   231,   235,   239,   244,   249,   253,
+     256,   259,   262,   265,   268,   271,   274,   277,   280,   283,
+     290,   296,   305,   312,   319,   326,   333,   340,   349,   358,
+     362,   364,   366,   368,   370,   373,   376,   381,   384,   386,
+     391,   394,   399,   406,   413,   420,   427,   431,   436,   437,
+     439,   441,   443,   447,   451,   455,   459,   463,   467,   469,
+     470,   472,   474,   476,   477,   480,   484,   486,   488,   492,
+     494,   495,   504,   506,   508,   512,   514,   516,   520,   521,
+     523,   525,   529,   530,   532,   534,   536,   538,   540,   542,
+     544,   546,   548,   552,   554,   560,   562,   564,   566,   568,
+     571,   574,   576,   580,   583,   584,   586,   589,   592,   596,
+     606,   616,   625,   639,   641,   643,   650,   656,   659,   666,
+     674,   676,   680,   682,   683,   686,   688,   694,   700,   706,
+     709,   714,   719,   726,   731,   736,   743,   750,   753,   761,
+     763,   766,   767,   769,   770,   774,   781,   785,   792,   795,
+     800,   807
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short int yyrhs[] =
+{
+     170,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
+      -1,    78,    -1,    79,    -1,    80,    -1,    81,    -1,    82,
+      -1,    83,    -1,    84,    -1,    85,    -1,    86,    -1,    87,
+      -1,    88,    -1,    89,    -1,    90,    -1,    91,    -1,    92,
+      -1,    93,    -1,    94,    -1,    95,    -1,   123,    -1,   116,
+      -1,   117,    -1,   118,    -1,    16,    -1,    14,    -1,    12,
+      -1,    10,    -1,    17,    -1,    15,    -1,    13,    -1,    11,
+      -1,   146,    -1,   147,    -1,    18,    -1,    19,    -1,   178,
+     124,    -1,    -1,    41,    -1,    42,    -1,    43,    -1,    44,
+      -1,    45,    -1,    46,    -1,    47,    -1,    -1,    65,    -1,
+      66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
+      64,     4,    -1,    -1,    -1,    57,     4,    -1,    -1,   125,
+      57,     4,    -1,    34,    24,    -1,    -1,   155,    -1,    -1,
+     125,   158,   157,    -1,   155,    -1,    57,     4,    -1,   161,
+      -1,     8,    -1,   163,    -1,     8,    -1,   163,    -1,     9,
+      -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,    14,
+      -1,    15,    -1,    16,    -1,    17,    -1,    18,    -1,    19,
+      -1,    20,    -1,    21,    -1,    48,    -1,   162,    -1,   192,
+      -1,   126,     4,    -1,   160,   127,   165,   128,    -1,   129,
+       4,   130,   163,   131,    -1,   132,     4,   130,   163,   133,
+      -1,   134,   164,   135,    -1,   134,   135,    -1,   163,   136,
+      -1,   163,    -1,   164,   125,   163,    -1,   164,    -1,   164,
+     125,    37,    -1,    37,    -1,    -1,   161,   129,   168,   131,
+      -1,   161,   129,   131,    -1,   161,   137,    24,    -1,   161,
+     132,   168,   133,    -1,   161,   134,   168,   135,    -1,   161,
+     134,   135,    -1,   161,    38,    -1,   161,    39,    -1,   161,
+     192,    -1,   161,   167,    -1,   161,    26,    -1,   146,   140,
+      -1,   147,     4,    -1,     9,    27,    -1,     9,    28,    -1,
+     149,     7,    -1,   144,   127,   166,    36,   161,   128,    -1,
+     101,   127,   166,   206,   128,    -1,   115,   127,   166,   125,
+     166,   125,   166,   128,    -1,   141,   127,   166,   125,   166,
+     128,    -1,   142,   127,   166,   125,   166,   128,    -1,   143,
+     127,   166,   125,   166,   128,    -1,   145,   127,   166,   125,
+     166,   128,    -1,   120,   127,   166,   125,   166,   128,    -1,
+     121,   127,   166,   125,   166,   125,   166,   128,    -1,   122,
+     127,   166,   125,   166,   125,   166,   128,    -1,   168,   125,
+     166,    -1,   166,    -1,    32,    -1,    33,    -1,   171,    -1,
+     171,   187,    -1,   171,   189,    -1,   171,    62,    61,   173,
+      -1,   171,    25,    -1,   172,    -1,   172,   150,    20,   159,
+      -1,   172,   189,    -1,   172,    62,    61,   173,    -1,   172,
+     150,   151,   169,   166,   157,    -1,   172,   150,    50,   169,
+     161,   157,    -1,   172,   150,    45,   169,   161,   157,    -1,
+     172,   150,    47,   169,   161,   157,    -1,   172,    51,   175,
+      -1,   172,    58,   124,   176,    -1,    -1,    24,    -1,    56,
+      -1,    55,    -1,    53,   124,   174,    -1,    54,   124,     4,
+      -1,    52,   124,    24,    -1,    71,   124,    24,    -1,   129,
+     177,   131,    -1,   177,   125,    24,    -1,    24,    -1,    -1,
+      22,    -1,    24,    -1,   178,    -1,    -1,   161,   179,    -1,
+     181,   125,   180,    -1,   180,    -1,   181,    -1,   181,   125,
+      37,    -1,    37,    -1,    -1,   152,   159,   178,   127,   182,
+     128,   156,   153,    -1,    29,    -1,   134,    -1,   151,   183,
+     184,    -1,    30,    -1,   135,    -1,   185,   195,   186,    -1,
+      -1,    45,    -1,    47,    -1,    31,   188,   183,    -1,    -1,
+      63,    -1,     3,    -1,     4,    -1,     7,    -1,    27,    -1,
+      28,    -1,    38,    -1,    39,    -1,    26,    -1,   132,   168,
+     133,    -1,   167,    -1,    61,   190,    24,   125,    24,    -1,
+     139,    -1,   178,    -1,   192,    -1,   191,    -1,   161,   193,
+      -1,   195,   196,    -1,   196,    -1,   197,   150,   198,    -1,
+     197,   200,    -1,    -1,    23,    -1,    72,   194,    -1,    72,
+       8,    -1,    73,    21,   193,    -1,    73,     9,   193,   125,
+      21,   193,   125,    21,   193,    -1,    74,   148,   193,   125,
+      21,   193,   129,   199,   131,    -1,    74,   148,   193,   125,
+      21,   193,   129,   131,    -1,    75,   152,   159,   193,   127,
+     203,   128,    36,    21,   193,    76,    21,   193,    -1,    76,
+      -1,    77,    -1,   199,   148,   191,   125,    21,   193,    -1,
+     148,   191,   125,    21,   193,    -1,   150,   205,    -1,   161,
+     129,   193,   125,   193,   131,    -1,   201,   125,   129,   193,
+     125,   193,   131,    -1,   194,    -1,   202,   125,   194,    -1,
+     202,    -1,    -1,    60,    59,    -1,    59,    -1,   141,   161,
+     193,   125,   193,    -1,   142,   161,   193,   125,   193,    -1,
+     143,   161,   193,   125,   193,    -1,    49,   194,    -1,   145,
+     194,   125,   194,    -1,   144,   194,    36,   161,    -1,   115,
+     194,   125,   194,   125,   194,    -1,   119,   194,   125,   161,
+      -1,   120,   194,   125,   194,    -1,   121,   194,   125,   194,
+     125,   194,    -1,   122,   194,   125,   194,   125,   194,    -1,
+     114,   201,    -1,   204,   152,   159,   193,   127,   203,   128,
+      -1,   208,    -1,   125,   202,    -1,    -1,    35,    -1,    -1,
+      96,   161,   154,    -1,    96,   161,   125,    15,   193,   154,
+      -1,    97,   161,   154,    -1,    97,   161,   125,    15,   193,
+     154,    -1,    98,   194,    -1,   207,    99,   161,   193,    -1,
+     207,   100,   194,   125,   161,   193,    -1,   101,   161,   193,
+     206,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short int yyrline[] =
+{
+       0,    89,    89,    89,    90,    90,    94,    94,    94,    94,
+      94,    94,    94,    94,    94,    95,    95,    95,    96,    96,
+      96,    96,    96,    96,    97,    98,    98,    98,   102,   102,
+     102,   102,   103,   103,   103,   103,   104,   104,   105,   105,
+     108,   112,   117,   117,   117,   117,   117,   117,   118,   119,
+     122,   122,   122,   122,   122,   123,   123,   124,   129,   130,
+     133,   134,   142,   148,   149,   152,   153,   162,   163,   176,
+     176,   177,   177,   178,   182,   182,   182,   182,   182,   182,
+     182,   183,   183,   183,   183,   183,   183,   184,   184,   184,
+     188,   192,   197,   203,   209,   214,   217,   225,   225,   232,
+     233,   238,   241,   251,   256,   259,   264,   269,   274,   277,
+     282,   287,   292,   297,   303,   308,   313,   318,   323,   330,
+     335,   337,   339,   341,   343,   345,   347,   349,   351,   356,
+     358,   363,   363,   373,   378,   381,   386,   389,   392,   396,
+     401,   406,   411,   416,   421,   426,   431,   436,   441,   446,
+     448,   448,   451,   456,   461,   466,   473,   480,   485,   486,
+     494,   494,   495,   495,   497,   503,   506,   510,   513,   517,
+     520,   524,   539,   542,   546,   555,   556,   558,   564,   565,
+     566,   570,   580,   582,   585,   585,   585,   585,   585,   586,
+     586,   586,   587,   592,   593,   602,   602,   605,   605,   611,
+     617,   619,   626,   630,   635,   638,   644,   649,   654,   659,
+     665,   671,   677,   686,   691,   697,   702,   709,   716,   721,
+     729,   730,   738,   739,   743,   748,   751,   756,   761,   766,
+     771,   776,   781,   786,   791,   796,   801,   806,   811,   820,
+     825,   829,   833,   834,   837,   844,   851,   858,   865,   870,
+     877,   884
+};
+#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. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL",
+  "UINTVAL", "FPVAL", "VOID", "BOOL", "SBYTE", "UBYTE", "SHORT", "USHORT",
+  "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", "TYPE", "LABEL",
+  "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
+  "ZEROINITIALIZER", "TRUETOK", "FALSETOK", "BEGINTOK", "ENDTOK",
+  "DECLARE", "GLOBAL", "CONSTANT", "SECTION", "VOLATILE", "TO",
+  "DOTDOTDOT", "NULL_TOK", "UNDEF", "CONST", "INTERNAL", "LINKONCE",
+  "WEAK", "APPENDING", "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "OPAQUE",
+  "NOT", "EXTERNAL", "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE",
+  "BIG", "ALIGN", "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE",
+  "SIDEEFFECT", "CC_TOK", "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK",
+  "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
+  "RET", "BR", "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB",
+  "MUL", "UDIV", "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR",
+  "XOR", "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC",
+  "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "TRUNC", "ZEXT",
+  "SEXT", "FPTRUNC", "FPEXT", "BITCAST", "UITOFP", "SITOFP", "FPTOUI",
+  "FPTOSI", "INTTOPTR", "PTRTOINT", "PHI_TOK", "SELECT", "SHL", "LSHR",
+  "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
+  "CAST", "'='", "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'",
+  "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", "INTVAL", "EINT64VAL",
+  "ArithmeticOps", "LogicalOps", "SetCondOps", "CastOps", "ShiftOps",
+  "SIntType", "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage",
+  "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection",
+  "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV",
+  "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal",
+  "ConstExpr", "ConstVector", "GlobalType", "Module", "DefinitionList",
+  "ConstPool", "AsmBlock", "BigOrLittle", "TargetDefinition",
+  "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
+  "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
+  "END", "Function", "FnDeclareLinkage", "FunctionProto", "OptSideEffect",
+  "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal",
+  "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst",
+  "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE",
+  "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short int yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,    61,    44,    92,    40,    41,    91,
+     120,    93,    60,    62,   123,   125,    42,    99
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,   138,   139,   139,   140,   140,   141,   141,   141,   141,
+     141,   141,   141,   141,   141,   142,   142,   142,   143,   143,
+     143,   143,   143,   143,   144,   145,   145,   145,   146,   146,
+     146,   146,   147,   147,   147,   147,   148,   148,   149,   149,
+     150,   150,   151,   151,   151,   151,   151,   151,   151,   151,
+     152,   152,   152,   152,   152,   152,   152,   152,   153,   153,
+     154,   154,   155,   156,   156,   157,   157,   158,   158,   159,
+     159,   160,   160,   161,   162,   162,   162,   162,   162,   162,
+     162,   162,   162,   162,   162,   162,   162,   163,   163,   163,
+     163,   163,   163,   163,   163,   163,   163,   164,   164,   165,
+     165,   165,   165,   166,   166,   166,   166,   166,   166,   166,
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   167,
+     167,   167,   167,   167,   167,   167,   167,   167,   167,   168,
+     168,   169,   169,   170,   171,   171,   171,   171,   171,   172,
+     172,   172,   172,   172,   172,   172,   172,   172,   172,   173,
+     174,   174,   175,   175,   175,   175,   176,   177,   177,   177,
+     178,   178,   179,   179,   180,   181,   181,   182,   182,   182,
+     182,   183,   184,   184,   185,   186,   186,   187,   188,   188,
+     188,   189,   190,   190,   191,   191,   191,   191,   191,   191,
+     191,   191,   191,   191,   191,   192,   192,   193,   193,   194,
+     195,   195,   196,   197,   197,   197,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   199,   199,   200,   201,   201,
+     202,   202,   203,   203,   204,   204,   205,   205,   205,   205,
+     205,   205,   205,   205,   205,   205,   205,   205,   205,   205,
+     206,   206,   207,   207,   208,   208,   208,   208,   208,   208,
+     208,   208
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+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,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       2,     0,     1,     1,     1,     1,     1,     1,     1,     0,
+       1,     1,     1,     1,     1,     1,     2,     0,     0,     2,
+       0,     3,     2,     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,     6,     6,     8,     8,     3,
+       1,     1,     1,     1,     2,     2,     4,     2,     1,     4,
+       2,     4,     6,     6,     6,     6,     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,     3,     0,     1,
+       1,     3,     0,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     3,     1,     5,     1,     1,     1,     1,     2,
+       2,     1,     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,     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 unsigned char yydefact[] =
+{
+     148,     0,    49,   138,     1,   137,   178,    42,    43,    44,
+      45,    46,    47,    48,     0,    57,   204,   134,   135,   160,
+     161,     0,     0,     0,    49,     0,   140,   179,   180,    57,
+       0,     0,    50,    51,    52,    53,    54,    55,     0,     0,
+     205,   204,   201,    41,     0,     0,     0,     0,   146,     0,
+       0,     0,     0,     0,     0,     0,    40,   181,   149,   136,
+      56,     2,     3,    70,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,     0,     0,
+       0,     0,   195,     0,     0,    69,    88,    73,   196,    89,
+     172,   173,   174,   175,   176,   177,   200,   243,   203,     0,
+       0,     0,     0,   159,   147,   141,   139,   131,   132,     0,
+       0,     0,     0,    90,     0,     0,    72,    95,    97,     0,
+       0,   102,    96,   242,     0,   225,     0,     0,     0,     0,
+      57,   213,   214,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,     0,     0,     0,     0,     0,     0,    25,    26,    27,
+       0,     0,     0,     0,    24,     0,     0,     0,     0,     0,
+     202,    57,   217,     0,   239,   154,   151,   150,   152,   153,
+     155,   158,     0,    65,    65,    65,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,     0,     0,     0,
+       0,    65,     0,     0,     0,    94,   170,   101,    99,     0,
+       0,   229,   224,   207,   206,     0,     0,    31,    35,    30,
+      34,    29,    33,    28,    32,    36,    37,     0,     0,    60,
+      60,   248,     0,     0,   237,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   156,
+       0,   144,   145,   143,   116,   117,     4,     5,   114,   115,
+     118,   113,   109,   110,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   112,   111,
+     142,    71,    71,    98,   169,   163,   166,   167,     0,     0,
+      91,   184,   185,   186,   191,   187,   188,   189,   190,   182,
+       0,   193,   198,   197,   199,     0,   208,     0,     0,     0,
+     244,     0,   246,   241,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
+       0,     0,    67,    65,     0,     0,     0,     0,     0,   104,
+     130,     0,     0,   108,     0,   105,     0,     0,     0,     0,
+       0,    92,    93,   162,   164,     0,    63,   100,   183,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   251,     0,
+       0,     0,   233,   234,     0,     0,     0,     0,     0,   231,
+     230,     0,   249,     0,    62,    68,    66,   241,     0,     0,
+       0,     0,     0,   103,   106,   107,     0,     0,     0,     0,
+       0,   168,   165,    64,    58,     0,   192,     0,     0,   223,
+      60,    61,    60,   220,   240,     0,     0,     0,     0,     0,
+     226,   227,   228,   223,     0,     0,     0,     0,     0,     0,
+     129,     0,     0,     0,     0,     0,     0,   171,     0,     0,
+       0,   222,     0,     0,   245,   247,     0,     0,     0,   232,
+     235,   236,     0,   250,   120,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    59,   194,     0,     0,     0,   221,
+     218,     0,   238,     0,   126,     0,     0,   122,   123,   124,
+     119,   125,     0,   211,     0,     0,     0,   219,     0,     0,
+       0,   209,     0,   210,     0,     0,   121,   127,   128,     0,
+       0,     0,     0,     0,     0,   216,     0,     0,   215,   212
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short int yydefgoto[] =
+{
+      -1,    82,   258,   273,   274,   275,   276,   277,   197,   198,
+     227,   199,    24,    15,    38,   437,   310,   332,   404,   251,
+     333,    83,    84,   200,    86,    87,   119,   209,   340,   301,
+     341,   109,     1,     2,     3,    59,   178,    48,   104,   182,
+      88,   354,   286,   287,   288,    39,    92,    16,    95,    17,
+      29,    18,   359,   302,    89,   304,   413,    41,    42,    43,
+     170,   485,    98,   234,   441,   442,   171,   172,   368,   173,
+     174
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -451
+static const short int yypact[] =
+{
+    -451,    18,   670,   213,  -451,  -451,    63,  -451,  -451,  -451,
+    -451,  -451,  -451,  -451,   -39,   308,    33,  -451,  -451,  -451,
+    -451,    14,   -36,    31,   150,   -12,  -451,  -451,  -451,   308,
+      96,   136,  -451,  -451,  -451,  -451,  -451,  -451,   971,   -13,
+    -451,    -9,  -451,   119,    10,    20,    37,    56,  -451,    40,
+      96,   971,    45,    45,    45,    45,  -451,  -451,  -451,  -451,
+    -451,  -451,  -451,    52,  -451,  -451,  -451,  -451,  -451,  -451,
+    -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,   177,   179,
+     180,    85,  -451,   119,    58,  -451,  -451,   -52,  -451,  -451,
+    -451,  -451,  -451,  -451,  -451,  -451,  -451,  1123,  -451,   163,
+      97,   185,   174,   178,  -451,  -451,  -451,  -451,  -451,  1019,
+    1019,  1019,  1060,  -451,    76,    82,  -451,  -451,   -52,   -85,
+      86,   786,  -451,  -451,  1019,  -451,   157,  1101,    30,   278,
+     308,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,
+    -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,
+    -451,  1019,  1019,  1019,  1019,  1019,  1019,  -451,  -451,  -451,
+    1019,  1019,  1019,  1019,  -451,  1019,  1019,  1019,  1019,  1019,
+    -451,   308,  -451,    55,  -451,  -451,  -451,  -451,  -451,  -451,
+    -451,  -451,   -49,    90,    90,    90,   130,   156,   214,   160,
+     217,   162,   218,   168,   220,   224,   225,   170,   221,   227,
+     387,    90,  1019,  1019,  1019,  -451,   827,  -451,   111,   122,
+     560,  -451,  -451,    52,  -451,   560,   560,  -451,  -451,  -451,
+    -451,  -451,  -451,  -451,  -451,  -451,  -451,   560,   971,   123,
+     126,  -451,   560,   118,   127,   128,   140,   141,   142,   143,
+     560,   560,   560,   233,   145,   971,  1019,  1019,   248,  -451,
+     -23,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,
+    -451,  -451,  -451,  -451,   146,   147,   149,   169,   171,   868,
+    1060,   537,   253,   173,   181,   182,   183,   187,  -451,  -451,
+    -451,   -94,     6,   -52,  -451,   119,  -451,   158,   188,   889,
+    -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,   234,
+    1060,  -451,  -451,  -451,  -451,   190,  -451,   197,   560,    -5,
+    -451,     8,  -451,   201,   560,   199,  1019,  1019,  1019,  1019,
+    1019,   205,   207,   208,  1019,  1019,   560,   560,   209,  -451,
+     282,   303,  -451,    90,  1060,  1060,  1060,  1060,  1060,  -451,
+    -451,   -44,   -89,  -451,   -56,  -451,  1060,  1060,  1060,  1060,
+    1060,  -451,  -451,  -451,  -451,   930,   304,  -451,  -451,   313,
+     -14,   320,   323,   219,   560,   344,   560,  1019,  -451,   226,
+     560,   228,  -451,  -451,   229,   230,   560,   560,   560,  -451,
+    -451,   222,  -451,  1019,  -451,  -451,  -451,   201,   231,   238,
+     239,   241,  1060,  -451,  -451,  -451,   244,   245,   257,   348,
+     261,  -451,  -451,  -451,   330,   263,  -451,   560,   560,  1019,
+     264,  -451,   264,  -451,   265,   560,   266,  1019,  1019,  1019,
+    -451,  -451,  -451,  1019,   560,   267,  1060,  1060,  1060,  1060,
+    -451,  1060,  1060,  1060,  1019,  1060,   390,  -451,   373,   273,
+     270,   265,   272,   345,  -451,  -451,  1019,   274,   560,  -451,
+    -451,  -451,   275,  -451,  -451,   276,   279,   281,   285,   284,
+     286,   287,   288,   290,  -451,  -451,   383,    15,   384,  -451,
+    -451,   291,  -451,  1060,  -451,  1060,  1060,  -451,  -451,  -451,
+    -451,  -451,   560,  -451,   661,    47,   398,  -451,   293,   295,
+     296,  -451,   302,  -451,   661,   560,  -451,  -451,  -451,   408,
+     306,   356,   560,   412,   414,  -451,   560,   560,  -451,  -451
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const short int yypgoto[] =
+{
+    -451,  -451,  -451,   339,   341,   342,   343,   346,  -128,  -127,
+    -450,  -451,   401,   421,   -97,  -451,  -224,    92,  -451,  -177,
+    -451,   -46,  -451,   -38,  -451,   -66,   328,  -451,  -108,   250,
+    -251,    94,  -451,  -451,  -451,   402,  -451,  -451,  -451,  -451,
+       0,  -451,    98,  -451,  -451,   422,  -451,  -451,  -451,  -451,
+    -451,   451,  -451,  -414,   -65,   120,  -115,  -451,   415,  -451,
+    -451,  -451,  -451,  -451,    88,    34,  -451,  -451,    71,  -451,
+    -451
+};
+
+/* 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 -134
+static const short int yytable[] =
+{
+      85,   225,   226,    25,   201,   106,   312,   252,   253,   211,
+     364,   330,   214,    85,    40,   118,    90,   484,     4,   342,
+     344,    93,    30,   366,   280,   217,   218,   219,   220,   221,
+     222,   223,   224,   228,   331,   494,   392,   351,   231,   215,
+     204,   235,   122,    25,   394,   236,   237,   238,   239,   360,
+     205,   216,   365,   243,   244,   118,    40,   217,   218,   219,
+     220,   221,   222,   223,   224,   365,    44,    45,    46,   392,
+     492,   183,   184,   185,   245,   -71,   248,   107,   108,   395,
+     500,   392,   249,   120,   122,    47,   210,   393,    49,   210,
+      61,    62,    50,   116,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    19,    27,    20,
+      28,   392,    56,   229,   230,   210,   232,   233,   210,   406,
+      58,    91,   210,   210,   210,   210,    94,   240,   241,   242,
+     210,   210,   328,    77,    99,   279,   281,   282,   283,   352,
+      60,    19,   122,    20,   100,   303,   483,   110,   111,   112,
+     303,   303,   176,   177,   246,   247,   386,   254,   255,   -31,
+     -31,   101,   303,   -30,   -30,   -29,   -29,   303,   285,   103,
+      51,   -28,   -28,   256,   257,   303,   303,   303,   493,   -72,
+     102,   113,   308,   114,   115,   121,   444,   175,   445,   179,
+      85,     7,     8,     9,    10,    52,    12,    53,   180,   326,
+      54,   371,   181,   373,   374,   375,   202,    85,   327,   210,
+     380,    78,   203,   206,    79,   250,   212,    80,   -35,    81,
+     117,   -34,   -33,   283,   -32,   259,   387,   388,   389,   390,
+     391,   -38,   -39,   -41,   260,    19,   289,    20,   396,   397,
+     398,   399,   400,   303,     6,   -41,   -41,   314,   309,   303,
+     290,   311,   315,   316,   -41,   -41,   -41,   -41,   -41,   -41,
+     -41,   303,   303,   -41,    21,   317,   318,   319,   320,   324,
+     325,    22,   329,   334,   335,    23,   336,   345,   210,   372,
+     210,   210,   210,   355,   430,   353,   379,   210,   217,   218,
+     219,   220,   221,   222,   223,   224,   337,   358,   338,   303,
+     346,   303,   449,   450,   451,   303,   384,   385,   347,   348,
+     349,   303,   303,   303,   350,   361,   356,   285,   455,   456,
+     457,   458,   362,   459,   460,   461,   367,   463,   370,   210,
+     376,   469,   377,   378,   383,   305,   306,   405,   330,   225,
+     226,   407,   303,   303,   408,   424,   409,   307,   411,   423,
+     303,   415,   313,   417,   418,   419,   426,   225,   226,   303,
+     321,   322,   323,   427,   428,   488,   429,   489,   490,   431,
+     432,   210,    31,    32,    33,    34,    35,    36,    37,   210,
+     210,   210,   433,   303,   434,   210,   435,   436,   438,   443,
+     446,   448,    61,    62,   464,   454,   462,   465,   466,   467,
+     468,   473,   365,   472,   482,   470,   475,   474,   210,    19,
+     476,    20,   477,   261,   478,   479,   480,   303,   481,   495,
+     486,   496,   487,   497,   498,   262,   263,   499,   363,   502,
+     303,   503,   504,   506,   369,   507,   165,   303,   166,   167,
+     168,   303,   303,   169,    97,    55,   381,   382,   403,   208,
+     278,    57,   105,   402,    26,   414,    96,   452,   425,     0,
+       0,     0,     0,     0,     0,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,     0,   410,     0,   412,     0,   264,     0,
+     416,     0,     0,     0,     0,     0,   420,   421,   422,     0,
+       0,     0,   265,   157,   158,   159,     0,   266,   267,   268,
+     164,     0,     0,     0,     0,     0,   269,     0,     0,   270,
+       0,   271,     0,     0,   272,     0,     0,   439,   440,     0,
+       0,     0,     0,     0,     0,   447,     0,     0,     0,     0,
+       0,     0,    61,    62,   453,   116,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,    75,    76,    19,
+       0,    20,     0,   291,   292,    61,    62,   293,   471,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    19,     0,    20,    77,   294,   295,   296,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   297,   298,
+       0,     0,   491,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   501,     0,     0,     0,     0,
+       0,   299,   505,     0,     0,     0,   508,   509,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,     0,     0,     0,     0,
+       0,   264,     0,    78,   291,   292,    79,     0,   293,    80,
+    -133,    81,   343,     0,     0,   265,   157,   158,   159,     0,
+     266,   267,   268,   164,     0,     0,     0,   294,   295,   296,
+       0,     0,   300,     0,     0,     5,     0,     0,     0,   297,
+     298,     6,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     7,     8,     9,    10,    11,    12,    13,     0,     0,
+       0,     0,   299,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    14,     0,     0,     0,     0,     0,     0,   133,
+     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+     144,   145,   146,   147,   148,   149,   150,     0,     0,     0,
+       0,     0,   264,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   265,   157,   158,   159,
+       0,   266,   267,   268,   164,     0,     0,     0,     0,     0,
+       0,    61,    62,   300,   116,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    19,     0,
+      20,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
+       0,     0,    61,    62,    77,   116,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    19,
+       0,    20,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   284,     0,     0,     0,     0,     0,
+       0,     0,     0,    61,    62,    77,   116,   186,   187,   188,
+     189,   190,   191,   192,   193,   194,   195,   196,    75,    76,
+      19,     0,    20,     0,    61,    62,     0,   116,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    19,    78,    20,     0,    79,    77,     0,    80,     0,
+      81,     0,     0,     0,     0,     0,   357,     0,     0,     0,
+       0,     0,     0,     0,     0,    61,    62,    77,   116,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    19,    78,    20,     0,    79,     0,     0,    80,
+       0,    81,     0,     0,     0,     0,     0,   401,     0,     0,
+       0,     0,     0,     0,     0,     0,    61,    62,    77,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    19,    78,    20,     0,    79,     0,   339,
+      80,     0,    81,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    78,     0,     0,    79,    77,
+       0,    80,     0,    81,    61,    62,     0,   116,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    19,     0,    20,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    78,     0,     0,    79,
+       0,     0,    80,     0,    81,    61,    62,    77,   116,   186,
+     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
+      75,    76,    19,     0,    20,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
+      79,     0,     0,    80,     0,    81,    61,    62,    77,   213,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    19,     0,    20,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    78,     0,     0,    79,    77,
+       0,    80,     0,    81,     0,     0,     0,     0,   123,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   124,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   125,   126,     0,     0,    78,     0,     0,    79,
+       0,     0,    80,     0,    81,   127,   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,   154,     0,     0,    78,     0,     0,
+      79,     0,     0,    80,     0,    81,     0,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164
+};
+
+static const short int yycheck[] =
+{
+      38,   129,   129,     3,   112,    51,   230,   184,   185,   124,
+      15,    34,   127,    51,    23,    81,    29,   467,     0,   270,
+     271,    30,    61,    15,   201,    10,    11,    12,    13,    14,
+      15,    16,    17,   130,    57,   485,   125,   131,   153,     9,
+     125,   156,   136,    43,   133,   160,   161,   162,   163,   300,
+     135,    21,    57,   168,   169,   121,    23,    10,    11,    12,
+      13,    14,    15,    16,    17,    57,    52,    53,    54,   125,
+     484,   109,   110,   111,   171,   127,   125,    32,    33,   135,
+     494,   125,   131,    83,   136,    71,   124,   131,   124,   127,
+       5,     6,    61,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    45,    24,
+      47,   125,   124,   151,   152,   153,   154,   155,   156,   133,
+      24,   134,   160,   161,   162,   163,   135,   165,   166,   167,
+     168,   169,   247,    48,   124,   200,   202,   203,   204,   133,
+       4,    22,   136,    24,   124,   210,   131,    53,    54,    55,
+     215,   216,    55,    56,    99,   100,   333,    27,    28,     3,
+       4,   124,   227,     3,     4,     3,     4,   232,   206,   129,
+      20,     3,     4,     3,     4,   240,   241,   242,   131,   127,
+     124,     4,   228,     4,     4,   127,   410,    24,   412,     4,
+     228,    41,    42,    43,    44,    45,    46,    47,    24,   245,
+      50,   316,    24,   318,   319,   320,   130,   245,   246,   247,
+     325,   126,   130,   127,   129,   125,    59,   132,     4,   134,
+     135,     4,     4,   289,     4,     4,   334,   335,   336,   337,
+     338,     7,     7,    20,     7,    22,   125,    24,   346,   347,
+     348,   349,   350,   308,    31,    32,    33,   129,   125,   314,
+     128,   125,   125,   125,    41,    42,    43,    44,    45,    46,
+      47,   326,   327,    50,    51,   125,   125,   125,   125,    36,
+     125,    58,    24,   127,   127,    62,   127,    24,   316,   317,
+     318,   319,   320,   125,   392,   285,   324,   325,    10,    11,
+      12,    13,    14,    15,    16,    17,   127,    63,   127,   364,
+     127,   366,   417,   418,   419,   370,    24,     4,   127,   127,
+     127,   376,   377,   378,   127,   125,   128,   355,   426,   427,
+     428,   429,   125,   431,   432,   433,   125,   435,   129,   367,
+     125,   446,   125,   125,   125,   215,   216,    24,    34,   467,
+     467,    21,   407,   408,    21,   383,   127,   227,     4,   127,
+     415,   125,   232,   125,   125,   125,   125,   485,   485,   424,
+     240,   241,   242,   125,   125,   473,   125,   475,   476,   125,
+     125,   409,    64,    65,    66,    67,    68,    69,    70,   417,
+     418,   419,   125,   448,    36,   423,   125,    57,   125,   125,
+     125,   125,     5,     6,     4,   128,   434,    24,   125,   129,
+     128,   125,    57,   128,    21,   131,   125,   128,   446,    22,
+     125,    24,   128,    26,   128,   128,   128,   482,   128,    21,
+      36,   128,   131,   128,   128,    38,    39,   125,   308,    21,
+     495,   125,    76,    21,   314,    21,    97,   502,    97,    97,
+      97,   506,   507,    97,    43,    24,   326,   327,   356,   121,
+     200,    29,    50,   355,     3,   367,    41,   423,   387,    -1,
+      -1,    -1,    -1,    -1,    -1,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    -1,   364,    -1,   366,    -1,   101,    -1,
+     370,    -1,    -1,    -1,    -1,    -1,   376,   377,   378,    -1,
+      -1,    -1,   115,   116,   117,   118,    -1,   120,   121,   122,
+     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,    -1,   132,
+      -1,   134,    -1,    -1,   137,    -1,    -1,   407,   408,    -1,
+      -1,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
+      -1,    -1,     5,     6,   424,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      -1,    24,    -1,     3,     4,     5,     6,     7,   448,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    22,    -1,    24,    48,    26,    27,    28,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,
+      -1,    -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   495,    -1,    -1,    -1,    -1,
+      -1,    61,   502,    -1,    -1,    -1,   506,   507,    -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,    -1,    -1,    -1,    -1,
+      -1,   101,    -1,   126,     3,     4,   129,    -1,     7,   132,
+       0,   134,   135,    -1,    -1,   115,   116,   117,   118,    -1,
+     120,   121,   122,   123,    -1,    -1,    -1,    26,    27,    28,
+      -1,    -1,   132,    -1,    -1,    25,    -1,    -1,    -1,    38,
+      39,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    41,    42,    43,    44,    45,    46,    47,    -1,    -1,
+      -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
+      -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
+      -1,   120,   121,   122,   123,    -1,    -1,    -1,    -1,    -1,
+      -1,     5,     6,   132,     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,     5,     6,    48,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    -1,    24,    -1,     5,     6,    -1,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,   126,    24,    -1,   129,    48,    -1,   132,    -1,
+     134,    -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,   126,    24,    -1,   129,    -1,    -1,   132,
+      -1,   134,    -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,   126,    24,    -1,   129,    -1,   131,
+     132,    -1,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   126,    -1,    -1,   129,    48,
+      -1,   132,    -1,   134,     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,   126,    -1,    -1,   129,
+      -1,    -1,   132,    -1,   134,     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,   126,    -1,    -1,
+     129,    -1,    -1,   132,    -1,   134,     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,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   126,    -1,    -1,   129,    48,
+      -1,   132,    -1,   134,    -1,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    59,    60,    -1,    -1,   126,    -1,    -1,   129,
+      -1,    -1,   132,    -1,   134,    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,    98,    -1,    -1,   101,    -1,    -1,   126,    -1,    -1,
+     129,    -1,    -1,   132,    -1,   134,    -1,   114,   115,   116,
+     117,   118,   119,   120,   121,   122,   123
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,   170,   171,   172,     0,    25,    31,    41,    42,    43,
+      44,    45,    46,    47,    62,   151,   185,   187,   189,    22,
+      24,    51,    58,    62,   150,   178,   189,    45,    47,   188,
+      61,    64,    65,    66,    67,    68,    69,    70,   152,   183,
+      23,   195,   196,   197,    52,    53,    54,    71,   175,   124,
+      61,    20,    45,    47,    50,   151,   124,   183,    24,   173,
+       4,     5,     6,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    48,   126,   129,
+     132,   134,   139,   159,   160,   161,   162,   163,   178,   192,
+      29,   134,   184,    30,   135,   186,   196,   150,   200,   124,
+     124,   124,   124,   129,   176,   173,   159,    32,    33,   169,
+     169,   169,   169,     4,     4,     4,     8,   135,   163,   164,
+     178,   127,   136,    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,    98,   101,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   141,   142,   143,   144,   145,
+     198,   204,   205,   207,   208,    24,    55,    56,   174,     4,
+      24,    24,   177,   161,   161,   161,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,   146,   147,   149,
+     161,   166,   130,   130,   125,   135,   127,    37,   164,   165,
+     161,   194,    59,     8,   194,     9,    21,    10,    11,    12,
+      13,    14,    15,    16,    17,   146,   147,   148,   152,   161,
+     161,   194,   161,   161,   201,   194,   194,   194,   194,   194,
+     161,   161,   161,   194,   194,   152,    99,   100,   125,   131,
+     125,   157,   157,   157,    27,    28,     3,     4,   140,     4,
+       7,    26,    38,    39,   101,   115,   120,   121,   122,   129,
+     132,   134,   137,   141,   142,   143,   144,   145,   167,   192,
+     157,   163,   163,   163,    37,   161,   180,   181,   182,   125,
+     128,     3,     4,     7,    26,    27,    28,    38,    39,    61,
+     132,   167,   191,   192,   193,   193,   193,   193,   159,   125,
+     154,   125,   154,   193,   129,   125,   125,   125,   125,   125,
+     125,   193,   193,   193,    36,   125,   159,   161,   194,    24,
+      34,    57,   155,   158,   127,   127,   127,   127,   127,   131,
+     166,   168,   168,   135,   168,    24,   127,   127,   127,   127,
+     127,   131,   133,   178,   179,   125,   128,    37,    63,   190,
+     168,   125,   125,   193,    15,    57,    15,   125,   206,   193,
+     129,   194,   161,   194,   194,   194,   125,   125,   125,   161,
+     194,   193,   193,   125,    24,     4,   157,   166,   166,   166,
+     166,   166,   125,   131,   133,   135,   166,   166,   166,   166,
+     166,    37,   180,   155,   156,    24,   133,    21,    21,   127,
+     193,     4,   193,   194,   202,   125,   193,   125,   125,   125,
+     193,   193,   193,   127,   161,   206,   125,   125,   125,   125,
+     166,   125,   125,   125,    36,   125,    57,   153,   125,   193,
+     193,   202,   203,   125,   154,   154,   125,   193,   125,   194,
+     194,   194,   203,   193,   128,   166,   166,   166,   166,   166,
+     166,   166,   161,   166,     4,    24,   125,   129,   128,   194,
+     131,   193,   128,   125,   128,   125,   125,   128,   128,   128,
+     128,   128,    21,   131,   148,   199,    36,   131,   166,   166,
+     166,   193,   191,   131,   148,    21,   128,   128,   128,   125,
+     191,   193,    21,   125,    76,   193,    21,    21,   193,   193
+};
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+
+#define YYFAIL		goto yyerrlab
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)					\
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      yytoken = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    {								\
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;							\
+    }								\
+while (0)
+
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+
+/* 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 (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 (0)
+#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
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (0)
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
+do {								\
+  if (yydebug)							\
+    {								\
+      YYFPRINTF (stderr, "%s ", Title);				\
+      yysymprint (stderr,					\
+                  Type, 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 (__cplusplus)
+static void
+yy_stack_print (short int *bottom, short int *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short int *bottom;
+    short int *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
+             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 (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 YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   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)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
+{
+  const char *yys = yystr;
+
+  while (*yys++ != '\0')
+    continue;
+
+  return yys - yystr - 1;
+}
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  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.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  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 == '"')
+    {
+      size_t yyn = 0;
+      char const *yyp = yystr;
+
+      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
+
+#endif /* YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes.  */
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The look-ahead symbol.  */
+int yychar;
+
+/* The semantic value of the look-ahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# 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 (__cplusplus)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+  
+  int yystate;
+  int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Look-ahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  short int yyssa[YYINITDEPTH];
+  short int *yyss = yyssa;
+  short int *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+
+  YYSIZE_T yystacksize = YYINITDEPTH;
+
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+
+  /* When reducing, the number of symbols on the RHS of the reduced
+     rule.  */
+  int yylen;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss;
+  yyvsp = yyvs;
+
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ 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.
+     */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* 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;
+	short int *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"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	short int *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss);
+	YYSTACK_RELOCATE (yyvs);
+
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a look-ahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* 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.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
+    }
+
+  if (yychar <= YYEOF)
+    {
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yyn == 0 || yyn == YYTABLE_NINF)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* 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--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
+yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
+    {
+        case 40:
+#line 108 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyvsp[-1])->append(" = ");
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 41:
+#line 112 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string(""); 
+  ;}
+    break;
+
+  case 49:
+#line 119 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(""); ;}
+    break;
+
+  case 57:
+#line 124 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(""); ;}
+    break;
+
+  case 58:
+#line 129 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 59:
+#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { *(yyvsp[-1]) += " " + *(yyvsp[0]); delete (yyvsp[0]); (yyval) = (yyvsp[-1]); ;}
+    break;
+
+  case 60:
+#line 133 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 61:
+#line 134 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    (yyvsp[-1])->insert(0, ", "); 
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 62:
+#line 142 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 63:
+#line 148 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 65:
+#line 152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 66:
+#line 153 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+      (yyvsp[-1])->insert(0, ", ");
+      if (!(yyvsp[0])->empty())
+        *(yyvsp[-1]) += " " + *(yyvsp[0]);
+      delete (yyvsp[0]);
+      (yyval) = (yyvsp[-1]);
+    ;}
+    break;
+
+  case 68:
+#line 163 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+      *(yyvsp[-1]) += " " + *(yyvsp[0]);
+      delete (yyvsp[0]);
+      (yyval) = (yyvsp[-1]);
+    ;}
+    break;
+
+  case 90:
+#line 188 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                   // Type UpReference
+    (yyvsp[0])->insert(0, "\\");
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 91:
+#line 192 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {           // Function derived type?
+    *(yyvsp[-3]) += "( " + *(yyvsp[-1]) + " )";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 92:
+#line 197 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {          // Sized array type?
+    (yyvsp[-3])->insert(0,"[ ");
+    *(yyvsp[-3]) += " x " + *(yyvsp[-1]) + " ]";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 93:
+#line 203 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {          // Packed array type?
+    (yyvsp[-3])->insert(0,"< ");
+    *(yyvsp[-3]) += " x " + *(yyvsp[-1]) + " >";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 94:
+#line 209 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                        // Structure type?
+    (yyvsp[-1])->insert(0, "{ ");
+    *(yyvsp[-1]) += " }";
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 95:
+#line 214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                                  // Empty structure type?
+    (yyval) = new std::string("{ }");
+  ;}
+    break;
+
+  case 96:
+#line 217 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                             // Pointer type?
+    *(yyvsp[-1]) += '*';
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 98:
+#line 225 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 100:
+#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", ...";
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 101:
+#line 238 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 102:
+#line 241 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string();
+  ;}
+    break;
+
+  case 103:
+#line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { // Nonempty unsized arr
+    *(yyvsp[-3]) += " [ " + *(yyvsp[-1]) + " ]";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 104:
+#line 256 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string("[ ]");
+  ;}
+    break;
+
+  case 105:
+#line 259 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " c" + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 106:
+#line 264 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { // Nonempty unsized arr
+    *(yyvsp[-3]) += " < " + *(yyvsp[-1]) + " >";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 107:
+#line 269 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += " { " + *(yyvsp[-1]) + " }";
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 108:
+#line 274 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string("[ ]");
+  ;}
+    break;
+
+  case 109:
+#line 277 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]); 
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 110:
+#line 282 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 111:
+#line 287 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 112:
+#line 292 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 113:
+#line 297 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 114:
+#line 303 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {      // integral constants
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 115:
+#line 308 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {            // integral constants
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 116:
+#line 313 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                      // Boolean constants
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 117:
+#line 318 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                     // Boolean constants
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 118:
+#line 323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                   // Float & Double constants
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 119:
+#line 330 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " (" + *(yyvsp[-3]) + " " + *(yyvsp[-2]) + " " + *(yyvsp[-1]) + ")";
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 120:
+#line 335 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 121:
+#line 337 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 122:
+#line 339 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 123:
+#line 341 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 124:
+#line 343 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 125:
+#line 345 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 126:
+#line 347 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 127:
+#line 349 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 128:
+#line 351 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 129:
+#line 356 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 130:
+#line 358 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 131:
+#line 363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { ;}
+    break;
+
+  case 132:
+#line 363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { ;}
+    break;
+
+  case 133:
+#line 373 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+;}
+    break;
+
+  case 134:
+#line 378 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 135:
+#line 381 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 136:
+#line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "module asm " << " " << *(yyvsp[0]) << "\n";
+  ;}
+    break;
+
+  case 137:
+#line 389 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "implementation\n";
+  ;}
+    break;
+
+  case 138:
+#line 392 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 139:
+#line 396 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 140:
+#line 401 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {       // Function prototypes can be in const pool
+    *O << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 141:
+#line 406 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {  // Asm blocks can be in the const pool
+    *O << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]); 
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 142:
+#line 411 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-4]) << " " << *(yyvsp[-3]) << " " << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 143:
+#line 416 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-4]) << " " << *(yyvsp[-3]) << " " << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 144:
+#line 421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-4]) << " " << *(yyvsp[-3]) << " " << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 145:
+#line 426 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-4]) << " " << *(yyvsp[-3]) << " " << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 146:
+#line 431 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    *O << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 147:
+#line 436 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-2]) << " = " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 148:
+#line 441 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 152:
+#line 451 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " = " + *(yyvsp[-1]);
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 153:
+#line 456 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " = " + *(yyvsp[-1]);
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 154:
+#line 461 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " = " + *(yyvsp[-1]);
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 155:
+#line 466 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " = " + *(yyvsp[-1]);
+    delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 156:
+#line 473 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyvsp[-1])->insert(0, "[ ");
+    *(yyvsp[-1]) += " ]";
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 157:
+#line 480 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 159:
+#line 486 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string();
+  ;}
+    break;
+
+  case 163:
+#line 495 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 164:
+#line 497 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  (yyval) = (yyvsp[-1]);
+  if (!(yyvsp[0])->empty())
+    *(yyval) += " " + *(yyvsp[0]);
+;}
+    break;
+
+  case 165:
+#line 503 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", " + *(yyvsp[0]);
+  ;}
+    break;
+
+  case 166:
+#line 506 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 167:
+#line 510 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 168:
+#line 513 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", ...";
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 169:
+#line 517 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 170:
+#line 520 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string();
+  ;}
+    break;
+
+  case 171:
+#line 525 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    if (!(yyvsp[-7])->empty()) {
+      (yyvsp[-6])->insert(0, *(yyvsp[-7]) + " ");
+    }
+    *(yyvsp[-6]) += " " + *(yyvsp[-5]) + "( " + *(yyvsp[-3]) + " )";
+    if (!(yyvsp[-1])->empty()) {
+      *(yyvsp[-6]) += " " + *(yyvsp[-1]);
+    }
+    if (!(yyvsp[0])->empty()) {
+      *(yyvsp[-6]) += " " + *(yyvsp[0]);
+    }
+    (yyval) = (yyvsp[-6]);
+  ;}
+    break;
+
+  case 172:
+#line 539 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = new std::string("begin");
+  ;}
+    break;
+
+  case 173:
+#line 542 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    (yyval) = new std::string ("{");
+  ;}
+    break;
+
+  case 174:
+#line 546 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  if (!(yyvsp[-2])->empty()) {
+    *O << *(yyvsp[-2]) << " ";
+  }
+  *O << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+  delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+  (yyval) = 0;
+;}
+    break;
+
+  case 175:
+#line 555 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string("end"); ;}
+    break;
+
+  case 176:
+#line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string("}"); ;}
+    break;
+
+  case 177:
+#line 558 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  if ((yyvsp[-1]))
+    *O << *(yyvsp[-1]);
+  *O << '\n' << *(yyvsp[0]) << "\n";
+;}
+    break;
+
+  case 181:
+#line 570 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    *(yyvsp[-2]) += " " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 182:
+#line 580 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 183:
+#line 582 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 192:
+#line 587 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    (yyvsp[-1])->insert(0, "<");
+    *(yyvsp[-1]) += ">";
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 194:
+#line 593 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    if (!(yyvsp[-3])->empty()) {
+      *(yyvsp[-4]) += " " + *(yyvsp[-3]);
+    }
+    *(yyvsp[-4]) += " " + *(yyvsp[-2]) + ", " + *(yyvsp[-1]);
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-4]);
+  ;}
+    break;
+
+  case 199:
+#line 611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 200:
+#line 617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+  ;}
+    break;
+
+  case 201:
+#line 619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { // Do not allow functions with 0 basic blocks   
+  ;}
+    break;
+
+  case 202:
+#line 626 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[-1]) ;
+  ;}
+    break;
+
+  case 203:
+#line 630 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 204:
+#line 635 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 205:
+#line 638 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 206:
+#line 644 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {              // Return with a result...
+    *O << "    " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 207:
+#line 649 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                                       // Return with no result...
+    *O << "    " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 208:
+#line 654 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {                         // Unconditional Branch...
+    *O << "    " << *(yyvsp[-2]) << " " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 209:
+#line 659 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {  
+    *O << "    " << *(yyvsp[-8]) << " " << *(yyvsp[-7]) << " " << *(yyvsp[-6]) << ", " << *(yyvsp[-4]) << " "
+       << *(yyvsp[-3]) << ", " << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-8]); delete (yyvsp[-7]); delete (yyvsp[-6]); delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 210:
+#line 665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[-8]) << " " << *(yyvsp[-7]) << " " << *(yyvsp[-6]) << ", " << *(yyvsp[-4]) << " " 
+       << *(yyvsp[-3]) << " [" << *(yyvsp[-1]) << " ]\n";
+    delete (yyvsp[-8]); delete (yyvsp[-7]); delete (yyvsp[-6]); delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-1]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 211:
+#line 671 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[-7]) << " " << *(yyvsp[-6]) << " " << *(yyvsp[-5]) << ", " << *(yyvsp[-3]) << " " 
+       << *(yyvsp[-2]) << "[]\n";
+    delete (yyvsp[-7]); delete (yyvsp[-6]); delete (yyvsp[-5]); delete (yyvsp[-3]); delete (yyvsp[-2]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 212:
+#line 678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[-12]) << " " << *(yyvsp[-11]) << " " << *(yyvsp[-10]) << " " << *(yyvsp[-9]) << " ("
+       << *(yyvsp[-7]) << ") " << *(yyvsp[-5]) << " " << *(yyvsp[-4]) << " " << *(yyvsp[-3]) << " " << *(yyvsp[-2]) << " "
+       << *(yyvsp[-1]) << " " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[-12]); delete (yyvsp[-11]); delete (yyvsp[-10]); delete (yyvsp[-9]); delete (yyvsp[-7]); delete (yyvsp[-5]); delete (yyvsp[-4]);
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]); 
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 213:
+#line 686 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 214:
+#line 691 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *O << "    " << *(yyvsp[0]) << "\n";
+    delete (yyvsp[0]);
+    (yyval) = 0;
+  ;}
+    break;
+
+  case 215:
+#line 697 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += *(yyvsp[-4]) + " " + *(yyvsp[-3]) + ", " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 216:
+#line 702 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-4]) += *(yyvsp[-3]) + ", " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-3]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-4]);
+  ;}
+    break;
+
+  case 217:
+#line 709 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]); 
+  ;}
+    break;
+
+  case 218:
+#line 716 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {    // Used for PHI nodes
+    *(yyvsp[-5]) += " [" + *(yyvsp[-3]) + "," + *(yyvsp[-1]) + "]";
+    delete (yyvsp[-3]); delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 219:
+#line 721 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-6]) += ", [" + *(yyvsp[-3]) + "," + *(yyvsp[-1]) + "]";
+    delete (yyvsp[-3]); delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-6]);
+  ;}
+    break;
+
+  case 221:
+#line 730 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += ", " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 223:
+#line 739 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 224:
+#line 743 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 226:
+#line 751 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-4]) += " " + *(yyvsp[-3]) + " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-4]);
+  ;}
+    break;
+
+  case 227:
+#line 756 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-4]) += " " + *(yyvsp[-3]) + " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-4]);
+  ;}
+    break;
+
+  case 228:
+#line 761 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-4]) += " " + *(yyvsp[-3]) + " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-3]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-4]);
+  ;}
+    break;
+
+  case 229:
+#line 766 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 230:
+#line 771 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 231:
+#line 776 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += " " + *(yyvsp[-2]) + " " + *(yyvsp[-1]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 232:
+#line 781 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " " + *(yyvsp[-4]) + ", " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 233:
+#line 786 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 234:
+#line 791 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += " " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 235:
+#line 796 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " " + *(yyvsp[-4]) + ", " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 236:
+#line 801 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " " + *(yyvsp[-4]) + ", " + *(yyvsp[-2]) + ", " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-2]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 237:
+#line 806 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 238:
+#line 811 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    if (!(yyvsp[-5])->empty())
+      *(yyvsp[-6]) += " " + *(yyvsp[-5]);
+    if (!(yyvsp[-6])->empty())
+      *(yyvsp[-6]) += " ";
+    *(yyvsp[-6]) += *(yyvsp[-4]) += " " + *(yyvsp[-3]) + "(" + *(yyvsp[-2]) + ")";
+    delete (yyvsp[-5]); delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-1]);
+    (yyval) = (yyvsp[-6]);
+  ;}
+    break;
+
+  case 240:
+#line 825 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { 
+    (yyvsp[0])->insert(0, ", ");
+    (yyval) = (yyvsp[0]);
+  ;}
+    break;
+
+  case 241:
+#line 829 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {  (yyval) = new std::string(); ;}
+    break;
+
+  case 243:
+#line 834 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    { (yyval) = new std::string(); ;}
+    break;
+
+  case 244:
+#line 837 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " " + *(yyvsp[-1]);
+    if (!(yyvsp[0])->empty())
+      *(yyvsp[-2]) += " " + *(yyvsp[0]);
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 245:
+#line 844 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " " + *(yyvsp[-4]) + ", " + *(yyvsp[-2]) + " " + *(yyvsp[-1]);
+    if (!(yyvsp[0])->empty())
+      *(yyvsp[-5]) += " " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 246:
+#line 851 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-2]) += " " + *(yyvsp[-1]);
+    if (!(yyvsp[0])->empty())
+      *(yyvsp[-2]) += " " + *(yyvsp[0]);
+    delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-2]);
+  ;}
+    break;
+
+  case 247:
+#line 858 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-5]) += " " + *(yyvsp[-4]) + ", " + *(yyvsp[-2]) + " " + *(yyvsp[-1]);
+    if (!(yyvsp[0])->empty())
+      *(yyvsp[-5]) += " " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 248:
+#line 865 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-1]) += " " + *(yyvsp[0]);
+    delete (yyvsp[0]);
+    (yyval) = (yyvsp[-1]);
+  ;}
+    break;
+
+  case 249:
+#line 870 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    if (!(yyvsp[-3])->empty())
+      *(yyvsp[-3]) += " ";
+    *(yyvsp[-3]) += *(yyvsp[-2]) + " " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+  case 250:
+#line 877 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    if (!(yyvsp[-5])->empty())
+      *(yyvsp[-5]) += " ";
+    *(yyvsp[-5]) += *(yyvsp[-4]) + " " + *(yyvsp[-3]) + ", " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-4]); delete (yyvsp[-3]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-5]);
+  ;}
+    break;
+
+  case 251:
+#line 884 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+    {
+    *(yyvsp[-3]) += *(yyvsp[-2]) + " " + *(yyvsp[-1]) + " " + *(yyvsp[0]);
+    delete (yyvsp[-2]); delete (yyvsp[-1]); delete (yyvsp[0]);
+    (yyval) = (yyvsp[-3]);
+  ;}
+    break;
+
+
+      default: break;
+    }
+
+/* Line 1126 of yacc.c.  */
+#line 3207 "UpgradeParser.tab.c"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+
+
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
+    {
+      ++yynerrs;
+#if YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
+	{
+	  int yytype = YYTRANSLATE (yychar);
+	  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+	  YYSIZE_T yysize = yysize0;
+	  YYSIZE_T yysize1;
+	  int yysize_overflow = 0;
+	  char *yymsg = 0;
+#	  define 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;
+	  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 && yysize <= YYSTACK_ALLOC_MAXIMUM)
+	    yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg)
+	    {
+	      /* 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 = yymsg;
+	      int yyi = 0;
+	      while ((*yyp = *yyf))
+		{
+		  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		    {
+		      yyp += yytnamerr (yyp, yyarg[yyi++]);
+		      yyf += 2;
+		    }
+		  else
+		    {
+		      yyp++;
+		      yyf++;
+		    }
+		}
+	      yyerror (yymsg);
+	      YYSTACK_FREE (yymsg);
+	    }
+	  else
+	    {
+	      yyerror (YY_("syntax error"));
+	      goto yyexhaustedlab;
+	    }
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror (YY_("syntax error"));
+    }
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse look-ahead token after an
+	 error, discard it.  */
+
+      if (yychar <= YYEOF)
+        {
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+        }
+      else
+	{
+	  yydestruct ("Error: discarding", yytoken, &yylval);
+	  yychar = YYEMPTY;
+	}
+    }
+
+  /* Else will try to reuse look-ahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (0)
+     goto yyerrorlab;
+
+yyvsp -= yylen;
+  yyssp -= yylen;
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+
+      yydestruct ("Error: popping", yystos[yystate], yyvsp);
+      YYPOPSTACK;
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  *++yyvsp = yylval;
+
+
+  /* Shift the error token. */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+		 yytoken, &yylval);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp);
+      YYPOPSTACK;
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+  return yyresult;
+}
+
+
+#line 890 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
+
+
+int yyerror(const char *ErrorMsg) {
+  std::string where 
+    = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
+                  + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
+  std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
+  if (yychar == YYEMPTY || yychar == 0)
+    errMsg += "end-of-file.";
+  else
+    errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
+  std::cerr << errMsg << '\n';
+  exit(1);
+}
+