blob: 06c25c2f813f40b52c0a6164fac05de102353ebc [file] [log] [blame]
Reid Spencere7c3c602006-11-30 06:36:44 +00001/* 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 {
Reid Spencerf2d55322006-12-01 21:52:30 +000067 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,
Reid Spencere77e35e2006-12-01 20:26:20 +000091 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,
Reid Spencere7c3c602006-11-30 06:36:44 +0000109 DLLIMPORT = 300,
110 DLLEXPORT = 301,
111 EXTERN_WEAK = 302,
Reid Spencere77e35e2006-12-01 20:26:20 +0000112 APPENDING = 303,
Reid Spencere7c3c602006-11-30 06:36:44 +0000113 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,
Reid Spencere77e35e2006-12-01 20:26:20 +0000166 PHI_TOK = 357,
167 SELECT = 358,
168 SHL = 359,
Reid Spencerf7bde222006-12-01 22:26:37 +0000169 SHR = 360,
Reid Spencere77e35e2006-12-01 20:26:20 +0000170 ASHR = 361,
Reid Spencerf7bde222006-12-01 22:26:37 +0000171 LSHR = 362,
172 VAARG = 363,
173 EXTRACTELEMENT = 364,
174 INSERTELEMENT = 365,
175 SHUFFLEVECTOR = 366,
176 CAST = 367
Reid Spencere7c3c602006-11-30 06:36:44 +0000177 };
178#endif
179/* Tokens. */
Reid Spencerf2d55322006-12-01 21:52:30 +0000180#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
Reid Spencere77e35e2006-12-01 20:26:20 +0000204#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
Reid Spencere7c3c602006-11-30 06:36:44 +0000222#define DLLIMPORT 300
223#define DLLEXPORT 301
224#define EXTERN_WEAK 302
Reid Spencere77e35e2006-12-01 20:26:20 +0000225#define APPENDING 303
Reid Spencere7c3c602006-11-30 06:36:44 +0000226#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
Reid Spencere77e35e2006-12-01 20:26:20 +0000279#define PHI_TOK 357
280#define SELECT 358
281#define SHL 359
Reid Spencerf7bde222006-12-01 22:26:37 +0000282#define SHR 360
Reid Spencere77e35e2006-12-01 20:26:20 +0000283#define ASHR 361
Reid Spencerf7bde222006-12-01 22:26:37 +0000284#define LSHR 362
285#define VAARG 363
286#define EXTRACTELEMENT 364
287#define INSERTELEMENT 365
288#define SHUFFLEVECTOR 366
289#define CAST 367
Reid Spencere7c3c602006-11-30 06:36:44 +0000290
291
292
293
294/* Copy the first part of user declarations. */
295#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
296
Reid Spencere7c3c602006-11-30 06:36:44 +0000297#include "ParserInternals.h"
298#include <llvm/ADT/StringExtras.h>
Reid Spencere7c3c602006-11-30 06:36:44 +0000299#include <algorithm>
300#include <list>
301#include <utility>
302#include <iostream>
303
Reid Spencere77e35e2006-12-01 20:26:20 +0000304#define YYERROR_VERBOSE 1
Reid Spencer96839be2006-11-30 16:50:26 +0000305#define YYINCLUDED_STDLIB_H
Reid Spencere77e35e2006-12-01 20:26:20 +0000306#define YYDEBUG 1
Reid Spencere7c3c602006-11-30 06:36:44 +0000307
308int yylex(); // declaration" of xxx warnings.
309int yyparse();
Reid Spencere77e35e2006-12-01 20:26:20 +0000310extern int yydebug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000311
312static std::string CurFilename;
Reid Spencere7c3c602006-11-30 06:36:44 +0000313static std::ostream *O = 0;
Reid Spencer96839be2006-11-30 16:50:26 +0000314std::istream* LexInput = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +0000315unsigned SizeOfPointer = 32;
Reid Spencer96839be2006-11-30 16:50:26 +0000316
317void UpgradeAssembly(const std::string &infile, std::istream& in,
Reid Spencere77e35e2006-12-01 20:26:20 +0000318 std::ostream &out, bool debug)
Reid Spencere7c3c602006-11-30 06:36:44 +0000319{
320 Upgradelineno = 1;
321 CurFilename = infile;
Reid Spencer96839be2006-11-30 16:50:26 +0000322 LexInput = &in;
Reid Spencere77e35e2006-12-01 20:26:20 +0000323 yydebug = debug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000324 O = &out;
325
326 if (yyparse()) {
327 std::cerr << "Parse failed.\n";
328 exit(1);
329 }
330}
331
Reid Spencere77e35e2006-12-01 20:26:20 +0000332const 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000408
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)
Reid Spencere77e35e2006-12-01 20:26:20 +0000429#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
430typedef union YYSTYPE {
431 std::string* String;
432 TypeInfo Type;
433 ValueInfo Value;
434 ConstInfo Const;
435} YYSTYPE;
436/* Line 196 of yacc.c. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000437#line 438 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000438# 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. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000449#line 450 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000450
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
512extern "C" {
513# endif
514# ifndef YYMALLOC
515# define YYMALLOC malloc
516# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
517 && (defined (__STDC__) || defined (__cplusplus)))
518void *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)))
525void 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. */
540union 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. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000600#define YYLAST 1150
Reid Spencere7c3c602006-11-30 06:36:44 +0000601
602/* YYNTOKENS -- Number of terminals. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000603#define YYNTOKENS 127
Reid Spencere7c3c602006-11-30 06:36:44 +0000604/* YYNNTS -- Number of nonterminals. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000605#define YYNNTS 70
Reid Spencere7c3c602006-11-30 06:36:44 +0000606/* YYNRULES -- Number of rules. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000607#define YYNRULES 250
Reid Spencere7c3c602006-11-30 06:36:44 +0000608/* YYNRULES -- Number of states. */
Reid Spencerf7bde222006-12-01 22:26:37 +0000609#define YYNSTATES 509
Reid Spencere7c3c602006-11-30 06:36:44 +0000610
611/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
612#define YYUNDEFTOK 2
Reid Spencerf7bde222006-12-01 22:26:37 +0000613#define YYMAXUTOK 367
Reid Spencere7c3c602006-11-30 06:36:44 +0000614
615#define YYTRANSLATE(YYX) \
616 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
617
618/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
619static 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,
Reid Spencerf7bde222006-12-01 22:26:37 +0000625 116, 117, 125, 2, 114, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencerf7bde222006-12-01 22:26:37 +0000627 121, 113, 122, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencerf7bde222006-12-01 22:26:37 +0000630 2, 118, 115, 120, 2, 2, 2, 2, 2, 126,
Reid Spencere7c3c602006-11-30 06:36:44 +0000631 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencerf7bde222006-12-01 22:26:37 +0000633 119, 2, 2, 123, 2, 124, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000634 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,
Reid Spencerf7bde222006-12-01 22:26:37 +0000657 105, 106, 107, 108, 109, 110, 111, 112
Reid Spencere7c3c602006-11-30 06:36:44 +0000658};
659
660#if YYDEBUG
661/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
662 YYRHS. */
663static 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,
Reid Spencerf7bde222006-12-01 22:26:37 +0000669 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,
Reid Spencere7c3c602006-11-30 06:36:44 +0000672 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
Reid Spencerf7bde222006-12-01 22:26:37 +0000673 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000691};
692
693/* YYRHS -- A `-1'-separated list of the rules' RHS. */
694static const short int yyrhs[] =
695{
Reid Spencerf7bde222006-12-01 22:26:37 +0000696 158, 0, -1, 19, -1, 20, -1, 17, -1, 18,
Reid Spencere7c3c602006-11-30 06:36:44 +0000697 -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,
Reid Spencere77e35e2006-12-01 20:26:20 +0000700 -1, 93, -1, 94, -1, 95, -1, 104, -1, 105,
Reid Spencerf7bde222006-12-01 22:26:37 +0000701 -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
Reid Spencere7c3c602006-11-30 06:36:44 +0000777};
778
779/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
780static const unsigned short int yyrline[] =
781{
Reid Spencerf2d55322006-12-01 21:52:30 +0000782 0, 188, 188, 188, 189, 189, 193, 193, 193, 193,
783 193, 193, 193, 193, 193, 194, 194, 194, 195, 195,
Reid Spencerf7bde222006-12-01 22:26:37 +0000784 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000808};
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. */
814static const char *const yytname[] =
815{
Reid Spencerf2d55322006-12-01 21:52:30 +0000816 "$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",
Reid Spencere77e35e2006-12-01 20:26:20 +0000820 "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",
Reid Spencerf7bde222006-12-01 22:26:37 +0000831 "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
Reid Spencere7c3c602006-11-30 06:36:44 +0000850};
851#endif
852
853# ifdef YYPRINT
854/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
855 token YYLEX-NUM. */
856static 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,
Reid Spencerf7bde222006-12-01 22:26:37 +0000869 365, 366, 367, 61, 44, 92, 40, 41, 91, 120,
870 93, 60, 62, 123, 125, 42, 99
Reid Spencere7c3c602006-11-30 06:36:44 +0000871};
872# endif
873
874/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
875static const unsigned char yyr1[] =
876{
Reid Spencerf7bde222006-12-01 22:26:37 +0000877 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000903};
904
905/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
906static 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,
Reid Spencerf7bde222006-12-01 22:26:37 +0000912 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000934};
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. */
939static const unsigned char yydefact[] =
940{
Reid Spencerf7bde222006-12-01 22:26:37 +0000941 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,
Reid Spencer16244f42006-12-01 21:10:07 +0000956 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
957 17, 18, 19, 20, 21, 22, 23, 0, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +0000958 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,
Reid Spencer16244f42006-12-01 21:10:07 +0000974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +0000975 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
Reid Spencere7c3c602006-11-30 06:36:44 +0000992};
993
994/* YYDEFGOTO[NTERM-NUM]. */
995static const short int yydefgoto[] =
996{
Reid Spencerf7bde222006-12-01 22:26:37 +0000997 -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
Reid Spencere7c3c602006-11-30 06:36:44 +00001004};
1005
1006/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1007 STATE-NUM. */
Reid Spencerf7bde222006-12-01 22:26:37 +00001008#define YYPACT_NINF -462
Reid Spencere7c3c602006-11-30 06:36:44 +00001009static const short int yypact[] =
1010{
Reid Spencerf7bde222006-12-01 22:26:37 +00001011 -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
Reid Spencere7c3c602006-11-30 06:36:44 +00001062};
1063
1064/* YYPGOTO[NTERM-NUM]. */
1065static const short int yypgoto[] =
1066{
Reid Spencerf7bde222006-12-01 22:26:37 +00001067 -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
Reid Spencere7c3c602006-11-30 06:36:44 +00001074};
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. */
Reid Spencerf7bde222006-12-01 22:26:37 +00001080#define YYTABLE_NINF -133
Reid Spencere7c3c602006-11-30 06:36:44 +00001081static const short int yytable[] =
1082{
Reid Spencerf7bde222006-12-01 22:26:37 +00001083 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001136 121, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1137 71, 72, 73, 74, 0, 0, 75, 76, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +00001138 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001158 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
Reid Spencerf7bde222006-12-01 22:26:37 +00001159 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001162 74, 0, 0, 75, 76, 0, 0, 0, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +00001163 0, 0, 19, 77, 20, 0, 78, 0, 0, 79,
1164 0, 80, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencerf2d55322006-12-01 21:52:30 +00001165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +00001166 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencerf7bde222006-12-01 22:26:37 +00001171 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,
Reid Spencer16244f42006-12-01 21:10:07 +00001195 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
Reid Spencerf7bde222006-12-01 22:26:37 +00001196 163, 164, 165, 166, 167, 168, 169, 0, 0, 170,
1197 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
1198 181
Reid Spencere7c3c602006-11-30 06:36:44 +00001199};
1200
1201static const short int yycheck[] =
1202{
Reid Spencerf7bde222006-12-01 22:26:37 +00001203 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001256 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1257 13, 14, 15, 16, -1, -1, 19, 20, -1, -1,
Reid Spencerf7bde222006-12-01 22:26:37 +00001258 -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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001278 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
Reid Spencerf7bde222006-12-01 22:26:37 +00001279 15, 16, -1, 115, 19, 20, 118, -1, -1, 121,
1280 -1, 123, -1, 28, -1, 30, -1, 3, 4, 5,
Reid Spencerf2d55322006-12-01 21:52:30 +00001281 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1282 16, -1, -1, 19, 20, -1, -1, -1, -1, -1,
Reid Spencerf7bde222006-12-01 22:26:37 +00001283 -1, -1, 28, 115, 30, -1, 118, -1, -1, 121,
1284 -1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencerf2d55322006-12-01 21:52:30 +00001285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencerf7bde222006-12-01 22:26:37 +00001286 -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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencerf7bde222006-12-01 22:26:37 +00001291 -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,
Reid Spencer16244f42006-12-01 21:10:07 +00001315 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
Reid Spencerf7bde222006-12-01 22:26:37 +00001316 92, 93, 94, 95, 96, 97, 98, -1, -1, 101,
1317 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1318 112
Reid Spencere7c3c602006-11-30 06:36:44 +00001319};
1320
1321/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1322 symbol of state STATE-NUM. */
1323static const unsigned char yystos[] =
1324{
Reid Spencerf7bde222006-12-01 22:26:37 +00001325 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,
Reid Spencerf2d55322006-12-01 21:52:30 +00001331 18, 3, 4, 5, 6, 7, 8, 9, 10, 11,
Reid Spencerf7bde222006-12-01 22:26:37 +00001332 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,
Reid Spencer16244f42006-12-01 21:10:07 +00001340 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,
Reid Spencerf7bde222006-12-01 22:26:37 +00001343 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
Reid Spencere7c3c602006-11-30 06:36:44 +00001376};
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) \
1397do \
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 } \
1411while (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) \
1477do { \
1478 if (yydebug) \
1479 YYFPRINTF Args; \
1480} while (0)
1481
1482# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1483do { \
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)
1499static void
1500yy_stack_print (short int *bottom, short int *top)
1501#else
1502static void
1503yy_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) \
1515do { \
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)
1526static void
1527yy_reduce_print (int yyrule)
1528#else
1529static void
1530yy_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) \
1545do { \
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. */
1552int 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
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. */
1586static YYSIZE_T
1587# if defined (__STDC__) || defined (__cplusplus)
1588yystrlen (const char *yystr)
1589# else
1590yystrlen (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. */
1610static char *
1611# if defined (__STDC__) || defined (__cplusplus)
1612yystpcpy (char *yydest, const char *yysrc)
1613# else
1614yystpcpy (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. */
1638static YYSIZE_T
1639yytnamerr (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
1681
1682#if YYDEBUG
1683/*--------------------------------.
1684| Print this symbol on YYOUTPUT. |
1685`--------------------------------*/
1686
1687#if defined (__STDC__) || defined (__cplusplus)
1688static void
1689yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1690#else
1691static void
1692yysymprint (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)
1725static void
1726yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1727#else
1728static void
1729yydestruct (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
1750
1751/* Prevent warnings from -Wmissing-prototypes. */
1752
1753#ifdef YYPARSE_PARAM
1754# if defined (__STDC__) || defined (__cplusplus)
1755int yyparse (void *YYPARSE_PARAM);
1756# else
1757int yyparse ();
1758# endif
1759#else /* ! YYPARSE_PARAM */
1760#if defined (__STDC__) || defined (__cplusplus)
1761int yyparse (void);
1762#else
1763int yyparse ();
1764#endif
1765#endif /* ! YYPARSE_PARAM */
1766
1767
1768
1769/* The look-ahead symbol. */
1770int yychar;
1771
1772/* The semantic value of the look-ahead symbol. */
1773YYSTYPE yylval;
1774
1775/* Number of syntax errors so far. */
1776int yynerrs;
1777
1778
1779
1780/*----------.
1781| yyparse. |
1782`----------*/
1783
1784#ifdef YYPARSE_PARAM
1785# if defined (__STDC__) || defined (__cplusplus)
1786int yyparse (void *YYPARSE_PARAM)
1787# else
1788int yyparse (YYPARSE_PARAM)
1789 void *YYPARSE_PARAM;
1790# endif
1791#else /* ! YYPARSE_PARAM */
1792#if defined (__STDC__) || defined (__cplusplus)
1793int
1794yyparse (void)
1795#else
1796int
1797yyparse ()
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`-----------*/
1945yybackup:
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`-----------------------------------------------------------*/
2016yydefault:
2017 yyn = yydefact[yystate];
2018 if (yyn == 0)
2019 goto yyerrlab;
2020 goto yyreduce;
2021
2022
2023/*-----------------------------.
2024| yyreduce -- Do a reduction. |
2025`-----------------------------*/
2026yyreduce:
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 {
Reid Spencerf7bde222006-12-01 22:26:37 +00002044 case 40:
Reid Spencerf2d55322006-12-01 21:52:30 +00002045#line 206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002046 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002047 *(yyvsp[-1].String) += " = ";
2048 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002049 ;}
2050 break;
2051
Reid Spencerf7bde222006-12-01 22:26:37 +00002052 case 41:
Reid Spencerf2d55322006-12-01 21:52:30 +00002053#line 210 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002054 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002055 (yyval.String) = new std::string("");
Reid Spencere7c3c602006-11-30 06:36:44 +00002056 ;}
2057 break;
2058
Reid Spencerf7bde222006-12-01 22:26:37 +00002059 case 49:
Reid Spencerf2d55322006-12-01 21:52:30 +00002060#line 217 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002061 { (yyval.String) = new std::string(""); ;}
2062 break;
2063
Reid Spencerf7bde222006-12-01 22:26:37 +00002064 case 56:
Reid Spencerf2d55322006-12-01 21:52:30 +00002065#line 222 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002066 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002067 *(yyvsp[-1].String) += *(yyvsp[0].String);
2068 delete (yyvsp[0].String);
Reid Spencer16244f42006-12-01 21:10:07 +00002069 (yyval.String) = (yyvsp[-1].String);
2070 ;}
2071 break;
2072
Reid Spencerf7bde222006-12-01 22:26:37 +00002073 case 57:
Reid Spencerf2d55322006-12-01 21:52:30 +00002074#line 227 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002075 { (yyval.String) = new std::string(""); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002076 break;
2077
Reid Spencerf7bde222006-12-01 22:26:37 +00002078 case 58:
Reid Spencerf2d55322006-12-01 21:52:30 +00002079#line 232 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002080 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002081 break;
2082
Reid Spencerf7bde222006-12-01 22:26:37 +00002083 case 59:
Reid Spencerf2d55322006-12-01 21:52:30 +00002084#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); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002086 break;
2087
Reid Spencerf7bde222006-12-01 22:26:37 +00002088 case 60:
Reid Spencerf2d55322006-12-01 21:52:30 +00002089#line 236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002090 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002091 break;
2092
Reid Spencerf7bde222006-12-01 22:26:37 +00002093 case 61:
Reid Spencerf2d55322006-12-01 21:52:30 +00002094#line 237 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002095 {
2096 (yyvsp[-1].String)->insert(0, ", ");
Reid Spencerf2d55322006-12-01 21:52:30 +00002097 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2098 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002099 (yyval.String) = (yyvsp[-1].String);
2100 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002101 break;
2102
Reid Spencerf7bde222006-12-01 22:26:37 +00002103 case 62:
Reid Spencerf2d55322006-12-01 21:52:30 +00002104#line 245 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002105 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002106 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2107 delete (yyvsp[0].String);
2108 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002109 ;}
2110 break;
2111
Reid Spencerf7bde222006-12-01 22:26:37 +00002112 case 63:
Reid Spencerf2d55322006-12-01 21:52:30 +00002113#line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002114 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002115 break;
2116
Reid Spencerf7bde222006-12-01 22:26:37 +00002117 case 65:
Reid Spencerf2d55322006-12-01 21:52:30 +00002118#line 255 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002119 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002120 break;
2121
Reid Spencerf7bde222006-12-01 22:26:37 +00002122 case 66:
Reid Spencerf2d55322006-12-01 21:52:30 +00002123#line 256 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002124 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002125 (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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002130 ;}
2131 break;
2132
Reid Spencerf7bde222006-12-01 22:26:37 +00002133 case 68:
Reid Spencerf2d55322006-12-01 21:52:30 +00002134#line 266 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002135 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002136 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2137 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002138 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002139 ;}
2140 break;
2141
Reid Spencerf7bde222006-12-01 22:26:37 +00002142 case 88:
Reid Spencerf2d55322006-12-01 21:52:30 +00002143#line 288 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002144 {
Reid Spencerd154b572006-12-01 20:36:40 +00002145 (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy;
2146 ;}
Reid Spencere77e35e2006-12-01 20:26:20 +00002147 break;
2148
Reid Spencerf7bde222006-12-01 22:26:37 +00002149 case 89:
Reid Spencerf2d55322006-12-01 21:52:30 +00002150#line 294 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002151 { // Type UpReference
Reid Spencerf2d55322006-12-01 21:52:30 +00002152 (yyvsp[0].String)->insert(0, "\\");
2153 (yyval.Type).newTy = (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002154 (yyval.Type).oldTy = OpaqueTy;
2155 ;}
2156 break;
2157
Reid Spencerf7bde222006-12-01 22:26:37 +00002158 case 90:
Reid Spencerf2d55322006-12-01 21:52:30 +00002159#line 299 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002160 { // 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
Reid Spencerf7bde222006-12-01 22:26:37 +00002168 case 91:
Reid Spencerf2d55322006-12-01 21:52:30 +00002169#line 305 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002170 { // Sized array type?
Reid Spencerf2d55322006-12-01 21:52:30 +00002171 (yyvsp[-3].String)->insert(0,"[ ");
2172 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]";
Reid Spencere77e35e2006-12-01 20:26:20 +00002173 delete (yyvsp[-1].Type).newTy;
Reid Spencerf2d55322006-12-01 21:52:30 +00002174 (yyval.Type).newTy = (yyvsp[-3].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002175 (yyval.Type).oldTy = ArrayTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002176 ;}
2177 break;
2178
Reid Spencerf7bde222006-12-01 22:26:37 +00002179 case 92:
Reid Spencerf2d55322006-12-01 21:52:30 +00002180#line 312 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002181 { // Packed array type?
Reid Spencerf2d55322006-12-01 21:52:30 +00002182 (yyvsp[-3].String)->insert(0,"< ");
2183 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >";
Reid Spencere77e35e2006-12-01 20:26:20 +00002184 delete (yyvsp[-1].Type).newTy;
Reid Spencerf2d55322006-12-01 21:52:30 +00002185 (yyval.Type).newTy = (yyvsp[-3].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002186 (yyval.Type).oldTy = PackedTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002187 ;}
2188 break;
2189
Reid Spencerf7bde222006-12-01 22:26:37 +00002190 case 93:
Reid Spencerf2d55322006-12-01 21:52:30 +00002191#line 319 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002192 { // Structure type?
2193 (yyvsp[-1].String)->insert(0, "{ ");
2194 *(yyvsp[-1].String) += " }";
2195 (yyval.Type).newTy = (yyvsp[-1].String);
2196 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002197 ;}
2198 break;
2199
Reid Spencerf7bde222006-12-01 22:26:37 +00002200 case 94:
Reid Spencerf2d55322006-12-01 21:52:30 +00002201#line 325 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002202 { // Empty structure type?
2203 (yyval.Type).newTy = new std::string("{ }");
2204 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002205 ;}
2206 break;
2207
Reid Spencerf7bde222006-12-01 22:26:37 +00002208 case 95:
Reid Spencerf2d55322006-12-01 21:52:30 +00002209#line 329 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002210 { // Pointer type?
2211 *(yyvsp[-1].Type).newTy += '*';
2212 (yyvsp[-1].Type).oldTy = PointerTy;
2213 (yyval.Type) = (yyvsp[-1].Type);
Reid Spencere7c3c602006-11-30 06:36:44 +00002214 ;}
2215 break;
2216
Reid Spencerf7bde222006-12-01 22:26:37 +00002217 case 96:
Reid Spencerf2d55322006-12-01 21:52:30 +00002218#line 339 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002219 {
2220 (yyval.String) = (yyvsp[0].Type).newTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002221 ;}
2222 break;
2223
Reid Spencerf7bde222006-12-01 22:26:37 +00002224 case 97:
Reid Spencerf2d55322006-12-01 21:52:30 +00002225#line 342 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002226 {
2227 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy;
2228 delete (yyvsp[0].Type).newTy;
2229 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002230 ;}
2231 break;
2232
Reid Spencerf7bde222006-12-01 22:26:37 +00002233 case 99:
Reid Spencerf2d55322006-12-01 21:52:30 +00002234#line 351 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002235 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002236 *(yyvsp[-2].String) += ", ...";
2237 delete (yyvsp[0].String);
2238 (yyval.String) = (yyvsp[-2].String);
2239 ;}
2240 break;
2241
Reid Spencerf7bde222006-12-01 22:26:37 +00002242 case 100:
Reid Spencerf2d55322006-12-01 21:52:30 +00002243#line 356 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002244 {
2245 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002246 ;}
2247 break;
2248
Reid Spencerf7bde222006-12-01 22:26:37 +00002249 case 101:
Reid Spencerf2d55322006-12-01 21:52:30 +00002250#line 359 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002251 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002252 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002253 ;}
2254 break;
2255
Reid Spencerf7bde222006-12-01 22:26:37 +00002256 case 102:
Reid Spencerf2d55322006-12-01 21:52:30 +00002257#line 369 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002258 { // 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002263 ;}
2264 break;
2265
Reid Spencerf7bde222006-12-01 22:26:37 +00002266 case 103:
Reid Spencerf2d55322006-12-01 21:52:30 +00002267#line 375 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002268 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002269 (yyval.Const).type = (yyvsp[-2].Type);
2270 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2271 *(yyval.Const).cnst += "[ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002272 ;}
2273 break;
2274
Reid Spencerf7bde222006-12-01 22:26:37 +00002275 case 104:
Reid Spencerf2d55322006-12-01 21:52:30 +00002276#line 380 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002277 {
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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002282 ;}
2283 break;
2284
Reid Spencerf7bde222006-12-01 22:26:37 +00002285 case 105:
Reid Spencerf2d55322006-12-01 21:52:30 +00002286#line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002287 { // 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002292 ;}
2293 break;
2294
Reid Spencerf7bde222006-12-01 22:26:37 +00002295 case 106:
Reid Spencerf2d55322006-12-01 21:52:30 +00002296#line 392 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002297 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002298 (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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002302 ;}
2303 break;
2304
Reid Spencerf7bde222006-12-01 22:26:37 +00002305 case 107:
Reid Spencerf2d55322006-12-01 21:52:30 +00002306#line 398 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002307 {
2308 (yyval.Const).type = (yyvsp[-2].Type);
2309 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2310 *(yyval.Const).cnst += " [ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002311 ;}
2312 break;
2313
Reid Spencerf7bde222006-12-01 22:26:37 +00002314 case 108:
Reid Spencerf2d55322006-12-01 21:52:30 +00002315#line 403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002316 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002317 (yyval.Const).type = (yyvsp[-1].Type);
2318 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002319 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2320 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002321 ;}
2322 break;
2323
Reid Spencerf7bde222006-12-01 22:26:37 +00002324 case 109:
Reid Spencerf2d55322006-12-01 21:52:30 +00002325#line 409 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002326 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002327 (yyval.Const).type = (yyvsp[-1].Type);
2328 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002329 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2330 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002331 ;}
2332 break;
2333
Reid Spencerf7bde222006-12-01 22:26:37 +00002334 case 110:
Reid Spencerf2d55322006-12-01 21:52:30 +00002335#line 415 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002336 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002337 (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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002341 ;}
2342 break;
2343
Reid Spencerf7bde222006-12-01 22:26:37 +00002344 case 111:
Reid Spencerf2d55322006-12-01 21:52:30 +00002345#line 421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002346 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002347 (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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002351 ;}
2352 break;
2353
Reid Spencerf7bde222006-12-01 22:26:37 +00002354 case 112:
Reid Spencerf2d55322006-12-01 21:52:30 +00002355#line 427 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002356 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002357 (yyval.Const).type = (yyvsp[-1].Type);
2358 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002359 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2360 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002361 ;}
2362 break;
2363
Reid Spencerf7bde222006-12-01 22:26:37 +00002364 case 113:
Reid Spencerf2d55322006-12-01 21:52:30 +00002365#line 433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002366 { // integral constants
2367 (yyval.Const).type = (yyvsp[-1].Type);
2368 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002369 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2370 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002371 ;}
2372 break;
2373
Reid Spencerf7bde222006-12-01 22:26:37 +00002374 case 114:
Reid Spencerf2d55322006-12-01 21:52:30 +00002375#line 439 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002376 { // integral constants
2377 (yyval.Const).type = (yyvsp[-1].Type);
2378 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002379 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2380 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002381 ;}
2382 break;
2383
Reid Spencerf7bde222006-12-01 22:26:37 +00002384 case 115:
Reid Spencerf2d55322006-12-01 21:52:30 +00002385#line 445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002386 { // Boolean constants
2387 (yyval.Const).type = (yyvsp[-1].Type);
2388 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002389 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2390 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002391 ;}
2392 break;
2393
Reid Spencerf7bde222006-12-01 22:26:37 +00002394 case 116:
Reid Spencerf2d55322006-12-01 21:52:30 +00002395#line 451 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002396 { // Boolean constants
2397 (yyval.Const).type = (yyvsp[-1].Type);
2398 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002399 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2400 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002401 ;}
2402 break;
2403
Reid Spencerf7bde222006-12-01 22:26:37 +00002404 case 117:
Reid Spencerf2d55322006-12-01 21:52:30 +00002405#line 457 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002406 { // Float & Double constants
2407 (yyval.Const).type = (yyvsp[-1].Type);
2408 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002409 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2410 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002411 ;}
2412 break;
2413
Reid Spencerf7bde222006-12-01 22:26:37 +00002414 case 118:
Reid Spencerf2d55322006-12-01 21:52:30 +00002415#line 465 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002416 {
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();
Reid Spencere7c3c602006-11-30 06:36:44 +00002422 ;}
2423 break;
2424
Reid Spencerf7bde222006-12-01 22:26:37 +00002425 case 119:
Reid Spencerf2d55322006-12-01 21:52:30 +00002426#line 472 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002427 {
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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002432 ;}
2433 break;
2434
Reid Spencerf7bde222006-12-01 22:26:37 +00002435 case 120:
Reid Spencerf2d55322006-12-01 21:52:30 +00002436#line 478 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002437 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002438 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002441 ;}
2442 break;
2443
Reid Spencerf7bde222006-12-01 22:26:37 +00002444 case 121:
Reid Spencerf2d55322006-12-01 21:52:30 +00002445#line 483 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002446 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002447 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002450 ;}
2451 break;
2452
Reid Spencerf7bde222006-12-01 22:26:37 +00002453 case 122:
Reid Spencerf2d55322006-12-01 21:52:30 +00002454#line 488 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002455 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002456 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002459 ;}
2460 break;
2461
Reid Spencerf7bde222006-12-01 22:26:37 +00002462 case 123:
Reid Spencerf2d55322006-12-01 21:52:30 +00002463#line 493 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002464 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002465 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002468 ;}
2469 break;
2470
Reid Spencerf7bde222006-12-01 22:26:37 +00002471 case 124:
Reid Spencerf2d55322006-12-01 21:52:30 +00002472#line 498 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002473 {
Reid Spencerf7bde222006-12-01 22:26:37 +00002474 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();
Reid Spencere7c3c602006-11-30 06:36:44 +00002480 ;}
2481 break;
2482
Reid Spencer16244f42006-12-01 21:10:07 +00002483 case 125:
Reid Spencerf7bde222006-12-01 22:26:37 +00002484#line 506 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002485 {
Reid Spencerf7bde222006-12-01 22:26:37 +00002486 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002489 ;}
2490 break;
2491
Reid Spencer16244f42006-12-01 21:10:07 +00002492 case 126:
Reid Spencerf7bde222006-12-01 22:26:37 +00002493#line 511 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002494 {
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
Reid Spencere7c3c602006-11-30 06:36:44 +00002501 case 127:
Reid Spencerf7bde222006-12-01 22:26:37 +00002502#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00002512 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002513 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
2514 (yyvsp[0].Const).destroy();
2515 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002516 ;}
2517 break;
2518
Reid Spencerf7bde222006-12-01 22:26:37 +00002519 case 129:
2520#line 531 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002521 { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002522 break;
2523
Reid Spencerf7bde222006-12-01 22:26:37 +00002524 case 132:
2525#line 546 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002526 {
2527;}
2528 break;
2529
Reid Spencerf7bde222006-12-01 22:26:37 +00002530 case 133:
2531#line 551 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002532 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002533 (yyval.String) = 0;
2534 ;}
2535 break;
2536
Reid Spencerf7bde222006-12-01 22:26:37 +00002537 case 134:
2538#line 554 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002539 {
2540 *O << *(yyvsp[0].String) << "\n";
2541 delete (yyvsp[0].String);
2542 (yyval.String) = 0;
2543 ;}
2544 break;
2545
Reid Spencerf7bde222006-12-01 22:26:37 +00002546 case 135:
2547#line 559 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002548 {
2549 *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
Reid Spencerd154b572006-12-01 20:36:40 +00002550 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002551 ;}
2552 break;
2553
Reid Spencerf7bde222006-12-01 22:26:37 +00002554 case 136:
2555#line 563 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002556 {
Reid Spencerd154b572006-12-01 20:36:40 +00002557 *O << "implementation\n";
2558 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002559 ;}
2560 break;
2561
Reid Spencerf7bde222006-12-01 22:26:37 +00002562 case 138:
2563#line 570 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002564 {
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
Reid Spencerf7bde222006-12-01 22:26:37 +00002571 case 139:
2572#line 575 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002573 { // 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
Reid Spencerf7bde222006-12-01 22:26:37 +00002580 case 140:
2581#line 580 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002582 { // 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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002586 ;}
2587 break;
2588
Reid Spencerf7bde222006-12-01 22:26:37 +00002589 case 141:
2590#line 585 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002591 {
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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002596 ;}
2597 break;
2598
Reid Spencere7c3c602006-11-30 06:36:44 +00002599 case 142:
Reid Spencerf7bde222006-12-01 22:26:37 +00002600#line 591 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002601 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002602 *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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002606 ;}
2607 break;
2608
2609 case 143:
Reid Spencerf7bde222006-12-01 22:26:37 +00002610#line 597 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002611 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002612 *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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002616 ;}
2617 break;
2618
2619 case 144:
Reid Spencerf7bde222006-12-01 22:26:37 +00002620#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"
Reid Spencere77e35e2006-12-01 20:26:20 +00002631 {
2632 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2633 delete (yyvsp[-1].String); delete (yyvsp[0].String);
2634 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002635 ;}
2636 break;
2637
Reid Spencerf7bde222006-12-01 22:26:37 +00002638 case 146:
2639#line 614 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002640 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002641 *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
2642 delete (yyvsp[-2].String); delete (yyvsp[0].String);
2643 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002644 ;}
2645 break;
2646
Reid Spencerf7bde222006-12-01 22:26:37 +00002647 case 147:
2648#line 619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002649 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002650 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002651 ;}
2652 break;
2653
Reid Spencerf7bde222006-12-01 22:26:37 +00002654 case 151:
2655#line 629 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002656 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002657 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2658 delete (yyvsp[0].String);
2659 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002660 ;}
2661 break;
2662
Reid Spencerf7bde222006-12-01 22:26:37 +00002663 case 152:
2664#line 634 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002665 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002666 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2667 if (*(yyvsp[0].String) == "64")
Reid Spencere77e35e2006-12-01 20:26:20 +00002668 SizeOfPointer = 64;
Reid Spencerf2d55322006-12-01 21:52:30 +00002669 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002670 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002671 ;}
2672 break;
2673
Reid Spencer16244f42006-12-01 21:10:07 +00002674 case 153:
Reid Spencerf7bde222006-12-01 22:26:37 +00002675#line 641 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002676 {
2677 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2678 delete (yyvsp[0].String);
2679 (yyval.String) = (yyvsp[-2].String);
2680 ;}
2681 break;
2682
Reid Spencere7c3c602006-11-30 06:36:44 +00002683 case 154:
Reid Spencerf7bde222006-12-01 22:26:37 +00002684#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00002694 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002695 (yyvsp[-1].String)->insert(0, "[ ");
2696 *(yyvsp[-1].String) += " ]";
2697 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002698 ;}
2699 break;
2700
Reid Spencerf7bde222006-12-01 22:26:37 +00002701 case 156:
2702#line 660 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002703 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002704 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2705 delete (yyvsp[0].String);
2706 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002707 ;}
2708 break;
2709
Reid Spencerf7bde222006-12-01 22:26:37 +00002710 case 158:
2711#line 666 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002712 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002713 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002714 ;}
2715 break;
2716
Reid Spencerf7bde222006-12-01 22:26:37 +00002717 case 162:
2718#line 675 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002719 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002720 break;
2721
Reid Spencerf7bde222006-12-01 22:26:37 +00002722 case 163:
2723#line 677 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002724 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002725 (yyval.String) = (yyvsp[-1].Type).newTy;
2726 if (!(yyvsp[0].String)->empty())
2727 *(yyval.String) += " " + *(yyvsp[0].String);
2728 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002729;}
2730 break;
2731
Reid Spencerf7bde222006-12-01 22:26:37 +00002732 case 164:
2733#line 684 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002734 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002735 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2736 delete (yyvsp[0].String);
2737 ;}
2738 break;
2739
Reid Spencere77e35e2006-12-01 20:26:20 +00002740 case 165:
Reid Spencerf7bde222006-12-01 22:26:37 +00002741#line 688 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002742 {
2743 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002744 ;}
2745 break;
2746
2747 case 166:
Reid Spencerf2d55322006-12-01 21:52:30 +00002748#line 692 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002749 {
Reid Spencerf7bde222006-12-01 22:26:37 +00002750 (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 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002757 *(yyvsp[-2].String) += ", ...";
2758 (yyval.String) = (yyvsp[-2].String);
2759 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002760 ;}
2761 break;
2762
Reid Spencerf7bde222006-12-01 22:26:37 +00002763 case 168:
2764#line 700 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002765 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002766 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002767 ;}
2768 break;
2769
Reid Spencerf7bde222006-12-01 22:26:37 +00002770 case 169:
2771#line 703 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002772 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002773 break;
2774
Reid Spencerf7bde222006-12-01 22:26:37 +00002775 case 170:
2776#line 706 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002777 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002778 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002794 ;}
2795 break;
2796
Reid Spencerf7bde222006-12-01 22:26:37 +00002797 case 171:
2798#line 725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002799 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002800 (yyval.String) = new std::string("begin");
Reid Spencere7c3c602006-11-30 06:36:44 +00002801 ;}
2802 break;
2803
Reid Spencerf7bde222006-12-01 22:26:37 +00002804 case 172:
2805#line 728 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002806 {
2807 (yyval.String) = new std::string ("{");
Reid Spencere7c3c602006-11-30 06:36:44 +00002808 ;}
2809 break;
2810
Reid Spencerf7bde222006-12-01 22:26:37 +00002811 case 173:
2812#line 732 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002813 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002814 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;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002821 break;
2822
Reid Spencerf7bde222006-12-01 22:26:37 +00002823 case 174:
2824#line 741 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002825 { (yyval.String) = new std::string("end"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002826 break;
2827
Reid Spencerf7bde222006-12-01 22:26:37 +00002828 case 175:
2829#line 742 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002830 { (yyval.String) = new std::string("}"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002831 break;
2832
Reid Spencerf7bde222006-12-01 22:26:37 +00002833 case 176:
2834#line 744 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002835 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002836 if ((yyvsp[-1].String))
2837 *O << *(yyvsp[-1].String);
2838 *O << '\n' << *(yyvsp[0].String) << "\n";
2839 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002840;}
2841 break;
2842
Reid Spencerf7bde222006-12-01 22:26:37 +00002843 case 177:
2844#line 752 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002845 { (yyval.String) = new std::string(); ;}
2846 break;
2847
Reid Spencerf7bde222006-12-01 22:26:37 +00002848 case 180:
2849#line 758 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002850 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002851 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
Reid Spencerf7bde222006-12-01 22:26:37 +00002860 case 181:
2861#line 771 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002862 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002863 break;
2864
Reid Spencerf7bde222006-12-01 22:26:37 +00002865 case 191:
2866#line 777 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002867 {
2868 (yyvsp[-1].String)->insert(0, "<");
2869 *(yyvsp[-1].String) += ">";
2870 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002871 ;}
2872 break;
2873
Reid Spencerf7bde222006-12-01 22:26:37 +00002874 case 193:
2875#line 783 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002876 {
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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002883 ;}
2884 break;
2885
Reid Spencerf7bde222006-12-01 22:26:37 +00002886 case 198:
2887#line 801 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002888 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002889 (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
Reid Spencere7c3c602006-11-30 06:36:44 +00002896 case 199:
Reid Spencerf2d55322006-12-01 21:52:30 +00002897#line 808 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerf7bde222006-12-01 22:26:37 +00002898 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002899 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002900 ;}
2901 break;
2902
Reid Spencere77e35e2006-12-01 20:26:20 +00002903 case 200:
Reid Spencerf7bde222006-12-01 22:26:37 +00002904#line 811 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2905 { // Do not allow functions with 0 basic blocks
Reid Spencerf2d55322006-12-01 21:52:30 +00002906 (yyval.String) = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +00002907 ;}
2908 break;
2909
2910 case 201:
Reid Spencerf7bde222006-12-01 22:26:37 +00002911#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"
Reid Spencere77e35e2006-12-01 20:26:20 +00002919 {
2920 *O << " " << *(yyvsp[0].String) << "\n";
2921 delete (yyvsp[0].String);
2922 (yyval.String) = 0;
2923 ;}
2924 break;
2925
Reid Spencerf7bde222006-12-01 22:26:37 +00002926 case 203:
2927#line 828 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002928 {
2929 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002930 ;}
2931 break;
2932
Reid Spencerf7bde222006-12-01 22:26:37 +00002933 case 204:
2934#line 831 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002935 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002936 *O << *(yyvsp[0].String) << "\n";
2937 delete (yyvsp[0].String);
2938 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002939 ;}
2940 break;
2941
Reid Spencerf7bde222006-12-01 22:26:37 +00002942 case 205:
2943#line 837 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002944 { // 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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002948 ;}
2949 break;
2950
Reid Spencerf7bde222006-12-01 22:26:37 +00002951 case 206:
2952#line 842 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002953 { // 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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002957 ;}
2958 break;
2959
Reid Spencerf7bde222006-12-01 22:26:37 +00002960 case 207:
2961#line 847 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002962 { // 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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002966 ;}
2967 break;
2968
Reid Spencerf7bde222006-12-01 22:26:37 +00002969 case 208:
2970#line 852 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002971 {
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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002977 ;}
2978 break;
2979
Reid Spencerf7bde222006-12-01 22:26:37 +00002980 case 209:
2981#line 859 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002982 {
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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002987 ;}
2988 break;
2989
Reid Spencerf7bde222006-12-01 22:26:37 +00002990 case 210:
2991#line 865 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002992 {
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;
Reid Spencere7c3c602006-11-30 06:36:44 +00002997 ;}
2998 break;
2999
Reid Spencerf7bde222006-12-01 22:26:37 +00003000 case 211:
3001#line 872 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003002 {
Reid Spencer16244f42006-12-01 21:10:07 +00003003 *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) << " ("
Reid Spencere77e35e2006-12-01 20:26:20 +00003007 << *(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";
Reid Spencer16244f42006-12-01 21:10:07 +00003009 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);
Reid Spencere77e35e2006-12-01 20:26:20 +00003012 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003013 ;}
3014 break;
3015
Reid Spencere7c3c602006-11-30 06:36:44 +00003016 case 212:
Reid Spencerf7bde222006-12-01 22:26:37 +00003017#line 884 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003018 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003019 *O << " " << *(yyvsp[0].String) << "\n";
3020 delete (yyvsp[0].String);
3021 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003022 ;}
3023 break;
3024
3025 case 213:
Reid Spencerf7bde222006-12-01 22:26:37 +00003026#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00003036 {
Reid Spencer16244f42006-12-01 21:10:07 +00003037 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003038 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3039 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003040 ;}
3041 break;
3042
Reid Spencerf7bde222006-12-01 22:26:37 +00003043 case 215:
3044#line 900 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003045 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003046 (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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003050 ;}
3051 break;
3052
Reid Spencerf7bde222006-12-01 22:26:37 +00003053 case 216:
3054#line 908 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003055 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003056 *(yyvsp[-1].String) += *(yyvsp[0].String);
3057 delete (yyvsp[0].String);
3058 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003059 ;}
3060 break;
3061
Reid Spencerf7bde222006-12-01 22:26:37 +00003062 case 217:
3063#line 915 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003064 { // 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003069 ;}
3070 break;
3071
Reid Spencerf7bde222006-12-01 22:26:37 +00003072 case 218:
3073#line 921 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003074 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003075 *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].String) + "," + *(yyvsp[-1].String) + "]";
3076 delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3077 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003078 ;}
3079 break;
3080
Reid Spencerf7bde222006-12-01 22:26:37 +00003081 case 219:
3082#line 929 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003083 { (yyval.String) = new std::string(*(yyvsp[0].Value).val); (yyvsp[0].Value).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003084 break;
3085
Reid Spencerf7bde222006-12-01 22:26:37 +00003086 case 220:
3087#line 930 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003088 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003089 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Value).val;
3090 (yyvsp[0].Value).destroy();
3091 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003092 ;}
3093 break;
3094
Reid Spencerf7bde222006-12-01 22:26:37 +00003095 case 222:
3096#line 939 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003097 { (yyval.String) = new std::string(); ;}
3098 break;
3099
Reid Spencerf7bde222006-12-01 22:26:37 +00003100 case 223:
3101#line 943 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003102 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003103 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3104 delete (yyvsp[0].String);
3105 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003106 ;}
3107 break;
3108
Reid Spencere77e35e2006-12-01 20:26:20 +00003109 case 225:
Reid Spencerf7bde222006-12-01 22:26:37 +00003110#line 951 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003111 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003112 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003115 ;}
3116 break;
3117
3118 case 226:
Reid Spencerf7bde222006-12-01 22:26:37 +00003119#line 956 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003120 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003121 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003124 ;}
3125 break;
3126
3127 case 227:
Reid Spencerf7bde222006-12-01 22:26:37 +00003128#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00003138 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003139 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3140 (yyvsp[0].Value).destroy();
3141 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003142 ;}
3143 break;
3144
Reid Spencerf7bde222006-12-01 22:26:37 +00003145 case 229:
3146#line 971 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003147 {
Reid Spencerf7bde222006-12-01 22:26:37 +00003148 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();
Reid Spencere7c3c602006-11-30 06:36:44 +00003154 ;}
3155 break;
3156
Reid Spencerf7bde222006-12-01 22:26:37 +00003157 case 230:
3158#line 979 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003159 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003160 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();
Reid Spencere7c3c602006-11-30 06:36:44 +00003165 ;}
3166 break;
3167
Reid Spencerf7bde222006-12-01 22:26:37 +00003168 case 231:
3169#line 986 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003170 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003171 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003174 ;}
3175 break;
3176
Reid Spencerf7bde222006-12-01 22:26:37 +00003177 case 232:
3178#line 991 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003179 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003180 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003183 ;}
3184 break;
3185
Reid Spencerf7bde222006-12-01 22:26:37 +00003186 case 233:
3187#line 996 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003188 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003189 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003192 ;}
3193 break;
3194
Reid Spencere7c3c602006-11-30 06:36:44 +00003195 case 234:
Reid Spencerf7bde222006-12-01 22:26:37 +00003196#line 1001 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003197 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003198 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003201 ;}
3202 break;
3203
3204 case 235:
Reid Spencerf7bde222006-12-01 22:26:37 +00003205#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00003215 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003216 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3217 delete (yyvsp[0].String);
3218 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003219 ;}
3220 break;
3221
Reid Spencerf7bde222006-12-01 22:26:37 +00003222 case 237:
3223#line 1016 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003224 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003225 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003232 ;}
3233 break;
3234
Reid Spencerf7bde222006-12-01 22:26:37 +00003235 case 239:
3236#line 1030 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003237 {
3238 (yyvsp[0].String)->insert(0, ", ");
3239 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003240 ;}
3241 break;
3242
Reid Spencerf7bde222006-12-01 22:26:37 +00003243 case 240:
3244#line 1034 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003245 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003246 break;
3247
Reid Spencerf7bde222006-12-01 22:26:37 +00003248 case 242:
3249#line 1039 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003250 { (yyval.String) = new std::string(); ;}
3251 break;
3252
Reid Spencerf7bde222006-12-01 22:26:37 +00003253 case 243:
3254#line 1042 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003255 {
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 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003262 break;
3263
Reid Spencere7c3c602006-11-30 06:36:44 +00003264 case 244:
Reid Spencerf7bde222006-12-01 22:26:37 +00003265#line 1049 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003266 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003267 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003272 ;}
3273 break;
3274
Reid Spencerf7bde222006-12-01 22:26:37 +00003275 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
Reid Spencere7c3c602006-11-30 06:36:44 +00003286 case 246:
Reid Spencerf7bde222006-12-01 22:26:37 +00003287#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"
Reid Spencere7c3c602006-11-30 06:36:44 +00003299 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003300 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3301 (yyvsp[0].Value).destroy();
3302 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003303 ;}
3304 break;
3305
Reid Spencerf7bde222006-12-01 22:26:37 +00003306 case 248:
3307#line 1075 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003308 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003309 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003314 ;}
3315 break;
3316
Reid Spencerf7bde222006-12-01 22:26:37 +00003317 case 249:
3318#line 1082 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003319 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003320 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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003325 ;}
3326 break;
3327
Reid Spencerf7bde222006-12-01 22:26:37 +00003328 case 250:
3329#line 1089 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003330 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003331 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00003334 ;}
3335 break;
3336
3337
3338 default: break;
3339 }
3340
3341/* Line 1126 of yacc.c. */
Reid Spencerf7bde222006-12-01 22:26:37 +00003342#line 3343 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +00003343
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`------------------------------------*/
3371yyerrlab:
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`---------------------------------------------------*/
3510yyerrorlab:
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
3518yyvsp -= yylen;
3519 yyssp -= yylen;
3520 yystate = *yyssp;
3521 goto yyerrlab1;
3522
3523
3524/*-------------------------------------------------------------.
3525| yyerrlab1 -- common code for both syntax error and YYERROR. |
3526`-------------------------------------------------------------*/
3527yyerrlab1:
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`-------------------------------------*/
3571yyacceptlab:
3572 yyresult = 0;
3573 goto yyreturn;
3574
3575/*-----------------------------------.
3576| yyabortlab -- YYABORT comes here. |
3577`-----------------------------------*/
3578yyabortlab:
3579 yyresult = 1;
3580 goto yyreturn;
3581
3582#ifndef yyoverflow
3583/*-------------------------------------------------.
3584| yyexhaustedlab -- memory exhaustion comes here. |
3585`-------------------------------------------------*/
3586yyexhaustedlab:
3587 yyerror (YY_("memory exhausted"));
3588 yyresult = 2;
3589 /* Fall through. */
3590#endif
3591
3592yyreturn:
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
Reid Spencerf7bde222006-12-01 22:26:37 +00003610#line 1095 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003611
3612
3613int 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