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