blob: 305a3aee1cb0727441c252a6bdacf2b9b0bfa9e3 [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 {
67 ESINT64VAL = 258,
68 EUINT64VAL = 259,
69 SINTVAL = 260,
70 UINTVAL = 261,
71 FPVAL = 262,
Reid Spencere77e35e2006-12-01 20:26:20 +000072 TRUETOK = 263,
73 FALSETOK = 264,
74 NULL_TOK = 265,
75 UNDEF = 266,
76 ZEROINITIALIZER = 267,
77 VOID = 268,
78 BOOL = 269,
79 SBYTE = 270,
80 UBYTE = 271,
81 SHORT = 272,
82 USHORT = 273,
83 INT = 274,
84 UINT = 275,
85 LONG = 276,
86 ULONG = 277,
87 FLOAT = 278,
88 DOUBLE = 279,
89 LABEL = 280,
90 OPAQUE = 281,
91 TYPE = 282,
92 VAR_ID = 283,
93 LABELSTR = 284,
94 STRINGCONSTANT = 285,
95 IMPLEMENTATION = 286,
96 BEGINTOK = 287,
97 ENDTOK = 288,
98 DECLARE = 289,
99 GLOBAL = 290,
100 CONSTANT = 291,
101 SECTION = 292,
102 VOLATILE = 293,
103 TO = 294,
104 DOTDOTDOT = 295,
105 CONST = 296,
106 INTERNAL = 297,
107 LINKONCE = 298,
108 WEAK = 299,
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,
169 LSHR = 360,
170 ASHR = 361,
171 VAARG = 362,
172 EXTRACTELEMENT = 363,
173 INSERTELEMENT = 364,
174 SHUFFLEVECTOR = 365,
175 CAST = 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000176 };
177#endif
178/* Tokens. */
179#define ESINT64VAL 258
180#define EUINT64VAL 259
181#define SINTVAL 260
182#define UINTVAL 261
183#define FPVAL 262
Reid Spencere77e35e2006-12-01 20:26:20 +0000184#define TRUETOK 263
185#define FALSETOK 264
186#define NULL_TOK 265
187#define UNDEF 266
188#define ZEROINITIALIZER 267
189#define VOID 268
190#define BOOL 269
191#define SBYTE 270
192#define UBYTE 271
193#define SHORT 272
194#define USHORT 273
195#define INT 274
196#define UINT 275
197#define LONG 276
198#define ULONG 277
199#define FLOAT 278
200#define DOUBLE 279
201#define LABEL 280
202#define OPAQUE 281
203#define TYPE 282
204#define VAR_ID 283
205#define LABELSTR 284
206#define STRINGCONSTANT 285
207#define IMPLEMENTATION 286
208#define BEGINTOK 287
209#define ENDTOK 288
210#define DECLARE 289
211#define GLOBAL 290
212#define CONSTANT 291
213#define SECTION 292
214#define VOLATILE 293
215#define TO 294
216#define DOTDOTDOT 295
217#define CONST 296
218#define INTERNAL 297
219#define LINKONCE 298
220#define WEAK 299
Reid Spencere7c3c602006-11-30 06:36:44 +0000221#define DLLIMPORT 300
222#define DLLEXPORT 301
223#define EXTERN_WEAK 302
Reid Spencere77e35e2006-12-01 20:26:20 +0000224#define APPENDING 303
Reid Spencere7c3c602006-11-30 06:36:44 +0000225#define NOT 304
226#define EXTERNAL 305
227#define TARGET 306
228#define TRIPLE 307
229#define ENDIAN 308
230#define POINTERSIZE 309
231#define LITTLE 310
232#define BIG 311
233#define ALIGN 312
234#define DEPLIBS 313
235#define CALL 314
236#define TAIL 315
237#define ASM_TOK 316
238#define MODULE 317
239#define SIDEEFFECT 318
240#define CC_TOK 319
241#define CCC_TOK 320
242#define CSRETCC_TOK 321
243#define FASTCC_TOK 322
244#define COLDCC_TOK 323
245#define X86_STDCALLCC_TOK 324
246#define X86_FASTCALLCC_TOK 325
247#define DATALAYOUT 326
248#define RET 327
249#define BR 328
250#define SWITCH 329
251#define INVOKE 330
252#define UNWIND 331
253#define UNREACHABLE 332
254#define ADD 333
255#define SUB 334
256#define MUL 335
257#define UDIV 336
258#define SDIV 337
259#define FDIV 338
260#define UREM 339
261#define SREM 340
262#define FREM 341
263#define AND 342
264#define OR 343
265#define XOR 344
266#define SETLE 345
267#define SETGE 346
268#define SETLT 347
269#define SETGT 348
270#define SETEQ 349
271#define SETNE 350
272#define MALLOC 351
273#define ALLOCA 352
274#define FREE 353
275#define LOAD 354
276#define STORE 355
277#define GETELEMENTPTR 356
Reid Spencere77e35e2006-12-01 20:26:20 +0000278#define PHI_TOK 357
279#define SELECT 358
280#define SHL 359
281#define LSHR 360
282#define ASHR 361
283#define VAARG 362
284#define EXTRACTELEMENT 363
285#define INSERTELEMENT 364
286#define SHUFFLEVECTOR 365
287#define CAST 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000288
289
290
291
292/* Copy the first part of user declarations. */
293#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
294
Reid Spencere7c3c602006-11-30 06:36:44 +0000295#include "ParserInternals.h"
296#include <llvm/ADT/StringExtras.h>
Reid Spencere7c3c602006-11-30 06:36:44 +0000297#include <algorithm>
298#include <list>
299#include <utility>
300#include <iostream>
301
Reid Spencere77e35e2006-12-01 20:26:20 +0000302#define YYERROR_VERBOSE 1
Reid Spencer96839be2006-11-30 16:50:26 +0000303#define YYINCLUDED_STDLIB_H
Reid Spencere77e35e2006-12-01 20:26:20 +0000304#define YYDEBUG 1
Reid Spencere7c3c602006-11-30 06:36:44 +0000305
306int yylex(); // declaration" of xxx warnings.
307int yyparse();
Reid Spencere77e35e2006-12-01 20:26:20 +0000308extern int yydebug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000309
310static std::string CurFilename;
Reid Spencere7c3c602006-11-30 06:36:44 +0000311static std::ostream *O = 0;
Reid Spencer96839be2006-11-30 16:50:26 +0000312std::istream* LexInput = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +0000313unsigned SizeOfPointer = 32;
Reid Spencer96839be2006-11-30 16:50:26 +0000314
315void UpgradeAssembly(const std::string &infile, std::istream& in,
Reid Spencere77e35e2006-12-01 20:26:20 +0000316 std::ostream &out, bool debug)
Reid Spencere7c3c602006-11-30 06:36:44 +0000317{
318 Upgradelineno = 1;
319 CurFilename = infile;
Reid Spencer96839be2006-11-30 16:50:26 +0000320 LexInput = &in;
Reid Spencere77e35e2006-12-01 20:26:20 +0000321 yydebug = debug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000322 O = &out;
323
324 if (yyparse()) {
325 std::cerr << "Parse failed.\n";
326 exit(1);
327 }
328}
329
Reid Spencere77e35e2006-12-01 20:26:20 +0000330const char* getCastOpcode(TypeInfo& SrcTy, TypeInfo&DstTy) {
331 unsigned SrcBits = SrcTy.getBitWidth();
332 unsigned DstBits = DstTy.getBitWidth();
333 const char* opcode = "bitcast";
334 // Run through the possibilities ...
335 if (DstTy.isIntegral()) { // Casting to integral
336 if (SrcTy.isIntegral()) { // Casting from integral
337 if (DstBits < SrcBits)
338 opcode = "trunc";
339 else if (DstBits > SrcBits) { // its an extension
340 if (SrcTy.isSigned())
341 opcode ="sext"; // signed -> SEXT
342 else
343 opcode = "zext"; // unsigned -> ZEXT
344 } else {
345 opcode = "bitcast"; // Same size, No-op cast
346 }
347 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
348 if (DstTy.isSigned())
349 opcode = "fptosi"; // FP -> sint
350 else
351 opcode = "fptoui"; // FP -> uint
352 } else if (SrcTy.isPacked()) {
353 assert(DstBits == SrcTy.getBitWidth() &&
354 "Casting packed to integer of different width");
355 opcode = "bitcast"; // same size, no-op cast
356 } else {
357 assert(SrcTy.isPointer() &&
358 "Casting from a value that is not first-class type");
359 opcode = "ptrtoint"; // ptr -> int
360 }
361 } else if (DstTy.isFloatingPoint()) { // Casting to floating pt
362 if (SrcTy.isIntegral()) { // Casting from integral
363 if (SrcTy.isSigned())
364 opcode = "sitofp"; // sint -> FP
365 else
366 opcode = "uitofp"; // uint -> FP
367 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
368 if (DstBits < SrcBits) {
369 opcode = "fptrunc"; // FP -> smaller FP
370 } else if (DstBits > SrcBits) {
371 opcode = "fpext"; // FP -> larger FP
372 } else {
373 opcode ="bitcast"; // same size, no-op cast
374 }
375 } else if (SrcTy.isPacked()) {
376 assert(DstBits == SrcTy.getBitWidth() &&
377 "Casting packed to floating point of different width");
378 opcode = "bitcast"; // same size, no-op cast
379 } else {
380 assert(0 && "Casting pointer or non-first class to float");
381 }
382 } else if (DstTy.isPacked()) {
383 if (SrcTy.isPacked()) {
384 assert(DstTy.getBitWidth() == SrcTy.getBitWidth() &&
385 "Casting packed to packed of different widths");
386 opcode = "bitcast"; // packed -> packed
387 } else if (DstTy.getBitWidth() == SrcBits) {
388 opcode = "bitcast"; // float/int -> packed
389 } else {
390 assert(!"Illegal cast to packed (wrong type or size)");
391 }
392 } else if (DstTy.isPointer()) {
393 if (SrcTy.isPointer()) {
394 opcode = "bitcast"; // ptr -> ptr
395 } else if (SrcTy.isIntegral()) {
396 opcode = "inttoptr"; // int -> ptr
397 } else {
398 assert(!"Casting pointer to other than pointer or int");
399 }
400 } else {
401 assert(!"Casting to type that is not first-class");
402 }
403 return opcode;
404}
405
Reid Spencere7c3c602006-11-30 06:36:44 +0000406
407
408/* Enabling traces. */
409#ifndef YYDEBUG
410# define YYDEBUG 0
411#endif
412
413/* Enabling verbose error messages. */
414#ifdef YYERROR_VERBOSE
415# undef YYERROR_VERBOSE
416# define YYERROR_VERBOSE 1
417#else
418# define YYERROR_VERBOSE 0
419#endif
420
421/* Enabling the token table. */
422#ifndef YYTOKEN_TABLE
423# define YYTOKEN_TABLE 0
424#endif
425
426#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
Reid Spencere77e35e2006-12-01 20:26:20 +0000427#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
428typedef union YYSTYPE {
429 std::string* String;
430 TypeInfo Type;
431 ValueInfo Value;
432 ConstInfo Const;
433} YYSTYPE;
434/* Line 196 of yacc.c. */
435#line 436 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000436# define yystype YYSTYPE /* obsolescent; will be withdrawn */
437# define YYSTYPE_IS_DECLARED 1
438# define YYSTYPE_IS_TRIVIAL 1
439#endif
440
441
442
443/* Copy the second part of user declarations. */
444
445
446/* Line 219 of yacc.c. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000447#line 448 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000448
449#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
450# define YYSIZE_T __SIZE_TYPE__
451#endif
452#if ! defined (YYSIZE_T) && defined (size_t)
453# define YYSIZE_T size_t
454#endif
455#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
456# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457# define YYSIZE_T size_t
458#endif
459#if ! defined (YYSIZE_T)
460# define YYSIZE_T unsigned int
461#endif
462
463#ifndef YY_
464# if YYENABLE_NLS
465# if ENABLE_NLS
466# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
467# define YY_(msgid) dgettext ("bison-runtime", msgid)
468# endif
469# endif
470# ifndef YY_
471# define YY_(msgid) msgid
472# endif
473#endif
474
475#if ! defined (yyoverflow) || YYERROR_VERBOSE
476
477/* The parser invokes alloca or malloc; define the necessary symbols. */
478
479# ifdef YYSTACK_USE_ALLOCA
480# if YYSTACK_USE_ALLOCA
481# ifdef __GNUC__
482# define YYSTACK_ALLOC __builtin_alloca
483# else
484# define YYSTACK_ALLOC alloca
485# if defined (__STDC__) || defined (__cplusplus)
486# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487# define YYINCLUDED_STDLIB_H
488# endif
489# endif
490# endif
491# endif
492
493# ifdef YYSTACK_ALLOC
494 /* Pacify GCC's `empty if-body' warning. */
495# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
496# ifndef YYSTACK_ALLOC_MAXIMUM
497 /* The OS might guarantee only one guard page at the bottom of the stack,
498 and a page size can be as small as 4096 bytes. So we cannot safely
499 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
500 to allow for a few compiler-allocated temporary stack slots. */
501# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
502# endif
503# else
504# define YYSTACK_ALLOC YYMALLOC
505# define YYSTACK_FREE YYFREE
506# ifndef YYSTACK_ALLOC_MAXIMUM
507# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
508# endif
509# ifdef __cplusplus
510extern "C" {
511# endif
512# ifndef YYMALLOC
513# define YYMALLOC malloc
514# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
515 && (defined (__STDC__) || defined (__cplusplus)))
516void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
517# endif
518# endif
519# ifndef YYFREE
520# define YYFREE free
521# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
522 && (defined (__STDC__) || defined (__cplusplus)))
523void free (void *); /* INFRINGES ON USER NAME SPACE */
524# endif
525# endif
526# ifdef __cplusplus
527}
528# endif
529# endif
530#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
531
532
533#if (! defined (yyoverflow) \
534 && (! defined (__cplusplus) \
535 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
536
537/* A type that is properly aligned for any stack member. */
538union yyalloc
539{
540 short int yyss;
541 YYSTYPE yyvs;
542 };
543
544/* The size of the maximum gap between one aligned stack and the next. */
545# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
546
547/* The size of an array large to enough to hold all stacks, each with
548 N elements. */
549# define YYSTACK_BYTES(N) \
550 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
551 + YYSTACK_GAP_MAXIMUM)
552
553/* Copy COUNT objects from FROM to TO. The source and destination do
554 not overlap. */
555# ifndef YYCOPY
556# if defined (__GNUC__) && 1 < __GNUC__
557# define YYCOPY(To, From, Count) \
558 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
559# else
560# define YYCOPY(To, From, Count) \
561 do \
562 { \
563 YYSIZE_T yyi; \
564 for (yyi = 0; yyi < (Count); yyi++) \
565 (To)[yyi] = (From)[yyi]; \
566 } \
567 while (0)
568# endif
569# endif
570
571/* Relocate STACK from its old location to the new one. The
572 local variables YYSIZE and YYSTACKSIZE give the old and new number of
573 elements in the stack, and YYPTR gives the new location of the
574 stack. Advance YYPTR to a properly aligned location for the next
575 stack. */
576# define YYSTACK_RELOCATE(Stack) \
577 do \
578 { \
579 YYSIZE_T yynewbytes; \
580 YYCOPY (&yyptr->Stack, Stack, yysize); \
581 Stack = &yyptr->Stack; \
582 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
583 yyptr += yynewbytes / sizeof (*yyptr); \
584 } \
585 while (0)
586
587#endif
588
589#if defined (__STDC__) || defined (__cplusplus)
590 typedef signed char yysigned_char;
591#else
592 typedef short int yysigned_char;
593#endif
594
595/* YYFINAL -- State number of the termination state. */
596#define YYFINAL 4
597/* YYLAST -- Last index in YYTABLE. */
Reid Spencer16244f42006-12-01 21:10:07 +0000598#define YYLAST 1150
Reid Spencere7c3c602006-11-30 06:36:44 +0000599
600/* YYNTOKENS -- Number of terminals. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000601#define YYNTOKENS 126
Reid Spencere7c3c602006-11-30 06:36:44 +0000602/* YYNNTS -- Number of nonterminals. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000603#define YYNNTS 70
Reid Spencere7c3c602006-11-30 06:36:44 +0000604/* YYNRULES -- Number of rules. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000605#define YYNRULES 249
Reid Spencere7c3c602006-11-30 06:36:44 +0000606/* YYNRULES -- Number of states. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000607#define YYNSTATES 508
Reid Spencere7c3c602006-11-30 06:36:44 +0000608
609/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
610#define YYUNDEFTOK 2
Reid Spencere77e35e2006-12-01 20:26:20 +0000611#define YYMAXUTOK 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000612
613#define YYTRANSLATE(YYX) \
614 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
615
616/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
617static const unsigned char yytranslate[] =
618{
619 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000623 115, 116, 124, 2, 113, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000625 120, 112, 121, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000628 2, 117, 114, 119, 2, 2, 2, 2, 2, 125,
Reid Spencere7c3c602006-11-30 06:36:44 +0000629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000631 118, 2, 2, 122, 2, 123, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
635 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
645 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
646 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
647 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
648 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
649 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
650 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
651 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
652 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
653 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
654 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
Reid Spencere77e35e2006-12-01 20:26:20 +0000655 105, 106, 107, 108, 109, 110, 111
Reid Spencere7c3c602006-11-30 06:36:44 +0000656};
657
658#if YYDEBUG
659/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
660 YYRHS. */
661static const unsigned short int yyprhs[] =
662{
663 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
664 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
665 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
666 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
Reid Spencere77e35e2006-12-01 20:26:20 +0000667 80, 81, 83, 85, 87, 89, 91, 93, 95, 96,
668 98, 100, 102, 104, 106, 108, 111, 112, 113, 116,
669 117, 121, 124, 125, 127, 128, 132, 134, 137, 139,
Reid Spencere7c3c602006-11-30 06:36:44 +0000670 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
Reid Spencere77e35e2006-12-01 20:26:20 +0000671 161, 163, 165, 167, 169, 171, 173, 175, 177, 180,
672 185, 191, 197, 201, 204, 207, 209, 213, 215, 219,
673 221, 222, 227, 231, 235, 240, 245, 249, 252, 255,
674 258, 261, 264, 267, 270, 273, 276, 279, 286, 292,
675 301, 308, 315, 322, 329, 336, 345, 354, 358, 360,
676 362, 364, 366, 369, 372, 377, 380, 382, 387, 390,
677 395, 402, 409, 416, 423, 427, 432, 433, 435, 437,
678 439, 443, 447, 451, 455, 459, 463, 465, 466, 468,
679 470, 472, 473, 476, 480, 482, 484, 488, 490, 491,
680 500, 502, 504, 508, 510, 512, 516, 517, 519, 521,
681 525, 526, 528, 530, 532, 534, 536, 538, 540, 542,
682 544, 548, 550, 556, 558, 560, 562, 564, 567, 570,
Reid Spencer16244f42006-12-01 21:10:07 +0000683 572, 575, 578, 579, 581, 584, 587, 591, 601, 611,
684 620, 635, 637, 639, 646, 652, 655, 662, 670, 672,
Reid Spencere77e35e2006-12-01 20:26:20 +0000685 676, 678, 679, 682, 684, 690, 696, 702, 705, 710,
686 715, 722, 727, 732, 739, 746, 749, 757, 759, 762,
687 763, 765, 766, 770, 777, 781, 788, 791, 796, 803
Reid Spencere7c3c602006-11-30 06:36:44 +0000688};
689
690/* YYRHS -- A `-1'-separated list of the rules' RHS. */
691static const short int yyrhs[] =
692{
Reid Spencere77e35e2006-12-01 20:26:20 +0000693 157, 0, -1, 5, -1, 6, -1, 3, -1, 4,
Reid Spencere7c3c602006-11-30 06:36:44 +0000694 -1, 78, -1, 79, -1, 80, -1, 81, -1, 82,
695 -1, 83, -1, 84, -1, 85, -1, 86, -1, 87,
696 -1, 88, -1, 89, -1, 90, -1, 91, -1, 92,
Reid Spencere77e35e2006-12-01 20:26:20 +0000697 -1, 93, -1, 94, -1, 95, -1, 104, -1, 105,
698 -1, 106, -1, 21, -1, 19, -1, 17, -1, 15,
699 -1, 22, -1, 20, -1, 18, -1, 16, -1, 133,
700 -1, 134, -1, 23, -1, 24, -1, 165, 112, -1,
701 -1, 42, -1, 43, -1, 44, -1, 48, -1, 45,
702 -1, 46, -1, 47, -1, -1, 65, -1, 66, -1,
703 67, -1, 68, -1, 69, -1, 70, -1, 64, 4,
704 -1, -1, -1, 57, 4, -1, -1, 113, 57, 4,
705 -1, 37, 30, -1, -1, 142, -1, -1, 113, 145,
706 144, -1, 142, -1, 57, 4, -1, 148, -1, 13,
707 -1, 150, -1, 13, -1, 150, -1, 14, -1, 15,
708 -1, 16, -1, 17, -1, 18, -1, 19, -1, 20,
709 -1, 21, -1, 22, -1, 23, -1, 24, -1, 25,
710 -1, 26, -1, 149, -1, 179, -1, 114, 4, -1,
711 147, 115, 152, 116, -1, 117, 4, 118, 150, 119,
712 -1, 120, 4, 118, 150, 121, -1, 122, 151, 123,
713 -1, 122, 123, -1, 150, 124, -1, 150, -1, 151,
714 113, 150, -1, 151, -1, 151, 113, 40, -1, 40,
715 -1, -1, 148, 117, 155, 119, -1, 148, 117, 119,
716 -1, 148, 125, 30, -1, 148, 120, 155, 121, -1,
717 148, 122, 155, 123, -1, 148, 122, 123, -1, 148,
718 10, -1, 148, 11, -1, 148, 179, -1, 148, 154,
719 -1, 148, 12, -1, 133, 128, -1, 134, 4, -1,
720 14, 8, -1, 14, 9, -1, 136, 7, -1, 111,
721 115, 153, 39, 148, 116, -1, 101, 115, 153, 193,
722 116, -1, 103, 115, 153, 113, 153, 113, 153, 116,
723 -1, 129, 115, 153, 113, 153, 116, -1, 130, 115,
724 153, 113, 153, 116, -1, 131, 115, 153, 113, 153,
725 116, -1, 132, 115, 153, 113, 153, 116, -1, 108,
726 115, 153, 113, 153, 116, -1, 109, 115, 153, 113,
727 153, 113, 153, 116, -1, 110, 115, 153, 113, 153,
728 113, 153, 116, -1, 155, 113, 153, -1, 153, -1,
729 35, -1, 36, -1, 158, -1, 158, 174, -1, 158,
730 176, -1, 158, 62, 61, 160, -1, 158, 31, -1,
731 159, -1, 159, 137, 27, 146, -1, 159, 176, -1,
732 159, 62, 61, 160, -1, 159, 137, 138, 156, 153,
733 144, -1, 159, 137, 50, 156, 148, 144, -1, 159,
734 137, 45, 156, 148, 144, -1, 159, 137, 47, 156,
735 148, 144, -1, 159, 51, 162, -1, 159, 58, 112,
736 163, -1, -1, 30, -1, 56, -1, 55, -1, 53,
737 112, 161, -1, 54, 112, 4, -1, 52, 112, 30,
738 -1, 71, 112, 30, -1, 117, 164, 119, -1, 164,
739 113, 30, -1, 30, -1, -1, 28, -1, 30, -1,
740 165, -1, -1, 148, 166, -1, 168, 113, 167, -1,
741 167, -1, 168, -1, 168, 113, 40, -1, 40, -1,
742 -1, 139, 146, 165, 115, 169, 116, 143, 140, -1,
743 32, -1, 122, -1, 138, 170, 171, -1, 33, -1,
744 123, -1, 172, 182, 173, -1, -1, 45, -1, 47,
745 -1, 34, 175, 170, -1, -1, 63, -1, 3, -1,
746 4, -1, 7, -1, 8, -1, 9, -1, 10, -1,
747 11, -1, 12, -1, 120, 155, 121, -1, 154, -1,
748 61, 177, 30, 113, 30, -1, 127, -1, 165, -1,
749 179, -1, 178, -1, 148, 180, -1, 182, 183, -1,
Reid Spencer16244f42006-12-01 21:10:07 +0000750 183, -1, 184, 185, -1, 184, 187, -1, -1, 29,
751 -1, 72, 181, -1, 72, 13, -1, 73, 25, 180,
752 -1, 73, 14, 180, 113, 25, 180, 113, 25, 180,
753 -1, 74, 135, 180, 113, 25, 180, 117, 186, 119,
754 -1, 74, 135, 180, 113, 25, 180, 117, 119, -1,
755 137, 75, 139, 146, 180, 115, 190, 116, 39, 25,
Reid Spencere77e35e2006-12-01 20:26:20 +0000756 180, 76, 25, 180, -1, 76, -1, 77, -1, 186,
757 135, 178, 113, 25, 180, -1, 135, 178, 113, 25,
758 180, -1, 137, 192, -1, 148, 117, 180, 113, 180,
759 119, -1, 188, 113, 117, 180, 113, 180, 119, -1,
760 181, -1, 189, 113, 181, -1, 189, -1, -1, 60,
761 59, -1, 59, -1, 129, 148, 180, 113, 180, -1,
762 130, 148, 180, 113, 180, -1, 131, 148, 180, 113,
763 180, -1, 49, 181, -1, 132, 181, 113, 181, -1,
764 111, 181, 39, 148, -1, 103, 181, 113, 181, 113,
765 181, -1, 107, 181, 113, 148, -1, 108, 181, 113,
766 181, -1, 109, 181, 113, 181, 113, 181, -1, 110,
767 181, 113, 181, 113, 181, -1, 102, 188, -1, 191,
768 139, 146, 180, 115, 190, 116, -1, 195, -1, 113,
769 189, -1, -1, 38, -1, -1, 96, 148, 141, -1,
770 96, 148, 113, 20, 180, 141, -1, 97, 148, 141,
771 -1, 97, 148, 113, 20, 180, 141, -1, 98, 181,
772 -1, 194, 99, 148, 180, -1, 194, 100, 181, 113,
773 148, 180, -1, 101, 148, 180, 193, -1
Reid Spencere7c3c602006-11-30 06:36:44 +0000774};
775
776/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
777static const unsigned short int yyrline[] =
778{
Reid Spencere77e35e2006-12-01 20:26:20 +0000779 0, 189, 189, 189, 190, 190, 194, 194, 194, 194,
780 194, 194, 194, 194, 194, 195, 195, 195, 196, 196,
781 196, 196, 196, 196, 197, 197, 197, 201, 201, 201,
782 201, 202, 202, 202, 202, 203, 203, 204, 204, 207,
783 211, 216, 216, 216, 216, 216, 216, 217, 218, 221,
Reid Spencer16244f42006-12-01 21:10:07 +0000784 221, 221, 221, 221, 222, 223, 228, 233, 234, 237,
785 238, 246, 252, 253, 256, 257, 266, 267, 280, 280,
786 281, 281, 282, 286, 286, 286, 286, 286, 286, 286,
787 287, 287, 287, 287, 287, 288, 288, 289, 295, 300,
788 306, 313, 320, 326, 330, 340, 343, 351, 352, 357,
789 360, 370, 376, 381, 387, 393, 399, 404, 410, 416,
790 422, 428, 434, 440, 446, 452, 458, 466, 473, 479,
791 484, 489, 494, 499, 504, 509, 514, 524, 529, 534,
792 534, 544, 549, 552, 557, 561, 565, 568, 573, 578,
793 583, 589, 595, 601, 607, 612, 617, 622, 624, 624,
794 627, 632, 639, 644, 651, 658, 663, 664, 672, 672,
795 673, 673, 675, 682, 686, 690, 693, 698, 701, 703,
796 723, 726, 730, 739, 740, 742, 750, 751, 752, 756,
797 769, 770, 773, 774, 775, 776, 777, 778, 779, 780,
798 781, 786, 787, 796, 796, 799, 799, 805, 812, 814,
799 821, 825, 830, 833, 839, 844, 849, 854, 861, 867,
800 873, 886, 891, 897, 902, 910, 917, 923, 931, 932,
801 940, 941, 945, 950, 953, 958, 963, 968, 973, 978,
802 985, 990, 995, 1000, 1005, 1010, 1015, 1024, 1029, 1033,
803 1037, 1038, 1041, 1048, 1055, 1062, 1069, 1074, 1081, 1088
Reid Spencere7c3c602006-11-30 06:36:44 +0000804};
805#endif
806
807#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
808/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
809 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
810static const char *const yytname[] =
811{
812 "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL",
Reid Spencere77e35e2006-12-01 20:26:20 +0000813 "UINTVAL", "FPVAL", "TRUETOK", "FALSETOK", "NULL_TOK", "UNDEF",
814 "ZEROINITIALIZER", "VOID", "BOOL", "SBYTE", "UBYTE", "SHORT", "USHORT",
815 "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", "LABEL", "OPAQUE",
816 "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
817 "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION",
818 "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK",
819 "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL",
820 "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN",
821 "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", "SIDEEFFECT", "CC_TOK",
822 "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", "COLDCC_TOK",
823 "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", "RET", "BR",
824 "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB", "MUL", "UDIV",
825 "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR", "XOR", "SETLE",
826 "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC", "ALLOCA", "FREE",
827 "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "LSHR",
Reid Spencere7c3c602006-11-30 06:36:44 +0000828 "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
829 "CAST", "'='", "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'",
Reid Spencere77e35e2006-12-01 20:26:20 +0000830 "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", "IntVal", "EInt64Val",
831 "ArithmeticOps", "LogicalOps", "SetCondOps", "ShiftOps", "SIntType",
832 "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage",
Reid Spencere7c3c602006-11-30 06:36:44 +0000833 "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection",
834 "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV",
835 "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal",
836 "ConstExpr", "ConstVector", "GlobalType", "Module", "DefinitionList",
837 "ConstPool", "AsmBlock", "BigOrLittle", "TargetDefinition",
838 "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
839 "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
840 "END", "Function", "FnDeclareLinkage", "FunctionProto", "OptSideEffect",
841 "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal",
842 "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst",
843 "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE",
844 "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0
845};
846#endif
847
848# ifdef YYPRINT
849/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
850 token YYLEX-NUM. */
851static const unsigned short int yytoknum[] =
852{
853 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
854 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
855 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
856 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
857 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
858 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
859 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
860 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
861 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
862 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
863 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
Reid Spencere77e35e2006-12-01 20:26:20 +0000864 365, 366, 61, 44, 92, 40, 41, 91, 120, 93,
865 60, 62, 123, 125, 42, 99
Reid Spencere7c3c602006-11-30 06:36:44 +0000866};
867# endif
868
869/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
870static const unsigned char yyr1[] =
871{
Reid Spencere77e35e2006-12-01 20:26:20 +0000872 0, 126, 127, 127, 128, 128, 129, 129, 129, 129,
873 129, 129, 129, 129, 129, 130, 130, 130, 131, 131,
874 131, 131, 131, 131, 132, 132, 132, 133, 133, 133,
875 133, 134, 134, 134, 134, 135, 135, 136, 136, 137,
876 137, 138, 138, 138, 138, 138, 138, 138, 138, 139,
877 139, 139, 139, 139, 139, 139, 139, 140, 140, 141,
878 141, 142, 143, 143, 144, 144, 145, 145, 146, 146,
879 147, 147, 148, 149, 149, 149, 149, 149, 149, 149,
880 149, 149, 149, 149, 149, 150, 150, 150, 150, 150,
881 150, 150, 150, 150, 150, 151, 151, 152, 152, 152,
882 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
883 153, 153, 153, 153, 153, 153, 153, 154, 154, 154,
884 154, 154, 154, 154, 154, 154, 154, 155, 155, 156,
885 156, 157, 158, 158, 158, 158, 158, 159, 159, 159,
886 159, 159, 159, 159, 159, 159, 159, 160, 161, 161,
887 162, 162, 162, 162, 163, 164, 164, 164, 165, 165,
888 166, 166, 167, 168, 168, 169, 169, 169, 169, 170,
889 171, 171, 172, 173, 173, 174, 175, 175, 175, 176,
890 177, 177, 178, 178, 178, 178, 178, 178, 178, 178,
891 178, 178, 178, 179, 179, 180, 180, 181, 182, 182,
892 183, 184, 184, 184, 185, 185, 185, 185, 185, 185,
893 185, 185, 185, 186, 186, 187, 188, 188, 189, 189,
894 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
895 192, 192, 192, 192, 192, 192, 192, 192, 193, 193,
896 194, 194, 195, 195, 195, 195, 195, 195, 195, 195
Reid Spencere7c3c602006-11-30 06:36:44 +0000897};
898
899/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
900static const unsigned char yyr2[] =
901{
902 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000905 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
906 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
907 1, 1, 1, 1, 1, 2, 0, 0, 2, 0,
908 3, 2, 0, 1, 0, 3, 1, 2, 1, 1,
Reid Spencere7c3c602006-11-30 06:36:44 +0000909 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000910 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
911 5, 5, 3, 2, 2, 1, 3, 1, 3, 1,
912 0, 4, 3, 3, 4, 4, 3, 2, 2, 2,
913 2, 2, 2, 2, 2, 2, 2, 6, 5, 8,
914 6, 6, 6, 6, 6, 8, 8, 3, 1, 1,
915 1, 1, 2, 2, 4, 2, 1, 4, 2, 4,
916 6, 6, 6, 6, 3, 4, 0, 1, 1, 1,
917 3, 3, 3, 3, 3, 3, 1, 0, 1, 1,
918 1, 0, 2, 3, 1, 1, 3, 1, 0, 8,
919 1, 1, 3, 1, 1, 3, 0, 1, 1, 3,
920 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
921 3, 1, 5, 1, 1, 1, 1, 2, 2, 1,
Reid Spencer16244f42006-12-01 21:10:07 +0000922 2, 2, 0, 1, 2, 2, 3, 9, 9, 8,
923 14, 1, 1, 6, 5, 2, 6, 7, 1, 3,
Reid Spencere77e35e2006-12-01 20:26:20 +0000924 1, 0, 2, 1, 5, 5, 5, 2, 4, 4,
925 6, 4, 4, 6, 6, 2, 7, 1, 2, 0,
926 1, 0, 3, 6, 3, 6, 2, 4, 6, 4
Reid Spencere7c3c602006-11-30 06:36:44 +0000927};
928
929/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
930 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
931 means the default is an error. */
932static const unsigned char yydefact[] =
933{
Reid Spencere77e35e2006-12-01 20:26:20 +0000934 146, 0, 48, 136, 1, 135, 176, 41, 42, 43,
935 45, 46, 47, 44, 0, 56, 202, 132, 133, 158,
936 159, 0, 0, 0, 48, 0, 138, 177, 178, 56,
937 0, 0, 49, 50, 51, 52, 53, 54, 0, 0,
938 203, 202, 199, 40, 0, 0, 0, 0, 144, 0,
939 0, 0, 0, 0, 0, 0, 39, 179, 147, 134,
940 55, 2, 3, 69, 73, 74, 75, 76, 77, 78,
941 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
942 0, 193, 0, 0, 68, 86, 72, 194, 87, 170,
Reid Spencer16244f42006-12-01 21:10:07 +0000943 171, 172, 173, 174, 175, 198, 0, 0, 0, 211,
944 212, 241, 200, 201, 0, 0, 0, 0, 157, 145,
945 139, 137, 129, 130, 0, 0, 0, 0, 88, 0,
946 0, 71, 93, 95, 0, 0, 100, 94, 205, 0,
947 204, 0, 0, 30, 34, 29, 33, 28, 32, 27,
948 31, 35, 36, 0, 240, 0, 223, 0, 56, 6,
949 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
950 17, 18, 19, 20, 21, 22, 23, 0, 0, 0,
951 0, 0, 0, 24, 25, 26, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 56, 215, 0, 237, 152,
953 149, 148, 150, 151, 153, 156, 0, 64, 64, 64,
954 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
955 83, 0, 0, 0, 0, 64, 0, 0, 0, 92,
956 168, 99, 97, 0, 182, 183, 184, 185, 186, 187,
957 188, 189, 180, 0, 0, 0, 0, 0, 0, 0,
958 0, 0, 0, 0, 191, 196, 195, 197, 0, 206,
959 0, 227, 222, 0, 59, 59, 246, 0, 0, 235,
960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, 0, 0, 154, 0, 142, 143, 141, 114,
962 115, 4, 5, 112, 113, 116, 107, 108, 111, 0,
963 0, 0, 0, 110, 109, 140, 70, 70, 96, 167,
964 161, 164, 165, 0, 0, 89, 181, 0, 0, 0,
965 0, 0, 0, 0, 128, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 242, 0, 244, 239, 0, 0,
967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
968 0, 0, 0, 155, 0, 0, 66, 64, 102, 0,
969 0, 106, 0, 103, 90, 91, 160, 162, 0, 62,
970 98, 0, 239, 0, 0, 0, 0, 0, 0, 190,
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
972 0, 249, 0, 0, 0, 231, 232, 0, 0, 229,
973 0, 0, 0, 228, 0, 247, 0, 61, 67, 65,
974 101, 104, 105, 166, 163, 63, 57, 0, 0, 0,
975 0, 0, 0, 0, 127, 0, 0, 0, 0, 0,
976 0, 221, 59, 60, 59, 218, 238, 0, 0, 0,
977 0, 0, 224, 225, 226, 221, 0, 0, 169, 192,
978 118, 0, 0, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 220, 0, 0, 243, 245, 0, 0, 0,
980 230, 233, 234, 0, 248, 58, 0, 124, 0, 0,
981 117, 120, 121, 122, 123, 0, 209, 0, 0, 0,
982 219, 216, 0, 236, 0, 0, 0, 207, 0, 208,
983 0, 0, 217, 119, 125, 126, 0, 0, 0, 0,
984 0, 0, 214, 0, 0, 213, 0, 210
Reid Spencere7c3c602006-11-30 06:36:44 +0000985};
986
987/* YYDEFGOTO[NTERM-NUM]. */
988static const short int yydefgoto[] =
989{
Reid Spencer16244f42006-12-01 21:10:07 +0000990 -1, 81, 283, 240, 241, 242, 243, 211, 212, 143,
991 213, 24, 15, 38, 438, 324, 346, 406, 276, 347,
992 82, 83, 214, 85, 86, 124, 223, 314, 244, 315,
993 114, 1, 2, 3, 59, 192, 48, 109, 196, 87,
994 357, 301, 302, 303, 39, 91, 16, 94, 17, 29,
995 18, 307, 245, 88, 247, 425, 41, 42, 43, 102,
996 478, 103, 259, 452, 453, 185, 186, 381, 187, 188
Reid Spencere7c3c602006-11-30 06:36:44 +0000997};
998
999/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1000 STATE-NUM. */
Reid Spencer16244f42006-12-01 21:10:07 +00001001#define YYPACT_NINF -439
Reid Spencere7c3c602006-11-30 06:36:44 +00001002static const short int yypact[] =
1003{
Reid Spencer16244f42006-12-01 21:10:07 +00001004 -439, 63, 22, 577, -439, -439, 2, -439, -439, -439,
1005 -439, -439, -439, -439, 37, 188, 72, -439, -439, -439,
1006 -439, 21, -8, 45, 150, 9, -439, -439, -439, 188,
1007 94, 132, -439, -439, -439, -439, -439, -439, 883, -27,
1008 -439, -23, -439, 14, 41, 50, 56, 57, -439, 53,
1009 94, 883, 74, 74, 74, 74, -439, -439, -439, -439,
1010 -439, -439, -439, 59, -439, -439, -439, -439, -439, -439,
1011 -439, -439, -439, -439, -439, -439, -439, 168, 171, 174,
1012 457, -439, 66, 65, -439, -439, -53, -439, -439, -439,
1013 -439, -439, -439, -439, -439, -439, 935, 34, 224, -439,
1014 -439, 1039, -439, -439, 151, 64, 184, 159, 160, -439,
1015 -439, -439, -439, -439, 965, 965, 965, 993, -439, 81,
1016 83, -439, -439, -53, -72, 87, 742, -439, 59, 588,
1017 -439, 588, 588, -439, -439, -439, -439, -439, -439, -439,
1018 -439, -439, -439, 588, -439, 965, -439, 158, 188, -439,
1019 -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
1020 -439, -439, -439, -439, -439, -439, -439, 965, 965, 965,
1021 965, 965, 965, -439, -439, -439, 965, 965, 965, 965,
1022 965, 965, 965, 965, 965, 188, -439, 23, -439, -439,
1023 -439, -439, -439, -439, -439, -439, -34, 97, 97, 97,
1024 119, 147, 212, 152, 214, 155, 216, 157, 217, 215,
1025 220, 163, 219, 221, 429, 97, 965, 965, 965, -439,
1026 770, -439, 111, 113, -439, -439, -439, -439, -439, -439,
1027 -439, -439, 167, 116, 121, 133, 134, 135, 144, 993,
1028 149, 153, 154, 162, -439, -439, -439, -439, 165, -439,
1029 169, -439, -439, 883, 170, 172, -439, 588, 130, 173,
1030 177, 178, 185, 186, 189, 226, 588, 588, 588, 190,
1031 883, 965, 965, 236, -439, -7, -439, -439, -439, -439,
1032 -439, -439, -439, -439, -439, -439, -439, -439, -439, 798,
1033 993, 542, 237, -439, -439, -439, -22, -16, -53, -439,
1034 66, -439, 195, 193, 825, -439, -439, 240, 993, 993,
1035 993, 993, 993, 993, -439, -41, 993, 993, 993, 993,
1036 248, 250, 588, 3, -439, 4, -439, 201, 588, 164,
1037 965, 965, 965, 965, 965, 965, 202, 204, 205, 965,
1038 588, 588, 206, -439, 254, 317, -439, 97, -439, -20,
1039 -32, -439, -68, -439, -439, -439, -439, -439, 855, 286,
1040 -439, 213, 201, 218, 223, 225, 230, 288, 993, -439,
1041 231, 232, 234, 235, 588, 588, 210, 588, 324, 588,
1042 965, -439, 238, 588, 239, -439, -439, 244, 246, -439,
1043 588, 588, 588, -439, 245, -439, 965, -439, -439, -439,
1044 -439, -439, -439, -439, -439, -439, 272, 300, 233, 993,
1045 993, 993, 993, 965, -439, 993, 993, 993, 993, 249,
1046 253, 965, 252, -439, 252, -439, 261, 588, 263, 965,
1047 965, 965, -439, -439, -439, 965, 588, 328, -439, -439,
1048 -439, 265, 251, 266, 267, 271, 273, 274, 278, 282,
1049 325, -1, 261, 283, 296, -439, -439, 965, 247, 588,
1050 -439, -439, -439, 285, -439, -439, 993, -439, 993, 993,
1051 -439, -439, -439, -439, -439, 588, -439, 634, 16, 349,
1052 -439, -439, 287, -439, 289, 291, 292, -439, 297, -439,
1053 634, 377, -439, -439, -439, -439, 379, 298, 588, 588,
1054 384, 336, -439, 588, 388, -439, 588, -439
Reid Spencere7c3c602006-11-30 06:36:44 +00001055};
1056
1057/* YYPGOTO[NTERM-NUM]. */
1058static const short int yypgoto[] =
1059{
Reid Spencer16244f42006-12-01 21:10:07 +00001060 -439, -439, -439, 313, 314, 315, 316, -97, -96, -424,
1061 -439, 375, 396, -102, -439, -251, 67, -439, -190, -439,
1062 -44, -439, -38, -439, -69, 299, -439, -105, 208, -177,
1063 62, -439, -439, -439, 373, -439, -439, -439, -439, 0,
1064 -439, 69, -439, -439, 395, -439, -439, -439, -439, -439,
1065 425, -439, -438, -103, -6, 7, -439, 390, -439, -439,
1066 -439, -439, -439, 49, -3, -439, -439, 71, -439, -439
Reid Spencere7c3c602006-11-30 06:36:44 +00001067};
1068
1069/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1070 positive, shift that token. If negative, reduce the rule which
1071 number is the opposite. If zero, do what YYDEFACT says.
1072 If YYTABLE_NINF, syntax error. */
Reid Spencere77e35e2006-12-01 20:26:20 +00001073#define YYTABLE_NINF -132
Reid Spencere7c3c602006-11-30 06:36:44 +00001074static const short int yytable[] =
1075{
Reid Spencer16244f42006-12-01 21:10:07 +00001076 84, 141, 142, 25, 326, 89, 40, 111, 277, 278,
1077 92, 123, 215, 84, 133, 134, 135, 136, 137, 138,
1078 139, 140, -131, 377, 379, 295, 246, 477, 246, 246,
1079 344, 133, 134, 135, 136, 137, 138, 139, 140, 488,
1080 246, 218, 19, 25, 20, 368, 253, 27, 131, 28,
1081 345, 219, 497, 5, 490, 402, 6, 123, 129, 132,
1082 378, 378, -70, 4, 7, 8, 9, 10, 11, 12,
1083 13, 127, 368, 44, 45, 46, 197, 198, 199, 273,
1084 369, 368, 125, 270, 14, 274, 96, 97, 98, 401,
1085 99, 100, 47, 368, 19, 90, 20, 354, 30, 400,
1086 93, 40, 127, 130, 49, 355, 50, 129, 127, 112,
1087 113, 294, 349, 350, 352, 115, 116, 117, 476, 190,
1088 191, 56, 271, 272, 58, 248, 249, 279, 280, 254,
1089 255, 129, 257, 258, 129, 489, 60, 250, 129, 129,
1090 129, 129, 129, 266, 267, 268, 129, 296, 297, 298,
1091 -30, -30, 251, 104, 246, -29, -29, 399, -28, -28,
1092 -27, -27, 105, 246, 246, 246, 281, 282, 106, 107,
1093 108, 455, 118, 456, -71, 119, 256, 51, 120, 260,
1094 126, 189, 300, 261, 262, 263, 264, 265, 193, 194,
1095 195, 269, 7, 8, 9, 52, 11, 53, 13, 216,
1096 54, 217, 220, 362, 363, 364, 365, 366, 367, 322,
1097 275, 370, 371, 372, 373, 84, -34, 252, -33, 246,
1098 -32, -31, -37, 284, 304, 246, 340, -38, 285, 305,
1099 306, 308, 84, 341, 129, 298, 309, 246, 246, 133,
1100 134, 135, 136, 137, 138, 139, 140, 328, 310, 311,
1101 312, 327, 31, 32, 33, 34, 35, 36, 37, 313,
1102 336, 337, 338, 414, 316, 335, 343, 353, 317, 318,
1103 361, 246, 246, 374, 246, 375, 246, 319, 320, 342,
1104 246, 383, 321, 323, 397, 325, 329, 246, 246, 246,
1105 330, 331, 129, 385, 129, 129, 129, 389, 332, 333,
1106 356, 129, 334, 339, 441, 442, 443, 444, 358, 359,
1107 446, 447, 448, 449, 380, 390, 376, 391, 392, 396,
1108 300, 398, 382, 344, 246, 421, 407, 413, 423, 437,
1109 439, 409, 465, 246, 394, 395, 410, 384, 411, 386,
1110 387, 388, 129, 412, 415, 416, 393, 417, 418, 440,
1111 475, 427, 429, 378, 141, 142, 246, 430, 436, 431,
1112 435, 484, 450, 485, 486, 454, 481, 467, 419, 420,
1113 451, 422, 246, 424, 457, 445, 459, 428, 466, 468,
1114 469, 141, 142, 129, 432, 433, 434, 470, 491, 471,
1115 472, 129, 129, 129, 473, 246, 246, 129, 474, 479,
1116 246, 483, 498, 246, 499, 493, 492, 494, 495, 503,
1117 496, 500, 504, 506, 181, 182, 183, 184, 101, 129,
1118 55, 458, 293, 110, 57, 222, 405, 404, 26, 426,
1119 464, 95, 463, 408, 61, 62, 460, 461, 462, 286,
1120 287, 288, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 0, 482, 0, 0, 0, 19, 0, 20,
1122 0, 0, 61, 62, 480, 0, 0, 0, 0, 487,
1123 121, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1124 73, 74, 75, 76, 0, 19, 0, 20, 0, 0,
1125 0, 0, 501, 502, 0, 0, 0, 505, 0, 0,
1126 507, 0, 0, 0, 0, 0, 0, 149, 150, 151,
1127 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1128 162, 163, 164, 165, 166, 0, 0, 0, 0, 0,
1129 233, 0, 234, 173, 174, 175, 0, 235, 236, 237,
1130 238, 0, 0, 0, 0, 0, 289, 61, 62, 290,
1131 0, 291, 0, 0, 292, 121, 200, 201, 202, 203,
1132 204, 205, 206, 207, 208, 209, 210, 75, 76, 0,
1133 19, 77, 20, 0, 78, 0, 0, 79, 0, 80,
1134 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1135 0, 224, 225, 61, 62, 226, 227, 228, 229, 230,
1136 231, 0, 0, 0, -40, 19, 0, 20, 0, 0,
1137 0, 6, -40, -40, 0, 0, 19, 0, 20, -40,
1138 -40, -40, -40, -40, -40, -40, 0, -40, 21, 0,
1139 0, 0, 0, 0, 0, 22, 0, 224, 225, 23,
1140 0, 226, 227, 228, 229, 230, 231, 0, 0, 232,
1141 0, 0, 0, 0, 0, 0, 77, 0, 0, 78,
1142 0, 0, 79, 0, 80, 351, 149, 150, 151, 152,
1143 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1144 163, 164, 165, 166, 0, 0, 0, 0, 0, 233,
1145 0, 234, 173, 174, 175, 232, 235, 236, 237, 238,
1146 0, 0, 0, 0, 0, 0, 0, 0, 239, 0,
1147 0, 0, 149, 150, 151, 152, 153, 154, 155, 156,
1148 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1149 0, 0, 0, 0, 0, 233, 0, 234, 173, 174,
1150 175, 0, 235, 236, 237, 238, 0, 61, 62, 0,
1151 0, 0, 0, 0, 239, 121, 64, 65, 66, 67,
Reid Spencere77e35e2006-12-01 20:26:20 +00001152 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1153 19, 0, 20, 0, 0, 61, 62, 0, 0, 0,
Reid Spencer16244f42006-12-01 21:10:07 +00001154 0, 0, 221, 121, 64, 65, 66, 67, 68, 69,
Reid Spencere77e35e2006-12-01 20:26:20 +00001155 70, 71, 72, 73, 74, 75, 76, 0, 19, 0,
Reid Spencer16244f42006-12-01 21:10:07 +00001156 20, 0, 0, 61, 62, 0, 0, 0, 0, 0,
1157 299, 121, 200, 201, 202, 203, 204, 205, 206, 207,
1158 208, 209, 210, 75, 76, 0, 19, 0, 20, 0,
1159 61, 62, 0, 0, 0, 0, 0, 0, 121, 64,
1160 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1161 75, 76, 0, 19, 0, 20, 77, 0, 0, 78,
1162 61, 62, 79, 0, 80, 360, 0, 0, 121, 64,
1163 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1164 75, 76, 0, 19, 77, 20, 0, 78, 61, 62,
1165 79, 0, 80, 0, 0, 403, 63, 64, 65, 66,
1166 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1167 0, 19, 77, 20, 0, 78, 0, 348, 79, 0,
Reid Spencere77e35e2006-12-01 20:26:20 +00001168 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencer16244f42006-12-01 21:10:07 +00001169 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1170 61, 62, 78, 0, 0, 79, 0, 80, 128, 64,
1171 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1172 75, 76, 0, 19, 0, 20, 0, 0, 0, 77,
1173 61, 62, 78, 0, 0, 79, 0, 80, 121, 64,
1174 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1175 75, 76, 0, 19, 0, 20, 0, 77, 61, 62,
1176 78, 0, 0, 79, 0, 80, 121, 200, 201, 202,
1177 203, 204, 205, 206, 207, 208, 209, 210, 75, 76,
1178 0, 19, 0, 20, 0, 0, 0, 0, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencer16244f42006-12-01 21:10:07 +00001180 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1181 0, 0, 78, 0, 0, 79, 0, 80, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencer16244f42006-12-01 21:10:07 +00001183 0, 0, 0, 0, 0, 0, 0, 144, 0, 77,
1184 0, 0, 78, 0, 0, 79, 0, 80, 145, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 146, 147,
1186 0, 0, 0, 0, 0, 0, 0, 77, 0, 0,
1187 78, 0, 0, 79, 148, 80, 0, 149, 150, 151,
1188 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1189 162, 163, 164, 165, 166, 167, 168, 169, 0, 0,
1190 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1191 180
Reid Spencere7c3c602006-11-30 06:36:44 +00001192};
1193
1194static const short int yycheck[] =
1195{
Reid Spencer16244f42006-12-01 21:10:07 +00001196 38, 98, 98, 3, 255, 32, 29, 51, 198, 199,
1197 33, 80, 117, 51, 15, 16, 17, 18, 19, 20,
1198 21, 22, 0, 20, 20, 215, 129, 451, 131, 132,
1199 37, 15, 16, 17, 18, 19, 20, 21, 22, 477,
1200 143, 113, 28, 43, 30, 113, 148, 45, 14, 47,
1201 57, 123, 490, 31, 478, 123, 34, 126, 96, 25,
1202 57, 57, 115, 0, 42, 43, 44, 45, 46, 47,
1203 48, 124, 113, 52, 53, 54, 114, 115, 116, 113,
1204 121, 113, 82, 185, 62, 119, 72, 73, 74, 121,
1205 76, 77, 71, 113, 28, 122, 30, 119, 61, 119,
1206 123, 29, 124, 96, 112, 121, 61, 145, 124, 35,
1207 36, 214, 289, 290, 291, 53, 54, 55, 119, 55,
1208 56, 112, 99, 100, 30, 131, 132, 8, 9, 167,
1209 168, 169, 170, 171, 172, 119, 4, 143, 176, 177,
1210 178, 179, 180, 181, 182, 183, 184, 216, 217, 218,
1211 3, 4, 145, 112, 257, 3, 4, 347, 3, 4,
1212 3, 4, 112, 266, 267, 268, 3, 4, 112, 112,
1213 117, 422, 4, 424, 115, 4, 169, 27, 4, 172,
1214 115, 30, 220, 176, 177, 178, 179, 180, 4, 30,
1215 30, 184, 42, 43, 44, 45, 46, 47, 48, 118,
1216 50, 118, 115, 308, 309, 310, 311, 312, 313, 253,
1217 113, 316, 317, 318, 319, 253, 4, 59, 4, 322,
1218 4, 4, 7, 4, 113, 328, 270, 7, 7, 116,
1219 63, 115, 270, 271, 272, 304, 115, 340, 341, 15,
1220 16, 17, 18, 19, 20, 21, 22, 117, 115, 115,
1221 115, 257, 64, 65, 66, 67, 68, 69, 70, 115,
1222 266, 267, 268, 368, 115, 39, 30, 30, 115, 115,
1223 30, 374, 375, 25, 377, 25, 379, 115, 113, 272,
1224 383, 117, 113, 113, 30, 113, 113, 390, 391, 392,
1225 113, 113, 330, 331, 332, 333, 334, 335, 113, 113,
1226 300, 339, 113, 113, 409, 410, 411, 412, 113, 116,
1227 415, 416, 417, 418, 113, 113, 322, 113, 113, 113,
1228 358, 4, 328, 37, 427, 115, 113, 39, 4, 57,
1229 30, 113, 4, 436, 340, 341, 113, 330, 113, 332,
1230 333, 334, 380, 113, 113, 113, 339, 113, 113, 116,
1231 25, 113, 113, 57, 451, 451, 459, 113, 396, 113,
1232 115, 466, 113, 468, 469, 113, 119, 116, 374, 375,
1233 117, 377, 475, 379, 113, 413, 113, 383, 113, 113,
1234 113, 478, 478, 421, 390, 391, 392, 116, 39, 116,
1235 116, 429, 430, 431, 116, 498, 499, 435, 116, 116,
1236 503, 116, 25, 506, 25, 116, 119, 116, 116, 25,
1237 113, 113, 76, 25, 101, 101, 101, 101, 43, 457,
1238 24, 427, 214, 50, 29, 126, 359, 358, 3, 380,
1239 436, 41, 435, 362, 5, 6, 429, 430, 431, 10,
Reid Spencere77e35e2006-12-01 20:26:20 +00001240 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencer16244f42006-12-01 21:10:07 +00001241 -1, -1, -1, 459, -1, -1, -1, 28, -1, 30,
1242 -1, -1, 5, 6, 457, -1, -1, -1, -1, 475,
1243 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1244 23, 24, 25, 26, -1, 28, -1, 30, -1, -1,
1245 -1, -1, 498, 499, -1, -1, -1, 503, -1, -1,
1246 506, -1, -1, -1, -1, -1, -1, 78, 79, 80,
Reid Spencere77e35e2006-12-01 20:26:20 +00001247 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
Reid Spencer16244f42006-12-01 21:10:07 +00001248 91, 92, 93, 94, 95, -1, -1, -1, -1, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001249 101, -1, 103, 104, 105, 106, -1, 108, 109, 110,
Reid Spencer16244f42006-12-01 21:10:07 +00001250 111, -1, -1, -1, -1, -1, 117, 5, 6, 120,
1251 -1, 122, -1, -1, 125, 13, 14, 15, 16, 17,
1252 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1253 28, 114, 30, -1, 117, -1, -1, 120, -1, 122,
1254 123, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1255 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1256 12, -1, -1, -1, 27, 28, -1, 30, -1, -1,
1257 -1, 34, 35, 36, -1, -1, 28, -1, 30, 42,
1258 43, 44, 45, 46, 47, 48, -1, 50, 51, -1,
1259 -1, -1, -1, -1, -1, 58, -1, 3, 4, 62,
1260 -1, 7, 8, 9, 10, 11, 12, -1, -1, 61,
1261 -1, -1, -1, -1, -1, -1, 114, -1, -1, 117,
1262 -1, -1, 120, -1, 122, 123, 78, 79, 80, 81,
1263 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1264 92, 93, 94, 95, -1, -1, -1, -1, -1, 101,
1265 -1, 103, 104, 105, 106, 61, 108, 109, 110, 111,
1266 -1, -1, -1, -1, -1, -1, -1, -1, 120, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001267 -1, -1, 78, 79, 80, 81, 82, 83, 84, 85,
1268 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1269 -1, -1, -1, -1, -1, 101, -1, 103, 104, 105,
Reid Spencer16244f42006-12-01 21:10:07 +00001270 106, -1, 108, 109, 110, 111, -1, 5, 6, -1,
1271 -1, -1, -1, -1, 120, 13, 14, 15, 16, 17,
Reid Spencere77e35e2006-12-01 20:26:20 +00001272 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1273 28, -1, 30, -1, -1, 5, 6, -1, -1, -1,
1274 -1, -1, 40, 13, 14, 15, 16, 17, 18, 19,
1275 20, 21, 22, 23, 24, 25, 26, -1, 28, -1,
Reid Spencer16244f42006-12-01 21:10:07 +00001276 30, -1, -1, 5, 6, -1, -1, -1, -1, -1,
1277 40, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1278 22, 23, 24, 25, 26, -1, 28, -1, 30, -1,
1279 5, 6, -1, -1, -1, -1, -1, -1, 13, 14,
1280 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1281 25, 26, -1, 28, -1, 30, 114, -1, -1, 117,
1282 5, 6, 120, -1, 122, 40, -1, -1, 13, 14,
1283 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1284 25, 26, -1, 28, 114, 30, -1, 117, 5, 6,
1285 120, -1, 122, -1, -1, 40, 13, 14, 15, 16,
1286 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1287 -1, 28, 114, 30, -1, 117, -1, 119, 120, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001288 122, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencer16244f42006-12-01 21:10:07 +00001289 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114,
1290 5, 6, 117, -1, -1, 120, -1, 122, 13, 14,
1291 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1292 25, 26, -1, 28, -1, 30, -1, -1, -1, 114,
1293 5, 6, 117, -1, -1, 120, -1, 122, 13, 14,
1294 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1295 25, 26, -1, 28, -1, 30, -1, 114, 5, 6,
1296 117, -1, -1, 120, -1, 122, 13, 14, 15, 16,
1297 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1298 -1, 28, -1, 30, -1, -1, -1, -1, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencer16244f42006-12-01 21:10:07 +00001300 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114,
1301 -1, -1, 117, -1, -1, 120, -1, 122, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001302 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencer16244f42006-12-01 21:10:07 +00001303 -1, -1, -1, -1, -1, -1, -1, 38, -1, 114,
1304 -1, -1, 117, -1, -1, 120, -1, 122, 49, -1,
1305 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60,
1306 -1, -1, -1, -1, -1, -1, -1, 114, -1, -1,
1307 117, -1, -1, 120, 75, 122, -1, 78, 79, 80,
1308 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1309 91, 92, 93, 94, 95, 96, 97, 98, -1, -1,
1310 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1311 111
Reid Spencere7c3c602006-11-30 06:36:44 +00001312};
1313
1314/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1315 symbol of state STATE-NUM. */
1316static const unsigned char yystos[] =
1317{
Reid Spencere77e35e2006-12-01 20:26:20 +00001318 0, 157, 158, 159, 0, 31, 34, 42, 43, 44,
1319 45, 46, 47, 48, 62, 138, 172, 174, 176, 28,
1320 30, 51, 58, 62, 137, 165, 176, 45, 47, 175,
1321 61, 64, 65, 66, 67, 68, 69, 70, 139, 170,
1322 29, 182, 183, 184, 52, 53, 54, 71, 162, 112,
1323 61, 27, 45, 47, 50, 138, 112, 170, 30, 160,
1324 4, 5, 6, 13, 14, 15, 16, 17, 18, 19,
1325 20, 21, 22, 23, 24, 25, 26, 114, 117, 120,
1326 122, 127, 146, 147, 148, 149, 150, 165, 179, 32,
Reid Spencer16244f42006-12-01 21:10:07 +00001327 122, 171, 33, 123, 173, 183, 72, 73, 74, 76,
1328 77, 137, 185, 187, 112, 112, 112, 112, 117, 163,
1329 160, 146, 35, 36, 156, 156, 156, 156, 4, 4,
1330 4, 13, 123, 150, 151, 165, 115, 124, 13, 148,
1331 181, 14, 25, 15, 16, 17, 18, 19, 20, 21,
1332 22, 133, 134, 135, 38, 49, 59, 60, 75, 78,
1333 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1334 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1335 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1336 111, 129, 130, 131, 132, 191, 192, 194, 195, 30,
1337 55, 56, 161, 4, 30, 30, 164, 148, 148, 148,
1338 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1339 24, 133, 134, 136, 148, 153, 118, 118, 113, 123,
1340 115, 40, 151, 152, 3, 4, 7, 8, 9, 10,
1341 11, 12, 61, 101, 103, 108, 109, 110, 111, 120,
1342 129, 130, 131, 132, 154, 178, 179, 180, 180, 180,
1343 180, 181, 59, 139, 148, 148, 181, 148, 148, 188,
1344 181, 181, 181, 181, 181, 181, 148, 148, 148, 181,
1345 139, 99, 100, 113, 119, 113, 144, 144, 144, 8,
1346 9, 3, 4, 128, 4, 7, 10, 11, 12, 117,
1347 120, 122, 125, 154, 179, 144, 150, 150, 150, 40,
1348 148, 167, 168, 169, 113, 116, 63, 177, 115, 115,
1349 115, 115, 115, 115, 153, 155, 115, 115, 115, 115,
1350 113, 113, 146, 113, 141, 113, 141, 180, 117, 113,
1351 113, 113, 113, 113, 113, 39, 180, 180, 180, 113,
1352 146, 148, 181, 30, 37, 57, 142, 145, 119, 155,
1353 155, 123, 155, 30, 119, 121, 165, 166, 113, 116,
1354 40, 30, 153, 153, 153, 153, 153, 153, 113, 121,
1355 153, 153, 153, 153, 25, 25, 180, 20, 57, 20,
1356 113, 193, 180, 117, 181, 148, 181, 181, 181, 148,
1357 113, 113, 113, 181, 180, 180, 113, 30, 4, 144,
1358 119, 121, 123, 40, 167, 142, 143, 113, 193, 113,
1359 113, 113, 113, 39, 153, 113, 113, 113, 113, 180,
1360 180, 115, 180, 4, 180, 181, 189, 113, 180, 113,
1361 113, 113, 180, 180, 180, 115, 148, 57, 140, 30,
1362 116, 153, 153, 153, 153, 148, 153, 153, 153, 153,
1363 113, 117, 189, 190, 113, 141, 141, 113, 180, 113,
1364 181, 181, 181, 190, 180, 4, 113, 116, 113, 113,
1365 116, 116, 116, 116, 116, 25, 119, 135, 186, 116,
1366 181, 119, 180, 116, 153, 153, 153, 180, 178, 119,
1367 135, 39, 119, 116, 116, 116, 113, 178, 25, 25,
1368 113, 180, 180, 25, 76, 180, 25, 180
Reid Spencere7c3c602006-11-30 06:36:44 +00001369};
1370
1371#define yyerrok (yyerrstatus = 0)
1372#define yyclearin (yychar = YYEMPTY)
1373#define YYEMPTY (-2)
1374#define YYEOF 0
1375
1376#define YYACCEPT goto yyacceptlab
1377#define YYABORT goto yyabortlab
1378#define YYERROR goto yyerrorlab
1379
1380
1381/* Like YYERROR except do call yyerror. This remains here temporarily
1382 to ease the transition to the new meaning of YYERROR, for GCC.
1383 Once GCC version 2 has supplanted version 1, this can go. */
1384
1385#define YYFAIL goto yyerrlab
1386
1387#define YYRECOVERING() (!!yyerrstatus)
1388
1389#define YYBACKUP(Token, Value) \
1390do \
1391 if (yychar == YYEMPTY && yylen == 1) \
1392 { \
1393 yychar = (Token); \
1394 yylval = (Value); \
1395 yytoken = YYTRANSLATE (yychar); \
1396 YYPOPSTACK; \
1397 goto yybackup; \
1398 } \
1399 else \
1400 { \
1401 yyerror (YY_("syntax error: cannot back up")); \
1402 YYERROR; \
1403 } \
1404while (0)
1405
1406
1407#define YYTERROR 1
1408#define YYERRCODE 256
1409
1410
1411/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1412 If N is 0, then set CURRENT to the empty location which ends
1413 the previous symbol: RHS[0] (always defined). */
1414
1415#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1416#ifndef YYLLOC_DEFAULT
1417# define YYLLOC_DEFAULT(Current, Rhs, N) \
1418 do \
1419 if (N) \
1420 { \
1421 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1422 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1423 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1424 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1425 } \
1426 else \
1427 { \
1428 (Current).first_line = (Current).last_line = \
1429 YYRHSLOC (Rhs, 0).last_line; \
1430 (Current).first_column = (Current).last_column = \
1431 YYRHSLOC (Rhs, 0).last_column; \
1432 } \
1433 while (0)
1434#endif
1435
1436
1437/* YY_LOCATION_PRINT -- Print the location on the stream.
1438 This macro was not mandated originally: define only if we know
1439 we won't break user code: when these are the locations we know. */
1440
1441#ifndef YY_LOCATION_PRINT
1442# if YYLTYPE_IS_TRIVIAL
1443# define YY_LOCATION_PRINT(File, Loc) \
1444 fprintf (File, "%d.%d-%d.%d", \
1445 (Loc).first_line, (Loc).first_column, \
1446 (Loc).last_line, (Loc).last_column)
1447# else
1448# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1449# endif
1450#endif
1451
1452
1453/* YYLEX -- calling `yylex' with the right arguments. */
1454
1455#ifdef YYLEX_PARAM
1456# define YYLEX yylex (YYLEX_PARAM)
1457#else
1458# define YYLEX yylex ()
1459#endif
1460
1461/* Enable debugging if requested. */
1462#if YYDEBUG
1463
1464# ifndef YYFPRINTF
1465# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1466# define YYFPRINTF fprintf
1467# endif
1468
1469# define YYDPRINTF(Args) \
1470do { \
1471 if (yydebug) \
1472 YYFPRINTF Args; \
1473} while (0)
1474
1475# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1476do { \
1477 if (yydebug) \
1478 { \
1479 YYFPRINTF (stderr, "%s ", Title); \
1480 yysymprint (stderr, \
1481 Type, Value); \
1482 YYFPRINTF (stderr, "\n"); \
1483 } \
1484} while (0)
1485
1486/*------------------------------------------------------------------.
1487| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1488| TOP (included). |
1489`------------------------------------------------------------------*/
1490
1491#if defined (__STDC__) || defined (__cplusplus)
1492static void
1493yy_stack_print (short int *bottom, short int *top)
1494#else
1495static void
1496yy_stack_print (bottom, top)
1497 short int *bottom;
1498 short int *top;
1499#endif
1500{
1501 YYFPRINTF (stderr, "Stack now");
1502 for (/* Nothing. */; bottom <= top; ++bottom)
1503 YYFPRINTF (stderr, " %d", *bottom);
1504 YYFPRINTF (stderr, "\n");
1505}
1506
1507# define YY_STACK_PRINT(Bottom, Top) \
1508do { \
1509 if (yydebug) \
1510 yy_stack_print ((Bottom), (Top)); \
1511} while (0)
1512
1513
1514/*------------------------------------------------.
1515| Report that the YYRULE is going to be reduced. |
1516`------------------------------------------------*/
1517
1518#if defined (__STDC__) || defined (__cplusplus)
1519static void
1520yy_reduce_print (int yyrule)
1521#else
1522static void
1523yy_reduce_print (yyrule)
1524 int yyrule;
1525#endif
1526{
1527 int yyi;
1528 unsigned long int yylno = yyrline[yyrule];
1529 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1530 yyrule - 1, yylno);
1531 /* Print the symbols being reduced, and their result. */
1532 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1533 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1534 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1535}
1536
1537# define YY_REDUCE_PRINT(Rule) \
1538do { \
1539 if (yydebug) \
1540 yy_reduce_print (Rule); \
1541} while (0)
1542
1543/* Nonzero means print parse trace. It is left uninitialized so that
1544 multiple parsers can coexist. */
1545int yydebug;
1546#else /* !YYDEBUG */
1547# define YYDPRINTF(Args)
1548# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1549# define YY_STACK_PRINT(Bottom, Top)
1550# define YY_REDUCE_PRINT(Rule)
1551#endif /* !YYDEBUG */
1552
1553
1554/* YYINITDEPTH -- initial size of the parser's stacks. */
1555#ifndef YYINITDEPTH
1556# define YYINITDEPTH 200
1557#endif
1558
1559/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1560 if the built-in stack extension method is used).
1561
1562 Do not make this value too large; the results are undefined if
1563 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1564 evaluated with infinite-precision integer arithmetic. */
1565
1566#ifndef YYMAXDEPTH
1567# define YYMAXDEPTH 10000
1568#endif
1569
1570
1571
1572#if YYERROR_VERBOSE
1573
1574# ifndef yystrlen
1575# if defined (__GLIBC__) && defined (_STRING_H)
1576# define yystrlen strlen
1577# else
1578/* Return the length of YYSTR. */
1579static YYSIZE_T
1580# if defined (__STDC__) || defined (__cplusplus)
1581yystrlen (const char *yystr)
1582# else
1583yystrlen (yystr)
1584 const char *yystr;
1585# endif
1586{
1587 const char *yys = yystr;
1588
1589 while (*yys++ != '\0')
1590 continue;
1591
1592 return yys - yystr - 1;
1593}
1594# endif
1595# endif
1596
1597# ifndef yystpcpy
1598# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1599# define yystpcpy stpcpy
1600# else
1601/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1602 YYDEST. */
1603static char *
1604# if defined (__STDC__) || defined (__cplusplus)
1605yystpcpy (char *yydest, const char *yysrc)
1606# else
1607yystpcpy (yydest, yysrc)
1608 char *yydest;
1609 const char *yysrc;
1610# endif
1611{
1612 char *yyd = yydest;
1613 const char *yys = yysrc;
1614
1615 while ((*yyd++ = *yys++) != '\0')
1616 continue;
1617
1618 return yyd - 1;
1619}
1620# endif
1621# endif
1622
1623# ifndef yytnamerr
1624/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1625 quotes and backslashes, so that it's suitable for yyerror. The
1626 heuristic is that double-quoting is unnecessary unless the string
1627 contains an apostrophe, a comma, or backslash (other than
1628 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1629 null, do not copy; instead, return the length of what the result
1630 would have been. */
1631static YYSIZE_T
1632yytnamerr (char *yyres, const char *yystr)
1633{
1634 if (*yystr == '"')
1635 {
1636 size_t yyn = 0;
1637 char const *yyp = yystr;
1638
1639 for (;;)
1640 switch (*++yyp)
1641 {
1642 case '\'':
1643 case ',':
1644 goto do_not_strip_quotes;
1645
1646 case '\\':
1647 if (*++yyp != '\\')
1648 goto do_not_strip_quotes;
1649 /* Fall through. */
1650 default:
1651 if (yyres)
1652 yyres[yyn] = *yyp;
1653 yyn++;
1654 break;
1655
1656 case '"':
1657 if (yyres)
1658 yyres[yyn] = '\0';
1659 return yyn;
1660 }
1661 do_not_strip_quotes: ;
1662 }
1663
1664 if (! yyres)
1665 return yystrlen (yystr);
1666
1667 return yystpcpy (yyres, yystr) - yyres;
1668}
1669# endif
1670
1671#endif /* YYERROR_VERBOSE */
1672
1673
1674
1675#if YYDEBUG
1676/*--------------------------------.
1677| Print this symbol on YYOUTPUT. |
1678`--------------------------------*/
1679
1680#if defined (__STDC__) || defined (__cplusplus)
1681static void
1682yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1683#else
1684static void
1685yysymprint (yyoutput, yytype, yyvaluep)
1686 FILE *yyoutput;
1687 int yytype;
1688 YYSTYPE *yyvaluep;
1689#endif
1690{
1691 /* Pacify ``unused variable'' warnings. */
1692 (void) yyvaluep;
1693
1694 if (yytype < YYNTOKENS)
1695 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1696 else
1697 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1698
1699
1700# ifdef YYPRINT
1701 if (yytype < YYNTOKENS)
1702 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1703# endif
1704 switch (yytype)
1705 {
1706 default:
1707 break;
1708 }
1709 YYFPRINTF (yyoutput, ")");
1710}
1711
1712#endif /* ! YYDEBUG */
1713/*-----------------------------------------------.
1714| Release the memory associated to this symbol. |
1715`-----------------------------------------------*/
1716
1717#if defined (__STDC__) || defined (__cplusplus)
1718static void
1719yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1720#else
1721static void
1722yydestruct (yymsg, yytype, yyvaluep)
1723 const char *yymsg;
1724 int yytype;
1725 YYSTYPE *yyvaluep;
1726#endif
1727{
1728 /* Pacify ``unused variable'' warnings. */
1729 (void) yyvaluep;
1730
1731 if (!yymsg)
1732 yymsg = "Deleting";
1733 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1734
1735 switch (yytype)
1736 {
1737
1738 default:
1739 break;
1740 }
1741}
1742
1743
1744/* Prevent warnings from -Wmissing-prototypes. */
1745
1746#ifdef YYPARSE_PARAM
1747# if defined (__STDC__) || defined (__cplusplus)
1748int yyparse (void *YYPARSE_PARAM);
1749# else
1750int yyparse ();
1751# endif
1752#else /* ! YYPARSE_PARAM */
1753#if defined (__STDC__) || defined (__cplusplus)
1754int yyparse (void);
1755#else
1756int yyparse ();
1757#endif
1758#endif /* ! YYPARSE_PARAM */
1759
1760
1761
1762/* The look-ahead symbol. */
1763int yychar;
1764
1765/* The semantic value of the look-ahead symbol. */
1766YYSTYPE yylval;
1767
1768/* Number of syntax errors so far. */
1769int yynerrs;
1770
1771
1772
1773/*----------.
1774| yyparse. |
1775`----------*/
1776
1777#ifdef YYPARSE_PARAM
1778# if defined (__STDC__) || defined (__cplusplus)
1779int yyparse (void *YYPARSE_PARAM)
1780# else
1781int yyparse (YYPARSE_PARAM)
1782 void *YYPARSE_PARAM;
1783# endif
1784#else /* ! YYPARSE_PARAM */
1785#if defined (__STDC__) || defined (__cplusplus)
1786int
1787yyparse (void)
1788#else
1789int
1790yyparse ()
1791
1792#endif
1793#endif
1794{
1795
1796 int yystate;
1797 int yyn;
1798 int yyresult;
1799 /* Number of tokens to shift before error messages enabled. */
1800 int yyerrstatus;
1801 /* Look-ahead token as an internal (translated) token number. */
1802 int yytoken = 0;
1803
1804 /* Three stacks and their tools:
1805 `yyss': related to states,
1806 `yyvs': related to semantic values,
1807 `yyls': related to locations.
1808
1809 Refer to the stacks thru separate pointers, to allow yyoverflow
1810 to reallocate them elsewhere. */
1811
1812 /* The state stack. */
1813 short int yyssa[YYINITDEPTH];
1814 short int *yyss = yyssa;
1815 short int *yyssp;
1816
1817 /* The semantic value stack. */
1818 YYSTYPE yyvsa[YYINITDEPTH];
1819 YYSTYPE *yyvs = yyvsa;
1820 YYSTYPE *yyvsp;
1821
1822
1823
1824#define YYPOPSTACK (yyvsp--, yyssp--)
1825
1826 YYSIZE_T yystacksize = YYINITDEPTH;
1827
1828 /* The variables used to return semantic value and location from the
1829 action routines. */
1830 YYSTYPE yyval;
1831
1832
1833 /* When reducing, the number of symbols on the RHS of the reduced
1834 rule. */
1835 int yylen;
1836
1837 YYDPRINTF ((stderr, "Starting parse\n"));
1838
1839 yystate = 0;
1840 yyerrstatus = 0;
1841 yynerrs = 0;
1842 yychar = YYEMPTY; /* Cause a token to be read. */
1843
1844 /* Initialize stack pointers.
1845 Waste one element of value and location stack
1846 so that they stay on the same level as the state stack.
1847 The wasted elements are never initialized. */
1848
1849 yyssp = yyss;
1850 yyvsp = yyvs;
1851
1852 goto yysetstate;
1853
1854/*------------------------------------------------------------.
1855| yynewstate -- Push a new state, which is found in yystate. |
1856`------------------------------------------------------------*/
1857 yynewstate:
1858 /* In all cases, when you get here, the value and location stacks
1859 have just been pushed. so pushing a state here evens the stacks.
1860 */
1861 yyssp++;
1862
1863 yysetstate:
1864 *yyssp = yystate;
1865
1866 if (yyss + yystacksize - 1 <= yyssp)
1867 {
1868 /* Get the current used size of the three stacks, in elements. */
1869 YYSIZE_T yysize = yyssp - yyss + 1;
1870
1871#ifdef yyoverflow
1872 {
1873 /* Give user a chance to reallocate the stack. Use copies of
1874 these so that the &'s don't force the real ones into
1875 memory. */
1876 YYSTYPE *yyvs1 = yyvs;
1877 short int *yyss1 = yyss;
1878
1879
1880 /* Each stack pointer address is followed by the size of the
1881 data in use in that stack, in bytes. This used to be a
1882 conditional around just the two extra args, but that might
1883 be undefined if yyoverflow is a macro. */
1884 yyoverflow (YY_("memory exhausted"),
1885 &yyss1, yysize * sizeof (*yyssp),
1886 &yyvs1, yysize * sizeof (*yyvsp),
1887
1888 &yystacksize);
1889
1890 yyss = yyss1;
1891 yyvs = yyvs1;
1892 }
1893#else /* no yyoverflow */
1894# ifndef YYSTACK_RELOCATE
1895 goto yyexhaustedlab;
1896# else
1897 /* Extend the stack our own way. */
1898 if (YYMAXDEPTH <= yystacksize)
1899 goto yyexhaustedlab;
1900 yystacksize *= 2;
1901 if (YYMAXDEPTH < yystacksize)
1902 yystacksize = YYMAXDEPTH;
1903
1904 {
1905 short int *yyss1 = yyss;
1906 union yyalloc *yyptr =
1907 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1908 if (! yyptr)
1909 goto yyexhaustedlab;
1910 YYSTACK_RELOCATE (yyss);
1911 YYSTACK_RELOCATE (yyvs);
1912
1913# undef YYSTACK_RELOCATE
1914 if (yyss1 != yyssa)
1915 YYSTACK_FREE (yyss1);
1916 }
1917# endif
1918#endif /* no yyoverflow */
1919
1920 yyssp = yyss + yysize - 1;
1921 yyvsp = yyvs + yysize - 1;
1922
1923
1924 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1925 (unsigned long int) yystacksize));
1926
1927 if (yyss + yystacksize - 1 <= yyssp)
1928 YYABORT;
1929 }
1930
1931 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1932
1933 goto yybackup;
1934
1935/*-----------.
1936| yybackup. |
1937`-----------*/
1938yybackup:
1939
1940/* Do appropriate processing given the current state. */
1941/* Read a look-ahead token if we need one and don't already have one. */
1942/* yyresume: */
1943
1944 /* First try to decide what to do without reference to look-ahead token. */
1945
1946 yyn = yypact[yystate];
1947 if (yyn == YYPACT_NINF)
1948 goto yydefault;
1949
1950 /* Not known => get a look-ahead token if don't already have one. */
1951
1952 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1953 if (yychar == YYEMPTY)
1954 {
1955 YYDPRINTF ((stderr, "Reading a token: "));
1956 yychar = YYLEX;
1957 }
1958
1959 if (yychar <= YYEOF)
1960 {
1961 yychar = yytoken = YYEOF;
1962 YYDPRINTF ((stderr, "Now at end of input.\n"));
1963 }
1964 else
1965 {
1966 yytoken = YYTRANSLATE (yychar);
1967 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1968 }
1969
1970 /* If the proper action on seeing token YYTOKEN is to reduce or to
1971 detect an error, take that action. */
1972 yyn += yytoken;
1973 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1974 goto yydefault;
1975 yyn = yytable[yyn];
1976 if (yyn <= 0)
1977 {
1978 if (yyn == 0 || yyn == YYTABLE_NINF)
1979 goto yyerrlab;
1980 yyn = -yyn;
1981 goto yyreduce;
1982 }
1983
1984 if (yyn == YYFINAL)
1985 YYACCEPT;
1986
1987 /* Shift the look-ahead token. */
1988 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1989
1990 /* Discard the token being shifted unless it is eof. */
1991 if (yychar != YYEOF)
1992 yychar = YYEMPTY;
1993
1994 *++yyvsp = yylval;
1995
1996
1997 /* Count tokens shifted since error; after three, turn off error
1998 status. */
1999 if (yyerrstatus)
2000 yyerrstatus--;
2001
2002 yystate = yyn;
2003 goto yynewstate;
2004
2005
2006/*-----------------------------------------------------------.
2007| yydefault -- do the default action for the current state. |
2008`-----------------------------------------------------------*/
2009yydefault:
2010 yyn = yydefact[yystate];
2011 if (yyn == 0)
2012 goto yyerrlab;
2013 goto yyreduce;
2014
2015
2016/*-----------------------------.
2017| yyreduce -- Do a reduction. |
2018`-----------------------------*/
2019yyreduce:
2020 /* yyn is the number of a rule to reduce with. */
2021 yylen = yyr2[yyn];
2022
2023 /* If YYLEN is nonzero, implement the default value of the action:
2024 `$$ = $1'.
2025
2026 Otherwise, the following line sets YYVAL to garbage.
2027 This behavior is undocumented and Bison
2028 users should not rely upon it. Assigning to YYVAL
2029 unconditionally makes the parser a bit smaller, and it avoids a
2030 GCC warning that YYVAL may be used uninitialized. */
2031 yyval = yyvsp[1-yylen];
2032
2033
2034 YY_REDUCE_PRINT (yyn);
2035 switch (yyn)
2036 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002037 case 39:
2038#line 207 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002039 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002040 *(yyvsp[-1].String) += " = ";
2041 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002042 ;}
2043 break;
2044
Reid Spencere77e35e2006-12-01 20:26:20 +00002045 case 40:
2046#line 211 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002047 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002048 (yyval.String) = new std::string("");
Reid Spencere7c3c602006-11-30 06:36:44 +00002049 ;}
2050 break;
2051
Reid Spencere77e35e2006-12-01 20:26:20 +00002052 case 48:
2053#line 218 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2054 { (yyval.String) = new std::string(""); ;}
2055 break;
2056
Reid Spencer16244f42006-12-01 21:10:07 +00002057 case 55:
Reid Spencere77e35e2006-12-01 20:26:20 +00002058#line 223 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002059 {
2060 *(yyvsp[-1].String) += *(yyvsp[0].Const).cnst;
2061 (yyvsp[0].Const).destroy();
2062 (yyval.String) = (yyvsp[-1].String);
2063 ;}
2064 break;
2065
2066 case 56:
2067#line 228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002068 { (yyval.String) = new std::string(""); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002069 break;
2070
2071 case 57:
Reid Spencer16244f42006-12-01 21:10:07 +00002072#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002073 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002074 break;
2075
2076 case 58:
Reid Spencer16244f42006-12-01 21:10:07 +00002077#line 234 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002078 { *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst; delete (yyvsp[0].Const).cnst; (yyval.String) = (yyvsp[-1].String); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002079 break;
2080
2081 case 59:
Reid Spencer16244f42006-12-01 21:10:07 +00002082#line 237 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002083 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002084 break;
2085
2086 case 60:
Reid Spencer16244f42006-12-01 21:10:07 +00002087#line 238 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002088 {
2089 (yyvsp[-1].String)->insert(0, ", ");
2090 *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2091 delete (yyvsp[0].Const).cnst;
2092 (yyval.String) = (yyvsp[-1].String);
2093 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002094 break;
2095
2096 case 61:
Reid Spencer16244f42006-12-01 21:10:07 +00002097#line 246 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002098 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002099 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2100 delete (yyvsp[0].String);
2101 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002102 ;}
2103 break;
2104
2105 case 62:
Reid Spencer16244f42006-12-01 21:10:07 +00002106#line 252 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002107 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002108 break;
2109
Reid Spencere77e35e2006-12-01 20:26:20 +00002110 case 64:
Reid Spencer16244f42006-12-01 21:10:07 +00002111#line 256 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002112 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002113 break;
2114
2115 case 65:
Reid Spencer16244f42006-12-01 21:10:07 +00002116#line 257 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002117 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002118 (yyvsp[-1].String)->insert(0, ", ");
2119 if (!(yyvsp[0].String)->empty())
2120 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2121 delete (yyvsp[0].String);
2122 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002123 ;}
2124 break;
2125
Reid Spencere77e35e2006-12-01 20:26:20 +00002126 case 67:
Reid Spencer16244f42006-12-01 21:10:07 +00002127#line 267 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002128 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002129 *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2130 delete (yyvsp[0].Const).cnst;
2131 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002132 ;}
2133 break;
2134
Reid Spencere77e35e2006-12-01 20:26:20 +00002135 case 87:
Reid Spencer16244f42006-12-01 21:10:07 +00002136#line 289 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002137 {
Reid Spencerd154b572006-12-01 20:36:40 +00002138 (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy;
2139 ;}
Reid Spencere77e35e2006-12-01 20:26:20 +00002140 break;
2141
2142 case 88:
Reid Spencer16244f42006-12-01 21:10:07 +00002143#line 295 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002144 { // Type UpReference
2145 (yyvsp[0].Const).cnst->insert(0, "\\");
2146 (yyval.Type).newTy = (yyvsp[0].Const).cnst;
2147 (yyval.Type).oldTy = OpaqueTy;
2148 ;}
2149 break;
2150
2151 case 89:
Reid Spencer16244f42006-12-01 21:10:07 +00002152#line 300 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002153 { // Function derived type?
2154 *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )";
2155 delete (yyvsp[-1].String);
2156 (yyval.Type).newTy = (yyvsp[-3].Type).newTy;
2157 (yyval.Type).oldTy = FunctionTy;
2158 ;}
2159 break;
2160
Reid Spencere7c3c602006-11-30 06:36:44 +00002161 case 90:
Reid Spencer16244f42006-12-01 21:10:07 +00002162#line 306 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002163 { // Sized array type?
2164 (yyvsp[-3].Const).cnst->insert(0,"[ ");
2165 *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " ]";
2166 delete (yyvsp[-1].Type).newTy;
2167 (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2168 (yyval.Type).oldTy = ArrayTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002169 ;}
2170 break;
2171
2172 case 91:
Reid Spencer16244f42006-12-01 21:10:07 +00002173#line 313 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002174 { // Packed array type?
2175 (yyvsp[-3].Const).cnst->insert(0,"< ");
2176 *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " >";
2177 delete (yyvsp[-1].Type).newTy;
2178 (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2179 (yyval.Type).oldTy = PackedTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002180 ;}
2181 break;
2182
2183 case 92:
Reid Spencer16244f42006-12-01 21:10:07 +00002184#line 320 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002185 { // Structure type?
2186 (yyvsp[-1].String)->insert(0, "{ ");
2187 *(yyvsp[-1].String) += " }";
2188 (yyval.Type).newTy = (yyvsp[-1].String);
2189 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002190 ;}
2191 break;
2192
2193 case 93:
Reid Spencer16244f42006-12-01 21:10:07 +00002194#line 326 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002195 { // Empty structure type?
2196 (yyval.Type).newTy = new std::string("{ }");
2197 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002198 ;}
2199 break;
2200
2201 case 94:
Reid Spencer16244f42006-12-01 21:10:07 +00002202#line 330 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002203 { // Pointer type?
2204 *(yyvsp[-1].Type).newTy += '*';
2205 (yyvsp[-1].Type).oldTy = PointerTy;
2206 (yyval.Type) = (yyvsp[-1].Type);
Reid Spencere7c3c602006-11-30 06:36:44 +00002207 ;}
2208 break;
2209
2210 case 95:
Reid Spencer16244f42006-12-01 21:10:07 +00002211#line 340 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002212 {
2213 (yyval.String) = (yyvsp[0].Type).newTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002214 ;}
2215 break;
2216
2217 case 96:
Reid Spencer16244f42006-12-01 21:10:07 +00002218#line 343 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002219 {
2220 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy;
2221 delete (yyvsp[0].Type).newTy;
2222 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002223 ;}
2224 break;
2225
2226 case 98:
Reid Spencer16244f42006-12-01 21:10:07 +00002227#line 352 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002228 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002229 *(yyvsp[-2].String) += ", ...";
2230 delete (yyvsp[0].String);
2231 (yyval.String) = (yyvsp[-2].String);
2232 ;}
2233 break;
2234
2235 case 99:
Reid Spencer16244f42006-12-01 21:10:07 +00002236#line 357 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002237 {
2238 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002239 ;}
2240 break;
2241
2242 case 100:
Reid Spencer16244f42006-12-01 21:10:07 +00002243#line 360 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002244 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002245 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002246 ;}
2247 break;
2248
2249 case 101:
Reid Spencer16244f42006-12-01 21:10:07 +00002250#line 370 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002251 { // Nonempty unsized arr
2252 (yyval.Const).type = (yyvsp[-3].Type);
2253 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2254 *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]";
2255 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002256 ;}
2257 break;
2258
2259 case 102:
Reid Spencer16244f42006-12-01 21:10:07 +00002260#line 376 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002261 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002262 (yyval.Const).type = (yyvsp[-2].Type);
2263 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2264 *(yyval.Const).cnst += "[ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002265 ;}
2266 break;
2267
2268 case 103:
Reid Spencer16244f42006-12-01 21:10:07 +00002269#line 381 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002270 {
2271 (yyval.Const).type = (yyvsp[-2].Type);
2272 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2273 *(yyval.Const).cnst += " c" + *(yyvsp[0].String);
2274 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002275 ;}
2276 break;
2277
2278 case 104:
Reid Spencer16244f42006-12-01 21:10:07 +00002279#line 387 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002280 { // Nonempty unsized arr
2281 (yyval.Const).type = (yyvsp[-3].Type);
2282 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2283 *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >";
2284 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002285 ;}
2286 break;
2287
2288 case 105:
Reid Spencer16244f42006-12-01 21:10:07 +00002289#line 393 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002290 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002291 (yyval.Const).type = (yyvsp[-3].Type);
2292 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2293 *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }";
2294 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002295 ;}
2296 break;
2297
2298 case 106:
Reid Spencer16244f42006-12-01 21:10:07 +00002299#line 399 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002300 {
2301 (yyval.Const).type = (yyvsp[-2].Type);
2302 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2303 *(yyval.Const).cnst += " [ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002304 ;}
2305 break;
2306
2307 case 107:
Reid Spencer16244f42006-12-01 21:10:07 +00002308#line 404 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002309 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002310 (yyval.Const).type = (yyvsp[-1].Type);
2311 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2312 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2313 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002314 ;}
2315 break;
2316
2317 case 108:
Reid Spencer16244f42006-12-01 21:10:07 +00002318#line 410 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002319 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002320 (yyval.Const).type = (yyvsp[-1].Type);
2321 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2322 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2323 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002324 ;}
2325 break;
2326
2327 case 109:
Reid Spencer16244f42006-12-01 21:10:07 +00002328#line 416 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002329 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002330 (yyval.Const).type = (yyvsp[-1].Type);
2331 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2332 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2333 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002334 ;}
2335 break;
2336
2337 case 110:
Reid Spencer16244f42006-12-01 21:10:07 +00002338#line 422 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002339 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002340 (yyval.Const).type = (yyvsp[-1].Type);
2341 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2342 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2343 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002344 ;}
2345 break;
2346
2347 case 111:
Reid Spencer16244f42006-12-01 21:10:07 +00002348#line 428 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002349 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002350 (yyval.Const).type = (yyvsp[-1].Type);
2351 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2352 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2353 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002354 ;}
2355 break;
2356
2357 case 112:
Reid Spencer16244f42006-12-01 21:10:07 +00002358#line 434 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002359 { // integral constants
2360 (yyval.Const).type = (yyvsp[-1].Type);
2361 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2362 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2363 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002364 ;}
2365 break;
2366
2367 case 113:
Reid Spencer16244f42006-12-01 21:10:07 +00002368#line 440 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002369 { // integral constants
2370 (yyval.Const).type = (yyvsp[-1].Type);
2371 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2372 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2373 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002374 ;}
2375 break;
2376
2377 case 114:
Reid Spencer16244f42006-12-01 21:10:07 +00002378#line 446 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002379 { // Boolean constants
2380 (yyval.Const).type = (yyvsp[-1].Type);
2381 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2382 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2383 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002384 ;}
2385 break;
2386
2387 case 115:
Reid Spencer16244f42006-12-01 21:10:07 +00002388#line 452 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002389 { // Boolean constants
2390 (yyval.Const).type = (yyvsp[-1].Type);
2391 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2392 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2393 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002394 ;}
2395 break;
2396
2397 case 116:
Reid Spencer16244f42006-12-01 21:10:07 +00002398#line 458 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002399 { // Float & Double constants
2400 (yyval.Const).type = (yyvsp[-1].Type);
2401 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2402 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2403 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002404 ;}
2405 break;
2406
2407 case 117:
Reid Spencer16244f42006-12-01 21:10:07 +00002408#line 466 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002409 {
2410 // We must infer the cast opcode from the types of the operands.
2411 const char *opcode = getCastOpcode((yyvsp[-3].Const).type, (yyvsp[-1].Type));
2412 (yyval.String) = new std::string(opcode);
2413 *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + " " + *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + ")";
2414 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002415 ;}
2416 break;
2417
2418 case 118:
Reid Spencer16244f42006-12-01 21:10:07 +00002419#line 473 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002420 {
2421 *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst + " " + *(yyvsp[-1].String) + ")";
2422 (yyval.String) = (yyvsp[-4].String);
2423 (yyvsp[-2].Const).destroy();
2424 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002425 ;}
2426 break;
2427
2428 case 119:
Reid Spencer16244f42006-12-01 21:10:07 +00002429#line 479 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002430 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002431 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2432 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2433 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002434 ;}
2435 break;
2436
2437 case 120:
Reid Spencerd154b572006-12-01 20:36:40 +00002438#line 484 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002439 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002440 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2441 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2442 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002443 ;}
2444 break;
2445
Reid Spencer16244f42006-12-01 21:10:07 +00002446 case 121:
Reid Spencerd154b572006-12-01 20:36:40 +00002447#line 489 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002448 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002449 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2450 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2451 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002452 ;}
2453 break;
2454
Reid Spencer16244f42006-12-01 21:10:07 +00002455 case 122:
Reid Spencerd154b572006-12-01 20:36:40 +00002456#line 494 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002457 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002458 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2459 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2460 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002461 ;}
2462 break;
2463
Reid Spencer16244f42006-12-01 21:10:07 +00002464 case 123:
Reid Spencerd154b572006-12-01 20:36:40 +00002465#line 499 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002466 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002467 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2468 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2469 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002470 ;}
2471 break;
2472
Reid Spencer16244f42006-12-01 21:10:07 +00002473 case 124:
Reid Spencerd154b572006-12-01 20:36:40 +00002474#line 504 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002475 {
Reid Spencer16244f42006-12-01 21:10:07 +00002476 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2477 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2478 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002479 ;}
2480 break;
2481
Reid Spencer16244f42006-12-01 21:10:07 +00002482 case 125:
Reid Spencerd154b572006-12-01 20:36:40 +00002483#line 509 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002484 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002485 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2486 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2487 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002488 ;}
2489 break;
2490
Reid Spencer16244f42006-12-01 21:10:07 +00002491 case 126:
2492#line 514 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2493 {
2494 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2495 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2496 (yyval.String) = (yyvsp[-7].String);
2497 ;}
2498 break;
2499
Reid Spencere7c3c602006-11-30 06:36:44 +00002500 case 127:
Reid Spencer16244f42006-12-01 21:10:07 +00002501#line 524 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002502 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002503 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
2504 (yyvsp[0].Const).destroy();
2505 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002506 ;}
2507 break;
2508
2509 case 128:
Reid Spencer16244f42006-12-01 21:10:07 +00002510#line 529 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002511 { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002512 break;
2513
2514 case 131:
Reid Spencer16244f42006-12-01 21:10:07 +00002515#line 544 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002516 {
2517;}
2518 break;
2519
Reid Spencere77e35e2006-12-01 20:26:20 +00002520 case 132:
Reid Spencer16244f42006-12-01 21:10:07 +00002521#line 549 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002522 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002523 (yyval.String) = 0;
2524 ;}
2525 break;
2526
2527 case 133:
Reid Spencer16244f42006-12-01 21:10:07 +00002528#line 552 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002529 {
2530 *O << *(yyvsp[0].String) << "\n";
2531 delete (yyvsp[0].String);
2532 (yyval.String) = 0;
2533 ;}
2534 break;
2535
2536 case 134:
Reid Spencer16244f42006-12-01 21:10:07 +00002537#line 557 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002538 {
2539 *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
Reid Spencerd154b572006-12-01 20:36:40 +00002540 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002541 ;}
2542 break;
2543
2544 case 135:
Reid Spencer16244f42006-12-01 21:10:07 +00002545#line 561 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002546 {
Reid Spencerd154b572006-12-01 20:36:40 +00002547 *O << "implementation\n";
2548 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002549 ;}
2550 break;
2551
Reid Spencere77e35e2006-12-01 20:26:20 +00002552 case 137:
Reid Spencer16244f42006-12-01 21:10:07 +00002553#line 568 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002554 {
2555 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2556 // delete $2; delete $3; $4.destroy();
2557 (yyval.String) = 0;
2558 ;}
2559 break;
2560
2561 case 138:
Reid Spencer16244f42006-12-01 21:10:07 +00002562#line 573 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002563 { // Function prototypes can be in const pool
2564 *O << *(yyvsp[0].String) << "\n";
2565 delete (yyvsp[0].String);
2566 (yyval.String) = 0;
2567 ;}
2568 break;
2569
Reid Spencere7c3c602006-11-30 06:36:44 +00002570 case 139:
Reid Spencer16244f42006-12-01 21:10:07 +00002571#line 578 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002572 { // Asm blocks can be in the const pool
2573 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2574 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2575 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002576 ;}
2577 break;
2578
2579 case 140:
Reid Spencer16244f42006-12-01 21:10:07 +00002580#line 583 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002581 {
2582 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " "
2583 << *(yyvsp[0].String) << "\n";
2584 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String);
2585 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002586 ;}
2587 break;
2588
2589 case 141:
Reid Spencer16244f42006-12-01 21:10:07 +00002590#line 589 "/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].Type).newTy
2593 << " " << *(yyvsp[0].String) << "\n";
2594 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2595 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002596 ;}
2597 break;
2598
2599 case 142:
Reid Spencer16244f42006-12-01 21:10:07 +00002600#line 595 "/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 Spencer16244f42006-12-01 21:10:07 +00002610#line 601 "/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 Spencer16244f42006-12-01 21:10:07 +00002620#line 607 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002621 {
2622 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2623 delete (yyvsp[-1].String); delete (yyvsp[0].String);
2624 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002625 ;}
2626 break;
2627
2628 case 145:
Reid Spencer16244f42006-12-01 21:10:07 +00002629#line 612 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002630 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002631 *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
2632 delete (yyvsp[-2].String); delete (yyvsp[0].String);
2633 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002634 ;}
2635 break;
2636
2637 case 146:
Reid Spencer16244f42006-12-01 21:10:07 +00002638#line 617 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002639 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002640 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002641 ;}
2642 break;
2643
Reid Spencere77e35e2006-12-01 20:26:20 +00002644 case 150:
Reid Spencer16244f42006-12-01 21:10:07 +00002645#line 627 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002646 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002647 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2648 delete (yyvsp[0].String);
2649 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002650 ;}
2651 break;
2652
Reid Spencere77e35e2006-12-01 20:26:20 +00002653 case 151:
Reid Spencer16244f42006-12-01 21:10:07 +00002654#line 632 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002655 {
2656 *(yyvsp[-2].String) += " = " + *(yyvsp[0].Const).cnst;
2657 if (*(yyvsp[0].Const).cnst == "64")
2658 SizeOfPointer = 64;
2659 (yyvsp[0].Const).destroy();
2660 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002661 ;}
2662 break;
2663
2664 case 152:
Reid Spencerd154b572006-12-01 20:36:40 +00002665#line 639 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002666 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002667 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2668 delete (yyvsp[0].String);
2669 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002670 ;}
2671 break;
2672
Reid Spencer16244f42006-12-01 21:10:07 +00002673 case 153:
2674#line 644 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2675 {
2676 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2677 delete (yyvsp[0].String);
2678 (yyval.String) = (yyvsp[-2].String);
2679 ;}
2680 break;
2681
Reid Spencere7c3c602006-11-30 06:36:44 +00002682 case 154:
Reid Spencer16244f42006-12-01 21:10:07 +00002683#line 651 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002684 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002685 (yyvsp[-1].String)->insert(0, "[ ");
2686 *(yyvsp[-1].String) += " ]";
2687 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002688 ;}
2689 break;
2690
2691 case 155:
Reid Spencer16244f42006-12-01 21:10:07 +00002692#line 658 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002693 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002694 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2695 delete (yyvsp[0].String);
2696 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002697 ;}
2698 break;
2699
2700 case 157:
Reid Spencer16244f42006-12-01 21:10:07 +00002701#line 664 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002702 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002703 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002704 ;}
2705 break;
2706
Reid Spencere77e35e2006-12-01 20:26:20 +00002707 case 161:
Reid Spencer16244f42006-12-01 21:10:07 +00002708#line 673 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002709 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002710 break;
2711
Reid Spencere77e35e2006-12-01 20:26:20 +00002712 case 162:
Reid Spencer16244f42006-12-01 21:10:07 +00002713#line 675 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002714 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002715 (yyval.String) = (yyvsp[-1].Type).newTy;
2716 if (!(yyvsp[0].String)->empty())
2717 *(yyval.String) += " " + *(yyvsp[0].String);
2718 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002719;}
2720 break;
2721
Reid Spencere77e35e2006-12-01 20:26:20 +00002722 case 163:
Reid Spencer16244f42006-12-01 21:10:07 +00002723#line 682 "/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 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2726 delete (yyvsp[0].String);
2727 ;}
2728 break;
2729
2730 case 164:
Reid Spencer16244f42006-12-01 21:10:07 +00002731#line 686 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002732 {
2733 (yyval.String) = (yyvsp[0].String);
2734 ;}
2735 break;
2736
2737 case 165:
Reid Spencer16244f42006-12-01 21:10:07 +00002738#line 690 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002739 {
2740 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002741 ;}
2742 break;
2743
2744 case 166:
Reid Spencer16244f42006-12-01 21:10:07 +00002745#line 693 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002746 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002747 *(yyvsp[-2].String) += ", ...";
2748 (yyval.String) = (yyvsp[-2].String);
2749 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002750 ;}
2751 break;
2752
2753 case 167:
Reid Spencer16244f42006-12-01 21:10:07 +00002754#line 698 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002755 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002756 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002757 ;}
2758 break;
2759
2760 case 168:
Reid Spencer16244f42006-12-01 21:10:07 +00002761#line 701 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002762 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002763 break;
2764
2765 case 169:
Reid Spencer16244f42006-12-01 21:10:07 +00002766#line 704 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002767 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002768 if (!(yyvsp[-7].String)->empty()) {
2769 *(yyvsp[-7].String) += " ";
2770 }
2771 *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")";
2772 if (!(yyvsp[-1].String)->empty()) {
2773 *(yyvsp[-7].String) += " " + *(yyvsp[-1].String);
2774 }
2775 if (!(yyvsp[0].String)->empty()) {
2776 *(yyvsp[-7].String) += " " + *(yyvsp[0].String);
2777 }
2778 (yyvsp[-6].Type).destroy();
2779 delete (yyvsp[-5].String);
2780 delete (yyvsp[-3].String);
2781 delete (yyvsp[-1].String);
2782 delete (yyvsp[0].String);
2783 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002784 ;}
2785 break;
2786
2787 case 170:
Reid Spencer16244f42006-12-01 21:10:07 +00002788#line 723 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002789 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002790 (yyval.String) = new std::string("begin");
Reid Spencere7c3c602006-11-30 06:36:44 +00002791 ;}
2792 break;
2793
2794 case 171:
Reid Spencer16244f42006-12-01 21:10:07 +00002795#line 726 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002796 {
2797 (yyval.String) = new std::string ("{");
Reid Spencere7c3c602006-11-30 06:36:44 +00002798 ;}
2799 break;
2800
2801 case 172:
Reid Spencer16244f42006-12-01 21:10:07 +00002802#line 730 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002803 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002804 if (!(yyvsp[-2].String)->empty()) {
2805 *O << *(yyvsp[-2].String) << " ";
2806 }
2807 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2808 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2809 (yyval.String) = 0;
2810;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002811 break;
2812
2813 case 173:
Reid Spencer16244f42006-12-01 21:10:07 +00002814#line 739 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002815 { (yyval.String) = new std::string("end"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002816 break;
2817
2818 case 174:
Reid Spencer16244f42006-12-01 21:10:07 +00002819#line 740 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002820 { (yyval.String) = new std::string("}"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002821 break;
2822
2823 case 175:
Reid Spencer16244f42006-12-01 21:10:07 +00002824#line 742 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002825 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002826 if ((yyvsp[-1].String))
2827 *O << *(yyvsp[-1].String);
2828 *O << '\n' << *(yyvsp[0].String) << "\n";
2829 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002830;}
2831 break;
2832
Reid Spencere77e35e2006-12-01 20:26:20 +00002833 case 176:
Reid Spencer16244f42006-12-01 21:10:07 +00002834#line 750 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002835 { (yyval.String) = new std::string(); ;}
2836 break;
2837
2838 case 179:
Reid Spencer16244f42006-12-01 21:10:07 +00002839#line 756 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002840 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002841 if (!(yyvsp[-1].String)->empty())
2842 *(yyvsp[-2].String) += " " + *(yyvsp[-1].String);
2843 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
2844 delete (yyvsp[-1].String);
2845 delete (yyvsp[0].String);
2846 (yyval.String) = (yyvsp[-2].String);
2847 ;}
2848 break;
2849
2850 case 180:
Reid Spencer16244f42006-12-01 21:10:07 +00002851#line 769 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002852 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002853 break;
2854
2855 case 182:
Reid Spencerd154b572006-12-01 20:36:40 +00002856#line 773 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002857 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2858 break;
2859
Reid Spencer16244f42006-12-01 21:10:07 +00002860 case 183:
Reid Spencerd154b572006-12-01 20:36:40 +00002861#line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002862 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2863 break;
2864
Reid Spencer16244f42006-12-01 21:10:07 +00002865 case 184:
Reid Spencerd154b572006-12-01 20:36:40 +00002866#line 775 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002867 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2868 break;
2869
Reid Spencer16244f42006-12-01 21:10:07 +00002870 case 185:
Reid Spencerd154b572006-12-01 20:36:40 +00002871#line 776 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002872 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2873 break;
2874
2875 case 186:
2876#line 777 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2877 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2878 break;
2879
2880 case 187:
2881#line 778 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2882 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2883 break;
2884
2885 case 188:
2886#line 779 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2887 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2888 break;
2889
2890 case 189:
2891#line 780 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2892 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2893 break;
2894
2895 case 190:
2896#line 781 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002897 {
2898 (yyvsp[-1].String)->insert(0, "<");
2899 *(yyvsp[-1].String) += ">";
2900 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002901 ;}
2902 break;
2903
2904 case 192:
Reid Spencer16244f42006-12-01 21:10:07 +00002905#line 787 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002906 {
2907 if (!(yyvsp[-3].String)->empty()) {
2908 *(yyvsp[-4].String) += " " + *(yyvsp[-3].String);
2909 }
2910 *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
2911 delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String);
2912 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002913 ;}
2914 break;
2915
Reid Spencere77e35e2006-12-01 20:26:20 +00002916 case 193:
Reid Spencer16244f42006-12-01 21:10:07 +00002917#line 796 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002918 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2919 break;
2920
2921 case 197:
Reid Spencer16244f42006-12-01 21:10:07 +00002922#line 805 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002923 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002924 (yyval.Value).type = (yyvsp[-1].Type);
2925 (yyval.Value).val = new std::string(*(yyvsp[-1].Type).newTy + " ");
2926 *(yyval.Value).val += *(yyvsp[0].String);
2927 delete (yyvsp[0].String);
2928 ;}
2929 break;
2930
2931 case 198:
Reid Spencer16244f42006-12-01 21:10:07 +00002932#line 812 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002933 {
Reid Spencere7c3c602006-11-30 06:36:44 +00002934 ;}
2935 break;
2936
2937 case 199:
Reid Spencer16244f42006-12-01 21:10:07 +00002938#line 814 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002939 { // Do not allow functions with 0 basic blocks
2940 ;}
2941 break;
2942
Reid Spencere77e35e2006-12-01 20:26:20 +00002943 case 200:
Reid Spencer16244f42006-12-01 21:10:07 +00002944#line 821 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002945 {
Reid Spencer16244f42006-12-01 21:10:07 +00002946 *O << *(yyvsp[0].String) ;
Reid Spencere77e35e2006-12-01 20:26:20 +00002947 ;}
2948 break;
2949
2950 case 201:
Reid Spencer16244f42006-12-01 21:10:07 +00002951#line 825 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002952 {
2953 *O << " " << *(yyvsp[0].String) << "\n";
2954 delete (yyvsp[0].String);
2955 (yyval.String) = 0;
2956 ;}
2957 break;
2958
2959 case 202:
Reid Spencer16244f42006-12-01 21:10:07 +00002960#line 830 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002961 {
2962 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002963 ;}
2964 break;
2965
2966 case 203:
Reid Spencer16244f42006-12-01 21:10:07 +00002967#line 833 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002968 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002969 *O << *(yyvsp[0].String) << "\n";
2970 delete (yyvsp[0].String);
2971 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002972 ;}
2973 break;
2974
2975 case 204:
Reid Spencer16244f42006-12-01 21:10:07 +00002976#line 839 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002977 { // Return with a result...
2978 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n";
2979 delete (yyvsp[-1].String); (yyvsp[0].Value).destroy();
2980 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002981 ;}
2982 break;
2983
2984 case 205:
Reid Spencer16244f42006-12-01 21:10:07 +00002985#line 844 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002986 { // Return with no result...
2987 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2988 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
2989 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002990 ;}
2991 break;
2992
2993 case 206:
Reid Spencer16244f42006-12-01 21:10:07 +00002994#line 849 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002995 { // Unconditional Branch...
2996 *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
2997 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2998 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002999 ;}
3000 break;
3001
3002 case 207:
Reid Spencer16244f42006-12-01 21:10:07 +00003003#line 854 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003004 {
3005 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", "
3006 << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << ", " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3007 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String);
3008 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3009 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003010 ;}
3011 break;
3012
3013 case 208:
Reid Spencer16244f42006-12-01 21:10:07 +00003014#line 861 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003015 {
3016 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", " << *(yyvsp[-4].Type).newTy
3017 << " " << *(yyvsp[-3].String) << " [" << *(yyvsp[-1].String) << " ]\n";
3018 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3019 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003020 ;}
3021 break;
3022
3023 case 209:
Reid Spencer16244f42006-12-01 21:10:07 +00003024#line 867 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003025 {
3026 *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].String) << ", "
3027 << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].String) << "[]\n";
3028 delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); delete (yyvsp[-5].String); (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String);
3029 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003030 ;}
3031 break;
3032
3033 case 210:
Reid Spencer16244f42006-12-01 21:10:07 +00003034#line 874 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003035 {
Reid Spencer16244f42006-12-01 21:10:07 +00003036 *O << " ";
3037 if (!(yyvsp[-13].String)->empty())
3038 *O << *(yyvsp[-13].String);
3039 *O << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].String) << " ("
Reid Spencere77e35e2006-12-01 20:26:20 +00003040 << *(yyvsp[-7].String) << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << " "
3041 << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
Reid Spencer16244f42006-12-01 21:10:07 +00003042 delete (yyvsp[-13].String); delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); delete (yyvsp[-9].String); delete (yyvsp[-7].String);
3043 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
3044 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003045 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003046 ;}
3047 break;
3048
3049 case 211:
Reid Spencer16244f42006-12-01 21:10:07 +00003050#line 886 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003051 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003052 *O << " " << *(yyvsp[0].String) << "\n";
3053 delete (yyvsp[0].String);
3054 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003055 ;}
3056 break;
3057
3058 case 212:
Reid Spencer16244f42006-12-01 21:10:07 +00003059#line 891 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003060 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003061 *O << " " << *(yyvsp[0].String) << "\n";
3062 delete (yyvsp[0].String);
3063 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003064 ;}
3065 break;
3066
3067 case 213:
Reid Spencer16244f42006-12-01 21:10:07 +00003068#line 897 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003069 {
Reid Spencer16244f42006-12-01 21:10:07 +00003070 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003071 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3072 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003073 ;}
3074 break;
3075
3076 case 214:
Reid Spencer16244f42006-12-01 21:10:07 +00003077#line 902 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003078 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003079 (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " );
3080 *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3081 (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3082 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003083 ;}
3084 break;
3085
3086 case 215:
Reid Spencer16244f42006-12-01 21:10:07 +00003087#line 910 "/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[-1].String) += *(yyvsp[0].String);
3090 delete (yyvsp[0].String);
3091 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003092 ;}
3093 break;
3094
3095 case 216:
Reid Spencer16244f42006-12-01 21:10:07 +00003096#line 917 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003097 { // Used for PHI nodes
3098 (yyvsp[-3].String)->insert(0, *(yyvsp[-5].Type).newTy + "[");
3099 *(yyvsp[-3].String) += "," + *(yyvsp[-1].String) + "]";
3100 (yyvsp[-5].Type).destroy(); delete (yyvsp[-1].String);
3101 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003102 ;}
3103 break;
3104
3105 case 217:
Reid Spencer16244f42006-12-01 21:10:07 +00003106#line 923 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003107 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003108 *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].String) + "," + *(yyvsp[-1].String) + "]";
3109 delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3110 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003111 ;}
3112 break;
3113
3114 case 218:
Reid Spencer16244f42006-12-01 21:10:07 +00003115#line 931 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003116 { (yyval.String) = new std::string(*(yyvsp[0].Value).val); (yyvsp[0].Value).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003117 break;
3118
3119 case 219:
Reid Spencer16244f42006-12-01 21:10:07 +00003120#line 932 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003121 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003122 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Value).val;
3123 (yyvsp[0].Value).destroy();
3124 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003125 ;}
3126 break;
3127
3128 case 221:
Reid Spencer16244f42006-12-01 21:10:07 +00003129#line 941 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003130 { (yyval.String) = new std::string(); ;}
3131 break;
3132
3133 case 222:
Reid Spencer16244f42006-12-01 21:10:07 +00003134#line 945 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003135 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003136 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3137 delete (yyvsp[0].String);
3138 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003139 ;}
3140 break;
3141
Reid Spencere77e35e2006-12-01 20:26:20 +00003142 case 224:
Reid Spencer16244f42006-12-01 21:10:07 +00003143#line 953 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003144 {
3145 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3146 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3147 (yyval.String) = (yyvsp[-4].String);
3148 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003149 break;
3150
Reid Spencere77e35e2006-12-01 20:26:20 +00003151 case 225:
Reid Spencer16244f42006-12-01 21:10:07 +00003152#line 958 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003153 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003154 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3155 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3156 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003157 ;}
3158 break;
3159
3160 case 226:
Reid Spencer16244f42006-12-01 21:10:07 +00003161#line 963 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003162 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003163 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3164 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3165 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003166 ;}
3167 break;
3168
3169 case 227:
Reid Spencer16244f42006-12-01 21:10:07 +00003170#line 968 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003171 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003172 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3173 (yyvsp[0].Value).destroy();
3174 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003175 ;}
3176 break;
3177
3178 case 228:
Reid Spencer16244f42006-12-01 21:10:07 +00003179#line 973 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003180 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003181 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3182 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3183 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003184 ;}
3185 break;
3186
3187 case 229:
Reid Spencer16244f42006-12-01 21:10:07 +00003188#line 978 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003189 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003190 const char *opcode = getCastOpcode((yyvsp[-2].Value).type, (yyvsp[0].Type));
3191 (yyval.String) = new std::string(opcode);
3192 *(yyval.String) += *(yyvsp[-2].Value).val + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].Type).newTy;
3193 delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy();
3194 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00003195 ;}
3196 break;
3197
3198 case 230:
Reid Spencer16244f42006-12-01 21:10:07 +00003199#line 985 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003200 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003201 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3202 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3203 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003204 ;}
3205 break;
3206
3207 case 231:
Reid Spencer16244f42006-12-01 21:10:07 +00003208#line 990 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003209 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003210 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy;
3211 (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy();
3212 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003213 ;}
3214 break;
3215
3216 case 232:
Reid Spencer16244f42006-12-01 21:10:07 +00003217#line 995 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003218 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003219 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3220 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3221 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003222 ;}
3223 break;
3224
3225 case 233:
Reid Spencer16244f42006-12-01 21:10:07 +00003226#line 1000 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003227 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003228 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3229 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3230 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003231 ;}
3232 break;
3233
3234 case 234:
Reid Spencer16244f42006-12-01 21:10:07 +00003235#line 1005 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003236 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003237 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3238 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3239 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003240 ;}
3241 break;
3242
3243 case 235:
Reid Spencer16244f42006-12-01 21:10:07 +00003244#line 1010 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003245 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003246 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3247 delete (yyvsp[0].String);
3248 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003249 ;}
3250 break;
3251
3252 case 236:
Reid Spencer16244f42006-12-01 21:10:07 +00003253#line 1015 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003254 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003255 if (!(yyvsp[-5].String)->empty())
3256 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String);
3257 if (!(yyvsp[-6].String)->empty())
3258 *(yyvsp[-6].String) += " ";
3259 *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + "(" + *(yyvsp[-1].String) + ")";
3260 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3261 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003262 ;}
3263 break;
3264
3265 case 238:
Reid Spencer16244f42006-12-01 21:10:07 +00003266#line 1029 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003267 {
3268 (yyvsp[0].String)->insert(0, ", ");
3269 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003270 ;}
3271 break;
3272
Reid Spencere77e35e2006-12-01 20:26:20 +00003273 case 239:
Reid Spencer16244f42006-12-01 21:10:07 +00003274#line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003275 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003276 break;
3277
3278 case 241:
Reid Spencer16244f42006-12-01 21:10:07 +00003279#line 1038 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003280 { (yyval.String) = new std::string(); ;}
3281 break;
3282
3283 case 242:
Reid Spencer16244f42006-12-01 21:10:07 +00003284#line 1041 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003285 {
3286 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3287 if (!(yyvsp[0].String)->empty())
3288 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3289 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3290 (yyval.String) = (yyvsp[-2].String);
3291 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003292 break;
3293
3294 case 243:
Reid Spencer16244f42006-12-01 21:10:07 +00003295#line 1048 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003296 {
3297 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3298 if (!(yyvsp[0].String)->empty())
3299 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3300 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3301 (yyval.String) = (yyvsp[-5].String);
3302 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003303 break;
3304
3305 case 244:
Reid Spencer16244f42006-12-01 21:10:07 +00003306#line 1055 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003307 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003308 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3309 if (!(yyvsp[0].String)->empty())
3310 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3311 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3312 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003313 ;}
3314 break;
3315
3316 case 245:
Reid Spencer16244f42006-12-01 21:10:07 +00003317#line 1062 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003318 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003319 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3320 if (!(yyvsp[0].String)->empty())
3321 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3322 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3323 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003324 ;}
3325 break;
3326
3327 case 246:
Reid Spencer16244f42006-12-01 21:10:07 +00003328#line 1069 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003329 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003330 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3331 (yyvsp[0].Value).destroy();
3332 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003333 ;}
3334 break;
3335
3336 case 247:
Reid Spencer16244f42006-12-01 21:10:07 +00003337#line 1074 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003338 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003339 if (!(yyvsp[-3].String)->empty())
3340 *(yyvsp[-3].String) += " ";
3341 *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3342 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3343 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003344 ;}
3345 break;
3346
3347 case 248:
Reid Spencer16244f42006-12-01 21:10:07 +00003348#line 1081 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003349 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003350 if (!(yyvsp[-5].String)->empty())
3351 *(yyvsp[-5].String) += " ";
3352 *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3353 delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3354 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003355 ;}
3356 break;
3357
3358 case 249:
Reid Spencer16244f42006-12-01 21:10:07 +00003359#line 1088 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003360 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003361 *(yyvsp[-3].String) += *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].String);
3362 (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3363 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003364 ;}
3365 break;
3366
3367
3368 default: break;
3369 }
3370
3371/* Line 1126 of yacc.c. */
Reid Spencer16244f42006-12-01 21:10:07 +00003372#line 3373 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +00003373
3374 yyvsp -= yylen;
3375 yyssp -= yylen;
3376
3377
3378 YY_STACK_PRINT (yyss, yyssp);
3379
3380 *++yyvsp = yyval;
3381
3382
3383 /* Now `shift' the result of the reduction. Determine what state
3384 that goes to, based on the state we popped back to and the rule
3385 number reduced by. */
3386
3387 yyn = yyr1[yyn];
3388
3389 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3390 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3391 yystate = yytable[yystate];
3392 else
3393 yystate = yydefgoto[yyn - YYNTOKENS];
3394
3395 goto yynewstate;
3396
3397
3398/*------------------------------------.
3399| yyerrlab -- here on detecting error |
3400`------------------------------------*/
3401yyerrlab:
3402 /* If not already recovering from an error, report this error. */
3403 if (!yyerrstatus)
3404 {
3405 ++yynerrs;
3406#if YYERROR_VERBOSE
3407 yyn = yypact[yystate];
3408
3409 if (YYPACT_NINF < yyn && yyn < YYLAST)
3410 {
3411 int yytype = YYTRANSLATE (yychar);
3412 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3413 YYSIZE_T yysize = yysize0;
3414 YYSIZE_T yysize1;
3415 int yysize_overflow = 0;
3416 char *yymsg = 0;
3417# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
3418 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3419 int yyx;
3420
3421#if 0
3422 /* This is so xgettext sees the translatable formats that are
3423 constructed on the fly. */
3424 YY_("syntax error, unexpected %s");
3425 YY_("syntax error, unexpected %s, expecting %s");
3426 YY_("syntax error, unexpected %s, expecting %s or %s");
3427 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3428 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3429#endif
3430 char *yyfmt;
3431 char const *yyf;
3432 static char const yyunexpected[] = "syntax error, unexpected %s";
3433 static char const yyexpecting[] = ", expecting %s";
3434 static char const yyor[] = " or %s";
3435 char yyformat[sizeof yyunexpected
3436 + sizeof yyexpecting - 1
3437 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3438 * (sizeof yyor - 1))];
3439 char const *yyprefix = yyexpecting;
3440
3441 /* Start YYX at -YYN if negative to avoid negative indexes in
3442 YYCHECK. */
3443 int yyxbegin = yyn < 0 ? -yyn : 0;
3444
3445 /* Stay within bounds of both yycheck and yytname. */
3446 int yychecklim = YYLAST - yyn;
3447 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3448 int yycount = 1;
3449
3450 yyarg[0] = yytname[yytype];
3451 yyfmt = yystpcpy (yyformat, yyunexpected);
3452
3453 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3454 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3455 {
3456 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3457 {
3458 yycount = 1;
3459 yysize = yysize0;
3460 yyformat[sizeof yyunexpected - 1] = '\0';
3461 break;
3462 }
3463 yyarg[yycount++] = yytname[yyx];
3464 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3465 yysize_overflow |= yysize1 < yysize;
3466 yysize = yysize1;
3467 yyfmt = yystpcpy (yyfmt, yyprefix);
3468 yyprefix = yyor;
3469 }
3470
3471 yyf = YY_(yyformat);
3472 yysize1 = yysize + yystrlen (yyf);
3473 yysize_overflow |= yysize1 < yysize;
3474 yysize = yysize1;
3475
3476 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
3477 yymsg = (char *) YYSTACK_ALLOC (yysize);
3478 if (yymsg)
3479 {
3480 /* Avoid sprintf, as that infringes on the user's name space.
3481 Don't have undefined behavior even if the translation
3482 produced a string with the wrong number of "%s"s. */
3483 char *yyp = yymsg;
3484 int yyi = 0;
3485 while ((*yyp = *yyf))
3486 {
3487 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3488 {
3489 yyp += yytnamerr (yyp, yyarg[yyi++]);
3490 yyf += 2;
3491 }
3492 else
3493 {
3494 yyp++;
3495 yyf++;
3496 }
3497 }
3498 yyerror (yymsg);
3499 YYSTACK_FREE (yymsg);
3500 }
3501 else
3502 {
3503 yyerror (YY_("syntax error"));
3504 goto yyexhaustedlab;
3505 }
3506 }
3507 else
3508#endif /* YYERROR_VERBOSE */
3509 yyerror (YY_("syntax error"));
3510 }
3511
3512
3513
3514 if (yyerrstatus == 3)
3515 {
3516 /* If just tried and failed to reuse look-ahead token after an
3517 error, discard it. */
3518
3519 if (yychar <= YYEOF)
3520 {
3521 /* Return failure if at end of input. */
3522 if (yychar == YYEOF)
3523 YYABORT;
3524 }
3525 else
3526 {
3527 yydestruct ("Error: discarding", yytoken, &yylval);
3528 yychar = YYEMPTY;
3529 }
3530 }
3531
3532 /* Else will try to reuse look-ahead token after shifting the error
3533 token. */
3534 goto yyerrlab1;
3535
3536
3537/*---------------------------------------------------.
3538| yyerrorlab -- error raised explicitly by YYERROR. |
3539`---------------------------------------------------*/
3540yyerrorlab:
3541
3542 /* Pacify compilers like GCC when the user code never invokes
3543 YYERROR and the label yyerrorlab therefore never appears in user
3544 code. */
3545 if (0)
3546 goto yyerrorlab;
3547
3548yyvsp -= yylen;
3549 yyssp -= yylen;
3550 yystate = *yyssp;
3551 goto yyerrlab1;
3552
3553
3554/*-------------------------------------------------------------.
3555| yyerrlab1 -- common code for both syntax error and YYERROR. |
3556`-------------------------------------------------------------*/
3557yyerrlab1:
3558 yyerrstatus = 3; /* Each real token shifted decrements this. */
3559
3560 for (;;)
3561 {
3562 yyn = yypact[yystate];
3563 if (yyn != YYPACT_NINF)
3564 {
3565 yyn += YYTERROR;
3566 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3567 {
3568 yyn = yytable[yyn];
3569 if (0 < yyn)
3570 break;
3571 }
3572 }
3573
3574 /* Pop the current state because it cannot handle the error token. */
3575 if (yyssp == yyss)
3576 YYABORT;
3577
3578
3579 yydestruct ("Error: popping", yystos[yystate], yyvsp);
3580 YYPOPSTACK;
3581 yystate = *yyssp;
3582 YY_STACK_PRINT (yyss, yyssp);
3583 }
3584
3585 if (yyn == YYFINAL)
3586 YYACCEPT;
3587
3588 *++yyvsp = yylval;
3589
3590
3591 /* Shift the error token. */
3592 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3593
3594 yystate = yyn;
3595 goto yynewstate;
3596
3597
3598/*-------------------------------------.
3599| yyacceptlab -- YYACCEPT comes here. |
3600`-------------------------------------*/
3601yyacceptlab:
3602 yyresult = 0;
3603 goto yyreturn;
3604
3605/*-----------------------------------.
3606| yyabortlab -- YYABORT comes here. |
3607`-----------------------------------*/
3608yyabortlab:
3609 yyresult = 1;
3610 goto yyreturn;
3611
3612#ifndef yyoverflow
3613/*-------------------------------------------------.
3614| yyexhaustedlab -- memory exhaustion comes here. |
3615`-------------------------------------------------*/
3616yyexhaustedlab:
3617 yyerror (YY_("memory exhausted"));
3618 yyresult = 2;
3619 /* Fall through. */
3620#endif
3621
3622yyreturn:
3623 if (yychar != YYEOF && yychar != YYEMPTY)
3624 yydestruct ("Cleanup: discarding lookahead",
3625 yytoken, &yylval);
3626 while (yyssp != yyss)
3627 {
3628 yydestruct ("Cleanup: popping",
3629 yystos[*yyssp], yyvsp);
3630 YYPOPSTACK;
3631 }
3632#ifndef yyoverflow
3633 if (yyss != yyssa)
3634 YYSTACK_FREE (yyss);
3635#endif
3636 return yyresult;
3637}
3638
3639
Reid Spencer16244f42006-12-01 21:10:07 +00003640#line 1094 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003641
3642
3643int yyerror(const char *ErrorMsg) {
3644 std::string where
3645 = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
3646 + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
3647 std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
3648 if (yychar == YYEMPTY || yychar == 0)
3649 errMsg += "end-of-file.";
3650 else
3651 errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
3652 std::cerr << errMsg << '\n';
3653 exit(1);
3654}
3655