First version of llvm-upgrade that can correctly upgrade a large test
[oota-llvm.git] / tools / llvm-upgrade / UpgradeParser.cpp.cvs
1 /* A Bison parser, made by GNU Bison 2.1.  */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street, Fifth Floor,
19    Boston, MA 02110-1301, USA.  */
20
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35
36 /* Identify Bison output.  */
37 #define YYBISON 1
38
39 /* Bison version.  */
40 #define YYBISON_VERSION "2.1"
41
42 /* Skeleton name.  */
43 #define YYSKELETON_NAME "yacc.c"
44
45 /* Pure parsers.  */
46 #define YYPURE 0
47
48 /* Using locations.  */
49 #define YYLSP_NEEDED 0
50
51 /* Substitute the variable and function names.  */
52 #define yyparse Upgradeparse
53 #define yylex   Upgradelex
54 #define yyerror Upgradeerror
55 #define yylval  Upgradelval
56 #define yychar  Upgradechar
57 #define yydebug Upgradedebug
58 #define yynerrs Upgradenerrs
59
60
61 /* Tokens.  */
62 #ifndef YYTOKENTYPE
63 # define YYTOKENTYPE
64    /* Put the tokens into the symbol table, so that GDB and other debuggers
65       know about them.  */
66    enum yytokentype {
67      ESINT64VAL = 258,
68      EUINT64VAL = 259,
69      SINTVAL = 260,
70      UINTVAL = 261,
71      FPVAL = 262,
72      TRUETOK = 263,
73      FALSETOK = 264,
74      NULL_TOK = 265,
75      UNDEF = 266,
76      ZEROINITIALIZER = 267,
77      VOID = 268,
78      BOOL = 269,
79      SBYTE = 270,
80      UBYTE = 271,
81      SHORT = 272,
82      USHORT = 273,
83      INT = 274,
84      UINT = 275,
85      LONG = 276,
86      ULONG = 277,
87      FLOAT = 278,
88      DOUBLE = 279,
89      LABEL = 280,
90      OPAQUE = 281,
91      TYPE = 282,
92      VAR_ID = 283,
93      LABELSTR = 284,
94      STRINGCONSTANT = 285,
95      IMPLEMENTATION = 286,
96      BEGINTOK = 287,
97      ENDTOK = 288,
98      DECLARE = 289,
99      GLOBAL = 290,
100      CONSTANT = 291,
101      SECTION = 292,
102      VOLATILE = 293,
103      TO = 294,
104      DOTDOTDOT = 295,
105      CONST = 296,
106      INTERNAL = 297,
107      LINKONCE = 298,
108      WEAK = 299,
109      DLLIMPORT = 300,
110      DLLEXPORT = 301,
111      EXTERN_WEAK = 302,
112      APPENDING = 303,
113      NOT = 304,
114      EXTERNAL = 305,
115      TARGET = 306,
116      TRIPLE = 307,
117      ENDIAN = 308,
118      POINTERSIZE = 309,
119      LITTLE = 310,
120      BIG = 311,
121      ALIGN = 312,
122      DEPLIBS = 313,
123      CALL = 314,
124      TAIL = 315,
125      ASM_TOK = 316,
126      MODULE = 317,
127      SIDEEFFECT = 318,
128      CC_TOK = 319,
129      CCC_TOK = 320,
130      CSRETCC_TOK = 321,
131      FASTCC_TOK = 322,
132      COLDCC_TOK = 323,
133      X86_STDCALLCC_TOK = 324,
134      X86_FASTCALLCC_TOK = 325,
135      DATALAYOUT = 326,
136      RET = 327,
137      BR = 328,
138      SWITCH = 329,
139      INVOKE = 330,
140      UNWIND = 331,
141      UNREACHABLE = 332,
142      ADD = 333,
143      SUB = 334,
144      MUL = 335,
145      UDIV = 336,
146      SDIV = 337,
147      FDIV = 338,
148      UREM = 339,
149      SREM = 340,
150      FREM = 341,
151      AND = 342,
152      OR = 343,
153      XOR = 344,
154      SETLE = 345,
155      SETGE = 346,
156      SETLT = 347,
157      SETGT = 348,
158      SETEQ = 349,
159      SETNE = 350,
160      MALLOC = 351,
161      ALLOCA = 352,
162      FREE = 353,
163      LOAD = 354,
164      STORE = 355,
165      GETELEMENTPTR = 356,
166      PHI_TOK = 357,
167      SELECT = 358,
168      SHL = 359,
169      LSHR = 360,
170      ASHR = 361,
171      VAARG = 362,
172      EXTRACTELEMENT = 363,
173      INSERTELEMENT = 364,
174      SHUFFLEVECTOR = 365,
175      CAST = 366
176    };
177 #endif
178 /* Tokens.  */
179 #define ESINT64VAL 258
180 #define EUINT64VAL 259
181 #define SINTVAL 260
182 #define UINTVAL 261
183 #define FPVAL 262
184 #define TRUETOK 263
185 #define FALSETOK 264
186 #define NULL_TOK 265
187 #define UNDEF 266
188 #define ZEROINITIALIZER 267
189 #define VOID 268
190 #define BOOL 269
191 #define SBYTE 270
192 #define UBYTE 271
193 #define SHORT 272
194 #define USHORT 273
195 #define INT 274
196 #define UINT 275
197 #define LONG 276
198 #define ULONG 277
199 #define FLOAT 278
200 #define DOUBLE 279
201 #define LABEL 280
202 #define OPAQUE 281
203 #define TYPE 282
204 #define VAR_ID 283
205 #define LABELSTR 284
206 #define STRINGCONSTANT 285
207 #define IMPLEMENTATION 286
208 #define BEGINTOK 287
209 #define ENDTOK 288
210 #define DECLARE 289
211 #define GLOBAL 290
212 #define CONSTANT 291
213 #define SECTION 292
214 #define VOLATILE 293
215 #define TO 294
216 #define DOTDOTDOT 295
217 #define CONST 296
218 #define INTERNAL 297
219 #define LINKONCE 298
220 #define WEAK 299
221 #define DLLIMPORT 300
222 #define DLLEXPORT 301
223 #define EXTERN_WEAK 302
224 #define APPENDING 303
225 #define NOT 304
226 #define EXTERNAL 305
227 #define TARGET 306
228 #define TRIPLE 307
229 #define ENDIAN 308
230 #define POINTERSIZE 309
231 #define LITTLE 310
232 #define BIG 311
233 #define ALIGN 312
234 #define DEPLIBS 313
235 #define CALL 314
236 #define TAIL 315
237 #define ASM_TOK 316
238 #define MODULE 317
239 #define SIDEEFFECT 318
240 #define CC_TOK 319
241 #define CCC_TOK 320
242 #define CSRETCC_TOK 321
243 #define FASTCC_TOK 322
244 #define COLDCC_TOK 323
245 #define X86_STDCALLCC_TOK 324
246 #define X86_FASTCALLCC_TOK 325
247 #define DATALAYOUT 326
248 #define RET 327
249 #define BR 328
250 #define SWITCH 329
251 #define INVOKE 330
252 #define UNWIND 331
253 #define UNREACHABLE 332
254 #define ADD 333
255 #define SUB 334
256 #define MUL 335
257 #define UDIV 336
258 #define SDIV 337
259 #define FDIV 338
260 #define UREM 339
261 #define SREM 340
262 #define FREM 341
263 #define AND 342
264 #define OR 343
265 #define XOR 344
266 #define SETLE 345
267 #define SETGE 346
268 #define SETLT 347
269 #define SETGT 348
270 #define SETEQ 349
271 #define SETNE 350
272 #define MALLOC 351
273 #define ALLOCA 352
274 #define FREE 353
275 #define LOAD 354
276 #define STORE 355
277 #define GETELEMENTPTR 356
278 #define PHI_TOK 357
279 #define SELECT 358
280 #define SHL 359
281 #define LSHR 360
282 #define ASHR 361
283 #define VAARG 362
284 #define EXTRACTELEMENT 363
285 #define INSERTELEMENT 364
286 #define SHUFFLEVECTOR 365
287 #define CAST 366
288
289
290
291
292 /* Copy the first part of user declarations.  */
293 #line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
294
295 #include "ParserInternals.h"
296 #include <llvm/ADT/StringExtras.h>
297 #include <algorithm>
298 #include <list>
299 #include <utility>
300 #include <iostream>
301
302 #define YYERROR_VERBOSE 1
303 #define YYINCLUDED_STDLIB_H
304 #define YYDEBUG 1
305
306 int yylex();                       // declaration" of xxx warnings.
307 int yyparse();
308 extern int yydebug;
309
310 static std::string CurFilename;
311 static std::ostream *O = 0;
312 std::istream* LexInput = 0;
313 unsigned SizeOfPointer = 32;
314
315 void UpgradeAssembly(const std::string &infile, std::istream& in, 
316                      std::ostream &out, bool debug)
317 {
318   Upgradelineno = 1; 
319   CurFilename = infile;
320   LexInput = &in;
321   yydebug = debug;
322   O = &out;
323
324   if (yyparse()) {
325     std::cerr << "Parse failed.\n";
326     exit(1);
327   }
328 }
329
330 const char* getCastOpcode(TypeInfo& SrcTy, TypeInfo&DstTy) {
331   unsigned SrcBits = SrcTy.getBitWidth();
332   unsigned DstBits = DstTy.getBitWidth();
333   const char* opcode = "bitcast";
334   // Run through the possibilities ...
335   if (DstTy.isIntegral()) {                        // Casting to integral
336     if (SrcTy.isIntegral()) {                      // Casting from integral
337       if (DstBits < SrcBits)
338         opcode = "trunc";
339       else if (DstBits > SrcBits) {                // its an extension
340         if (SrcTy.isSigned())
341           opcode ="sext";                          // signed -> SEXT
342         else
343           opcode = "zext";                         // unsigned -> ZEXT
344       } else {
345         opcode = "bitcast";                        // Same size, No-op cast
346       }
347     } else if (SrcTy.isFloatingPoint()) {          // Casting from floating pt
348       if (DstTy.isSigned()) 
349         opcode = "fptosi";                         // FP -> sint
350       else
351         opcode = "fptoui";                         // FP -> uint 
352     } else if (SrcTy.isPacked()) {
353       assert(DstBits == SrcTy.getBitWidth() &&
354                "Casting packed to integer of different width");
355         opcode = "bitcast";                        // same size, no-op cast
356     } else {
357       assert(SrcTy.isPointer() &&
358              "Casting from a value that is not first-class type");
359       opcode = "ptrtoint";                         // ptr -> int
360     }
361   } else if (DstTy.isFloatingPoint()) {           // Casting to floating pt
362     if (SrcTy.isIntegral()) {                     // Casting from integral
363       if (SrcTy.isSigned())
364         opcode = "sitofp";                         // sint -> FP
365       else
366         opcode = "uitofp";                         // uint -> FP
367     } else if (SrcTy.isFloatingPoint()) {         // Casting from floating pt
368       if (DstBits < SrcBits) {
369         opcode = "fptrunc";                        // FP -> smaller FP
370       } else if (DstBits > SrcBits) {
371         opcode = "fpext";                          // FP -> larger FP
372       } else  {
373         opcode ="bitcast";                         // same size, no-op cast
374       }
375     } else if (SrcTy.isPacked()) {
376       assert(DstBits == SrcTy.getBitWidth() &&
377              "Casting packed to floating point of different width");
378         opcode = "bitcast";                        // same size, no-op cast
379     } else {
380       assert(0 && "Casting pointer or non-first class to float");
381     }
382   } else if (DstTy.isPacked()) {
383     if (SrcTy.isPacked()) {
384       assert(DstTy.getBitWidth() == SrcTy.getBitWidth() &&
385              "Casting packed to packed of different widths");
386       opcode = "bitcast";                          // packed -> packed
387     } else if (DstTy.getBitWidth() == SrcBits) {
388       opcode = "bitcast";                          // float/int -> packed
389     } else {
390       assert(!"Illegal cast to packed (wrong type or size)");
391     }
392   } else if (DstTy.isPointer()) {
393     if (SrcTy.isPointer()) {
394       opcode = "bitcast";                          // ptr -> ptr
395     } else if (SrcTy.isIntegral()) {
396       opcode = "inttoptr";                         // int -> ptr
397     } else {
398       assert(!"Casting pointer to other than pointer or int");
399     }
400   } else {
401     assert(!"Casting to type that is not first-class");
402   }
403   return opcode;
404 }
405
406
407
408 /* Enabling traces.  */
409 #ifndef YYDEBUG
410 # define YYDEBUG 0
411 #endif
412
413 /* Enabling verbose error messages.  */
414 #ifdef YYERROR_VERBOSE
415 # undef YYERROR_VERBOSE
416 # define YYERROR_VERBOSE 1
417 #else
418 # define YYERROR_VERBOSE 0
419 #endif
420
421 /* Enabling the token table.  */
422 #ifndef YYTOKEN_TABLE
423 # define YYTOKEN_TABLE 0
424 #endif
425
426 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
427 #line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
428 typedef union YYSTYPE {
429   std::string*    String;
430   TypeInfo        Type;
431   ValueInfo       Value;
432   ConstInfo       Const;
433 } YYSTYPE;
434 /* Line 196 of yacc.c.  */
435 #line 436 "UpgradeParser.tab.c"
436 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
437 # define YYSTYPE_IS_DECLARED 1
438 # define YYSTYPE_IS_TRIVIAL 1
439 #endif
440
441
442
443 /* Copy the second part of user declarations.  */
444
445
446 /* Line 219 of yacc.c.  */
447 #line 448 "UpgradeParser.tab.c"
448
449 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
450 # define YYSIZE_T __SIZE_TYPE__
451 #endif
452 #if ! defined (YYSIZE_T) && defined (size_t)
453 # define YYSIZE_T size_t
454 #endif
455 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
456 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457 # define YYSIZE_T size_t
458 #endif
459 #if ! defined (YYSIZE_T)
460 # define YYSIZE_T unsigned int
461 #endif
462
463 #ifndef YY_
464 # if YYENABLE_NLS
465 #  if ENABLE_NLS
466 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
467 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
468 #  endif
469 # endif
470 # ifndef YY_
471 #  define YY_(msgid) msgid
472 # endif
473 #endif
474
475 #if ! defined (yyoverflow) || YYERROR_VERBOSE
476
477 /* The parser invokes alloca or malloc; define the necessary symbols.  */
478
479 # ifdef YYSTACK_USE_ALLOCA
480 #  if YYSTACK_USE_ALLOCA
481 #   ifdef __GNUC__
482 #    define YYSTACK_ALLOC __builtin_alloca
483 #   else
484 #    define YYSTACK_ALLOC alloca
485 #    if defined (__STDC__) || defined (__cplusplus)
486 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487 #     define YYINCLUDED_STDLIB_H
488 #    endif
489 #   endif
490 #  endif
491 # endif
492
493 # ifdef YYSTACK_ALLOC
494    /* Pacify GCC's `empty if-body' warning. */
495 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
496 #  ifndef YYSTACK_ALLOC_MAXIMUM
497     /* The OS might guarantee only one guard page at the bottom of the stack,
498        and a page size can be as small as 4096 bytes.  So we cannot safely
499        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
500        to allow for a few compiler-allocated temporary stack slots.  */
501 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
502 #  endif
503 # else
504 #  define YYSTACK_ALLOC YYMALLOC
505 #  define YYSTACK_FREE YYFREE
506 #  ifndef YYSTACK_ALLOC_MAXIMUM
507 #   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
508 #  endif
509 #  ifdef __cplusplus
510 extern "C" {
511 #  endif
512 #  ifndef YYMALLOC
513 #   define YYMALLOC malloc
514 #   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
515         && (defined (__STDC__) || defined (__cplusplus)))
516 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
517 #   endif
518 #  endif
519 #  ifndef YYFREE
520 #   define YYFREE free
521 #   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
522         && (defined (__STDC__) || defined (__cplusplus)))
523 void free (void *); /* INFRINGES ON USER NAME SPACE */
524 #   endif
525 #  endif
526 #  ifdef __cplusplus
527 }
528 #  endif
529 # endif
530 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
531
532
533 #if (! defined (yyoverflow) \
534      && (! defined (__cplusplus) \
535          || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
536
537 /* A type that is properly aligned for any stack member.  */
538 union yyalloc
539 {
540   short int yyss;
541   YYSTYPE yyvs;
542   };
543
544 /* The size of the maximum gap between one aligned stack and the next.  */
545 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
546
547 /* The size of an array large to enough to hold all stacks, each with
548    N elements.  */
549 # define YYSTACK_BYTES(N) \
550      ((N) * (sizeof (short int) + sizeof (YYSTYPE))                     \
551       + YYSTACK_GAP_MAXIMUM)
552
553 /* Copy COUNT objects from FROM to TO.  The source and destination do
554    not overlap.  */
555 # ifndef YYCOPY
556 #  if defined (__GNUC__) && 1 < __GNUC__
557 #   define YYCOPY(To, From, Count) \
558       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
559 #  else
560 #   define YYCOPY(To, From, Count)              \
561       do                                        \
562         {                                       \
563           YYSIZE_T yyi;                         \
564           for (yyi = 0; yyi < (Count); yyi++)   \
565             (To)[yyi] = (From)[yyi];            \
566         }                                       \
567       while (0)
568 #  endif
569 # endif
570
571 /* Relocate STACK from its old location to the new one.  The
572    local variables YYSIZE and YYSTACKSIZE give the old and new number of
573    elements in the stack, and YYPTR gives the new location of the
574    stack.  Advance YYPTR to a properly aligned location for the next
575    stack.  */
576 # define YYSTACK_RELOCATE(Stack)                                        \
577     do                                                                  \
578       {                                                                 \
579         YYSIZE_T yynewbytes;                                            \
580         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
581         Stack = &yyptr->Stack;                                          \
582         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
583         yyptr += yynewbytes / sizeof (*yyptr);                          \
584       }                                                                 \
585     while (0)
586
587 #endif
588
589 #if defined (__STDC__) || defined (__cplusplus)
590    typedef signed char yysigned_char;
591 #else
592    typedef short int yysigned_char;
593 #endif
594
595 /* YYFINAL -- State number of the termination state. */
596 #define YYFINAL  4
597 /* YYLAST -- Last index in YYTABLE.  */
598 #define YYLAST   1193
599
600 /* YYNTOKENS -- Number of terminals. */
601 #define YYNTOKENS  126
602 /* YYNNTS -- Number of nonterminals. */
603 #define YYNNTS  70
604 /* YYNRULES -- Number of rules. */
605 #define YYNRULES  249
606 /* YYNRULES -- Number of states. */
607 #define YYNSTATES  508
608
609 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
610 #define YYUNDEFTOK  2
611 #define YYMAXUTOK   366
612
613 #define YYTRANSLATE(YYX)                                                \
614   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
615
616 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
617 static const unsigned char yytranslate[] =
618 {
619        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
620        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
621        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
622        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
623      115,   116,   124,     2,   113,     2,     2,     2,     2,     2,
624        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
625      120,   112,   121,     2,     2,     2,     2,     2,     2,     2,
626        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
627        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
628        2,   117,   114,   119,     2,     2,     2,     2,     2,   125,
629        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
630        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
631      118,     2,     2,   122,     2,   123,     2,     2,     2,     2,
632        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
633        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
634        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
635        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
636        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
637        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
638        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
639        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
640        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
641        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
642        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
643        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
644        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
645        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
646       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
647       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
648       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
649       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
650       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
651       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
652       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
653       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
654       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
655      105,   106,   107,   108,   109,   110,   111
656 };
657
658 #if YYDEBUG
659 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
660    YYRHS.  */
661 static const unsigned short int yyprhs[] =
662 {
663        0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
664       19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
665       39,    41,    43,    45,    47,    49,    51,    53,    55,    57,
666       59,    61,    63,    65,    67,    69,    71,    73,    75,    77,
667       80,    81,    83,    85,    87,    89,    91,    93,    95,    96,
668       98,   100,   102,   104,   106,   108,   111,   112,   113,   116,
669      117,   121,   124,   125,   127,   128,   132,   134,   137,   139,
670      141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
671      161,   163,   165,   167,   169,   171,   173,   175,   177,   180,
672      185,   191,   197,   201,   204,   207,   209,   213,   215,   219,
673      221,   222,   227,   231,   235,   240,   245,   249,   252,   255,
674      258,   261,   264,   267,   270,   273,   276,   279,   286,   292,
675      301,   308,   315,   322,   329,   336,   345,   354,   358,   360,
676      362,   364,   366,   369,   372,   377,   380,   382,   387,   390,
677      395,   402,   409,   416,   423,   427,   432,   433,   435,   437,
678      439,   443,   447,   451,   455,   459,   463,   465,   466,   468,
679      470,   472,   473,   476,   480,   482,   484,   488,   490,   491,
680      500,   502,   504,   508,   510,   512,   516,   517,   519,   521,
681      525,   526,   528,   530,   532,   534,   536,   538,   540,   542,
682      544,   548,   550,   556,   558,   560,   562,   564,   567,   570,
683      572,   576,   579,   580,   582,   585,   588,   592,   602,   612,
684      621,   635,   637,   639,   646,   652,   655,   662,   670,   672,
685      676,   678,   679,   682,   684,   690,   696,   702,   705,   710,
686      715,   722,   727,   732,   739,   746,   749,   757,   759,   762,
687      763,   765,   766,   770,   777,   781,   788,   791,   796,   803
688 };
689
690 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
691 static const short int yyrhs[] =
692 {
693      157,     0,    -1,     5,    -1,     6,    -1,     3,    -1,     4,
694       -1,    78,    -1,    79,    -1,    80,    -1,    81,    -1,    82,
695       -1,    83,    -1,    84,    -1,    85,    -1,    86,    -1,    87,
696       -1,    88,    -1,    89,    -1,    90,    -1,    91,    -1,    92,
697       -1,    93,    -1,    94,    -1,    95,    -1,   104,    -1,   105,
698       -1,   106,    -1,    21,    -1,    19,    -1,    17,    -1,    15,
699       -1,    22,    -1,    20,    -1,    18,    -1,    16,    -1,   133,
700       -1,   134,    -1,    23,    -1,    24,    -1,   165,   112,    -1,
701       -1,    42,    -1,    43,    -1,    44,    -1,    48,    -1,    45,
702       -1,    46,    -1,    47,    -1,    -1,    65,    -1,    66,    -1,
703       67,    -1,    68,    -1,    69,    -1,    70,    -1,    64,     4,
704       -1,    -1,    -1,    57,     4,    -1,    -1,   113,    57,     4,
705       -1,    37,    30,    -1,    -1,   142,    -1,    -1,   113,   145,
706      144,    -1,   142,    -1,    57,     4,    -1,   148,    -1,    13,
707       -1,   150,    -1,    13,    -1,   150,    -1,    14,    -1,    15,
708       -1,    16,    -1,    17,    -1,    18,    -1,    19,    -1,    20,
709       -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,
710       -1,    26,    -1,   149,    -1,   179,    -1,   114,     4,    -1,
711      147,   115,   152,   116,    -1,   117,     4,   118,   150,   119,
712       -1,   120,     4,   118,   150,   121,    -1,   122,   151,   123,
713       -1,   122,   123,    -1,   150,   124,    -1,   150,    -1,   151,
714      113,   150,    -1,   151,    -1,   151,   113,    40,    -1,    40,
715       -1,    -1,   148,   117,   155,   119,    -1,   148,   117,   119,
716       -1,   148,   125,    30,    -1,   148,   120,   155,   121,    -1,
717      148,   122,   155,   123,    -1,   148,   122,   123,    -1,   148,
718       10,    -1,   148,    11,    -1,   148,   179,    -1,   148,   154,
719       -1,   148,    12,    -1,   133,   128,    -1,   134,     4,    -1,
720       14,     8,    -1,    14,     9,    -1,   136,     7,    -1,   111,
721      115,   153,    39,   148,   116,    -1,   101,   115,   153,   193,
722      116,    -1,   103,   115,   153,   113,   153,   113,   153,   116,
723       -1,   129,   115,   153,   113,   153,   116,    -1,   130,   115,
724      153,   113,   153,   116,    -1,   131,   115,   153,   113,   153,
725      116,    -1,   132,   115,   153,   113,   153,   116,    -1,   108,
726      115,   153,   113,   153,   116,    -1,   109,   115,   153,   113,
727      153,   113,   153,   116,    -1,   110,   115,   153,   113,   153,
728      113,   153,   116,    -1,   155,   113,   153,    -1,   153,    -1,
729       35,    -1,    36,    -1,   158,    -1,   158,   174,    -1,   158,
730      176,    -1,   158,    62,    61,   160,    -1,   158,    31,    -1,
731      159,    -1,   159,   137,    27,   146,    -1,   159,   176,    -1,
732      159,    62,    61,   160,    -1,   159,   137,   138,   156,   153,
733      144,    -1,   159,   137,    50,   156,   148,   144,    -1,   159,
734      137,    45,   156,   148,   144,    -1,   159,   137,    47,   156,
735      148,   144,    -1,   159,    51,   162,    -1,   159,    58,   112,
736      163,    -1,    -1,    30,    -1,    56,    -1,    55,    -1,    53,
737      112,   161,    -1,    54,   112,     4,    -1,    52,   112,    30,
738       -1,    71,   112,    30,    -1,   117,   164,   119,    -1,   164,
739      113,    30,    -1,    30,    -1,    -1,    28,    -1,    30,    -1,
740      165,    -1,    -1,   148,   166,    -1,   168,   113,   167,    -1,
741      167,    -1,   168,    -1,   168,   113,    40,    -1,    40,    -1,
742       -1,   139,   146,   165,   115,   169,   116,   143,   140,    -1,
743       32,    -1,   122,    -1,   138,   170,   171,    -1,    33,    -1,
744      123,    -1,   172,   182,   173,    -1,    -1,    45,    -1,    47,
745       -1,    34,   175,   170,    -1,    -1,    63,    -1,     3,    -1,
746        4,    -1,     7,    -1,     8,    -1,     9,    -1,    10,    -1,
747       11,    -1,    12,    -1,   120,   155,   121,    -1,   154,    -1,
748       61,   177,    30,   113,    30,    -1,   127,    -1,   165,    -1,
749      179,    -1,   178,    -1,   148,   180,    -1,   182,   183,    -1,
750      183,    -1,   184,   137,   185,    -1,   184,   187,    -1,    -1,
751       29,    -1,    72,   181,    -1,    72,    13,    -1,    73,    25,
752      180,    -1,    73,    14,   180,   113,    25,   180,   113,    25,
753      180,    -1,    74,   135,   180,   113,    25,   180,   117,   186,
754      119,    -1,    74,   135,   180,   113,    25,   180,   117,   119,
755       -1,    75,   139,   146,   180,   115,   190,   116,    39,    25,
756      180,    76,    25,   180,    -1,    76,    -1,    77,    -1,   186,
757      135,   178,   113,    25,   180,    -1,   135,   178,   113,    25,
758      180,    -1,   137,   192,    -1,   148,   117,   180,   113,   180,
759      119,    -1,   188,   113,   117,   180,   113,   180,   119,    -1,
760      181,    -1,   189,   113,   181,    -1,   189,    -1,    -1,    60,
761       59,    -1,    59,    -1,   129,   148,   180,   113,   180,    -1,
762      130,   148,   180,   113,   180,    -1,   131,   148,   180,   113,
763      180,    -1,    49,   181,    -1,   132,   181,   113,   181,    -1,
764      111,   181,    39,   148,    -1,   103,   181,   113,   181,   113,
765      181,    -1,   107,   181,   113,   148,    -1,   108,   181,   113,
766      181,    -1,   109,   181,   113,   181,   113,   181,    -1,   110,
767      181,   113,   181,   113,   181,    -1,   102,   188,    -1,   191,
768      139,   146,   180,   115,   190,   116,    -1,   195,    -1,   113,
769      189,    -1,    -1,    38,    -1,    -1,    96,   148,   141,    -1,
770       96,   148,   113,    20,   180,   141,    -1,    97,   148,   141,
771       -1,    97,   148,   113,    20,   180,   141,    -1,    98,   181,
772       -1,   194,    99,   148,   180,    -1,   194,   100,   181,   113,
773      148,   180,    -1,   101,   148,   180,   193,    -1
774 };
775
776 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
777 static const unsigned short int yyrline[] =
778 {
779        0,   189,   189,   189,   190,   190,   194,   194,   194,   194,
780      194,   194,   194,   194,   194,   195,   195,   195,   196,   196,
781      196,   196,   196,   196,   197,   197,   197,   201,   201,   201,
782      201,   202,   202,   202,   202,   203,   203,   204,   204,   207,
783      211,   216,   216,   216,   216,   216,   216,   217,   218,   221,
784      221,   221,   221,   221,   222,   222,   223,   228,   229,   232,
785      233,   241,   247,   248,   251,   252,   261,   262,   275,   275,
786      276,   276,   277,   281,   281,   281,   281,   281,   281,   281,
787      282,   282,   282,   282,   282,   283,   283,   283,   288,   293,
788      299,   306,   313,   319,   323,   333,   336,   344,   345,   350,
789      353,   363,   369,   374,   380,   386,   392,   397,   403,   409,
790      415,   421,   427,   433,   439,   445,   451,   459,   466,   472,
791      477,   482,   487,   492,   497,   502,   507,   517,   522,   527,
792      527,   537,   542,   545,   550,   553,   556,   560,   565,   570,
793      575,   581,   587,   593,   599,   604,   609,   614,   616,   616,
794      619,   624,   631,   636,   643,   650,   655,   656,   664,   664,
795      665,   665,   667,   674,   678,   682,   685,   690,   693,   697,
796      717,   720,   724,   733,   734,   736,   744,   745,   746,   750,
797      763,   765,   769,   770,   771,   772,   773,   774,   775,   776,
798      777,   782,   783,   792,   792,   795,   795,   801,   808,   810,
799      817,   821,   826,   829,   835,   840,   845,   850,   857,   863,
800      869,   878,   883,   889,   894,   902,   909,   915,   923,   924,
801      932,   933,   937,   942,   945,   950,   955,   960,   965,   970,
802      977,   982,   987,   992,   997,  1002,  1007,  1016,  1021,  1025,
803     1029,  1030,  1033,  1040,  1047,  1054,  1061,  1066,  1073,  1080
804 };
805 #endif
806
807 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
808 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
809    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
810 static const char *const yytname[] =
811 {
812   "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL",
813   "UINTVAL", "FPVAL", "TRUETOK", "FALSETOK", "NULL_TOK", "UNDEF",
814   "ZEROINITIALIZER", "VOID", "BOOL", "SBYTE", "UBYTE", "SHORT", "USHORT",
815   "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", "LABEL", "OPAQUE",
816   "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
817   "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION",
818   "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK",
819   "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL",
820   "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN",
821   "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", "SIDEEFFECT", "CC_TOK",
822   "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", "COLDCC_TOK",
823   "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", "RET", "BR",
824   "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB", "MUL", "UDIV",
825   "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR", "XOR", "SETLE",
826   "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC", "ALLOCA", "FREE",
827   "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "LSHR",
828   "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
829   "CAST", "'='", "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'",
830   "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", "IntVal", "EInt64Val",
831   "ArithmeticOps", "LogicalOps", "SetCondOps", "ShiftOps", "SIntType",
832   "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage",
833   "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection",
834   "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV",
835   "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal",
836   "ConstExpr", "ConstVector", "GlobalType", "Module", "DefinitionList",
837   "ConstPool", "AsmBlock", "BigOrLittle", "TargetDefinition",
838   "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
839   "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
840   "END", "Function", "FnDeclareLinkage", "FunctionProto", "OptSideEffect",
841   "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal",
842   "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst",
843   "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE",
844   "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0
845 };
846 #endif
847
848 # ifdef YYPRINT
849 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
850    token YYLEX-NUM.  */
851 static const unsigned short int yytoknum[] =
852 {
853        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
854      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
855      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
856      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
857      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
858      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
859      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
860      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
861      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
862      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
863      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
864      365,   366,    61,    44,    92,    40,    41,    91,   120,    93,
865       60,    62,   123,   125,    42,    99
866 };
867 # endif
868
869 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
870 static const unsigned char yyr1[] =
871 {
872        0,   126,   127,   127,   128,   128,   129,   129,   129,   129,
873      129,   129,   129,   129,   129,   130,   130,   130,   131,   131,
874      131,   131,   131,   131,   132,   132,   132,   133,   133,   133,
875      133,   134,   134,   134,   134,   135,   135,   136,   136,   137,
876      137,   138,   138,   138,   138,   138,   138,   138,   138,   139,
877      139,   139,   139,   139,   139,   139,   139,   140,   140,   141,
878      141,   142,   143,   143,   144,   144,   145,   145,   146,   146,
879      147,   147,   148,   149,   149,   149,   149,   149,   149,   149,
880      149,   149,   149,   149,   149,   150,   150,   150,   150,   150,
881      150,   150,   150,   150,   150,   151,   151,   152,   152,   152,
882      152,   153,   153,   153,   153,   153,   153,   153,   153,   153,
883      153,   153,   153,   153,   153,   153,   153,   154,   154,   154,
884      154,   154,   154,   154,   154,   154,   154,   155,   155,   156,
885      156,   157,   158,   158,   158,   158,   158,   159,   159,   159,
886      159,   159,   159,   159,   159,   159,   159,   160,   161,   161,
887      162,   162,   162,   162,   163,   164,   164,   164,   165,   165,
888      166,   166,   167,   168,   168,   169,   169,   169,   169,   170,
889      171,   171,   172,   173,   173,   174,   175,   175,   175,   176,
890      177,   177,   178,   178,   178,   178,   178,   178,   178,   178,
891      178,   178,   178,   179,   179,   180,   180,   181,   182,   182,
892      183,   184,   184,   184,   185,   185,   185,   185,   185,   185,
893      185,   185,   185,   186,   186,   187,   188,   188,   189,   189,
894      190,   190,   191,   191,   192,   192,   192,   192,   192,   192,
895      192,   192,   192,   192,   192,   192,   192,   192,   193,   193,
896      194,   194,   195,   195,   195,   195,   195,   195,   195,   195
897 };
898
899 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
900 static const unsigned char yyr2[] =
901 {
902        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
903        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
904        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
905        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
906        0,     1,     1,     1,     1,     1,     1,     1,     0,     1,
907        1,     1,     1,     1,     1,     2,     0,     0,     2,     0,
908        3,     2,     0,     1,     0,     3,     1,     2,     1,     1,
909        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
910        1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
911        5,     5,     3,     2,     2,     1,     3,     1,     3,     1,
912        0,     4,     3,     3,     4,     4,     3,     2,     2,     2,
913        2,     2,     2,     2,     2,     2,     2,     6,     5,     8,
914        6,     6,     6,     6,     6,     8,     8,     3,     1,     1,
915        1,     1,     2,     2,     4,     2,     1,     4,     2,     4,
916        6,     6,     6,     6,     3,     4,     0,     1,     1,     1,
917        3,     3,     3,     3,     3,     3,     1,     0,     1,     1,
918        1,     0,     2,     3,     1,     1,     3,     1,     0,     8,
919        1,     1,     3,     1,     1,     3,     0,     1,     1,     3,
920        0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
921        3,     1,     5,     1,     1,     1,     1,     2,     2,     1,
922        3,     2,     0,     1,     2,     2,     3,     9,     9,     8,
923       13,     1,     1,     6,     5,     2,     6,     7,     1,     3,
924        1,     0,     2,     1,     5,     5,     5,     2,     4,     4,
925        6,     4,     4,     6,     6,     2,     7,     1,     2,     0,
926        1,     0,     3,     6,     3,     6,     2,     4,     6,     4
927 };
928
929 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
930    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
931    means the default is an error.  */
932 static const unsigned char yydefact[] =
933 {
934      146,     0,    48,   136,     1,   135,   176,    41,    42,    43,
935       45,    46,    47,    44,     0,    56,   202,   132,   133,   158,
936      159,     0,     0,     0,    48,     0,   138,   177,   178,    56,
937        0,     0,    49,    50,    51,    52,    53,    54,     0,     0,
938      203,   202,   199,    40,     0,     0,     0,     0,   144,     0,
939        0,     0,     0,     0,     0,     0,    39,   179,   147,   134,
940       55,     2,     3,    69,    73,    74,    75,    76,    77,    78,
941       79,    80,    81,    82,    83,    84,    85,     0,     0,     0,
942        0,   193,     0,     0,    68,    86,    72,   194,    87,   170,
943      171,   172,   173,   174,   175,   198,   241,   201,     0,     0,
944        0,     0,   157,   145,   139,   137,   129,   130,     0,     0,
945        0,     0,    88,     0,     0,    71,    93,    95,     0,     0,
946      100,    94,   240,     0,   223,     0,     0,     0,     0,    56,
947      211,   212,     6,     7,     8,     9,    10,    11,    12,    13,
948       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
949        0,     0,     0,     0,     0,     0,    24,    25,    26,     0,
950        0,     0,     0,     0,     0,     0,     0,     0,   200,    56,
951      215,     0,   237,   152,   149,   148,   150,   151,   153,   156,
952        0,    64,    64,    64,    73,    74,    75,    76,    77,    78,
953       79,    80,    81,    82,    83,     0,     0,     0,     0,    64,
954        0,     0,     0,    92,   168,    99,    97,     0,     0,   227,
955      222,   205,   204,     0,     0,    30,    34,    29,    33,    28,
956       32,    27,    31,    35,    36,     0,     0,    59,    59,   246,
957        0,     0,   235,     0,     0,     0,     0,     0,     0,     0,
958        0,     0,     0,     0,     0,     0,     0,   154,     0,   142,
959      143,   141,   114,   115,     4,     5,   112,   113,   116,   107,
960      108,   111,     0,     0,     0,     0,     0,     0,     0,     0,
961        0,     0,     0,     0,     0,     0,   110,   109,   140,    70,
962       70,    96,   167,   161,   164,   165,     0,     0,    89,   182,
963      183,   184,   185,   186,   187,   188,   189,   180,     0,   191,
964      196,   195,   197,     0,   206,     0,     0,     0,   242,     0,
965      244,   239,     0,     0,     0,     0,     0,     0,     0,     0,
966        0,     0,     0,     0,     0,     0,     0,   155,     0,     0,
967       66,    64,     0,     0,     0,     0,     0,     0,   102,   128,
968        0,     0,   106,     0,   103,     0,     0,     0,     0,    90,
969       91,   160,   162,     0,    62,    98,   181,     0,     0,     0,
970        0,     0,     0,     0,     0,     0,   249,     0,     0,     0,
971      231,   232,     0,     0,   229,     0,     0,     0,   228,     0,
972      247,     0,    61,    67,    65,   239,     0,     0,     0,     0,
973        0,     0,   101,   104,   105,     0,     0,     0,     0,   166,
974      163,    63,    57,     0,   190,     0,     0,   221,    59,    60,
975       59,   218,   238,     0,     0,     0,     0,     0,   224,   225,
976      226,   221,     0,     0,     0,     0,     0,     0,     0,   127,
977        0,     0,     0,     0,     0,   169,     0,     0,     0,   220,
978        0,     0,   243,   245,     0,     0,     0,   230,   233,   234,
979        0,   248,   118,     0,     0,     0,     0,     0,     0,     0,
980        0,     0,    58,   192,     0,     0,     0,   219,   216,     0,
981      236,     0,   124,     0,     0,   117,   120,   121,   122,   123,
982        0,   209,     0,     0,     0,   217,     0,     0,     0,   207,
983        0,   208,     0,     0,   119,   125,   126,     0,     0,     0,
984        0,     0,     0,   214,     0,     0,   213,   210
985 };
986
987 /* YYDEFGOTO[NTERM-NUM]. */
988 static const short int yydefgoto[] =
989 {
990       -1,    81,   256,   272,   273,   274,   275,   195,   196,   225,
991      197,    24,    15,    38,   435,   308,   330,   402,   249,   331,
992       82,    83,   198,    85,    86,   118,   207,   339,   299,   340,
993      108,     1,     2,     3,    59,   176,    48,   103,   180,    87,
994      352,   284,   285,   286,    39,    91,    16,    94,    17,    29,
995       18,   357,   300,    88,   302,   411,    41,    42,    43,   168,
996      483,    97,   232,   439,   440,   169,   170,   366,   171,   172
997 };
998
999 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1000    STATE-NUM.  */
1001 #define YYPACT_NINF -403
1002 static const short int yypact[] =
1003 {
1004     -403,    26,   210,   114,  -403,  -403,   106,  -403,  -403,  -403,
1005     -403,  -403,  -403,  -403,   -49,   201,    53,  -403,  -403,  -403,
1006     -403,    15,    -5,    59,    31,    42,  -403,  -403,  -403,   201,
1007      113,   167,  -403,  -403,  -403,  -403,  -403,  -403,   920,    11,
1008     -403,     9,  -403,   140,    72,    74,    79,    85,  -403,    87,
1009      113,   920,   104,   104,   104,   104,  -403,  -403,  -403,  -403,
1010     -403,  -403,  -403,    94,  -403,  -403,  -403,  -403,  -403,  -403,
1011     -403,  -403,  -403,  -403,  -403,  -403,  -403,   226,   227,   229,
1012      408,  -403,   140,   120,  -403,  -403,   -59,  -403,  -403,  -403,
1013     -403,  -403,  -403,  -403,  -403,  -403,  1082,  -403,   204,   119,
1014      232,   213,   215,  -403,  -403,  -403,  -403,  -403,   974,   974,
1015      974,  1002,  -403,   128,   131,  -403,  -403,   -59,   -72,   135,
1016       78,  -403,  -403,   974,  -403,   192,  1030,    41,   196,   201,
1017     -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,
1018     -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,
1019      974,   974,   974,   974,   974,   974,  -403,  -403,  -403,   974,
1020      974,   974,   974,   974,   974,   974,   974,   974,  -403,   201,
1021     -403,    81,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,
1022       50,   147,   147,   147,   169,   179,   257,   186,   258,   190,
1023      259,   216,   278,   277,   279,   219,   283,   281,   559,   147,
1024      974,   974,   974,  -403,   446,  -403,   176,   175,   684,  -403,
1025     -403,    94,  -403,   684,   684,  -403,  -403,  -403,  -403,  -403,
1026     -403,  -403,  -403,  -403,  -403,   684,   920,   180,   181,  -403,
1027      684,   182,   183,   184,   185,   191,   193,   194,   253,   684,
1028      684,   684,   195,   920,   974,   974,   265,  -403,     2,  -403,
1029     -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,  -403,
1030     -403,  -403,   188,   197,   198,   199,   205,   206,   838,  1002,
1031      588,   275,   211,   217,   218,   220,  -403,  -403,  -403,    28,
1032      -64,   -59,  -403,   140,  -403,   221,   212,   864,  -403,  -403,
1033     -403,  -403,  -403,  -403,  -403,  -403,  -403,   246,  1002,  -403,
1034     -403,  -403,  -403,   223,  -403,   224,   684,     4,  -403,     5,
1035     -403,   228,   684,   214,   974,   974,   974,   974,   974,   974,
1036      231,   234,   235,   974,   684,   684,   236,  -403,   280,   307,
1037     -403,   147,  1002,  1002,  1002,  1002,  1002,  1002,  -403,  -403,
1038       54,    24,  -403,   -60,  -403,  1002,  1002,  1002,  1002,  -403,
1039     -403,  -403,  -403,   892,   293,  -403,  -403,   312,    25,   320,
1040      325,   237,   684,   347,   684,   974,  -403,   240,   684,   241,
1041     -403,  -403,   242,   247,  -403,   684,   684,   684,  -403,   249,
1042     -403,   974,  -403,  -403,  -403,   228,   248,   254,   255,   260,
1043      323,  1002,  -403,  -403,  -403,   261,   262,   263,   267,  -403,
1044     -403,  -403,   313,   268,  -403,   684,   684,   974,   269,  -403,
1045      269,  -403,   271,   684,   272,   974,   974,   974,  -403,  -403,
1046     -403,   974,   684,   256,  1002,  1002,  1002,  1002,   974,  -403,
1047     1002,  1002,  1002,  1002,   367,  -403,   356,   274,   276,   271,
1048      273,   331,  -403,  -403,   974,   282,   684,  -403,  -403,  -403,
1049      284,  -403,  -403,   286,   288,   292,   294,   296,   299,   300,
1050      304,   319,  -403,  -403,   369,     0,   358,  -403,  -403,   318,
1051     -403,  1002,  -403,  1002,  1002,  -403,  -403,  -403,  -403,  -403,
1052      684,  -403,   730,    12,   370,  -403,   326,   327,   328,  -403,
1053      332,  -403,   730,   684,  -403,  -403,  -403,   416,   333,   372,
1054      684,   424,   425,  -403,   684,   684,  -403,  -403
1055 };
1056
1057 /* YYPGOTO[NTERM-NUM].  */
1058 static const short int yypgoto[] =
1059 {
1060     -403,  -403,  -403,   357,   359,   361,   362,  -127,  -126,  -378,
1061     -403,   411,   449,  -120,  -403,  -223,   121,  -403,  -176,  -403,
1062      -47,  -403,   -38,  -403,   -66,   363,  -403,  -108,   287,  -234,
1063       56,  -403,  -403,  -403,   427,  -403,  -403,  -403,  -403,     7,
1064     -403,   125,  -403,  -403,   450,  -403,  -403,  -403,  -403,  -403,
1065      478,  -403,  -402,    34,   178,  -115,  -403,   441,  -403,  -403,
1066     -403,  -403,  -403,   122,    67,  -403,  -403,   107,  -403,  -403
1067 };
1068
1069 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1070    positive, shift that token.  If negative, reduce the rule which
1071    number is the opposite.  If zero, do what YYDEFACT says.
1072    If YYTABLE_NINF, syntax error.  */
1073 #define YYTABLE_NINF -132
1074 static const short int yytable[] =
1075 {
1076       84,   223,   224,   199,   105,   310,   250,   251,   209,   226,
1077       25,   212,    30,    84,   117,   215,   216,   217,   218,   219,
1078      220,   221,   222,   278,   362,   364,     4,   215,   216,   217,
1079      218,   219,   220,   221,   222,   341,   343,   229,    40,   328,
1080      233,   202,    92,    89,   234,   235,   236,   237,   238,   243,
1081       25,   203,   242,   391,   117,   213,   -70,   350,    51,   329,
1082      121,   363,   363,   394,   358,   121,   214,    44,    45,    46,
1083      181,   182,   183,     7,     8,     9,    52,    11,    53,    13,
1084      490,    54,    40,    61,    62,   208,    47,   482,   208,   119,
1085      498,   115,    64,    65,    66,    67,    68,    69,    70,    71,
1086       72,    73,    74,    75,    76,   492,    19,    49,    20,   109,
1087      110,   111,   227,   228,   208,   230,   231,   208,   205,   481,
1088       50,   208,   208,   208,   208,   208,   239,   240,   241,   208,
1089      326,   491,    93,    90,   279,   280,   281,   391,   391,   106,
1090      107,   -40,    19,    58,    20,   393,   404,   349,     6,   -40,
1091      -40,    27,   121,    28,    56,   384,   -40,   -40,   -40,   -40,
1092      -40,   -40,   -40,   246,   -40,    21,   283,   391,    19,   247,
1093       20,    60,    22,   392,   174,   175,    23,   252,   253,   306,
1094      244,   245,   -30,   -30,    98,   442,    99,   443,    84,   -29,
1095      -29,   100,    77,   -28,   -28,    78,   324,   101,    79,   369,
1096       80,   371,   372,   373,   102,    84,   325,   208,   378,   -71,
1097     -131,   215,   216,   217,   218,   219,   220,   221,   222,   -27,
1098      -27,   281,   254,   255,   385,   386,   387,   388,   389,   390,
1099      112,   113,   277,   114,   173,   120,   177,   395,   396,   397,
1100      398,     5,   301,   178,     6,   179,   200,   301,   301,   201,
1101      204,   210,     7,     8,     9,    10,    11,    12,    13,   301,
1102      248,   -34,   -33,   -32,   301,    31,    32,    33,    34,    35,
1103       36,    37,    14,   301,   301,   301,   208,   370,   208,   208,
1104      208,   374,   -31,   429,   -37,   208,   -38,   257,   258,   287,
1105      351,   288,   319,   307,   309,   327,   313,   314,   315,   312,
1106      447,   448,   449,   332,   316,   344,   317,   318,   323,   356,
1107      382,   383,   333,   334,   335,   283,   453,   454,   455,   456,
1108      336,   337,   458,   459,   460,   461,   345,   208,   354,   467,
1109      328,   368,   346,   347,   353,   348,   359,   360,   223,   224,
1110      301,   365,   403,   422,   375,   405,   301,   376,   377,   381,
1111      406,   409,   407,   413,   415,   416,   223,   224,   301,   301,
1112      417,   424,   428,   486,   421,   487,   488,   425,   426,   208,
1113      434,   462,   452,   427,   430,   431,   432,   208,   208,   208,
1114      433,   436,   441,   208,   444,   446,   463,   464,   363,   466,
1115      457,   303,   304,   465,   480,   493,   301,   484,   301,   471,
1116      470,   468,   301,   305,   472,   473,   208,   474,   311,   301,
1117      301,   301,   475,    61,    62,   476,   477,   320,   321,   322,
1118      478,   115,    64,    65,    66,    67,    68,    69,    70,    71,
1119       72,    73,    74,    75,    76,   479,    19,   485,    20,   301,
1120      301,   500,   494,   495,   496,   497,   501,   301,   502,   504,
1121      505,    61,    62,   164,    96,   165,   301,   166,   167,   115,
1122       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1123       74,    75,    76,    55,    19,   401,    20,   104,   400,    57,
1124      301,    26,    95,   206,   361,   276,   282,   412,   450,     0,
1125      367,     0,   423,     0,     0,     0,     0,     0,     0,     0,
1126        0,     0,   379,   380,     0,     0,     0,     0,     0,     0,
1127        0,     0,     0,     0,   301,     0,     0,     0,     0,     0,
1128        0,     0,    77,     0,     0,    78,     0,   301,    79,     0,
1129       80,   116,     0,     0,   301,     0,     0,     0,   301,   301,
1130      408,     0,   410,     0,     0,     0,   414,     0,     0,     0,
1131        0,     0,     0,   418,   419,   420,     0,     0,     0,     0,
1132       77,     0,     0,    78,    61,    62,    79,     0,    80,   259,
1133      260,   261,     0,     0,     0,     0,     0,     0,     0,     0,
1134        0,     0,     0,   437,   438,     0,     0,    19,     0,    20,
1135        0,   445,     0,    61,    62,     0,     0,     0,     0,     0,
1136      451,   115,   184,   185,   186,   187,   188,   189,   190,   191,
1137      192,   193,   194,    75,    76,     0,    19,     0,    20,     0,
1138        0,     0,     0,     0,   469,     0,     0,     0,     0,     0,
1139        0,     0,     0,     0,     0,     0,     0,   132,   133,   134,
1140      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1141      145,   146,   147,   148,   149,     0,     0,     0,   489,     0,
1142      262,     0,   263,   156,   157,   158,     0,   264,   265,   266,
1143      267,   499,     0,     0,     0,     0,   268,     0,   503,   269,
1144        0,   270,   506,   507,   271,     0,     0,   289,   290,    61,
1145       62,   291,   292,   293,   294,   295,   296,     0,     0,     0,
1146        0,     0,    77,     0,     0,    78,     0,     0,    79,     0,
1147       80,   342,    19,     0,    20,     0,     0,     0,     0,     0,
1148        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1149        0,     0,     0,   289,   290,     0,     0,   291,   292,   293,
1150      294,   295,   296,     0,     0,   297,     0,     0,     0,     0,
1151        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1152        0,     0,   132,   133,   134,   135,   136,   137,   138,   139,
1153      140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1154        0,     0,     0,     0,     0,   262,     0,   263,   156,   157,
1155      158,   297,   264,   265,   266,   267,     0,     0,     0,     0,
1156        0,     0,     0,     0,   298,     0,     0,     0,   132,   133,
1157      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1158      144,   145,   146,   147,   148,   149,     0,     0,     0,     0,
1159        0,   262,     0,   263,   156,   157,   158,     0,   264,   265,
1160      266,   267,     0,    61,    62,     0,     0,     0,     0,     0,
1161      298,   115,   184,   185,   186,   187,   188,   189,   190,   191,
1162      192,   193,   194,    75,    76,     0,    19,     0,    20,    61,
1163       62,     0,     0,     0,     0,     0,     0,   115,    64,    65,
1164       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1165       76,     0,    19,     0,    20,     0,     0,    61,    62,     0,
1166        0,     0,     0,     0,   355,   115,    64,    65,    66,    67,
1167       68,    69,    70,    71,    72,    73,    74,    75,    76,     0,
1168       19,     0,    20,     0,     0,    61,    62,     0,     0,     0,
1169        0,     0,   399,    63,    64,    65,    66,    67,    68,    69,
1170       70,    71,    72,    73,    74,    75,    76,     0,    19,     0,
1171       20,     0,    77,     0,     0,    78,     0,   338,    79,     0,
1172       80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1173        0,     0,     0,     0,     0,     0,     0,     0,    77,    61,
1174       62,    78,     0,     0,    79,     0,    80,   115,    64,    65,
1175       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1176       76,     0,    19,     0,    20,     0,    77,    61,    62,    78,
1177        0,     0,    79,     0,    80,   115,   184,   185,   186,   187,
1178      188,   189,   190,   191,   192,   193,   194,    75,    76,     0,
1179       19,     0,    20,     0,    77,    61,    62,    78,     0,     0,
1180       79,     0,    80,   211,    64,    65,    66,    67,    68,    69,
1181       70,    71,    72,    73,    74,    75,    76,     0,    19,     0,
1182       20,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1184        0,     0,     0,     0,     0,     0,     0,     0,    77,     0,
1185        0,    78,     0,     0,    79,     0,    80,     0,     0,     0,
1186        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1187        0,     0,     0,     0,     0,     0,    77,     0,     0,    78,
1188      122,     0,    79,     0,    80,     0,     0,     0,     0,     0,
1189        0,   123,     0,     0,     0,     0,     0,     0,     0,     0,
1190        0,   124,   125,     0,    77,     0,     0,    78,     0,     0,
1191       79,     0,    80,     0,   126,   127,   128,   129,   130,   131,
1192      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1193      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1194      152,     0,     0,   153,   154,   155,   156,   157,   158,   159,
1195      160,   161,   162,   163
1196 };
1197
1198 static const short int yycheck[] =
1199 {
1200       38,   128,   128,   111,    51,   228,   182,   183,   123,   129,
1201        3,   126,    61,    51,    80,    15,    16,    17,    18,    19,
1202       20,    21,    22,   199,    20,    20,     0,    15,    16,    17,
1203       18,    19,    20,    21,    22,   269,   270,   152,    29,    37,
1204      155,   113,    33,    32,   159,   160,   161,   162,   163,   169,
1205       43,   123,   167,   113,   120,    14,   115,   121,    27,    57,
1206      124,    57,    57,   123,   298,   124,    25,    52,    53,    54,
1207      108,   109,   110,    42,    43,    44,    45,    46,    47,    48,
1208      482,    50,    29,     5,     6,   123,    71,   465,   126,    82,
1209      492,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1210       22,    23,    24,    25,    26,   483,    28,   112,    30,    53,
1211       54,    55,   150,   151,   152,   153,   154,   155,    40,   119,
1212       61,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1213      245,   119,   123,   122,   200,   201,   202,   113,   113,    35,
1214       36,    27,    28,    30,    30,   121,   121,   119,    34,    35,
1215       36,    45,   124,    47,   112,   331,    42,    43,    44,    45,
1216       46,    47,    48,   113,    50,    51,   204,   113,    28,   119,
1217       30,     4,    58,   119,    55,    56,    62,     8,     9,   226,
1218       99,   100,     3,     4,   112,   408,   112,   410,   226,     3,
1219        4,   112,   114,     3,     4,   117,   243,   112,   120,   314,
1220      122,   316,   317,   318,   117,   243,   244,   245,   323,   115,
1221        0,    15,    16,    17,    18,    19,    20,    21,    22,     3,
1222        4,   287,     3,     4,   332,   333,   334,   335,   336,   337,
1223        4,     4,   198,     4,    30,   115,     4,   345,   346,   347,
1224      348,    31,   208,    30,    34,    30,   118,   213,   214,   118,
1225      115,    59,    42,    43,    44,    45,    46,    47,    48,   225,
1226      113,     4,     4,     4,   230,    64,    65,    66,    67,    68,
1227       69,    70,    62,   239,   240,   241,   314,   315,   316,   317,
1228      318,   319,     4,   391,     7,   323,     7,     4,     7,   113,
1229      283,   116,    39,   113,   113,    30,   113,   113,   113,   117,
1230      415,   416,   417,   115,   113,    30,   113,   113,   113,    63,
1231       30,     4,   115,   115,   115,   353,   424,   425,   426,   427,
1232      115,   115,   430,   431,   432,   433,   115,   365,   116,   444,
1233       37,   117,   115,   115,   113,   115,   113,   113,   465,   465,
1234      306,   113,    30,   381,   113,    25,   312,   113,   113,   113,
1235       25,     4,   115,   113,   113,   113,   483,   483,   324,   325,
1236      113,   113,    39,   471,   115,   473,   474,   113,   113,   407,
1237       57,     4,   116,   113,   113,   113,   113,   415,   416,   417,
1238      113,   113,   113,   421,   113,   113,    30,   113,    57,   116,
1239      428,   213,   214,   117,    25,    25,   362,    39,   364,   113,
1240      116,   119,   368,   225,   116,   113,   444,   113,   230,   375,
1241      376,   377,   116,     5,     6,   116,   116,   239,   240,   241,
1242      116,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1243       22,    23,    24,    25,    26,   116,    28,   119,    30,   405,
1244      406,    25,   116,   116,   116,   113,   113,   413,    76,    25,
1245       25,     5,     6,    96,    43,    96,   422,    96,    96,    13,
1246       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1247       24,    25,    26,    24,    28,   354,    30,    50,   353,    29,
1248      446,     3,    41,   120,   306,   198,    40,   365,   421,    -1,
1249      312,    -1,   385,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1250       -1,    -1,   324,   325,    -1,    -1,    -1,    -1,    -1,    -1,
1251       -1,    -1,    -1,    -1,   480,    -1,    -1,    -1,    -1,    -1,
1252       -1,    -1,   114,    -1,    -1,   117,    -1,   493,   120,    -1,
1253      122,   123,    -1,    -1,   500,    -1,    -1,    -1,   504,   505,
1254      362,    -1,   364,    -1,    -1,    -1,   368,    -1,    -1,    -1,
1255       -1,    -1,    -1,   375,   376,   377,    -1,    -1,    -1,    -1,
1256      114,    -1,    -1,   117,     5,     6,   120,    -1,   122,    10,
1257       11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1258       -1,    -1,    -1,   405,   406,    -1,    -1,    28,    -1,    30,
1259       -1,   413,    -1,     5,     6,    -1,    -1,    -1,    -1,    -1,
1260      422,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1261       22,    23,    24,    25,    26,    -1,    28,    -1,    30,    -1,
1262       -1,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,    -1,
1263       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
1264       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1265       91,    92,    93,    94,    95,    -1,    -1,    -1,   480,    -1,
1266      101,    -1,   103,   104,   105,   106,    -1,   108,   109,   110,
1267      111,   493,    -1,    -1,    -1,    -1,   117,    -1,   500,   120,
1268       -1,   122,   504,   505,   125,    -1,    -1,     3,     4,     5,
1269        6,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
1270       -1,    -1,   114,    -1,    -1,   117,    -1,    -1,   120,    -1,
1271      122,   123,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,
1272       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1273       -1,    -1,    -1,     3,     4,    -1,    -1,     7,     8,     9,
1274       10,    11,    12,    -1,    -1,    61,    -1,    -1,    -1,    -1,
1275       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1276       -1,    -1,    78,    79,    80,    81,    82,    83,    84,    85,
1277       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1278       -1,    -1,    -1,    -1,    -1,   101,    -1,   103,   104,   105,
1279      106,    61,   108,   109,   110,   111,    -1,    -1,    -1,    -1,
1280       -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    78,    79,
1281       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1282       90,    91,    92,    93,    94,    95,    -1,    -1,    -1,    -1,
1283       -1,   101,    -1,   103,   104,   105,   106,    -1,   108,   109,
1284      110,   111,    -1,     5,     6,    -1,    -1,    -1,    -1,    -1,
1285      120,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1286       22,    23,    24,    25,    26,    -1,    28,    -1,    30,     5,
1287        6,    -1,    -1,    -1,    -1,    -1,    -1,    13,    14,    15,
1288       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1289       26,    -1,    28,    -1,    30,    -1,    -1,     5,     6,    -1,
1290       -1,    -1,    -1,    -1,    40,    13,    14,    15,    16,    17,
1291       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
1292       28,    -1,    30,    -1,    -1,     5,     6,    -1,    -1,    -1,
1293       -1,    -1,    40,    13,    14,    15,    16,    17,    18,    19,
1294       20,    21,    22,    23,    24,    25,    26,    -1,    28,    -1,
1295       30,    -1,   114,    -1,    -1,   117,    -1,   119,   120,    -1,
1296      122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1297       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,     5,
1298        6,   117,    -1,    -1,   120,    -1,   122,    13,    14,    15,
1299       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1300       26,    -1,    28,    -1,    30,    -1,   114,     5,     6,   117,
1301       -1,    -1,   120,    -1,   122,    13,    14,    15,    16,    17,
1302       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
1303       28,    -1,    30,    -1,   114,     5,     6,   117,    -1,    -1,
1304      120,    -1,   122,    13,    14,    15,    16,    17,    18,    19,
1305       20,    21,    22,    23,    24,    25,    26,    -1,    28,    -1,
1306       30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1308       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
1309       -1,   117,    -1,    -1,   120,    -1,   122,    -1,    -1,    -1,
1310       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1311       -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,    -1,   117,
1312       38,    -1,   120,    -1,   122,    -1,    -1,    -1,    -1,    -1,
1313       -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1314       -1,    59,    60,    -1,   114,    -1,    -1,   117,    -1,    -1,
1315      120,    -1,   122,    -1,    72,    73,    74,    75,    76,    77,
1316       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1317       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1318       98,    -1,    -1,   101,   102,   103,   104,   105,   106,   107,
1319      108,   109,   110,   111
1320 };
1321
1322 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1323    symbol of state STATE-NUM.  */
1324 static const unsigned char yystos[] =
1325 {
1326        0,   157,   158,   159,     0,    31,    34,    42,    43,    44,
1327       45,    46,    47,    48,    62,   138,   172,   174,   176,    28,
1328       30,    51,    58,    62,   137,   165,   176,    45,    47,   175,
1329       61,    64,    65,    66,    67,    68,    69,    70,   139,   170,
1330       29,   182,   183,   184,    52,    53,    54,    71,   162,   112,
1331       61,    27,    45,    47,    50,   138,   112,   170,    30,   160,
1332        4,     5,     6,    13,    14,    15,    16,    17,    18,    19,
1333       20,    21,    22,    23,    24,    25,    26,   114,   117,   120,
1334      122,   127,   146,   147,   148,   149,   150,   165,   179,    32,
1335      122,   171,    33,   123,   173,   183,   137,   187,   112,   112,
1336      112,   112,   117,   163,   160,   146,    35,    36,   156,   156,
1337      156,   156,     4,     4,     4,    13,   123,   150,   151,   165,
1338      115,   124,    38,    49,    59,    60,    72,    73,    74,    75,
1339       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1340       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1341       96,    97,    98,   101,   102,   103,   104,   105,   106,   107,
1342      108,   109,   110,   111,   129,   130,   131,   132,   185,   191,
1343      192,   194,   195,    30,    55,    56,   161,     4,    30,    30,
1344      164,   148,   148,   148,    14,    15,    16,    17,    18,    19,
1345       20,    21,    22,    23,    24,   133,   134,   136,   148,   153,
1346      118,   118,   113,   123,   115,    40,   151,   152,   148,   181,
1347       59,    13,   181,    14,    25,    15,    16,    17,    18,    19,
1348       20,    21,    22,   133,   134,   135,   139,   148,   148,   181,
1349      148,   148,   188,   181,   181,   181,   181,   181,   181,   148,
1350      148,   148,   181,   139,    99,   100,   113,   119,   113,   144,
1351      144,   144,     8,     9,     3,     4,   128,     4,     7,    10,
1352       11,    12,   101,   103,   108,   109,   110,   111,   117,   120,
1353      122,   125,   129,   130,   131,   132,   154,   179,   144,   150,
1354      150,   150,    40,   148,   167,   168,   169,   113,   116,     3,
1355        4,     7,     8,     9,    10,    11,    12,    61,   120,   154,
1356      178,   179,   180,   180,   180,   180,   146,   113,   141,   113,
1357      141,   180,   117,   113,   113,   113,   113,   113,   113,    39,
1358      180,   180,   180,   113,   146,   148,   181,    30,    37,    57,
1359      142,   145,   115,   115,   115,   115,   115,   115,   119,   153,
1360      155,   155,   123,   155,    30,   115,   115,   115,   115,   119,
1361      121,   165,   166,   113,   116,    40,    63,   177,   155,   113,
1362      113,   180,    20,    57,    20,   113,   193,   180,   117,   181,
1363      148,   181,   181,   181,   148,   113,   113,   113,   181,   180,
1364      180,   113,    30,     4,   144,   153,   153,   153,   153,   153,
1365      153,   113,   119,   121,   123,   153,   153,   153,   153,    40,
1366      167,   142,   143,    30,   121,    25,    25,   115,   180,     4,
1367      180,   181,   189,   113,   180,   113,   113,   113,   180,   180,
1368      180,   115,   148,   193,   113,   113,   113,   113,    39,   153,
1369      113,   113,   113,   113,    57,   140,   113,   180,   180,   189,
1370      190,   113,   141,   141,   113,   180,   113,   181,   181,   181,
1371      190,   180,   116,   153,   153,   153,   153,   148,   153,   153,
1372      153,   153,     4,    30,   113,   117,   116,   181,   119,   180,
1373      116,   113,   116,   113,   113,   116,   116,   116,   116,   116,
1374       25,   119,   135,   186,    39,   119,   153,   153,   153,   180,
1375      178,   119,   135,    25,   116,   116,   116,   113,   178,   180,
1376       25,   113,    76,   180,    25,    25,   180,   180
1377 };
1378
1379 #define yyerrok         (yyerrstatus = 0)
1380 #define yyclearin       (yychar = YYEMPTY)
1381 #define YYEMPTY         (-2)
1382 #define YYEOF           0
1383
1384 #define YYACCEPT        goto yyacceptlab
1385 #define YYABORT         goto yyabortlab
1386 #define YYERROR         goto yyerrorlab
1387
1388
1389 /* Like YYERROR except do call yyerror.  This remains here temporarily
1390    to ease the transition to the new meaning of YYERROR, for GCC.
1391    Once GCC version 2 has supplanted version 1, this can go.  */
1392
1393 #define YYFAIL          goto yyerrlab
1394
1395 #define YYRECOVERING()  (!!yyerrstatus)
1396
1397 #define YYBACKUP(Token, Value)                                  \
1398 do                                                              \
1399   if (yychar == YYEMPTY && yylen == 1)                          \
1400     {                                                           \
1401       yychar = (Token);                                         \
1402       yylval = (Value);                                         \
1403       yytoken = YYTRANSLATE (yychar);                           \
1404       YYPOPSTACK;                                               \
1405       goto yybackup;                                            \
1406     }                                                           \
1407   else                                                          \
1408     {                                                           \
1409       yyerror (YY_("syntax error: cannot back up")); \
1410       YYERROR;                                                  \
1411     }                                                           \
1412 while (0)
1413
1414
1415 #define YYTERROR        1
1416 #define YYERRCODE       256
1417
1418
1419 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1420    If N is 0, then set CURRENT to the empty location which ends
1421    the previous symbol: RHS[0] (always defined).  */
1422
1423 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1424 #ifndef YYLLOC_DEFAULT
1425 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1426     do                                                                  \
1427       if (N)                                                            \
1428         {                                                               \
1429           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1430           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1431           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1432           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1433         }                                                               \
1434       else                                                              \
1435         {                                                               \
1436           (Current).first_line   = (Current).last_line   =              \
1437             YYRHSLOC (Rhs, 0).last_line;                                \
1438           (Current).first_column = (Current).last_column =              \
1439             YYRHSLOC (Rhs, 0).last_column;                              \
1440         }                                                               \
1441     while (0)
1442 #endif
1443
1444
1445 /* YY_LOCATION_PRINT -- Print the location on the stream.
1446    This macro was not mandated originally: define only if we know
1447    we won't break user code: when these are the locations we know.  */
1448
1449 #ifndef YY_LOCATION_PRINT
1450 # if YYLTYPE_IS_TRIVIAL
1451 #  define YY_LOCATION_PRINT(File, Loc)                  \
1452      fprintf (File, "%d.%d-%d.%d",                      \
1453               (Loc).first_line, (Loc).first_column,     \
1454               (Loc).last_line,  (Loc).last_column)
1455 # else
1456 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1457 # endif
1458 #endif
1459
1460
1461 /* YYLEX -- calling `yylex' with the right arguments.  */
1462
1463 #ifdef YYLEX_PARAM
1464 # define YYLEX yylex (YYLEX_PARAM)
1465 #else
1466 # define YYLEX yylex ()
1467 #endif
1468
1469 /* Enable debugging if requested.  */
1470 #if YYDEBUG
1471
1472 # ifndef YYFPRINTF
1473 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1474 #  define YYFPRINTF fprintf
1475 # endif
1476
1477 # define YYDPRINTF(Args)                        \
1478 do {                                            \
1479   if (yydebug)                                  \
1480     YYFPRINTF Args;                             \
1481 } while (0)
1482
1483 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \
1484 do {                                                            \
1485   if (yydebug)                                                  \
1486     {                                                           \
1487       YYFPRINTF (stderr, "%s ", Title);                         \
1488       yysymprint (stderr,                                       \
1489                   Type, Value); \
1490       YYFPRINTF (stderr, "\n");                                 \
1491     }                                                           \
1492 } while (0)
1493
1494 /*------------------------------------------------------------------.
1495 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1496 | TOP (included).                                                   |
1497 `------------------------------------------------------------------*/
1498
1499 #if defined (__STDC__) || defined (__cplusplus)
1500 static void
1501 yy_stack_print (short int *bottom, short int *top)
1502 #else
1503 static void
1504 yy_stack_print (bottom, top)
1505     short int *bottom;
1506     short int *top;
1507 #endif
1508 {
1509   YYFPRINTF (stderr, "Stack now");
1510   for (/* Nothing. */; bottom <= top; ++bottom)
1511     YYFPRINTF (stderr, " %d", *bottom);
1512   YYFPRINTF (stderr, "\n");
1513 }
1514
1515 # define YY_STACK_PRINT(Bottom, Top)                            \
1516 do {                                                            \
1517   if (yydebug)                                                  \
1518     yy_stack_print ((Bottom), (Top));                           \
1519 } while (0)
1520
1521
1522 /*------------------------------------------------.
1523 | Report that the YYRULE is going to be reduced.  |
1524 `------------------------------------------------*/
1525
1526 #if defined (__STDC__) || defined (__cplusplus)
1527 static void
1528 yy_reduce_print (int yyrule)
1529 #else
1530 static void
1531 yy_reduce_print (yyrule)
1532     int yyrule;
1533 #endif
1534 {
1535   int yyi;
1536   unsigned long int yylno = yyrline[yyrule];
1537   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1538              yyrule - 1, yylno);
1539   /* Print the symbols being reduced, and their result.  */
1540   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1541     YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1542   YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1543 }
1544
1545 # define YY_REDUCE_PRINT(Rule)          \
1546 do {                                    \
1547   if (yydebug)                          \
1548     yy_reduce_print (Rule);             \
1549 } while (0)
1550
1551 /* Nonzero means print parse trace.  It is left uninitialized so that
1552    multiple parsers can coexist.  */
1553 int yydebug;
1554 #else /* !YYDEBUG */
1555 # define YYDPRINTF(Args)
1556 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1557 # define YY_STACK_PRINT(Bottom, Top)
1558 # define YY_REDUCE_PRINT(Rule)
1559 #endif /* !YYDEBUG */
1560
1561
1562 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1563 #ifndef YYINITDEPTH
1564 # define YYINITDEPTH 200
1565 #endif
1566
1567 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1568    if the built-in stack extension method is used).
1569
1570    Do not make this value too large; the results are undefined if
1571    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1572    evaluated with infinite-precision integer arithmetic.  */
1573
1574 #ifndef YYMAXDEPTH
1575 # define YYMAXDEPTH 10000
1576 #endif
1577
1578 \f
1579
1580 #if YYERROR_VERBOSE
1581
1582 # ifndef yystrlen
1583 #  if defined (__GLIBC__) && defined (_STRING_H)
1584 #   define yystrlen strlen
1585 #  else
1586 /* Return the length of YYSTR.  */
1587 static YYSIZE_T
1588 #   if defined (__STDC__) || defined (__cplusplus)
1589 yystrlen (const char *yystr)
1590 #   else
1591 yystrlen (yystr)
1592      const char *yystr;
1593 #   endif
1594 {
1595   const char *yys = yystr;
1596
1597   while (*yys++ != '\0')
1598     continue;
1599
1600   return yys - yystr - 1;
1601 }
1602 #  endif
1603 # endif
1604
1605 # ifndef yystpcpy
1606 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1607 #   define yystpcpy stpcpy
1608 #  else
1609 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1610    YYDEST.  */
1611 static char *
1612 #   if defined (__STDC__) || defined (__cplusplus)
1613 yystpcpy (char *yydest, const char *yysrc)
1614 #   else
1615 yystpcpy (yydest, yysrc)
1616      char *yydest;
1617      const char *yysrc;
1618 #   endif
1619 {
1620   char *yyd = yydest;
1621   const char *yys = yysrc;
1622
1623   while ((*yyd++ = *yys++) != '\0')
1624     continue;
1625
1626   return yyd - 1;
1627 }
1628 #  endif
1629 # endif
1630
1631 # ifndef yytnamerr
1632 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1633    quotes and backslashes, so that it's suitable for yyerror.  The
1634    heuristic is that double-quoting is unnecessary unless the string
1635    contains an apostrophe, a comma, or backslash (other than
1636    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1637    null, do not copy; instead, return the length of what the result
1638    would have been.  */
1639 static YYSIZE_T
1640 yytnamerr (char *yyres, const char *yystr)
1641 {
1642   if (*yystr == '"')
1643     {
1644       size_t yyn = 0;
1645       char const *yyp = yystr;
1646
1647       for (;;)
1648         switch (*++yyp)
1649           {
1650           case '\'':
1651           case ',':
1652             goto do_not_strip_quotes;
1653
1654           case '\\':
1655             if (*++yyp != '\\')
1656               goto do_not_strip_quotes;
1657             /* Fall through.  */
1658           default:
1659             if (yyres)
1660               yyres[yyn] = *yyp;
1661             yyn++;
1662             break;
1663
1664           case '"':
1665             if (yyres)
1666               yyres[yyn] = '\0';
1667             return yyn;
1668           }
1669     do_not_strip_quotes: ;
1670     }
1671
1672   if (! yyres)
1673     return yystrlen (yystr);
1674
1675   return yystpcpy (yyres, yystr) - yyres;
1676 }
1677 # endif
1678
1679 #endif /* YYERROR_VERBOSE */
1680
1681 \f
1682
1683 #if YYDEBUG
1684 /*--------------------------------.
1685 | Print this symbol on YYOUTPUT.  |
1686 `--------------------------------*/
1687
1688 #if defined (__STDC__) || defined (__cplusplus)
1689 static void
1690 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1691 #else
1692 static void
1693 yysymprint (yyoutput, yytype, yyvaluep)
1694     FILE *yyoutput;
1695     int yytype;
1696     YYSTYPE *yyvaluep;
1697 #endif
1698 {
1699   /* Pacify ``unused variable'' warnings.  */
1700   (void) yyvaluep;
1701
1702   if (yytype < YYNTOKENS)
1703     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1704   else
1705     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1706
1707
1708 # ifdef YYPRINT
1709   if (yytype < YYNTOKENS)
1710     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1711 # endif
1712   switch (yytype)
1713     {
1714       default:
1715         break;
1716     }
1717   YYFPRINTF (yyoutput, ")");
1718 }
1719
1720 #endif /* ! YYDEBUG */
1721 /*-----------------------------------------------.
1722 | Release the memory associated to this symbol.  |
1723 `-----------------------------------------------*/
1724
1725 #if defined (__STDC__) || defined (__cplusplus)
1726 static void
1727 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1728 #else
1729 static void
1730 yydestruct (yymsg, yytype, yyvaluep)
1731     const char *yymsg;
1732     int yytype;
1733     YYSTYPE *yyvaluep;
1734 #endif
1735 {
1736   /* Pacify ``unused variable'' warnings.  */
1737   (void) yyvaluep;
1738
1739   if (!yymsg)
1740     yymsg = "Deleting";
1741   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1742
1743   switch (yytype)
1744     {
1745
1746       default:
1747         break;
1748     }
1749 }
1750 \f
1751
1752 /* Prevent warnings from -Wmissing-prototypes.  */
1753
1754 #ifdef YYPARSE_PARAM
1755 # if defined (__STDC__) || defined (__cplusplus)
1756 int yyparse (void *YYPARSE_PARAM);
1757 # else
1758 int yyparse ();
1759 # endif
1760 #else /* ! YYPARSE_PARAM */
1761 #if defined (__STDC__) || defined (__cplusplus)
1762 int yyparse (void);
1763 #else
1764 int yyparse ();
1765 #endif
1766 #endif /* ! YYPARSE_PARAM */
1767
1768
1769
1770 /* The look-ahead symbol.  */
1771 int yychar;
1772
1773 /* The semantic value of the look-ahead symbol.  */
1774 YYSTYPE yylval;
1775
1776 /* Number of syntax errors so far.  */
1777 int yynerrs;
1778
1779
1780
1781 /*----------.
1782 | yyparse.  |
1783 `----------*/
1784
1785 #ifdef YYPARSE_PARAM
1786 # if defined (__STDC__) || defined (__cplusplus)
1787 int yyparse (void *YYPARSE_PARAM)
1788 # else
1789 int yyparse (YYPARSE_PARAM)
1790   void *YYPARSE_PARAM;
1791 # endif
1792 #else /* ! YYPARSE_PARAM */
1793 #if defined (__STDC__) || defined (__cplusplus)
1794 int
1795 yyparse (void)
1796 #else
1797 int
1798 yyparse ()
1799
1800 #endif
1801 #endif
1802 {
1803   
1804   int yystate;
1805   int yyn;
1806   int yyresult;
1807   /* Number of tokens to shift before error messages enabled.  */
1808   int yyerrstatus;
1809   /* Look-ahead token as an internal (translated) token number.  */
1810   int yytoken = 0;
1811
1812   /* Three stacks and their tools:
1813      `yyss': related to states,
1814      `yyvs': related to semantic values,
1815      `yyls': related to locations.
1816
1817      Refer to the stacks thru separate pointers, to allow yyoverflow
1818      to reallocate them elsewhere.  */
1819
1820   /* The state stack.  */
1821   short int yyssa[YYINITDEPTH];
1822   short int *yyss = yyssa;
1823   short int *yyssp;
1824
1825   /* The semantic value stack.  */
1826   YYSTYPE yyvsa[YYINITDEPTH];
1827   YYSTYPE *yyvs = yyvsa;
1828   YYSTYPE *yyvsp;
1829
1830
1831
1832 #define YYPOPSTACK   (yyvsp--, yyssp--)
1833
1834   YYSIZE_T yystacksize = YYINITDEPTH;
1835
1836   /* The variables used to return semantic value and location from the
1837      action routines.  */
1838   YYSTYPE yyval;
1839
1840
1841   /* When reducing, the number of symbols on the RHS of the reduced
1842      rule.  */
1843   int yylen;
1844
1845   YYDPRINTF ((stderr, "Starting parse\n"));
1846
1847   yystate = 0;
1848   yyerrstatus = 0;
1849   yynerrs = 0;
1850   yychar = YYEMPTY;             /* Cause a token to be read.  */
1851
1852   /* Initialize stack pointers.
1853      Waste one element of value and location stack
1854      so that they stay on the same level as the state stack.
1855      The wasted elements are never initialized.  */
1856
1857   yyssp = yyss;
1858   yyvsp = yyvs;
1859
1860   goto yysetstate;
1861
1862 /*------------------------------------------------------------.
1863 | yynewstate -- Push a new state, which is found in yystate.  |
1864 `------------------------------------------------------------*/
1865  yynewstate:
1866   /* In all cases, when you get here, the value and location stacks
1867      have just been pushed. so pushing a state here evens the stacks.
1868      */
1869   yyssp++;
1870
1871  yysetstate:
1872   *yyssp = yystate;
1873
1874   if (yyss + yystacksize - 1 <= yyssp)
1875     {
1876       /* Get the current used size of the three stacks, in elements.  */
1877       YYSIZE_T yysize = yyssp - yyss + 1;
1878
1879 #ifdef yyoverflow
1880       {
1881         /* Give user a chance to reallocate the stack. Use copies of
1882            these so that the &'s don't force the real ones into
1883            memory.  */
1884         YYSTYPE *yyvs1 = yyvs;
1885         short int *yyss1 = yyss;
1886
1887
1888         /* Each stack pointer address is followed by the size of the
1889            data in use in that stack, in bytes.  This used to be a
1890            conditional around just the two extra args, but that might
1891            be undefined if yyoverflow is a macro.  */
1892         yyoverflow (YY_("memory exhausted"),
1893                     &yyss1, yysize * sizeof (*yyssp),
1894                     &yyvs1, yysize * sizeof (*yyvsp),
1895
1896                     &yystacksize);
1897
1898         yyss = yyss1;
1899         yyvs = yyvs1;
1900       }
1901 #else /* no yyoverflow */
1902 # ifndef YYSTACK_RELOCATE
1903       goto yyexhaustedlab;
1904 # else
1905       /* Extend the stack our own way.  */
1906       if (YYMAXDEPTH <= yystacksize)
1907         goto yyexhaustedlab;
1908       yystacksize *= 2;
1909       if (YYMAXDEPTH < yystacksize)
1910         yystacksize = YYMAXDEPTH;
1911
1912       {
1913         short int *yyss1 = yyss;
1914         union yyalloc *yyptr =
1915           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1916         if (! yyptr)
1917           goto yyexhaustedlab;
1918         YYSTACK_RELOCATE (yyss);
1919         YYSTACK_RELOCATE (yyvs);
1920
1921 #  undef YYSTACK_RELOCATE
1922         if (yyss1 != yyssa)
1923           YYSTACK_FREE (yyss1);
1924       }
1925 # endif
1926 #endif /* no yyoverflow */
1927
1928       yyssp = yyss + yysize - 1;
1929       yyvsp = yyvs + yysize - 1;
1930
1931
1932       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1933                   (unsigned long int) yystacksize));
1934
1935       if (yyss + yystacksize - 1 <= yyssp)
1936         YYABORT;
1937     }
1938
1939   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1940
1941   goto yybackup;
1942
1943 /*-----------.
1944 | yybackup.  |
1945 `-----------*/
1946 yybackup:
1947
1948 /* Do appropriate processing given the current state.  */
1949 /* Read a look-ahead token if we need one and don't already have one.  */
1950 /* yyresume: */
1951
1952   /* First try to decide what to do without reference to look-ahead token.  */
1953
1954   yyn = yypact[yystate];
1955   if (yyn == YYPACT_NINF)
1956     goto yydefault;
1957
1958   /* Not known => get a look-ahead token if don't already have one.  */
1959
1960   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
1961   if (yychar == YYEMPTY)
1962     {
1963       YYDPRINTF ((stderr, "Reading a token: "));
1964       yychar = YYLEX;
1965     }
1966
1967   if (yychar <= YYEOF)
1968     {
1969       yychar = yytoken = YYEOF;
1970       YYDPRINTF ((stderr, "Now at end of input.\n"));
1971     }
1972   else
1973     {
1974       yytoken = YYTRANSLATE (yychar);
1975       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1976     }
1977
1978   /* If the proper action on seeing token YYTOKEN is to reduce or to
1979      detect an error, take that action.  */
1980   yyn += yytoken;
1981   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1982     goto yydefault;
1983   yyn = yytable[yyn];
1984   if (yyn <= 0)
1985     {
1986       if (yyn == 0 || yyn == YYTABLE_NINF)
1987         goto yyerrlab;
1988       yyn = -yyn;
1989       goto yyreduce;
1990     }
1991
1992   if (yyn == YYFINAL)
1993     YYACCEPT;
1994
1995   /* Shift the look-ahead token.  */
1996   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1997
1998   /* Discard the token being shifted unless it is eof.  */
1999   if (yychar != YYEOF)
2000     yychar = YYEMPTY;
2001
2002   *++yyvsp = yylval;
2003
2004
2005   /* Count tokens shifted since error; after three, turn off error
2006      status.  */
2007   if (yyerrstatus)
2008     yyerrstatus--;
2009
2010   yystate = yyn;
2011   goto yynewstate;
2012
2013
2014 /*-----------------------------------------------------------.
2015 | yydefault -- do the default action for the current state.  |
2016 `-----------------------------------------------------------*/
2017 yydefault:
2018   yyn = yydefact[yystate];
2019   if (yyn == 0)
2020     goto yyerrlab;
2021   goto yyreduce;
2022
2023
2024 /*-----------------------------.
2025 | yyreduce -- Do a reduction.  |
2026 `-----------------------------*/
2027 yyreduce:
2028   /* yyn is the number of a rule to reduce with.  */
2029   yylen = yyr2[yyn];
2030
2031   /* If YYLEN is nonzero, implement the default value of the action:
2032      `$$ = $1'.
2033
2034      Otherwise, the following line sets YYVAL to garbage.
2035      This behavior is undocumented and Bison
2036      users should not rely upon it.  Assigning to YYVAL
2037      unconditionally makes the parser a bit smaller, and it avoids a
2038      GCC warning that YYVAL may be used uninitialized.  */
2039   yyval = yyvsp[1-yylen];
2040
2041
2042   YY_REDUCE_PRINT (yyn);
2043   switch (yyn)
2044     {
2045         case 39:
2046 #line 207 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2047     {
2048     *(yyvsp[-1].String) += " = ";
2049     (yyval.String) = (yyvsp[-1].String);
2050   ;}
2051     break;
2052
2053   case 40:
2054 #line 211 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2055     {
2056     (yyval.String) = new std::string(""); 
2057   ;}
2058     break;
2059
2060   case 48:
2061 #line 218 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2062     { (yyval.String) = new std::string(""); ;}
2063     break;
2064
2065   case 56:
2066 #line 223 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2067     { (yyval.String) = new std::string(""); ;}
2068     break;
2069
2070   case 57:
2071 #line 228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2072     { (yyval.String) = new std::string(); ;}
2073     break;
2074
2075   case 58:
2076 #line 229 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2077     { *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst; delete (yyvsp[0].Const).cnst; (yyval.String) = (yyvsp[-1].String); ;}
2078     break;
2079
2080   case 59:
2081 #line 232 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2082     { (yyval.String) = new std::string(); ;}
2083     break;
2084
2085   case 60:
2086 #line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2087     { 
2088     (yyvsp[-1].String)->insert(0, ", "); 
2089     *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2090     delete (yyvsp[0].Const).cnst;
2091     (yyval.String) = (yyvsp[-1].String);
2092   ;}
2093     break;
2094
2095   case 61:
2096 #line 241 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2097     { 
2098     *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2099     delete (yyvsp[0].String);
2100     (yyval.String) = (yyvsp[-1].String);
2101   ;}
2102     break;
2103
2104   case 62:
2105 #line 247 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2106     { (yyval.String) = new std::string(); ;}
2107     break;
2108
2109   case 64:
2110 #line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2111     { (yyval.String) = new std::string(); ;}
2112     break;
2113
2114   case 65:
2115 #line 252 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2116     {
2117       (yyvsp[-1].String)->insert(0, ", ");
2118       if (!(yyvsp[0].String)->empty())
2119         *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2120       delete (yyvsp[0].String);
2121       (yyval.String) = (yyvsp[-1].String);
2122     ;}
2123     break;
2124
2125   case 67:
2126 #line 262 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2127     {
2128       *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2129       delete (yyvsp[0].Const).cnst;
2130       (yyval.String) = (yyvsp[-1].String);
2131     ;}
2132     break;
2133
2134   case 87:
2135 #line 283 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2136     { 
2137     (yyval.Type).newTy = (yyvsp[0].String); ;}
2138     break;
2139
2140   case 88:
2141 #line 288 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2142     {                   // Type UpReference
2143     (yyvsp[0].Const).cnst->insert(0, "\\");
2144     (yyval.Type).newTy = (yyvsp[0].Const).cnst;
2145     (yyval.Type).oldTy = OpaqueTy;
2146   ;}
2147     break;
2148
2149   case 89:
2150 #line 293 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2151     {           // Function derived type?
2152     *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )";
2153     delete (yyvsp[-1].String);
2154     (yyval.Type).newTy = (yyvsp[-3].Type).newTy;
2155     (yyval.Type).oldTy = FunctionTy;
2156   ;}
2157     break;
2158
2159   case 90:
2160 #line 299 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2161     {          // Sized array type?
2162     (yyvsp[-3].Const).cnst->insert(0,"[ ");
2163     *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " ]";
2164     delete (yyvsp[-1].Type).newTy;
2165     (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2166     (yyval.Type).oldTy = ArrayTy;
2167   ;}
2168     break;
2169
2170   case 91:
2171 #line 306 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2172     {          // Packed array type?
2173     (yyvsp[-3].Const).cnst->insert(0,"< ");
2174     *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " >";
2175     delete (yyvsp[-1].Type).newTy;
2176     (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2177     (yyval.Type).oldTy = PackedTy;
2178   ;}
2179     break;
2180
2181   case 92:
2182 #line 313 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2183     {                        // Structure type?
2184     (yyvsp[-1].String)->insert(0, "{ ");
2185     *(yyvsp[-1].String) += " }";
2186     (yyval.Type).newTy = (yyvsp[-1].String);
2187     (yyval.Type).oldTy = StructTy;
2188   ;}
2189     break;
2190
2191   case 93:
2192 #line 319 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2193     {                                  // Empty structure type?
2194     (yyval.Type).newTy = new std::string("{ }");
2195     (yyval.Type).oldTy = StructTy;
2196   ;}
2197     break;
2198
2199   case 94:
2200 #line 323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2201     {                             // Pointer type?
2202     *(yyvsp[-1].Type).newTy += '*';
2203     (yyvsp[-1].Type).oldTy = PointerTy;
2204     (yyval.Type) = (yyvsp[-1].Type);
2205   ;}
2206     break;
2207
2208   case 95:
2209 #line 333 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2210     {
2211     (yyval.String) = (yyvsp[0].Type).newTy;
2212   ;}
2213     break;
2214
2215   case 96:
2216 #line 336 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2217     {
2218     *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy;
2219     delete (yyvsp[0].Type).newTy;
2220     (yyval.String) = (yyvsp[-2].String);
2221   ;}
2222     break;
2223
2224   case 98:
2225 #line 345 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2226     {
2227     *(yyvsp[-2].String) += ", ...";
2228     delete (yyvsp[0].String);
2229     (yyval.String) = (yyvsp[-2].String);
2230   ;}
2231     break;
2232
2233   case 99:
2234 #line 350 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2235     {
2236     (yyval.String) = (yyvsp[0].String);
2237   ;}
2238     break;
2239
2240   case 100:
2241 #line 353 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2242     {
2243     (yyval.String) = new std::string();
2244   ;}
2245     break;
2246
2247   case 101:
2248 #line 363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2249     { // Nonempty unsized arr
2250     (yyval.Const).type = (yyvsp[-3].Type);
2251     (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2252     *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]";
2253     delete (yyvsp[-1].String);
2254   ;}
2255     break;
2256
2257   case 102:
2258 #line 369 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2259     {
2260     (yyval.Const).type = (yyvsp[-2].Type);
2261     (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2262     *(yyval.Const).cnst += "[ ]";
2263   ;}
2264     break;
2265
2266   case 103:
2267 #line 374 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2268     {
2269     (yyval.Const).type = (yyvsp[-2].Type);
2270     (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2271     *(yyval.Const).cnst += " c" + *(yyvsp[0].String);
2272     delete (yyvsp[0].String);
2273   ;}
2274     break;
2275
2276   case 104:
2277 #line 380 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2278     { // Nonempty unsized arr
2279     (yyval.Const).type = (yyvsp[-3].Type);
2280     (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2281     *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >";
2282     delete (yyvsp[-1].String);
2283   ;}
2284     break;
2285
2286   case 105:
2287 #line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2288     {
2289     (yyval.Const).type = (yyvsp[-3].Type);
2290     (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2291     *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }";
2292     delete (yyvsp[-1].String);
2293   ;}
2294     break;
2295
2296   case 106:
2297 #line 392 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2298     {
2299     (yyval.Const).type = (yyvsp[-2].Type);
2300     (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2301     *(yyval.Const).cnst += " [ ]";
2302   ;}
2303     break;
2304
2305   case 107:
2306 #line 397 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2307     {
2308     (yyval.Const).type = (yyvsp[-1].Type);
2309     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2310     *(yyval.Const).cnst +=  " " + *(yyvsp[0].Const).cnst;
2311     (yyvsp[0].Const).destroy();
2312   ;}
2313     break;
2314
2315   case 108:
2316 #line 403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2317     {
2318     (yyval.Const).type = (yyvsp[-1].Type);
2319     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2320     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2321     (yyvsp[0].Const).destroy();
2322   ;}
2323     break;
2324
2325   case 109:
2326 #line 409 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2327     {
2328     (yyval.Const).type = (yyvsp[-1].Type);
2329     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2330     *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2331     delete (yyvsp[0].String);
2332   ;}
2333     break;
2334
2335   case 110:
2336 #line 415 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2337     {
2338     (yyval.Const).type = (yyvsp[-1].Type);
2339     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2340     *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2341     delete (yyvsp[0].String);
2342   ;}
2343     break;
2344
2345   case 111:
2346 #line 421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2347     {
2348     (yyval.Const).type = (yyvsp[-1].Type);
2349     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2350     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2351     (yyvsp[0].Const).destroy();
2352   ;}
2353     break;
2354
2355   case 112:
2356 #line 427 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2357     {      // integral constants
2358     (yyval.Const).type = (yyvsp[-1].Type);
2359     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2360     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2361     (yyvsp[0].Const).destroy();
2362   ;}
2363     break;
2364
2365   case 113:
2366 #line 433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2367     {            // integral constants
2368     (yyval.Const).type = (yyvsp[-1].Type);
2369     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2370     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2371     (yyvsp[0].Const).destroy();
2372   ;}
2373     break;
2374
2375   case 114:
2376 #line 439 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2377     {                      // Boolean constants
2378     (yyval.Const).type = (yyvsp[-1].Type);
2379     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2380     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2381     (yyvsp[0].Const).destroy();
2382   ;}
2383     break;
2384
2385   case 115:
2386 #line 445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2387     {                     // Boolean constants
2388     (yyval.Const).type = (yyvsp[-1].Type);
2389     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2390     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2391     (yyvsp[0].Const).destroy();
2392   ;}
2393     break;
2394
2395   case 116:
2396 #line 451 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2397     {                   // Float & Double constants
2398     (yyval.Const).type = (yyvsp[-1].Type);
2399     (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2400     *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2401     (yyvsp[0].Const).destroy();
2402   ;}
2403     break;
2404
2405   case 117:
2406 #line 459 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2407     {
2408     // We must infer the cast opcode from the types of the operands. 
2409     const char *opcode = getCastOpcode((yyvsp[-3].Const).type, (yyvsp[-1].Type));
2410     (yyval.String) = new std::string(opcode);
2411     *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + " " + *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + ")";
2412     delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
2413   ;}
2414     break;
2415
2416   case 118:
2417 #line 466 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2418     {
2419     *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst + " " + *(yyvsp[-1].String) + ")";
2420     (yyval.String) = (yyvsp[-4].String);
2421     (yyvsp[-2].Const).destroy();
2422     delete (yyvsp[-1].String);
2423   ;}
2424     break;
2425
2426   case 119:
2427 #line 472 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2428     {
2429     *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2430     (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2431     (yyval.String) = (yyvsp[-7].String);
2432   ;}
2433     break;
2434
2435   case 120:
2436 #line 477 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2437     {
2438     *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2439     (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2440     (yyval.String) = (yyvsp[-5].String);
2441   ;}
2442     break;
2443
2444   case 121:
2445 #line 482 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2446     {
2447     *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2448     (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2449     (yyval.String) = (yyvsp[-5].String);
2450   ;}
2451     break;
2452
2453   case 122:
2454 #line 487 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2455     {
2456     *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2457     (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2458     (yyval.String) = (yyvsp[-5].String);
2459   ;}
2460     break;
2461
2462   case 123:
2463 #line 492 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2464     {
2465     *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2466     (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2467     (yyval.String) = (yyvsp[-5].String);
2468   ;}
2469     break;
2470
2471   case 124:
2472 #line 497 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2473     {
2474     *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2475     (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2476     (yyval.String) = (yyvsp[-5].String);
2477   ;}
2478     break;
2479
2480   case 125:
2481 #line 502 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2482     {
2483     *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2484     (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2485     (yyval.String) = (yyvsp[-7].String);
2486   ;}
2487     break;
2488
2489   case 126:
2490 #line 507 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2491     {
2492     *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2493     (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2494     (yyval.String) = (yyvsp[-7].String);
2495   ;}
2496     break;
2497
2498   case 127:
2499 #line 517 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2500     {
2501     *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
2502     (yyvsp[0].Const).destroy();
2503     (yyval.String) = (yyvsp[-2].String);
2504   ;}
2505     break;
2506
2507   case 128:
2508 #line 522 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2509     { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
2510     break;
2511
2512   case 131:
2513 #line 537 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2514     {
2515 ;}
2516     break;
2517
2518   case 132:
2519 #line 542 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2520     {
2521     (yyval.String) = 0;
2522   ;}
2523     break;
2524
2525   case 133:
2526 #line 545 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2527     {
2528     *O << *(yyvsp[0].String) << "\n";
2529     delete (yyvsp[0].String);
2530     (yyval.String) = 0;
2531   ;}
2532     break;
2533
2534   case 134:
2535 #line 550 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2536     {
2537     *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
2538   ;}
2539     break;
2540
2541   case 135:
2542 #line 553 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2543     {
2544     *O << "implementation\n";
2545   ;}
2546     break;
2547
2548   case 136:
2549 #line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2550     {
2551   ;}
2552     break;
2553
2554   case 137:
2555 #line 560 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2556     {
2557     *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2558     // delete $2; delete $3; $4.destroy();
2559     (yyval.String) = 0;
2560   ;}
2561     break;
2562
2563   case 138:
2564 #line 565 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2565     {       // Function prototypes can be in const pool
2566     *O << *(yyvsp[0].String) << "\n";
2567     delete (yyvsp[0].String);
2568     (yyval.String) = 0;
2569   ;}
2570     break;
2571
2572   case 139:
2573 #line 570 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2574     {  // Asm blocks can be in the const pool
2575     *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2576     delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String); 
2577     (yyval.String) = 0;
2578   ;}
2579     break;
2580
2581   case 140:
2582 #line 575 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2583     {
2584     *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " 
2585        << *(yyvsp[0].String) << "\n";
2586     delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String); 
2587     (yyval.String) = 0;
2588   ;}
2589     break;
2590
2591   case 141:
2592 #line 581 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2593     {
2594     *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy 
2595        << " " << *(yyvsp[0].String) << "\n";
2596     delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2597     (yyval.String) = 0;
2598   ;}
2599     break;
2600
2601   case 142:
2602 #line 587 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2603     {
2604     *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy 
2605        << " " << *(yyvsp[0].String) << "\n";
2606     delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2607     (yyval.String) = 0;
2608   ;}
2609     break;
2610
2611   case 143:
2612 #line 593 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2613     {
2614     *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy 
2615        << " " << *(yyvsp[0].String) << "\n";
2616     delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2617     (yyval.String) = 0;
2618   ;}
2619     break;
2620
2621   case 144:
2622 #line 599 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2623     { 
2624     *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2625     delete (yyvsp[-1].String); delete (yyvsp[0].String);
2626     (yyval.String) = 0;
2627   ;}
2628     break;
2629
2630   case 145:
2631 #line 604 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2632     {
2633     *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
2634     delete (yyvsp[-2].String); delete (yyvsp[0].String);
2635     (yyval.String) = 0;
2636   ;}
2637     break;
2638
2639   case 146:
2640 #line 609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2641     { 
2642     (yyval.String) = 0;
2643   ;}
2644     break;
2645
2646   case 150:
2647 #line 619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2648     {
2649     *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2650     delete (yyvsp[0].String);
2651     (yyval.String) = (yyvsp[-2].String);
2652   ;}
2653     break;
2654
2655   case 151:
2656 #line 624 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2657     {
2658     *(yyvsp[-2].String) += " = " + *(yyvsp[0].Const).cnst;
2659     if (*(yyvsp[0].Const).cnst == "64")
2660       SizeOfPointer = 64;
2661     (yyvsp[0].Const).destroy();
2662     (yyval.String) = (yyvsp[-2].String);
2663   ;}
2664     break;
2665
2666   case 152:
2667 #line 631 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2668     {
2669     *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2670     delete (yyvsp[0].String);
2671     (yyval.String) = (yyvsp[-2].String);
2672   ;}
2673     break;
2674
2675   case 153:
2676 #line 636 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2677     {
2678     *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2679     delete (yyvsp[0].String);
2680     (yyval.String) = (yyvsp[-2].String);
2681   ;}
2682     break;
2683
2684   case 154:
2685 #line 643 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2686     {
2687     (yyvsp[-1].String)->insert(0, "[ ");
2688     *(yyvsp[-1].String) += " ]";
2689     (yyval.String) = (yyvsp[-1].String);
2690   ;}
2691     break;
2692
2693   case 155:
2694 #line 650 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2695     {
2696     *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2697     delete (yyvsp[0].String);
2698     (yyval.String) = (yyvsp[-2].String);
2699   ;}
2700     break;
2701
2702   case 157:
2703 #line 656 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2704     {
2705     (yyval.String) = new std::string();
2706   ;}
2707     break;
2708
2709   case 161:
2710 #line 665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2711     { (yyval.String) = new std::string(); ;}
2712     break;
2713
2714   case 162:
2715 #line 667 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2716     {
2717   (yyval.String) = (yyvsp[-1].Type).newTy;
2718   if (!(yyvsp[0].String)->empty())
2719     *(yyval.String) += " " + *(yyvsp[0].String);
2720   delete (yyvsp[0].String);
2721 ;}
2722     break;
2723
2724   case 163:
2725 #line 674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2726     {
2727     *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2728     delete (yyvsp[0].String);
2729   ;}
2730     break;
2731
2732   case 164:
2733 #line 678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2734     {
2735     (yyval.String) = (yyvsp[0].String);
2736   ;}
2737     break;
2738
2739   case 165:
2740 #line 682 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2741     {
2742     (yyval.String) = (yyvsp[0].String);
2743   ;}
2744     break;
2745
2746   case 166:
2747 #line 685 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2748     {
2749     *(yyvsp[-2].String) += ", ...";
2750     (yyval.String) = (yyvsp[-2].String);
2751     delete (yyvsp[0].String);
2752   ;}
2753     break;
2754
2755   case 167:
2756 #line 690 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2757     {
2758     (yyval.String) = (yyvsp[0].String);
2759   ;}
2760     break;
2761
2762   case 168:
2763 #line 693 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2764     {
2765     (yyval.String) = new std::string();
2766   ;}
2767     break;
2768
2769   case 169:
2770 #line 698 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2771     {
2772     if (!(yyvsp[-7].String)->empty()) {
2773       *(yyvsp[-7].String) += " ";
2774     }
2775     *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")";
2776     if (!(yyvsp[-1].String)->empty()) {
2777       *(yyvsp[-7].String) += " " + *(yyvsp[-1].String);
2778     }
2779     if (!(yyvsp[0].String)->empty()) {
2780       *(yyvsp[-7].String) += " " + *(yyvsp[0].String);
2781     }
2782     (yyvsp[-6].Type).destroy();
2783     delete (yyvsp[-5].String);
2784     delete (yyvsp[-3].String);
2785     delete (yyvsp[-1].String);
2786     delete (yyvsp[0].String);
2787     (yyval.String) = (yyvsp[-7].String);
2788   ;}
2789     break;
2790
2791   case 170:
2792 #line 717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2793     {
2794     (yyval.String) = new std::string("begin");
2795   ;}
2796     break;
2797
2798   case 171:
2799 #line 720 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2800     { 
2801     (yyval.String) = new std::string ("{");
2802   ;}
2803     break;
2804
2805   case 172:
2806 #line 724 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2807     {
2808   if (!(yyvsp[-2].String)->empty()) {
2809     *O << *(yyvsp[-2].String) << " ";
2810   }
2811   *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2812   delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2813   (yyval.String) = 0;
2814 ;}
2815     break;
2816
2817   case 173:
2818 #line 733 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2819     { (yyval.String) = new std::string("end"); ;}
2820     break;
2821
2822   case 174:
2823 #line 734 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2824     { (yyval.String) = new std::string("}"); ;}
2825     break;
2826
2827   case 175:
2828 #line 736 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2829     {
2830   if ((yyvsp[-1].String))
2831     *O << *(yyvsp[-1].String);
2832   *O << '\n' << *(yyvsp[0].String) << "\n";
2833   (yyval.String) = 0;
2834 ;}
2835     break;
2836
2837   case 176:
2838 #line 744 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2839     { (yyval.String) = new std::string(); ;}
2840     break;
2841
2842   case 179:
2843 #line 750 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2844     { 
2845     if (!(yyvsp[-1].String)->empty())
2846       *(yyvsp[-2].String) += " " + *(yyvsp[-1].String);
2847     *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
2848     delete (yyvsp[-1].String);
2849     delete (yyvsp[0].String);
2850     (yyval.String) = (yyvsp[-2].String);
2851   ;}
2852     break;
2853
2854   case 180:
2855 #line 763 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2856     {
2857   ;}
2858     break;
2859
2860   case 181:
2861 #line 765 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2862     {
2863   ;}
2864     break;
2865
2866   case 182:
2867 #line 769 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2868     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2869     break;
2870
2871   case 183:
2872 #line 770 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2873     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2874     break;
2875
2876   case 184:
2877 #line 771 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2878     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2879     break;
2880
2881   case 185:
2882 #line 772 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2883     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2884     break;
2885
2886   case 186:
2887 #line 773 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2888     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2889     break;
2890
2891   case 187:
2892 #line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2893     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2894     break;
2895
2896   case 188:
2897 #line 775 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2898     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2899     break;
2900
2901   case 189:
2902 #line 776 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2903     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2904     break;
2905
2906   case 190:
2907 #line 777 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2908     { 
2909     (yyvsp[-1].String)->insert(0, "<");
2910     *(yyvsp[-1].String) += ">";
2911     (yyval.String) = (yyvsp[-1].String);
2912   ;}
2913     break;
2914
2915   case 192:
2916 #line 783 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2917     {
2918     if (!(yyvsp[-3].String)->empty()) {
2919       *(yyvsp[-4].String) += " " + *(yyvsp[-3].String);
2920     }
2921     *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
2922     delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String);
2923     (yyval.String) = (yyvsp[-4].String);
2924   ;}
2925     break;
2926
2927   case 193:
2928 #line 792 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2929     { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2930     break;
2931
2932   case 197:
2933 #line 801 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2934     {
2935     (yyval.Value).type = (yyvsp[-1].Type);
2936     (yyval.Value).val = new std::string(*(yyvsp[-1].Type).newTy + " ");
2937     *(yyval.Value).val += *(yyvsp[0].String);
2938     delete (yyvsp[0].String);
2939   ;}
2940     break;
2941
2942   case 198:
2943 #line 808 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2944     {
2945   ;}
2946     break;
2947
2948   case 199:
2949 #line 810 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2950     { // Do not allow functions with 0 basic blocks   
2951   ;}
2952     break;
2953
2954   case 200:
2955 #line 817 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2956     {
2957     *O << *(yyvsp[-1].String) ;
2958   ;}
2959     break;
2960
2961   case 201:
2962 #line 821 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2963     {
2964     *O << "    " << *(yyvsp[0].String) << "\n";
2965     delete (yyvsp[0].String);
2966     (yyval.String) = 0;
2967   ;}
2968     break;
2969
2970   case 202:
2971 #line 826 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2972     {
2973     (yyval.String) = 0;
2974   ;}
2975     break;
2976
2977   case 203:
2978 #line 829 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2979     {
2980     *O << *(yyvsp[0].String) << "\n";
2981     delete (yyvsp[0].String);
2982     (yyval.String) = 0;
2983   ;}
2984     break;
2985
2986   case 204:
2987 #line 835 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2988     {              // Return with a result...
2989     *O << "    " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n";
2990     delete (yyvsp[-1].String); (yyvsp[0].Value).destroy();
2991     (yyval.String) = 0;
2992   ;}
2993     break;
2994
2995   case 205:
2996 #line 840 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2997     {                                       // Return with no result...
2998     *O << "    " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2999     delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3000     (yyval.String) = 0;
3001   ;}
3002     break;
3003
3004   case 206:
3005 #line 845 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3006     {                         // Unconditional Branch...
3007     *O << "    " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3008     delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3009     (yyval.String) = 0;
3010   ;}
3011     break;
3012
3013   case 207:
3014 #line 850 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3015     {  
3016     *O << "    " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", " 
3017        << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << ", " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3018     delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); 
3019     (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3020     (yyval.String) = 0;
3021   ;}
3022     break;
3023
3024   case 208:
3025 #line 857 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3026     {
3027     *O << "    " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", " << *(yyvsp[-4].Type).newTy 
3028        << " " << *(yyvsp[-3].String) << " [" << *(yyvsp[-1].String) << " ]\n";
3029     delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3030     (yyval.String) = 0;
3031   ;}
3032     break;
3033
3034   case 209:
3035 #line 863 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3036     {
3037     *O << "    " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].String) << ", " 
3038        << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].String) << "[]\n";
3039     delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); delete (yyvsp[-5].String); (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String);
3040     (yyval.String) = 0;
3041   ;}
3042     break;
3043
3044   case 210:
3045 #line 870 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3046     {
3047     *O << "    " << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].String) << " ("
3048        << *(yyvsp[-7].String) << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << " " 
3049        << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3050     delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); delete (yyvsp[-9].String); delete (yyvsp[-7].String); delete (yyvsp[-5].String); 
3051     (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String); 
3052     (yyval.String) = 0;
3053   ;}
3054     break;
3055
3056   case 211:
3057 #line 878 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3058     {
3059     *O << "    " << *(yyvsp[0].String) << "\n";
3060     delete (yyvsp[0].String);
3061     (yyval.String) = 0;
3062   ;}
3063     break;
3064
3065   case 212:
3066 #line 883 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3067     {
3068     *O << "    " << *(yyvsp[0].String) << "\n";
3069     delete (yyvsp[0].String);
3070     (yyval.String) = 0;
3071   ;}
3072     break;
3073
3074   case 213:
3075 #line 889 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3076     {
3077     *(yyvsp[-5].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3078     (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3079     (yyval.String) = (yyvsp[-5].String);
3080   ;}
3081     break;
3082
3083   case 214:
3084 #line 894 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3085     {
3086     (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " );
3087     *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3088     (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3089     (yyval.String) = (yyvsp[-3].String);
3090   ;}
3091     break;
3092
3093   case 215:
3094 #line 902 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3095     {
3096     *(yyvsp[-1].String) += *(yyvsp[0].String);
3097     delete (yyvsp[0].String);
3098     (yyval.String) = (yyvsp[-1].String); 
3099   ;}
3100     break;
3101
3102   case 216:
3103 #line 909 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3104     {    // Used for PHI nodes
3105     (yyvsp[-3].String)->insert(0, *(yyvsp[-5].Type).newTy + "[");
3106     *(yyvsp[-3].String) += "," + *(yyvsp[-1].String) + "]";
3107     (yyvsp[-5].Type).destroy(); delete (yyvsp[-1].String);
3108     (yyval.String) = (yyvsp[-3].String);
3109   ;}
3110     break;
3111
3112   case 217:
3113 #line 915 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3114     {
3115     *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].String) + "," + *(yyvsp[-1].String) + "]";
3116     delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3117     (yyval.String) = (yyvsp[-6].String);
3118   ;}
3119     break;
3120
3121   case 218:
3122 #line 923 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3123     { (yyval.String) = new std::string(*(yyvsp[0].Value).val); (yyvsp[0].Value).destroy(); ;}
3124     break;
3125
3126   case 219:
3127 #line 924 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3128     {
3129     *(yyvsp[-2].String) += ", " + *(yyvsp[0].Value).val;
3130     (yyvsp[0].Value).destroy();
3131     (yyval.String) = (yyvsp[-2].String);
3132   ;}
3133     break;
3134
3135   case 221:
3136 #line 933 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3137     { (yyval.String) = new std::string(); ;}
3138     break;
3139
3140   case 222:
3141 #line 937 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3142     {
3143     *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3144     delete (yyvsp[0].String);
3145     (yyval.String) = (yyvsp[-1].String);
3146   ;}
3147     break;
3148
3149   case 224:
3150 #line 945 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3151     {
3152     *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3153     (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3154     (yyval.String) = (yyvsp[-4].String);
3155   ;}
3156     break;
3157
3158   case 225:
3159 #line 950 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3160     {
3161     *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3162     (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3163     (yyval.String) = (yyvsp[-4].String);
3164   ;}
3165     break;
3166
3167   case 226:
3168 #line 955 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3169     {
3170     *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3171     (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3172     (yyval.String) = (yyvsp[-4].String);
3173   ;}
3174     break;
3175
3176   case 227:
3177 #line 960 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3178     {
3179     *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3180     (yyvsp[0].Value).destroy();
3181     (yyval.String) = (yyvsp[-1].String);
3182   ;}
3183     break;
3184
3185   case 228:
3186 #line 965 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3187     {
3188     *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3189     (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3190     (yyval.String) = (yyvsp[-3].String);
3191   ;}
3192     break;
3193
3194   case 229:
3195 #line 970 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3196     {
3197     const char *opcode = getCastOpcode((yyvsp[-2].Value).type, (yyvsp[0].Type));
3198     (yyval.String) = new std::string(opcode);
3199     *(yyval.String) += *(yyvsp[-2].Value).val + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].Type).newTy; 
3200     delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy();
3201     delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3202   ;}
3203     break;
3204
3205   case 230:
3206 #line 977 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3207     {
3208     *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3209     (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3210     (yyval.String) = (yyvsp[-5].String);
3211   ;}
3212     break;
3213
3214   case 231:
3215 #line 982 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3216     {
3217     *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy;
3218     (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy();
3219     (yyval.String) = (yyvsp[-3].String);
3220   ;}
3221     break;
3222
3223   case 232:
3224 #line 987 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3225     {
3226     *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3227     (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3228     (yyval.String) = (yyvsp[-3].String);
3229   ;}
3230     break;
3231
3232   case 233:
3233 #line 992 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3234     {
3235     *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3236     (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3237     (yyval.String) = (yyvsp[-5].String);
3238   ;}
3239     break;
3240
3241   case 234:
3242 #line 997 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3243     {
3244     *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3245     (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3246     (yyval.String) = (yyvsp[-5].String);
3247   ;}
3248     break;
3249
3250   case 235:
3251 #line 1002 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3252     {
3253     *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3254     delete (yyvsp[0].String);
3255     (yyval.String) = (yyvsp[-1].String);
3256   ;}
3257     break;
3258
3259   case 236:
3260 #line 1007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3261     {
3262     if (!(yyvsp[-5].String)->empty())
3263       *(yyvsp[-6].String) += " " + *(yyvsp[-5].String);
3264     if (!(yyvsp[-6].String)->empty())
3265       *(yyvsp[-6].String) += " ";
3266     *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + "(" + *(yyvsp[-1].String) + ")";
3267     delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3268     (yyval.String) = (yyvsp[-6].String);
3269   ;}
3270     break;
3271
3272   case 238:
3273 #line 1021 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3274     { 
3275     (yyvsp[0].String)->insert(0, ", ");
3276     (yyval.String) = (yyvsp[0].String);
3277   ;}
3278     break;
3279
3280   case 239:
3281 #line 1025 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3282     {  (yyval.String) = new std::string(); ;}
3283     break;
3284
3285   case 241:
3286 #line 1030 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3287     { (yyval.String) = new std::string(); ;}
3288     break;
3289
3290   case 242:
3291 #line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3292     {
3293     *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3294     if (!(yyvsp[0].String)->empty())
3295       *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3296     (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3297     (yyval.String) = (yyvsp[-2].String);
3298   ;}
3299     break;
3300
3301   case 243:
3302 #line 1040 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3303     {
3304     *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3305     if (!(yyvsp[0].String)->empty())
3306       *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3307     (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3308     (yyval.String) = (yyvsp[-5].String);
3309   ;}
3310     break;
3311
3312   case 244:
3313 #line 1047 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3314     {
3315     *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3316     if (!(yyvsp[0].String)->empty())
3317       *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3318     (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3319     (yyval.String) = (yyvsp[-2].String);
3320   ;}
3321     break;
3322
3323   case 245:
3324 #line 1054 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3325     {
3326     *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3327     if (!(yyvsp[0].String)->empty())
3328       *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3329     (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3330     (yyval.String) = (yyvsp[-5].String);
3331   ;}
3332     break;
3333
3334   case 246:
3335 #line 1061 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3336     {
3337     *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3338     (yyvsp[0].Value).destroy();
3339     (yyval.String) = (yyvsp[-1].String);
3340   ;}
3341     break;
3342
3343   case 247:
3344 #line 1066 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3345     {
3346     if (!(yyvsp[-3].String)->empty())
3347       *(yyvsp[-3].String) += " ";
3348     *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3349     delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3350     (yyval.String) = (yyvsp[-3].String);
3351   ;}
3352     break;
3353
3354   case 248:
3355 #line 1073 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3356     {
3357     if (!(yyvsp[-5].String)->empty())
3358       *(yyvsp[-5].String) += " ";
3359     *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3360     delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3361     (yyval.String) = (yyvsp[-5].String);
3362   ;}
3363     break;
3364
3365   case 249:
3366 #line 1080 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3367     {
3368     *(yyvsp[-3].String) += *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].String);
3369     (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3370     (yyval.String) = (yyvsp[-3].String);
3371   ;}
3372     break;
3373
3374
3375       default: break;
3376     }
3377
3378 /* Line 1126 of yacc.c.  */
3379 #line 3380 "UpgradeParser.tab.c"
3380 \f
3381   yyvsp -= yylen;
3382   yyssp -= yylen;
3383
3384
3385   YY_STACK_PRINT (yyss, yyssp);
3386
3387   *++yyvsp = yyval;
3388
3389
3390   /* Now `shift' the result of the reduction.  Determine what state
3391      that goes to, based on the state we popped back to and the rule
3392      number reduced by.  */
3393
3394   yyn = yyr1[yyn];
3395
3396   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3397   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3398     yystate = yytable[yystate];
3399   else
3400     yystate = yydefgoto[yyn - YYNTOKENS];
3401
3402   goto yynewstate;
3403
3404
3405 /*------------------------------------.
3406 | yyerrlab -- here on detecting error |
3407 `------------------------------------*/
3408 yyerrlab:
3409   /* If not already recovering from an error, report this error.  */
3410   if (!yyerrstatus)
3411     {
3412       ++yynerrs;
3413 #if YYERROR_VERBOSE
3414       yyn = yypact[yystate];
3415
3416       if (YYPACT_NINF < yyn && yyn < YYLAST)
3417         {
3418           int yytype = YYTRANSLATE (yychar);
3419           YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3420           YYSIZE_T yysize = yysize0;
3421           YYSIZE_T yysize1;
3422           int yysize_overflow = 0;
3423           char *yymsg = 0;
3424 #         define YYERROR_VERBOSE_ARGS_MAXIMUM 5
3425           char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3426           int yyx;
3427
3428 #if 0
3429           /* This is so xgettext sees the translatable formats that are
3430              constructed on the fly.  */
3431           YY_("syntax error, unexpected %s");
3432           YY_("syntax error, unexpected %s, expecting %s");
3433           YY_("syntax error, unexpected %s, expecting %s or %s");
3434           YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3435           YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3436 #endif
3437           char *yyfmt;
3438           char const *yyf;
3439           static char const yyunexpected[] = "syntax error, unexpected %s";
3440           static char const yyexpecting[] = ", expecting %s";
3441           static char const yyor[] = " or %s";
3442           char yyformat[sizeof yyunexpected
3443                         + sizeof yyexpecting - 1
3444                         + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3445                            * (sizeof yyor - 1))];
3446           char const *yyprefix = yyexpecting;
3447
3448           /* Start YYX at -YYN if negative to avoid negative indexes in
3449              YYCHECK.  */
3450           int yyxbegin = yyn < 0 ? -yyn : 0;
3451
3452           /* Stay within bounds of both yycheck and yytname.  */
3453           int yychecklim = YYLAST - yyn;
3454           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3455           int yycount = 1;
3456
3457           yyarg[0] = yytname[yytype];
3458           yyfmt = yystpcpy (yyformat, yyunexpected);
3459
3460           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3461             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3462               {
3463                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3464                   {
3465                     yycount = 1;
3466                     yysize = yysize0;
3467                     yyformat[sizeof yyunexpected - 1] = '\0';
3468                     break;
3469                   }
3470                 yyarg[yycount++] = yytname[yyx];
3471                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3472                 yysize_overflow |= yysize1 < yysize;
3473                 yysize = yysize1;
3474                 yyfmt = yystpcpy (yyfmt, yyprefix);
3475                 yyprefix = yyor;
3476               }
3477
3478           yyf = YY_(yyformat);
3479           yysize1 = yysize + yystrlen (yyf);
3480           yysize_overflow |= yysize1 < yysize;
3481           yysize = yysize1;
3482
3483           if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
3484             yymsg = (char *) YYSTACK_ALLOC (yysize);
3485           if (yymsg)
3486             {
3487               /* Avoid sprintf, as that infringes on the user's name space.
3488                  Don't have undefined behavior even if the translation
3489                  produced a string with the wrong number of "%s"s.  */
3490               char *yyp = yymsg;
3491               int yyi = 0;
3492               while ((*yyp = *yyf))
3493                 {
3494                   if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3495                     {
3496                       yyp += yytnamerr (yyp, yyarg[yyi++]);
3497                       yyf += 2;
3498                     }
3499                   else
3500                     {
3501                       yyp++;
3502                       yyf++;
3503                     }
3504                 }
3505               yyerror (yymsg);
3506               YYSTACK_FREE (yymsg);
3507             }
3508           else
3509             {
3510               yyerror (YY_("syntax error"));
3511               goto yyexhaustedlab;
3512             }
3513         }
3514       else
3515 #endif /* YYERROR_VERBOSE */
3516         yyerror (YY_("syntax error"));
3517     }
3518
3519
3520
3521   if (yyerrstatus == 3)
3522     {
3523       /* If just tried and failed to reuse look-ahead token after an
3524          error, discard it.  */
3525
3526       if (yychar <= YYEOF)
3527         {
3528           /* Return failure if at end of input.  */
3529           if (yychar == YYEOF)
3530             YYABORT;
3531         }
3532       else
3533         {
3534           yydestruct ("Error: discarding", yytoken, &yylval);
3535           yychar = YYEMPTY;
3536         }
3537     }
3538
3539   /* Else will try to reuse look-ahead token after shifting the error
3540      token.  */
3541   goto yyerrlab1;
3542
3543
3544 /*---------------------------------------------------.
3545 | yyerrorlab -- error raised explicitly by YYERROR.  |
3546 `---------------------------------------------------*/
3547 yyerrorlab:
3548
3549   /* Pacify compilers like GCC when the user code never invokes
3550      YYERROR and the label yyerrorlab therefore never appears in user
3551      code.  */
3552   if (0)
3553      goto yyerrorlab;
3554
3555 yyvsp -= yylen;
3556   yyssp -= yylen;
3557   yystate = *yyssp;
3558   goto yyerrlab1;
3559
3560
3561 /*-------------------------------------------------------------.
3562 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3563 `-------------------------------------------------------------*/
3564 yyerrlab1:
3565   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3566
3567   for (;;)
3568     {
3569       yyn = yypact[yystate];
3570       if (yyn != YYPACT_NINF)
3571         {
3572           yyn += YYTERROR;
3573           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3574             {
3575               yyn = yytable[yyn];
3576               if (0 < yyn)
3577                 break;
3578             }
3579         }
3580
3581       /* Pop the current state because it cannot handle the error token.  */
3582       if (yyssp == yyss)
3583         YYABORT;
3584
3585
3586       yydestruct ("Error: popping", yystos[yystate], yyvsp);
3587       YYPOPSTACK;
3588       yystate = *yyssp;
3589       YY_STACK_PRINT (yyss, yyssp);
3590     }
3591
3592   if (yyn == YYFINAL)
3593     YYACCEPT;
3594
3595   *++yyvsp = yylval;
3596
3597
3598   /* Shift the error token. */
3599   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3600
3601   yystate = yyn;
3602   goto yynewstate;
3603
3604
3605 /*-------------------------------------.
3606 | yyacceptlab -- YYACCEPT comes here.  |
3607 `-------------------------------------*/
3608 yyacceptlab:
3609   yyresult = 0;
3610   goto yyreturn;
3611
3612 /*-----------------------------------.
3613 | yyabortlab -- YYABORT comes here.  |
3614 `-----------------------------------*/
3615 yyabortlab:
3616   yyresult = 1;
3617   goto yyreturn;
3618
3619 #ifndef yyoverflow
3620 /*-------------------------------------------------.
3621 | yyexhaustedlab -- memory exhaustion comes here.  |
3622 `-------------------------------------------------*/
3623 yyexhaustedlab:
3624   yyerror (YY_("memory exhausted"));
3625   yyresult = 2;
3626   /* Fall through.  */
3627 #endif
3628
3629 yyreturn:
3630   if (yychar != YYEOF && yychar != YYEMPTY)
3631      yydestruct ("Cleanup: discarding lookahead",
3632                  yytoken, &yylval);
3633   while (yyssp != yyss)
3634     {
3635       yydestruct ("Cleanup: popping",
3636                   yystos[*yyssp], yyvsp);
3637       YYPOPSTACK;
3638     }
3639 #ifndef yyoverflow
3640   if (yyss != yyssa)
3641     YYSTACK_FREE (yyss);
3642 #endif
3643   return yyresult;
3644 }
3645
3646
3647 #line 1086 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3648
3649
3650 int yyerror(const char *ErrorMsg) {
3651   std::string where 
3652     = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
3653                   + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
3654   std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
3655   if (yychar == YYEMPTY || yychar == 0)
3656     errMsg += "end-of-file.";
3657   else
3658     errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
3659   std::cerr << errMsg << '\n';
3660   exit(1);
3661 }
3662