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