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