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