blob: 96cae3b3e6084938b40ed827b45aa4fb36098027 [file] [log] [blame]
Jim Laskey2792cfb2006-12-06 11:03:10 +00001/* A Bison parser, made by GNU Bison 2.1. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002
Jim Laskey2792cfb2006-12-06 11:03:10 +00003/* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Reid Spencere7c3c602006-11-30 06:36:44 +00005
Jim Laskey2792cfb2006-12-06 11:03:10 +00006 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.
Reid Spencere7c3c602006-11-30 06:36:44 +000010
Jim Laskey2792cfb2006-12-06 11:03:10 +000011 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. */
Reid Spencere7c3c602006-11-30 06:36:44 +000052#define yyparse Upgradeparse
Jim Laskey2792cfb2006-12-06 11:03:10 +000053#define yylex Upgradelex
Reid Spencere7c3c602006-11-30 06:36:44 +000054#define yyerror Upgradeerror
Jim Laskey2792cfb2006-12-06 11:03:10 +000055#define yylval Upgradelval
56#define yychar Upgradechar
Reid Spencere7c3c602006-11-30 06:36:44 +000057#define yydebug Upgradedebug
58#define yynerrs Upgradenerrs
59
Jim Laskey2792cfb2006-12-06 11:03:10 +000060
61/* Tokens. */
62#ifndef YYTOKENTYPE
63# define YYTOKENTYPE
64 /* Put the tokens into the symbol table, so that GDB and other debuggers
65 know about them. */
66 enum yytokentype {
67 VOID = 258,
68 BOOL = 259,
69 SBYTE = 260,
70 UBYTE = 261,
71 SHORT = 262,
72 USHORT = 263,
73 INT = 264,
74 UINT = 265,
75 LONG = 266,
76 ULONG = 267,
77 FLOAT = 268,
78 DOUBLE = 269,
79 LABEL = 270,
80 OPAQUE = 271,
81 ESINT64VAL = 272,
82 EUINT64VAL = 273,
83 SINTVAL = 274,
84 UINTVAL = 275,
85 FPVAL = 276,
86 NULL_TOK = 277,
87 UNDEF = 278,
88 ZEROINITIALIZER = 279,
89 TRUETOK = 280,
90 FALSETOK = 281,
91 TYPE = 282,
92 VAR_ID = 283,
93 LABELSTR = 284,
94 STRINGCONSTANT = 285,
95 IMPLEMENTATION = 286,
96 BEGINTOK = 287,
97 ENDTOK = 288,
98 DECLARE = 289,
99 GLOBAL = 290,
100 CONSTANT = 291,
101 SECTION = 292,
102 VOLATILE = 293,
103 TO = 294,
104 DOTDOTDOT = 295,
105 CONST = 296,
106 INTERNAL = 297,
107 LINKONCE = 298,
108 WEAK = 299,
109 DLLIMPORT = 300,
110 DLLEXPORT = 301,
111 EXTERN_WEAK = 302,
112 APPENDING = 303,
113 NOT = 304,
114 EXTERNAL = 305,
115 TARGET = 306,
116 TRIPLE = 307,
117 ENDIAN = 308,
118 POINTERSIZE = 309,
119 LITTLE = 310,
120 BIG = 311,
121 ALIGN = 312,
122 UNINITIALIZED = 313,
123 DEPLIBS = 314,
124 CALL = 315,
125 TAIL = 316,
126 ASM_TOK = 317,
127 MODULE = 318,
128 SIDEEFFECT = 319,
129 CC_TOK = 320,
130 CCC_TOK = 321,
131 CSRETCC_TOK = 322,
132 FASTCC_TOK = 323,
133 COLDCC_TOK = 324,
134 X86_STDCALLCC_TOK = 325,
135 X86_FASTCALLCC_TOK = 326,
136 DATALAYOUT = 327,
137 RET = 328,
138 BR = 329,
139 SWITCH = 330,
140 INVOKE = 331,
141 EXCEPT = 332,
142 UNWIND = 333,
143 UNREACHABLE = 334,
144 ADD = 335,
145 SUB = 336,
146 MUL = 337,
147 DIV = 338,
148 UDIV = 339,
149 SDIV = 340,
150 FDIV = 341,
151 REM = 342,
152 UREM = 343,
153 SREM = 344,
154 FREM = 345,
155 AND = 346,
156 OR = 347,
157 XOR = 348,
158 SETLE = 349,
159 SETGE = 350,
160 SETLT = 351,
161 SETGT = 352,
162 SETEQ = 353,
163 SETNE = 354,
164 ICMP = 355,
165 FCMP = 356,
166 EQ = 357,
167 NE = 358,
168 SLT = 359,
169 SGT = 360,
170 SLE = 361,
171 SGE = 362,
172 OEQ = 363,
173 ONE = 364,
174 OLT = 365,
175 OGT = 366,
176 OLE = 367,
177 OGE = 368,
178 ORD = 369,
179 UNO = 370,
180 UEQ = 371,
181 UNE = 372,
182 ULT = 373,
183 UGT = 374,
184 ULE = 375,
185 UGE = 376,
186 MALLOC = 377,
187 ALLOCA = 378,
188 FREE = 379,
189 LOAD = 380,
190 STORE = 381,
191 GETELEMENTPTR = 382,
192 PHI_TOK = 383,
193 SELECT = 384,
194 SHL = 385,
195 SHR = 386,
196 ASHR = 387,
197 LSHR = 388,
198 VAARG = 389,
199 EXTRACTELEMENT = 390,
200 INSERTELEMENT = 391,
201 SHUFFLEVECTOR = 392,
202 CAST = 393,
203 TRUNC = 394,
204 ZEXT = 395,
205 SEXT = 396,
206 FPTRUNC = 397,
207 FPEXT = 398,
208 FPTOUI = 399,
209 FPTOSI = 400,
210 UITOFP = 401,
211 SITOFP = 402,
212 PTRTOINT = 403,
213 INTTOPTR = 404,
214 BITCAST = 405
215 };
216#endif
217/* Tokens. */
218#define VOID 258
219#define BOOL 259
220#define SBYTE 260
221#define UBYTE 261
222#define SHORT 262
223#define USHORT 263
224#define INT 264
225#define UINT 265
226#define LONG 266
227#define ULONG 267
228#define FLOAT 268
229#define DOUBLE 269
230#define LABEL 270
231#define OPAQUE 271
232#define ESINT64VAL 272
233#define EUINT64VAL 273
234#define SINTVAL 274
235#define UINTVAL 275
236#define FPVAL 276
237#define NULL_TOK 277
238#define UNDEF 278
239#define ZEROINITIALIZER 279
240#define TRUETOK 280
241#define FALSETOK 281
242#define TYPE 282
243#define VAR_ID 283
244#define LABELSTR 284
245#define STRINGCONSTANT 285
246#define IMPLEMENTATION 286
247#define BEGINTOK 287
248#define ENDTOK 288
249#define DECLARE 289
250#define GLOBAL 290
251#define CONSTANT 291
252#define SECTION 292
253#define VOLATILE 293
254#define TO 294
255#define DOTDOTDOT 295
256#define CONST 296
257#define INTERNAL 297
258#define LINKONCE 298
259#define WEAK 299
260#define DLLIMPORT 300
261#define DLLEXPORT 301
262#define EXTERN_WEAK 302
263#define APPENDING 303
264#define NOT 304
265#define EXTERNAL 305
266#define TARGET 306
267#define TRIPLE 307
268#define ENDIAN 308
269#define POINTERSIZE 309
270#define LITTLE 310
271#define BIG 311
272#define ALIGN 312
273#define UNINITIALIZED 313
274#define DEPLIBS 314
275#define CALL 315
276#define TAIL 316
277#define ASM_TOK 317
278#define MODULE 318
279#define SIDEEFFECT 319
280#define CC_TOK 320
281#define CCC_TOK 321
282#define CSRETCC_TOK 322
283#define FASTCC_TOK 323
284#define COLDCC_TOK 324
285#define X86_STDCALLCC_TOK 325
286#define X86_FASTCALLCC_TOK 326
287#define DATALAYOUT 327
288#define RET 328
289#define BR 329
290#define SWITCH 330
291#define INVOKE 331
292#define EXCEPT 332
293#define UNWIND 333
294#define UNREACHABLE 334
295#define ADD 335
296#define SUB 336
297#define MUL 337
298#define DIV 338
299#define UDIV 339
300#define SDIV 340
301#define FDIV 341
302#define REM 342
303#define UREM 343
304#define SREM 344
305#define FREM 345
306#define AND 346
307#define OR 347
308#define XOR 348
309#define SETLE 349
310#define SETGE 350
311#define SETLT 351
312#define SETGT 352
313#define SETEQ 353
314#define SETNE 354
315#define ICMP 355
316#define FCMP 356
317#define EQ 357
318#define NE 358
319#define SLT 359
320#define SGT 360
321#define SLE 361
322#define SGE 362
323#define OEQ 363
324#define ONE 364
325#define OLT 365
326#define OGT 366
327#define OLE 367
328#define OGE 368
329#define ORD 369
330#define UNO 370
331#define UEQ 371
332#define UNE 372
333#define ULT 373
334#define UGT 374
335#define ULE 375
336#define UGE 376
337#define MALLOC 377
338#define ALLOCA 378
339#define FREE 379
340#define LOAD 380
341#define STORE 381
342#define GETELEMENTPTR 382
343#define PHI_TOK 383
344#define SELECT 384
345#define SHL 385
346#define SHR 386
347#define ASHR 387
348#define LSHR 388
349#define VAARG 389
350#define EXTRACTELEMENT 390
351#define INSERTELEMENT 391
352#define SHUFFLEVECTOR 392
353#define CAST 393
354#define TRUNC 394
355#define ZEXT 395
356#define SEXT 396
357#define FPTRUNC 397
358#define FPEXT 398
359#define FPTOUI 399
360#define FPTOSI 400
361#define UITOFP 401
362#define SITOFP 402
363#define PTRTOINT 403
364#define INTTOPTR 404
365#define BITCAST 405
366
367
368
369
370/* Copy the first part of user declarations. */
Reid Spencerf0cf1322006-12-07 04:23:03 +0000371#line 14 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +0000372
Reid Spencere7c3c602006-11-30 06:36:44 +0000373#include "ParserInternals.h"
374#include <llvm/ADT/StringExtras.h>
Reid Spencere7c3c602006-11-30 06:36:44 +0000375#include <algorithm>
Reid Spencera50d5962006-12-02 04:11:07 +0000376#include <map>
Reid Spencere7c3c602006-11-30 06:36:44 +0000377#include <utility>
378#include <iostream>
Reid Spencerbec0b592006-12-03 03:16:48 +0000379#include <cassert>
Reid Spencere7c3c602006-11-30 06:36:44 +0000380
Reid Spencere77e35e2006-12-01 20:26:20 +0000381#define YYERROR_VERBOSE 1
Reid Spencer96839be2006-11-30 16:50:26 +0000382#define YYINCLUDED_STDLIB_H
Reid Spencere77e35e2006-12-01 20:26:20 +0000383#define YYDEBUG 1
Reid Spencer996fb282006-12-06 06:30:15 +0000384#define UPGRADE_SETCOND_OPS 0
Reid Spencerf0cf1322006-12-07 04:23:03 +0000385#define GENERATE_FCMP_INSTS 0
Reid Spencere7c3c602006-11-30 06:36:44 +0000386
387int yylex(); // declaration" of xxx warnings.
388int yyparse();
Reid Spencere77e35e2006-12-01 20:26:20 +0000389extern int yydebug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000390
391static std::string CurFilename;
Reid Spencere7c3c602006-11-30 06:36:44 +0000392static std::ostream *O = 0;
Reid Spencer96839be2006-11-30 16:50:26 +0000393std::istream* LexInput = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +0000394unsigned SizeOfPointer = 32;
Reid Spencerf459d392006-12-02 16:19:52 +0000395static uint64_t unique = 1;
Reid Spencer96839be2006-11-30 16:50:26 +0000396
Reid Spencera50d5962006-12-02 04:11:07 +0000397typedef std::vector<TypeInfo> TypeVector;
398static TypeVector EnumeratedTypes;
399typedef std::map<std::string,TypeInfo> TypeMap;
400static TypeMap NamedTypes;
Reid Spencerf12ee422006-12-05 19:21:25 +0000401static TypeMap Globals;
Reid Spencera50d5962006-12-02 04:11:07 +0000402
Reid Spencerf8483652006-12-02 15:16:01 +0000403void destroy(ValueList* VL) {
404 while (!VL->empty()) {
405 ValueInfo& VI = VL->back();
406 VI.destroy();
407 VL->pop_back();
408 }
409 delete VL;
410}
411
Reid Spencer96839be2006-11-30 16:50:26 +0000412void UpgradeAssembly(const std::string &infile, std::istream& in,
Reid Spencere77e35e2006-12-01 20:26:20 +0000413 std::ostream &out, bool debug)
Reid Spencere7c3c602006-11-30 06:36:44 +0000414{
415 Upgradelineno = 1;
416 CurFilename = infile;
Reid Spencer96839be2006-11-30 16:50:26 +0000417 LexInput = &in;
Reid Spencere77e35e2006-12-01 20:26:20 +0000418 yydebug = debug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000419 O = &out;
420
421 if (yyparse()) {
422 std::cerr << "Parse failed.\n";
423 exit(1);
424 }
425}
426
Reid Spencera50d5962006-12-02 04:11:07 +0000427static void ResolveType(TypeInfo& Ty) {
428 if (Ty.oldTy == UnresolvedTy) {
429 TypeMap::iterator I = NamedTypes.find(*Ty.newTy);
Reid Spencer78720742006-12-02 20:21:22 +0000430 if (I != NamedTypes.end()) {
Reid Spencera50d5962006-12-02 04:11:07 +0000431 Ty.oldTy = I->second.oldTy;
Reid Spencer78720742006-12-02 20:21:22 +0000432 Ty.elemTy = I->second.elemTy;
433 } else {
Reid Spencera50d5962006-12-02 04:11:07 +0000434 std::string msg("Can't resolve type: ");
435 msg += *Ty.newTy;
436 yyerror(msg.c_str());
Reid Spencer280d8012006-12-01 23:40:53 +0000437 }
Reid Spencera50d5962006-12-02 04:11:07 +0000438 } else if (Ty.oldTy == NumericTy) {
439 unsigned ref = atoi(&((Ty.newTy->c_str())[1])); // Skip the '\\'
440 if (ref < EnumeratedTypes.size()) {
441 Ty.oldTy = EnumeratedTypes[ref].oldTy;
Reid Spencer78720742006-12-02 20:21:22 +0000442 Ty.elemTy = EnumeratedTypes[ref].elemTy;
Reid Spencera50d5962006-12-02 04:11:07 +0000443 } else {
444 std::string msg("Can't resolve type: ");
445 msg += *Ty.newTy;
446 yyerror(msg.c_str());
447 }
Reid Spencer280d8012006-12-01 23:40:53 +0000448 }
Reid Spencera50d5962006-12-02 04:11:07 +0000449 // otherwise its already resolved.
Reid Spencer280d8012006-12-01 23:40:53 +0000450}
451
Reid Spencera50d5962006-12-02 04:11:07 +0000452static const char* getCastOpcode(
453 std::string& Source, const TypeInfo& SrcTy, const TypeInfo& DstTy)
454{
Reid Spencere77e35e2006-12-01 20:26:20 +0000455 unsigned SrcBits = SrcTy.getBitWidth();
456 unsigned DstBits = DstTy.getBitWidth();
457 const char* opcode = "bitcast";
458 // Run through the possibilities ...
459 if (DstTy.isIntegral()) { // Casting to integral
460 if (SrcTy.isIntegral()) { // Casting from integral
461 if (DstBits < SrcBits)
462 opcode = "trunc";
463 else if (DstBits > SrcBits) { // its an extension
464 if (SrcTy.isSigned())
465 opcode ="sext"; // signed -> SEXT
466 else
467 opcode = "zext"; // unsigned -> ZEXT
468 } else {
469 opcode = "bitcast"; // Same size, No-op cast
470 }
471 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
472 if (DstTy.isSigned())
473 opcode = "fptosi"; // FP -> sint
474 else
475 opcode = "fptoui"; // FP -> uint
476 } else if (SrcTy.isPacked()) {
477 assert(DstBits == SrcTy.getBitWidth() &&
478 "Casting packed to integer of different width");
479 opcode = "bitcast"; // same size, no-op cast
480 } else {
481 assert(SrcTy.isPointer() &&
482 "Casting from a value that is not first-class type");
483 opcode = "ptrtoint"; // ptr -> int
484 }
485 } else if (DstTy.isFloatingPoint()) { // Casting to floating pt
486 if (SrcTy.isIntegral()) { // Casting from integral
487 if (SrcTy.isSigned())
488 opcode = "sitofp"; // sint -> FP
489 else
490 opcode = "uitofp"; // uint -> FP
491 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
492 if (DstBits < SrcBits) {
493 opcode = "fptrunc"; // FP -> smaller FP
494 } else if (DstBits > SrcBits) {
495 opcode = "fpext"; // FP -> larger FP
496 } else {
497 opcode ="bitcast"; // same size, no-op cast
498 }
499 } else if (SrcTy.isPacked()) {
500 assert(DstBits == SrcTy.getBitWidth() &&
501 "Casting packed to floating point of different width");
502 opcode = "bitcast"; // same size, no-op cast
503 } else {
504 assert(0 && "Casting pointer or non-first class to float");
505 }
506 } else if (DstTy.isPacked()) {
507 if (SrcTy.isPacked()) {
508 assert(DstTy.getBitWidth() == SrcTy.getBitWidth() &&
509 "Casting packed to packed of different widths");
510 opcode = "bitcast"; // packed -> packed
511 } else if (DstTy.getBitWidth() == SrcBits) {
512 opcode = "bitcast"; // float/int -> packed
513 } else {
514 assert(!"Illegal cast to packed (wrong type or size)");
515 }
516 } else if (DstTy.isPointer()) {
517 if (SrcTy.isPointer()) {
518 opcode = "bitcast"; // ptr -> ptr
519 } else if (SrcTy.isIntegral()) {
520 opcode = "inttoptr"; // int -> ptr
521 } else {
Reid Spencera50d5962006-12-02 04:11:07 +0000522 assert(!"Casting invalid type to pointer");
Reid Spencere77e35e2006-12-01 20:26:20 +0000523 }
524 } else {
525 assert(!"Casting to type that is not first-class");
526 }
527 return opcode;
528}
529
Reid Spencera50d5962006-12-02 04:11:07 +0000530static std::string getCastUpgrade(
531 const std::string& Src, TypeInfo& SrcTy, TypeInfo& DstTy, bool isConst)
532{
533 std::string Result;
534 std::string Source = Src;
535 if (SrcTy.isFloatingPoint() && DstTy.isPointer()) {
536 // fp -> ptr cast is no longer supported but we must upgrade this
537 // by doing a double cast: fp -> int -> ptr
538 if (isConst)
539 Source = "ulong fptoui(" + Source + " to ulong)";
540 else {
Reid Spencerf459d392006-12-02 16:19:52 +0000541 *O << " %cast_upgrade" << unique << " = fptoui " << Source
542 << " to ulong\n";
543 Source = "ulong %cast_upgrade" + llvm::utostr(unique);
Reid Spencera50d5962006-12-02 04:11:07 +0000544 }
545 // Update the SrcTy for the getCastOpcode call below
546 SrcTy.destroy();
547 SrcTy.newTy = new std::string("ulong");
548 SrcTy.oldTy = ULongTy;
Reid Spencer5fe27e72006-12-09 19:41:25 +0000549 } else if (DstTy.oldTy == BoolTy && SrcTy.oldTy != BoolTy) {
Reid Spencera50d5962006-12-02 04:11:07 +0000550 // cast ptr %x to bool was previously defined as setne ptr %x, null
551 // The ptrtoint semantic is to truncate, not compare so we must retain
552 // the original intent by replace the cast with a setne
553 const char* comparator = SrcTy.isPointer() ? ", null" :
554 (SrcTy.isFloatingPoint() ? ", 0.0" : ", 0");
Reid Spencer187ccf82006-12-09 16:57:22 +0000555#if UPGRADE_SETCOND_OPS
556 const char* compareOp = SrcTy.isFloatingPoint() ? "setne " : "icmp ne ";
557#else
558 const char* compareOp = "setne";
559#endif
560 if (isConst) {
561 Result = "(" + Source + comparator + ")";
562 Result = compareOp + Result;
563 } else
564 Result = compareOp + Source + comparator;
Reid Spencera50d5962006-12-02 04:11:07 +0000565 return Result; // skip cast processing below
566 }
567 ResolveType(SrcTy);
568 ResolveType(DstTy);
569 std::string Opcode(getCastOpcode(Source, SrcTy, DstTy));
570 if (isConst)
571 Result += Opcode + "( " + Source + " to " + *DstTy.newTy + ")";
572 else
573 Result += Opcode + " " + Source + " to " + *DstTy.newTy;
574 return Result;
575}
576
Reid Spencer78720742006-12-02 20:21:22 +0000577const char* getDivRemOpcode(const std::string& opcode, const TypeInfo& TI) {
578 const char* op = opcode.c_str();
579 TypeInfo Ty = TI;
580 ResolveType(Ty);
581 if (Ty.isPacked())
582 Ty.oldTy = Ty.getElementType();
583 if (opcode == "div")
584 if (Ty.isFloatingPoint())
585 op = "fdiv";
586 else if (Ty.isUnsigned())
587 op = "udiv";
588 else if (Ty.isSigned())
589 op = "sdiv";
590 else
591 yyerror("Invalid type for div instruction");
592 else if (opcode == "rem")
593 if (Ty.isFloatingPoint())
594 op = "frem";
595 else if (Ty.isUnsigned())
596 op = "urem";
597 else if (Ty.isSigned())
598 op = "srem";
599 else
600 yyerror("Invalid type for rem instruction");
601 return op;
602}
Reid Spencere7c3c602006-11-30 06:36:44 +0000603
Reid Spencer229e9362006-12-02 22:14:11 +0000604std::string
605getCompareOp(const std::string& setcc, const TypeInfo& TI) {
606 assert(setcc.length() == 5);
607 char cc1 = setcc[3];
608 char cc2 = setcc[4];
609 assert(cc1 == 'e' || cc1 == 'n' || cc1 == 'l' || cc1 == 'g');
610 assert(cc2 == 'q' || cc2 == 'e' || cc2 == 'e' || cc2 == 't');
611 std::string result("xcmp xxx");
612 result[6] = cc1;
613 result[7] = cc2;
614 if (TI.isFloatingPoint()) {
Reid Spencerf0cf1322006-12-07 04:23:03 +0000615#if GENERATE_FCMP_INSTS
Reid Spencer229e9362006-12-02 22:14:11 +0000616 result[0] = 'f';
617 result[5] = 'o'; // FIXME: Always map to ordered comparison ?
Reid Spencerf0cf1322006-12-07 04:23:03 +0000618 if (cc1 == 'n')
619 result[5] = 'u'; // NE maps to unordered
620 else
621 result[5] = 'o'; // everything else maps to ordered
622#else
623 result = setcc;
624#endif
Reid Spencer229e9362006-12-02 22:14:11 +0000625 } else if (TI.isIntegral() || TI.isPointer()) {
626 result[0] = 'i';
627 if ((cc1 == 'e' && cc2 == 'q') || (cc1 == 'n' && cc2 == 'e'))
628 result.erase(5,1);
629 else if (TI.isSigned())
630 result[5] = 's';
Reid Spencer3e5ab8c2006-12-06 06:25:46 +0000631 else if (TI.isUnsigned() || TI.isPointer() || TI.isBool())
Reid Spencer229e9362006-12-02 22:14:11 +0000632 result[5] = 'u';
633 else
634 yyerror("Invalid integral type for setcc");
635 }
636 return result;
637}
638
639
Jim Laskey2792cfb2006-12-06 11:03:10 +0000640
641/* Enabling traces. */
642#ifndef YYDEBUG
643# define YYDEBUG 0
644#endif
645
646/* Enabling verbose error messages. */
647#ifdef YYERROR_VERBOSE
648# undef YYERROR_VERBOSE
649# define YYERROR_VERBOSE 1
650#else
651# define YYERROR_VERBOSE 0
652#endif
653
654/* Enabling the token table. */
655#ifndef YYTOKEN_TABLE
656# define YYTOKEN_TABLE 0
657#endif
658
659#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
Reid Spencer187ccf82006-12-09 16:57:22 +0000660#line 285 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +0000661typedef union YYSTYPE {
Reid Spencere77e35e2006-12-01 20:26:20 +0000662 std::string* String;
663 TypeInfo Type;
664 ValueInfo Value;
665 ConstInfo Const;
Reid Spencerf8483652006-12-02 15:16:01 +0000666 ValueList* ValList;
Reid Spencere77e35e2006-12-01 20:26:20 +0000667} YYSTYPE;
Jim Laskey2792cfb2006-12-06 11:03:10 +0000668/* Line 196 of yacc.c. */
Reid Spencer187ccf82006-12-09 16:57:22 +0000669#line 670 "UpgradeParser.tab.c"
Jim Laskey2792cfb2006-12-06 11:03:10 +0000670# define yystype YYSTYPE /* obsolescent; will be withdrawn */
671# define YYSTYPE_IS_DECLARED 1
672# define YYSTYPE_IS_TRIVIAL 1
Reid Spencere7c3c602006-11-30 06:36:44 +0000673#endif
674
675
676
Jim Laskey2792cfb2006-12-06 11:03:10 +0000677/* Copy the second part of user declarations. */
Reid Spencere7c3c602006-11-30 06:36:44 +0000678
679
Jim Laskey2792cfb2006-12-06 11:03:10 +0000680/* Line 219 of yacc.c. */
Reid Spencer187ccf82006-12-09 16:57:22 +0000681#line 682 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000682
Jim Laskey2792cfb2006-12-06 11:03:10 +0000683#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
684# define YYSIZE_T __SIZE_TYPE__
685#endif
686#if ! defined (YYSIZE_T) && defined (size_t)
687# define YYSIZE_T size_t
688#endif
689#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
690# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
691# define YYSIZE_T size_t
692#endif
693#if ! defined (YYSIZE_T)
694# define YYSIZE_T unsigned int
695#endif
Reid Spencere7c3c602006-11-30 06:36:44 +0000696
Jim Laskey2792cfb2006-12-06 11:03:10 +0000697#ifndef YY_
698# if YYENABLE_NLS
699# if ENABLE_NLS
700# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
701# define YY_(msgid) dgettext ("bison-runtime", msgid)
702# endif
703# endif
704# ifndef YY_
705# define YY_(msgid) msgid
706# endif
707#endif
708
709#if ! defined (yyoverflow) || YYERROR_VERBOSE
710
711/* The parser invokes alloca or malloc; define the necessary symbols. */
712
713# ifdef YYSTACK_USE_ALLOCA
714# if YYSTACK_USE_ALLOCA
715# ifdef __GNUC__
716# define YYSTACK_ALLOC __builtin_alloca
717# else
718# define YYSTACK_ALLOC alloca
719# if defined (__STDC__) || defined (__cplusplus)
720# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
721# define YYINCLUDED_STDLIB_H
722# endif
723# endif
724# endif
725# endif
726
727# ifdef YYSTACK_ALLOC
728 /* Pacify GCC's `empty if-body' warning. */
729# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
730# ifndef YYSTACK_ALLOC_MAXIMUM
731 /* The OS might guarantee only one guard page at the bottom of the stack,
732 and a page size can be as small as 4096 bytes. So we cannot safely
733 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
734 to allow for a few compiler-allocated temporary stack slots. */
735# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
736# endif
737# else
738# define YYSTACK_ALLOC YYMALLOC
739# define YYSTACK_FREE YYFREE
740# ifndef YYSTACK_ALLOC_MAXIMUM
741# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
742# endif
743# ifdef __cplusplus
744extern "C" {
745# endif
746# ifndef YYMALLOC
747# define YYMALLOC malloc
748# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
749 && (defined (__STDC__) || defined (__cplusplus)))
750void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
751# endif
752# endif
753# ifndef YYFREE
754# define YYFREE free
755# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
756 && (defined (__STDC__) || defined (__cplusplus)))
757void free (void *); /* INFRINGES ON USER NAME SPACE */
758# endif
759# endif
760# ifdef __cplusplus
761}
762# endif
763# endif
764#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
765
766
767#if (! defined (yyoverflow) \
768 && (! defined (__cplusplus) \
769 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
770
771/* A type that is properly aligned for any stack member. */
772union yyalloc
773{
774 short int yyss;
775 YYSTYPE yyvs;
776 };
777
778/* The size of the maximum gap between one aligned stack and the next. */
779# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
780
781/* The size of an array large to enough to hold all stacks, each with
782 N elements. */
783# define YYSTACK_BYTES(N) \
784 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
785 + YYSTACK_GAP_MAXIMUM)
786
787/* Copy COUNT objects from FROM to TO. The source and destination do
788 not overlap. */
789# ifndef YYCOPY
790# if defined (__GNUC__) && 1 < __GNUC__
791# define YYCOPY(To, From, Count) \
792 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
793# else
794# define YYCOPY(To, From, Count) \
795 do \
796 { \
797 YYSIZE_T yyi; \
798 for (yyi = 0; yyi < (Count); yyi++) \
799 (To)[yyi] = (From)[yyi]; \
800 } \
801 while (0)
802# endif
803# endif
804
805/* Relocate STACK from its old location to the new one. The
806 local variables YYSIZE and YYSTACKSIZE give the old and new number of
807 elements in the stack, and YYPTR gives the new location of the
808 stack. Advance YYPTR to a properly aligned location for the next
809 stack. */
810# define YYSTACK_RELOCATE(Stack) \
811 do \
812 { \
813 YYSIZE_T yynewbytes; \
814 YYCOPY (&yyptr->Stack, Stack, yysize); \
815 Stack = &yyptr->Stack; \
816 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
817 yyptr += yynewbytes / sizeof (*yyptr); \
818 } \
819 while (0)
Reid Spencere7c3c602006-11-30 06:36:44 +0000820
821#endif
822
Jim Laskey2792cfb2006-12-06 11:03:10 +0000823#if defined (__STDC__) || defined (__cplusplus)
824 typedef signed char yysigned_char;
Reid Spencere7c3c602006-11-30 06:36:44 +0000825#else
Jim Laskey2792cfb2006-12-06 11:03:10 +0000826 typedef short int yysigned_char;
Reid Spencere7c3c602006-11-30 06:36:44 +0000827#endif
828
Jim Laskey2792cfb2006-12-06 11:03:10 +0000829/* YYFINAL -- State number of the termination state. */
830#define YYFINAL 4
831/* YYLAST -- Last index in YYTABLE. */
832#define YYLAST 1483
833
834/* YYNTOKENS -- Number of terminals. */
835#define YYNTOKENS 165
836/* YYNNTS -- Number of nonterminals. */
837#define YYNNTS 75
838/* YYNRULES -- Number of rules. */
839#define YYNRULES 299
840/* YYNRULES -- Number of states. */
841#define YYNSTATES 582
842
843/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
844#define YYUNDEFTOK 2
845#define YYMAXUTOK 405
846
847#define YYTRANSLATE(YYX) \
848 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
849
850/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
851static const unsigned char yytranslate[] =
852{
853 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
854 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
855 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
856 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
857 154, 155, 163, 2, 152, 2, 2, 2, 2, 2,
858 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
859 159, 151, 160, 2, 2, 2, 2, 2, 2, 2,
860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
862 2, 156, 153, 158, 2, 2, 2, 2, 2, 164,
863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
865 157, 2, 2, 161, 2, 162, 2, 2, 2, 2,
866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
867 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
868 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
878 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
879 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
880 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
881 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
882 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
883 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
884 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
885 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
886 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
887 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
888 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
889 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
890 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
891 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
892 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
893 145, 146, 147, 148, 149, 150
894};
895
896#if YYDEBUG
897/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
898 YYRHS. */
899static const unsigned short int yyprhs[] =
900{
901 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
902 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
903 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
904 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
905 79, 81, 83, 85, 87, 89, 91, 93, 95, 97,
906 99, 101, 103, 105, 107, 109, 111, 113, 115, 117,
907 119, 121, 123, 125, 127, 129, 131, 133, 135, 137,
908 139, 141, 143, 145, 147, 149, 151, 153, 155, 157,
909 159, 161, 164, 165, 167, 169, 171, 173, 175, 177,
910 179, 180, 182, 184, 186, 188, 190, 192, 195, 196,
911 197, 200, 201, 205, 208, 209, 211, 212, 216, 218,
912 221, 223, 225, 227, 229, 231, 233, 235, 237, 239,
913 241, 243, 245, 247, 249, 251, 253, 255, 257, 259,
914 261, 264, 269, 275, 281, 285, 288, 291, 293, 297,
915 299, 303, 305, 306, 311, 315, 319, 324, 329, 333,
916 336, 339, 342, 345, 348, 351, 354, 357, 360, 363,
917 370, 376, 385, 392, 399, 406, 414, 422, 429, 436,
918 445, 454, 458, 460, 462, 464, 466, 469, 472, 477,
919 480, 482, 484, 486, 491, 494, 499, 506, 513, 520,
920 527, 531, 536, 537, 539, 541, 543, 547, 551, 555,
921 559, 563, 567, 569, 570, 572, 574, 576, 577, 580,
922 584, 586, 588, 592, 594, 595, 604, 606, 608, 612,
923 614, 616, 620, 621, 623, 625, 629, 630, 632, 634,
924 636, 638, 640, 642, 644, 646, 648, 652, 654, 660,
925 662, 664, 666, 668, 671, 674, 676, 679, 682, 683,
926 685, 687, 689, 692, 695, 699, 709, 719, 728, 743,
927 745, 747, 754, 760, 763, 770, 778, 780, 784, 786,
928 787, 790, 792, 798, 804, 810, 818, 826, 829, 834,
929 839, 846, 851, 856, 863, 870, 873, 881, 883, 886,
930 887, 889, 890, 894, 901, 905, 912, 915, 920, 927
931};
932
933/* YYRHS -- A `-1'-separated list of the rules' RHS. */
934static const short int yyrhs[] =
935{
936 199, 0, -1, 19, -1, 20, -1, 17, -1, 18,
937 -1, 80, -1, 81, -1, 82, -1, 83, -1, 84,
938 -1, 85, -1, 86, -1, 87, -1, 88, -1, 89,
939 -1, 90, -1, 91, -1, 92, -1, 93, -1, 94,
940 -1, 95, -1, 96, -1, 97, -1, 98, -1, 99,
941 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106,
942 -1, 107, -1, 118, -1, 119, -1, 120, -1, 121,
943 -1, 108, -1, 109, -1, 110, -1, 111, -1, 112,
944 -1, 113, -1, 114, -1, 115, -1, 116, -1, 117,
945 -1, 118, -1, 119, -1, 120, -1, 121, -1, 25,
946 -1, 26, -1, 130, -1, 131, -1, 132, -1, 133,
947 -1, 139, -1, 140, -1, 141, -1, 142, -1, 143,
948 -1, 144, -1, 145, -1, 146, -1, 147, -1, 148,
949 -1, 149, -1, 150, -1, 138, -1, 11, -1, 9,
950 -1, 7, -1, 5, -1, 12, -1, 10, -1, 8,
951 -1, 6, -1, 175, -1, 176, -1, 13, -1, 14,
952 -1, 208, 151, -1, -1, 42, -1, 43, -1, 44,
953 -1, 48, -1, 45, -1, 46, -1, 47, -1, -1,
954 66, -1, 67, -1, 68, -1, 69, -1, 70, -1,
955 71, -1, 65, 18, -1, -1, -1, 57, 18, -1,
956 -1, 152, 57, 18, -1, 37, 30, -1, -1, 184,
957 -1, -1, 152, 187, 186, -1, 184, -1, 57, 18,
958 -1, 190, -1, 3, -1, 192, -1, 3, -1, 192,
959 -1, 4, -1, 5, -1, 6, -1, 7, -1, 8,
960 -1, 9, -1, 10, -1, 11, -1, 12, -1, 13,
961 -1, 14, -1, 15, -1, 16, -1, 222, -1, 191,
962 -1, 153, 18, -1, 189, 154, 194, 155, -1, 156,
963 18, 157, 192, 158, -1, 159, 18, 157, 192, 160,
964 -1, 161, 193, 162, -1, 161, 162, -1, 192, 163,
965 -1, 192, -1, 193, 152, 192, -1, 193, -1, 193,
966 152, 40, -1, 40, -1, -1, 190, 156, 197, 158,
967 -1, 190, 156, 158, -1, 190, 164, 30, -1, 190,
968 159, 197, 160, -1, 190, 161, 197, 162, -1, 190,
969 161, 162, -1, 190, 22, -1, 190, 23, -1, 190,
970 222, -1, 190, 196, -1, 190, 24, -1, 175, 167,
971 -1, 176, 18, -1, 4, 25, -1, 4, 26, -1,
972 178, 21, -1, 174, 154, 195, 39, 190, 155, -1,
973 127, 154, 195, 237, 155, -1, 129, 154, 195, 152,
974 195, 152, 195, 155, -1, 168, 154, 195, 152, 195,
975 155, -1, 169, 154, 195, 152, 195, 155, -1, 170,
976 154, 195, 152, 195, 155, -1, 100, 171, 154, 195,
977 152, 195, 155, -1, 101, 172, 154, 195, 152, 195,
978 155, -1, 173, 154, 195, 152, 195, 155, -1, 135,
979 154, 195, 152, 195, 155, -1, 136, 154, 195, 152,
980 195, 152, 195, 155, -1, 137, 154, 195, 152, 195,
981 152, 195, 155, -1, 197, 152, 195, -1, 195, -1,
982 35, -1, 36, -1, 200, -1, 200, 217, -1, 200,
983 219, -1, 200, 63, 62, 203, -1, 200, 31, -1,
984 202, -1, 50, -1, 58, -1, 202, 179, 27, 188,
985 -1, 202, 219, -1, 202, 63, 62, 203, -1, 202,
986 179, 180, 198, 195, 186, -1, 202, 179, 201, 198,
987 190, 186, -1, 202, 179, 45, 198, 190, 186, -1,
988 202, 179, 47, 198, 190, 186, -1, 202, 51, 205,
989 -1, 202, 59, 151, 206, -1, -1, 30, -1, 56,
990 -1, 55, -1, 53, 151, 204, -1, 54, 151, 18,
991 -1, 52, 151, 30, -1, 72, 151, 30, -1, 156,
992 207, 158, -1, 207, 152, 30, -1, 30, -1, -1,
993 28, -1, 30, -1, 208, -1, -1, 190, 209, -1,
994 211, 152, 210, -1, 210, -1, 211, -1, 211, 152,
995 40, -1, 40, -1, -1, 181, 188, 208, 154, 212,
996 155, 185, 182, -1, 32, -1, 161, -1, 180, 213,
997 214, -1, 33, -1, 162, -1, 215, 225, 216, -1,
998 -1, 45, -1, 47, -1, 34, 218, 213, -1, -1,
999 64, -1, 17, -1, 18, -1, 21, -1, 25, -1,
1000 26, -1, 22, -1, 23, -1, 24, -1, 159, 197,
1001 160, -1, 196, -1, 62, 220, 30, 152, 30, -1,
1002 166, -1, 208, -1, 222, -1, 221, -1, 190, 223,
1003 -1, 225, 226, -1, 226, -1, 227, 229, -1, 227,
1004 231, -1, -1, 29, -1, 78, -1, 77, -1, 73,
1005 224, -1, 73, 3, -1, 74, 15, 223, -1, 74,
1006 4, 223, 152, 15, 223, 152, 15, 223, -1, 75,
1007 177, 223, 152, 15, 223, 156, 230, 158, -1, 75,
1008 177, 223, 152, 15, 223, 156, 158, -1, 179, 76,
1009 181, 188, 223, 154, 234, 155, 39, 15, 223, 228,
1010 15, 223, -1, 228, -1, 79, -1, 230, 177, 221,
1011 152, 15, 223, -1, 177, 221, 152, 15, 223, -1,
1012 179, 236, -1, 190, 156, 223, 152, 223, 158, -1,
1013 232, 152, 156, 223, 152, 223, 158, -1, 224, -1,
1014 233, 152, 224, -1, 233, -1, -1, 61, 60, -1,
1015 60, -1, 168, 190, 223, 152, 223, -1, 169, 190,
1016 223, 152, 223, -1, 170, 190, 223, 152, 223, -1,
1017 100, 171, 190, 223, 152, 223, 155, -1, 101, 172,
1018 190, 223, 152, 223, 155, -1, 49, 224, -1, 173,
1019 224, 152, 224, -1, 174, 224, 39, 190, -1, 129,
1020 224, 152, 224, 152, 224, -1, 134, 224, 152, 190,
1021 -1, 135, 224, 152, 224, -1, 136, 224, 152, 224,
1022 152, 224, -1, 137, 224, 152, 224, 152, 224, -1,
1023 128, 232, -1, 235, 181, 188, 223, 154, 234, 155,
1024 -1, 239, -1, 152, 233, -1, -1, 38, -1, -1,
1025 122, 190, 183, -1, 122, 190, 152, 10, 223, 183,
1026 -1, 123, 190, 183, -1, 123, 190, 152, 10, 223,
1027 183, -1, 124, 224, -1, 238, 125, 190, 223, -1,
1028 238, 126, 224, 152, 190, 223, -1, 127, 190, 223,
1029 237, -1
1030};
1031
1032/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1033static const unsigned short int yyrline[] =
1034{
Reid Spencer187ccf82006-12-09 16:57:22 +00001035 0, 348, 348, 348, 349, 349, 353, 353, 353, 353,
1036 353, 353, 353, 354, 354, 354, 354, 355, 355, 355,
1037 356, 356, 356, 356, 356, 356, 357, 357, 357, 357,
1038 357, 357, 357, 357, 357, 357, 358, 358, 358, 358,
1039 358, 358, 358, 358, 358, 358, 359, 359, 359, 359,
1040 359, 359, 360, 360, 360, 360, 361, 361, 361, 361,
1041 361, 361, 361, 362, 362, 362, 362, 362, 362, 367,
1042 367, 367, 367, 368, 368, 368, 368, 369, 369, 370,
1043 370, 373, 376, 381, 381, 381, 381, 381, 381, 382,
1044 383, 386, 386, 386, 386, 386, 387, 388, 393, 398,
1045 399, 402, 403, 411, 417, 418, 421, 422, 431, 432,
1046 445, 445, 446, 446, 447, 451, 451, 451, 451, 451,
1047 451, 451, 452, 452, 452, 452, 452, 454, 458, 462,
1048 465, 470, 476, 484, 492, 498, 502, 513, 516, 524,
1049 525, 530, 533, 543, 549, 554, 560, 566, 572, 577,
1050 583, 589, 595, 601, 607, 613, 619, 625, 631, 639,
1051 653, 665, 670, 676, 681, 689, 694, 699, 707, 712,
1052 717, 727, 732, 737, 737, 747, 752, 755, 760, 764,
1053 768, 770, 770, 773, 785, 790, 795, 804, 813, 822,
1054 831, 836, 841, 846, 848, 848, 851, 856, 863, 868,
1055 875, 882, 887, 888, 896, 896, 897, 897, 899, 906,
1056 910, 914, 917, 922, 925, 927, 947, 948, 950, 959,
1057 960, 962, 970, 971, 972, 976, 989, 990, 993, 993,
1058 993, 993, 993, 993, 993, 994, 995, 1000, 1001, 1010,
1059 1010, 1014, 1020, 1031, 1037, 1040, 1048, 1052, 1057, 1060,
1060 1066, 1066, 1068, 1073, 1078, 1083, 1091, 1098, 1104, 1124,
1061 1129, 1135, 1140, 1148, 1157, 1164, 1172, 1176, 1183, 1184,
1062 1188, 1193, 1196, 1202, 1207, 1215, 1220, 1225, 1230, 1238,
1063 1252, 1257, 1262, 1267, 1272, 1277, 1282, 1299, 1304, 1305,
1064 1309, 1310, 1313, 1320, 1327, 1334, 1341, 1346, 1353, 1360
Jim Laskey2792cfb2006-12-06 11:03:10 +00001065};
1066#endif
1067
1068#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1069/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1070 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1071static const char *const yytname[] =
1072{
1073 "$end", "error", "$undefined", "VOID", "BOOL", "SBYTE", "UBYTE",
1074 "SHORT", "USHORT", "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE",
1075 "LABEL", "OPAQUE", "ESINT64VAL", "EUINT64VAL", "SINTVAL", "UINTVAL",
1076 "FPVAL", "NULL_TOK", "UNDEF", "ZEROINITIALIZER", "TRUETOK", "FALSETOK",
1077 "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
1078 "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION",
1079 "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK",
1080 "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL",
1081 "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN",
1082 "UNINITIALIZED", "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE",
1083 "SIDEEFFECT", "CC_TOK", "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK",
1084 "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
1085 "RET", "BR", "SWITCH", "INVOKE", "EXCEPT", "UNWIND", "UNREACHABLE",
1086 "ADD", "SUB", "MUL", "DIV", "UDIV", "SDIV", "FDIV", "REM", "UREM",
1087 "SREM", "FREM", "AND", "OR", "XOR", "SETLE", "SETGE", "SETLT", "SETGT",
1088 "SETEQ", "SETNE", "ICMP", "FCMP", "EQ", "NE", "SLT", "SGT", "SLE", "SGE",
1089 "OEQ", "ONE", "OLT", "OGT", "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE",
1090 "ULT", "UGT", "ULE", "UGE", "MALLOC", "ALLOCA", "FREE", "LOAD", "STORE",
1091 "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "SHR", "ASHR", "LSHR",
1092 "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR", "CAST",
1093 "TRUNC", "ZEXT", "SEXT", "FPTRUNC", "FPEXT", "FPTOUI", "FPTOSI",
1094 "UITOFP", "SITOFP", "PTRTOINT", "INTTOPTR", "BITCAST", "'='", "','",
1095 "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'",
1096 "'*'", "'c'", "$accept", "IntVal", "EInt64Val", "ArithmeticOps",
1097 "LogicalOps", "SetCondOps", "IPredicates", "FPredicates", "ShiftOps",
1098 "CastOps", "SIntType", "UIntType", "IntType", "FPType", "OptAssign",
1099 "OptLinkage", "OptCallingConv", "OptAlign", "OptCAlign", "SectionString",
1100 "OptSection", "GlobalVarAttributes", "GlobalVarAttribute", "TypesV",
1101 "UpRTypesV", "Types", "PrimType", "UpRTypes", "TypeListI",
1102 "ArgTypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType",
1103 "Module", "DefinitionList", "External", "ConstPool", "AsmBlock",
1104 "BigOrLittle", "TargetDefinition", "LibrariesDefinition", "LibList",
1105 "Name", "OptName", "ArgVal", "ArgListH", "ArgList", "FunctionHeaderH",
1106 "BEGIN", "FunctionHeader", "END", "Function", "FnDeclareLinkage",
1107 "FunctionProto", "OptSideEffect", "ConstValueRef", "SymbolicValueRef",
1108 "ValueRef", "ResolvedVal", "BasicBlockList", "BasicBlock",
1109 "InstructionList", "Unwind", "BBTerminatorInst", "JumpTable", "Inst",
1110 "PHIList", "ValueRefList", "ValueRefListE", "OptTailCall", "InstVal",
1111 "IndexList", "OptVolatile", "MemoryInst", 0
1112};
1113#endif
1114
1115# ifdef YYPRINT
1116/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1117 token YYLEX-NUM. */
1118static const unsigned short int yytoknum[] =
1119{
1120 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1121 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1122 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1123 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1124 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1125 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1126 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1127 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1128 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1129 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1130 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1131 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1132 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1133 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1134 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1135 405, 61, 44, 92, 40, 41, 91, 120, 93, 60,
1136 62, 123, 125, 42, 99
1137};
1138# endif
1139
1140/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1141static const unsigned char yyr1[] =
1142{
1143 0, 165, 166, 166, 167, 167, 168, 168, 168, 168,
1144 168, 168, 168, 168, 168, 168, 168, 169, 169, 169,
1145 170, 170, 170, 170, 170, 170, 171, 171, 171, 171,
1146 171, 171, 171, 171, 171, 171, 172, 172, 172, 172,
1147 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1148 172, 172, 173, 173, 173, 173, 174, 174, 174, 174,
1149 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1150 175, 175, 175, 176, 176, 176, 176, 177, 177, 178,
1151 178, 179, 179, 180, 180, 180, 180, 180, 180, 180,
1152 180, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1153 182, 183, 183, 184, 185, 185, 186, 186, 187, 187,
1154 188, 188, 189, 189, 190, 191, 191, 191, 191, 191,
1155 191, 191, 191, 191, 191, 191, 191, 192, 192, 192,
1156 192, 192, 192, 192, 192, 192, 192, 193, 193, 194,
1157 194, 194, 194, 195, 195, 195, 195, 195, 195, 195,
1158 195, 195, 195, 195, 195, 195, 195, 195, 195, 196,
1159 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
1160 196, 197, 197, 198, 198, 199, 200, 200, 200, 200,
1161 200, 201, 201, 202, 202, 202, 202, 202, 202, 202,
1162 202, 202, 202, 203, 204, 204, 205, 205, 205, 205,
1163 206, 207, 207, 207, 208, 208, 209, 209, 210, 211,
1164 211, 212, 212, 212, 212, 213, 214, 214, 215, 216,
1165 216, 217, 218, 218, 218, 219, 220, 220, 221, 221,
1166 221, 221, 221, 221, 221, 221, 221, 221, 221, 222,
1167 222, 223, 223, 224, 225, 225, 226, 227, 227, 227,
1168 228, 228, 229, 229, 229, 229, 229, 229, 229, 229,
1169 229, 230, 230, 231, 232, 232, 233, 233, 234, 234,
1170 235, 235, 236, 236, 236, 236, 236, 236, 236, 236,
1171 236, 236, 236, 236, 236, 236, 236, 236, 237, 237,
1172 238, 238, 239, 239, 239, 239, 239, 239, 239, 239
1173};
1174
1175/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1176static const unsigned char yyr2[] =
1177{
1178 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1179 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1180 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1181 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1182 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1184 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1185 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1186 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1187 0, 1, 1, 1, 1, 1, 1, 2, 0, 0,
1188 2, 0, 3, 2, 0, 1, 0, 3, 1, 2,
1189 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1190 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1191 2, 4, 5, 5, 3, 2, 2, 1, 3, 1,
1192 3, 1, 0, 4, 3, 3, 4, 4, 3, 2,
1193 2, 2, 2, 2, 2, 2, 2, 2, 2, 6,
1194 5, 8, 6, 6, 6, 7, 7, 6, 6, 8,
1195 8, 3, 1, 1, 1, 1, 2, 2, 4, 2,
1196 1, 1, 1, 4, 2, 4, 6, 6, 6, 6,
1197 3, 4, 0, 1, 1, 1, 3, 3, 3, 3,
1198 3, 3, 1, 0, 1, 1, 1, 0, 2, 3,
1199 1, 1, 3, 1, 0, 8, 1, 1, 3, 1,
1200 1, 3, 0, 1, 1, 3, 0, 1, 1, 1,
1201 1, 1, 1, 1, 1, 1, 3, 1, 5, 1,
1202 1, 1, 1, 2, 2, 1, 2, 2, 0, 1,
1203 1, 1, 2, 2, 3, 9, 9, 8, 14, 1,
1204 1, 6, 5, 2, 6, 7, 1, 3, 1, 0,
1205 2, 1, 5, 5, 5, 7, 7, 2, 4, 4,
1206 6, 4, 4, 6, 6, 2, 7, 1, 2, 0,
1207 1, 0, 3, 6, 3, 6, 2, 4, 6, 4
1208};
1209
1210/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1211 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1212 means the default is an error. */
1213static const unsigned short int yydefact[] =
1214{
1215 192, 0, 90, 180, 1, 179, 222, 83, 84, 85,
1216 87, 88, 89, 86, 0, 98, 248, 176, 177, 204,
1217 205, 0, 0, 0, 90, 0, 184, 223, 224, 98,
1218 0, 0, 91, 92, 93, 94, 95, 96, 0, 0,
1219 249, 248, 245, 82, 0, 0, 0, 0, 190, 0,
1220 0, 0, 0, 0, 181, 182, 0, 0, 81, 225,
1221 193, 178, 97, 111, 115, 116, 117, 118, 119, 120,
1222 121, 122, 123, 124, 125, 126, 127, 2, 3, 0,
1223 0, 0, 0, 239, 0, 0, 110, 129, 114, 240,
1224 128, 216, 217, 218, 219, 220, 221, 244, 0, 0,
1225 0, 251, 250, 260, 291, 259, 246, 247, 0, 0,
1226 0, 0, 203, 191, 185, 183, 173, 174, 0, 0,
1227 0, 0, 130, 0, 0, 113, 135, 137, 0, 0,
1228 142, 136, 253, 0, 252, 0, 0, 72, 76, 71,
1229 75, 70, 74, 69, 73, 77, 78, 0, 290, 0,
1230 271, 0, 98, 6, 7, 8, 9, 10, 11, 12,
1231 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1232 23, 24, 25, 0, 0, 0, 0, 0, 0, 0,
1233 0, 52, 53, 54, 55, 0, 0, 0, 0, 68,
1234 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1235 66, 67, 0, 0, 0, 0, 0, 98, 263, 0,
1236 287, 198, 195, 194, 196, 197, 199, 202, 0, 106,
1237 106, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1238 124, 125, 0, 0, 0, 0, 106, 106, 0, 0,
1239 0, 134, 214, 141, 139, 0, 228, 229, 230, 233,
1240 234, 235, 231, 232, 226, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 237, 242,
1242 241, 243, 0, 254, 0, 277, 270, 0, 26, 27,
1243 28, 29, 30, 31, 32, 33, 34, 35, 0, 50,
1244 51, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1245 45, 46, 47, 48, 49, 0, 101, 101, 296, 0,
1246 0, 285, 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 200, 0, 188, 189,
1248 156, 157, 4, 5, 154, 155, 158, 149, 150, 153,
1249 0, 0, 0, 0, 152, 151, 186, 187, 112, 112,
1250 138, 213, 207, 210, 211, 0, 0, 131, 227, 0,
1251 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1253 292, 0, 294, 289, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 0, 201,
1255 0, 0, 108, 106, 144, 0, 0, 148, 0, 145,
1256 132, 133, 206, 208, 0, 104, 140, 0, 0, 0,
1257 289, 0, 0, 0, 0, 0, 236, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 299, 0, 0, 0, 281, 282, 0, 0, 0,
1260 0, 0, 278, 279, 0, 297, 0, 103, 109, 107,
1261 143, 146, 147, 212, 209, 105, 99, 0, 0, 0,
1262 0, 0, 0, 0, 0, 171, 0, 0, 0, 0,
1263 0, 0, 0, 269, 0, 0, 101, 102, 101, 266,
1264 288, 0, 0, 0, 0, 0, 272, 273, 274, 269,
1265 0, 0, 215, 238, 0, 0, 160, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
1267 0, 0, 0, 293, 295, 0, 0, 0, 280, 283,
1268 284, 0, 298, 100, 0, 0, 0, 168, 0, 0,
1269 162, 163, 164, 167, 159, 0, 257, 0, 0, 0,
1270 275, 276, 267, 264, 0, 286, 165, 166, 0, 0,
1271 0, 255, 0, 256, 0, 0, 265, 161, 169, 170,
1272 0, 0, 0, 0, 0, 0, 262, 0, 0, 261,
1273 0, 258
1274};
1275
1276/* YYDEFGOTO[NTERM-NUM]. */
1277static const short int yydefgoto[] =
1278{
1279 -1, 83, 334, 263, 264, 265, 288, 305, 266, 267,
1280 232, 233, 147, 234, 24, 15, 38, 502, 380, 402,
1281 466, 328, 403, 84, 85, 235, 87, 88, 128, 245,
1282 367, 268, 368, 118, 1, 2, 57, 3, 61, 214,
1283 48, 113, 218, 89, 413, 353, 354, 355, 39, 93,
1284 16, 96, 17, 29, 18, 359, 269, 90, 271, 489,
1285 41, 42, 43, 105, 106, 548, 107, 311, 518, 519,
1286 207, 208, 441, 209, 210
1287};
1288
1289/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1290 STATE-NUM. */
1291#define YYPACT_NINF -501
1292static const short int yypact[] =
1293{
1294 -501, 82, 9, 975, -501, -501, 72, -501, -501, -501,
1295 -501, -501, -501, -501, 29, 34, 94, -501, -501, -501,
1296 -501, -28, -42, 66, 127, 25, -501, -501, -501, 34,
1297 122, 199, -501, -501, -501, -501, -501, -501, 839, -17,
1298 -501, -19, -501, 47, 67, 68, 69, 75, -501, 71,
1299 122, 839, 11, 11, -501, -501, 11, 11, -501, -501,
1300 -501, -501, -501, 76, -501, -501, -501, -501, -501, -501,
1301 -501, -501, -501, -501, -501, -501, -501, -501, -501, 207,
1302 210, 211, 518, -501, 123, 77, -501, -501, -84, -501,
1303 -501, -501, -501, -501, -501, -501, -501, -501, 876, 8,
1304 253, -501, -501, -501, 1333, -501, -501, -501, 203, 80,
1305 217, 206, 208, -501, -501, -501, -501, -501, 922, 922,
1306 960, 922, -501, 83, 84, -501, -501, -84, -134, 88,
1307 604, -501, 76, 1131, -501, 1131, 1131, -501, -501, -501,
1308 -501, -501, -501, -501, -501, -501, -501, 1131, -501, 922,
1309 -501, 177, 34, -501, -501, -501, -501, -501, -501, -501,
1310 -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
1311 -501, -501, -501, 103, 81, 922, 922, 922, 922, 922,
1312 922, -501, -501, -501, -501, 922, 922, 922, 922, -501,
1313 -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
1314 -501, -501, 922, 922, 922, 922, 922, 34, -501, 20,
1315 -501, -501, -501, -501, -501, -501, -501, -501, -44, 91,
1316 91, 130, 143, 226, 145, 227, 161, 230, 163, 231,
1317 232, 233, 165, 234, 245, 1042, 91, 91, 922, 922,
1318 922, -501, 679, -501, 99, 113, -501, -501, -501, -501,
1319 -501, -501, -501, -501, 205, 103, 81, 119, 120, 125,
1320 128, 129, 960, 133, 134, 135, 139, 140, -501, -501,
1321 -501, -501, 124, -501, 149, -501, -501, 839, -501, -501,
1322 -501, -501, -501, -501, -501, -501, -501, -501, 922, -501,
1323 -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
1324 -501, -501, -501, -501, -501, 922, 150, 151, -501, 1131,
1325 136, 153, 154, 155, 156, 157, 158, 1131, 1131, 1131,
1326 159, 241, 839, 922, 922, 251, -501, -18, -501, -501,
1327 -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
1328 717, 960, 549, 265, -501, -501, -501, -501, -69, -50,
1329 -84, -501, 123, -501, 160, 142, 763, -501, -501, 283,
1330 164, 166, 960, 960, 960, 960, 960, -501, -110, 960,
1331 960, 960, 960, 960, 302, 304, 1131, 1131, 1131, 1,
1332 -501, 12, -501, 169, 1131, 167, 922, 922, 922, 922,
1333 922, 172, 173, 176, 922, 922, 1131, 1131, 178, -501,
1334 299, 314, -501, 91, -501, -40, -68, -501, -74, -501,
1335 -501, -501, -501, -501, 801, 301, -501, 184, 960, 960,
1336 169, 187, 188, 189, 190, 960, -501, 194, 195, 201,
1337 209, 316, 1131, 1131, 204, 212, 213, 1131, 341, 1131,
1338 922, -501, 214, 1131, 215, -501, -501, 216, 220, 1131,
1339 1131, 1131, -501, -501, 219, -501, 922, -501, -501, -501,
1340 -501, -501, -501, -501, -501, -501, 303, 332, 222, 228,
1341 229, 960, 960, 960, 960, -501, 960, 960, 960, 960,
1342 922, 238, 235, 922, 1131, 1131, 240, -501, 240, -501,
1343 243, 1131, 244, 922, 922, 922, -501, -501, -501, 922,
1344 1131, 345, -501, -501, 960, 960, -501, 246, 242, 247,
1345 248, 252, 254, 255, 256, 257, 354, 26, 243, 258,
1346 259, 260, 325, -501, -501, 922, 225, 1131, -501, -501,
1347 -501, 261, -501, -501, 262, 269, 960, -501, 960, 960,
1348 -501, -501, -501, -501, -501, 1131, -501, 1220, 56, 347,
1349 -501, -501, -501, -501, 250, -501, -501, -501, 270, 271,
1350 272, -501, 249, -501, 1220, 378, -501, -501, -501, -501,
1351 391, 276, 1131, 1131, 415, 138, -501, 1131, 416, -501,
1352 1131, -501
1353};
1354
1355/* YYPGOTO[NTERM-NUM]. */
1356static const short int yypgoto[] =
1357{
1358 -501, -501, -501, 328, 329, 330, 181, 185, 333, 336,
1359 -98, -97, -500, -501, 400, 420, -136, -501, -300, 31,
1360 -501, -216, -501, -45, -501, -38, -501, -81, 317, -501,
1361 126, 218, -208, 74, -501, -501, -501, -501, 398, -501,
1362 -501, -501, -501, 2, -501, 35, -501, -501, 423, -501,
1363 -501, -501, -501, -501, 451, -501, -471, -106, -62, -90,
1364 -501, 417, -501, -116, -501, -501, -501, -501, 22, -39,
1365 -501, -501, 43, -501, -501
1366};
1367
1368/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1369 positive, shift that token. If negative, reduce the rule which
1370 number is the opposite. If zero, do what YYDEFACT says.
1371 If YYTABLE_NINF, syntax error. */
1372#define YYTABLE_NINF -176
1373static const short int yytable[] =
1374{
1375 86, 127, 145, 146, 329, 25, 115, 382, 134, -175,
1376 40, 437, 135, 86, 94, 91, 277, 547, 240, 400,
1377 346, 347, 439, 136, 44, 45, 46, 270, 241, 270,
1378 270, 137, 138, 139, 140, 141, 142, 143, 144, 401,
1379 5, 270, 425, 6, 47, 25, 116, 117, 564, 127,
1380 426, 7, 8, 9, 10, 11, 12, 13, 438, 275,
1381 133, 137, 138, 139, 140, 141, 142, 143, 144, 438,
1382 -112, 322, 14, 272, 273, 19, 562, 20, 425, 131,
1383 219, 220, 4, 237, 425, 274, 129, 308, 462, 410,
1384 312, 30, 461, 571, 131, 313, 314, 315, 316, 31,
1385 32, 33, 34, 35, 36, 37, 289, 290, 325, 49,
1386 411, 133, 425, 131, 326, 320, 321, 27, 460, 28,
1387 98, 99, 100, 40, 101, 102, 103, 119, 50, 345,
1388 120, 121, 405, 406, 408, 212, 213, 306, 307, 133,
1389 309, 310, 133, 95, 92, 323, 324, 133, 133, 133,
1390 133, 19, 60, 20, 51, 330, 331, 348, 349, 350,
1391 -72, -72, -71, -71, 317, 318, 319, 133, 133, 7,
1392 8, 9, 52, 11, 53, 13, 58, 54, -70, -70,
1393 -69, -69, 332, 333, 546, 55, 523, 459, 524, 291,
1394 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
1395 302, 303, 304, 270, 352, 278, 279, 280, 281, 282,
1396 283, 270, 270, 270, 563, 101, 102, 62, 108, 109,
1397 110, 284, 285, 286, 287, 122, 111, 112, 123, 124,
1398 -113, 130, 376, 211, 398, 215, 216, 276, 217, 86,
1399 238, 239, 242, 327, -76, -75, 236, 383, -74, -73,
1400 377, 356, 335, -79, -80, 391, 392, 393, 137, 138,
1401 139, 140, 141, 142, 143, 144, 336, 378, 357, 358,
1402 270, 270, 270, 362, 363, 350, 374, 396, 270, 364,
1403 395, 399, 365, 366, 86, 397, 133, 369, 370, 371,
1404 270, 270, 384, 372, 373, 409, 444, 415, 446, 447,
1405 448, 375, 379, 381, 452, 385, 386, 387, 388, 389,
1406 390, 394, 414, 417, 434, 435, 436, 432, 418, 433,
1407 419, 440, 442, 443, 449, 450, 270, 270, 451, 457,
1408 456, 270, 458, 270, 454, 455, 467, 270, 400, 471,
1409 472, 473, 474, 270, 270, 270, 476, 477, 133, 445,
1410 133, 133, 133, 478, 412, 480, 133, 453, 483, 487,
1411 501, 479, 503, 533, 484, 485, 491, 493, 494, 545,
1412 481, 482, 495, 499, 504, 486, 352, 488, 270, 270,
1413 505, 492, 438, 553, 506, 270, 565, 496, 497, 498,
1414 516, 517, 522, 572, 270, 525, 527, 537, 536, 538,
1415 539, 570, 133, 528, 529, 530, 573, 540, 566, 541,
1416 542, 543, 544, 549, 550, 551, 555, 556, 500, 145,
1417 146, 270, 520, 521, 557, 567, 568, 569, 574, 526,
1418 577, 580, 202, 203, 204, 552, 360, 205, 532, 270,
1419 206, 361, 515, 104, 56, 133, 465, 244, 114, 464,
1420 145, 146, 59, 344, 26, 133, 133, 133, 97, 578,
1421 531, 133, 490, 470, 0, 554, 270, 270, 0, 0,
1422 0, 270, 0, 0, 270, 0, 0, 0, 0, 0,
1423 0, 0, 0, 561, 0, 0, 0, 133, 420, 421,
1424 422, 423, 424, 0, 0, 427, 428, 429, 430, 431,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426 575, 576, 0, 0, 0, 579, 0, 0, 581, 0,
1427 0, 125, 64, 65, 66, 67, 68, 69, 70, 71,
1428 72, 73, 74, 75, 76, 0, 0, 77, 78, 0,
1429 0, 0, 0, 0, 468, 469, 19, 0, 20, 0,
1430 0, 475, 125, 221, 222, 223, 224, 225, 226, 227,
1431 228, 229, 230, 231, 75, 76, 0, 0, 77, 78,
1432 0, 0, 0, 0, 0, 0, 0, 19, 0, 20,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 0, 0, 0, 0, 0, 0, 507, 508, 509,
1435 510, 0, 511, 512, 513, 514, 0, 125, 64, 65,
1436 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1437 76, 0, 0, 77, 78, 0, 0, 0, 0, 0,
1438 534, 535, 19, 0, 20, 0, 0, 0, 0, 0,
1439 0, 0, 0, 0, 243, 0, 0, 0, 0, 0,
1440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441 0, 0, 558, 0, 559, 560, 0, 0, 0, 0,
1442 0, 79, 0, 0, 80, 0, 0, 81, 0, 82,
1443 126, 0, 125, 64, 65, 66, 67, 68, 69, 70,
1444 71, 72, 73, 74, 75, 76, 0, 0, 77, 78,
1445 0, 0, 79, 0, 0, 80, 0, 19, 81, 20,
1446 82, 407, 0, 0, 0, 0, 0, 0, 0, 351,
1447 125, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1448 230, 231, 75, 76, 0, 0, 77, 78, 0, 0,
1449 0, 0, 0, 0, 0, 19, 0, 20, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
1451 80, 0, 0, 81, 0, 82, 125, 64, 65, 66,
1452 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1453 0, 0, 77, 78, 0, 0, 0, 0, 0, 0,
1454 0, 19, 0, 20, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 416, 125, 64, 65, 66, 67, 68,
1456 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
1457 77, 78, 0, 0, 0, 0, 0, 0, 0, 19,
1458 0, 20, 79, 0, 0, 80, 0, 0, 81, 0,
1459 82, 463, 63, 64, 65, 66, 67, 68, 69, 70,
1460 71, 72, 73, 74, 75, 76, 0, 0, 77, 78,
1461 0, 0, 0, 0, 0, 0, 0, 19, 0, 20,
1462 79, 0, 0, 80, 0, 404, 81, 0, 82, 132,
1463 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1464 74, 75, 76, 0, 0, 77, 78, 0, 0, 0,
1465 0, 0, 0, 0, 19, 0, 20, 0, 0, 0,
1466 0, 0, 0, 0, 0, 0, 79, 0, 0, 80,
1467 0, 0, 81, 0, 82, 125, 64, 65, 66, 67,
1468 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1469 0, 77, 78, 0, 0, 0, 0, 0, 0, 0,
1470 19, 0, 20, 0, 79, 0, 0, 80, 0, 0,
1471 81, 0, 82, 125, 221, 222, 223, 224, 225, 226,
1472 227, 228, 229, 230, 231, 75, 76, 0, 0, 77,
1473 78, 0, 0, 0, 0, 0, 0, 0, 19, 0,
1474 20, 0, 79, 0, 0, 80, 0, 0, 81, 0,
1475 82, 0, -82, 19, 0, 20, 0, 0, 0, 6,
1476 -82, -82, 0, 0, 0, 0, 0, -82, -82, -82,
1477 -82, -82, -82, -82, 0, -82, 21, 0, 0, 79,
1478 0, 0, 80, -82, 22, 81, 0, 82, 23, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 77, 78, 0, 337, 338, 339, 0, 0, 0,
1482 19, 0, 20, 0, 0, 79, 0, 0, 80, 0,
1483 0, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 79, 0, 0, 80, 0, 0, 81,
1487 0, 82, 153, 154, 155, 156, 157, 158, 159, 160,
1488 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
1489 171, 172, 255, 256, 0, 0, 0, 0, 246, 247,
1490 77, 78, 248, 249, 250, 251, 252, 253, 0, 19,
1491 0, 20, 0, 0, 0, 0, 0, 0, 0, 257,
1492 0, 258, 181, 182, 183, 184, 0, 259, 260, 261,
1493 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1494 199, 200, 201, 254, 0, 0, 0, 0, 340, 0,
1495 0, 341, 0, 342, 0, 0, 343, 0, 0, 0,
1496 0, 153, 154, 155, 156, 157, 158, 159, 160, 161,
1497 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1498 172, 255, 256, 0, 0, 0, 0, 246, 247, 0,
1499 0, 248, 249, 250, 251, 252, 253, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 257, 0,
1501 258, 181, 182, 183, 184, 0, 259, 260, 261, 189,
1502 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1503 200, 201, 254, 0, 0, 0, 0, 0, 0, 0,
1504 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1506 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
1507 255, 256, 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 257, 0, 258,
1510 181, 182, 183, 184, 0, 259, 260, 261, 189, 190,
1511 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
1512 201, 148, 0, 0, 0, 0, 0, 0, 0, 262,
1513 0, 0, 149, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 150, 151, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 152,
1516 0, 0, 0, 153, 154, 155, 156, 157, 158, 159,
1517 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1518 170, 171, 172, 173, 174, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 175, 176, 177, 0, 0,
1521 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1522 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1523 198, 199, 200, 201
1524};
1525
1526static const short int yycheck[] =
1527{
1528 38, 82, 100, 100, 220, 3, 51, 307, 98, 0,
1529 29, 10, 4, 51, 33, 32, 152, 517, 152, 37,
1530 236, 237, 10, 15, 52, 53, 54, 133, 162, 135,
1531 136, 5, 6, 7, 8, 9, 10, 11, 12, 57,
1532 31, 147, 152, 34, 72, 43, 35, 36, 548, 130,
1533 160, 42, 43, 44, 45, 46, 47, 48, 57, 149,
1534 98, 5, 6, 7, 8, 9, 10, 11, 12, 57,
1535 154, 207, 63, 135, 136, 28, 547, 30, 152, 163,
1536 118, 119, 0, 121, 152, 147, 84, 177, 162, 158,
1537 180, 62, 160, 564, 163, 185, 186, 187, 188, 65,
1538 66, 67, 68, 69, 70, 71, 25, 26, 152, 151,
1539 160, 149, 152, 163, 158, 205, 206, 45, 158, 47,
1540 73, 74, 75, 29, 77, 78, 79, 53, 62, 235,
1541 56, 57, 340, 341, 342, 55, 56, 175, 176, 177,
1542 178, 179, 180, 162, 161, 125, 126, 185, 186, 187,
1543 188, 28, 30, 30, 27, 25, 26, 238, 239, 240,
1544 17, 18, 17, 18, 202, 203, 204, 205, 206, 42,
1545 43, 44, 45, 46, 47, 48, 151, 50, 17, 18,
1546 17, 18, 17, 18, 158, 58, 486, 403, 488, 108,
1547 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1548 119, 120, 121, 309, 242, 102, 103, 104, 105, 106,
1549 107, 317, 318, 319, 158, 77, 78, 18, 151, 151,
1550 151, 118, 119, 120, 121, 18, 151, 156, 18, 18,
1551 154, 154, 277, 30, 324, 18, 30, 60, 30, 277,
1552 157, 157, 154, 152, 18, 18, 120, 309, 18, 18,
1553 288, 152, 18, 21, 21, 317, 318, 319, 5, 6,
1554 7, 8, 9, 10, 11, 12, 21, 305, 155, 64,
1555 376, 377, 378, 154, 154, 356, 152, 322, 384, 154,
1556 39, 30, 154, 154, 322, 323, 324, 154, 154, 154,
1557 396, 397, 156, 154, 154, 30, 386, 155, 388, 389,
1558 390, 152, 152, 152, 394, 152, 152, 152, 152, 152,
1559 152, 152, 152, 30, 376, 377, 378, 15, 154, 15,
1560 154, 152, 384, 156, 152, 152, 432, 433, 152, 30,
1561 152, 437, 18, 439, 396, 397, 152, 443, 37, 152,
1562 152, 152, 152, 449, 450, 451, 152, 152, 386, 387,
1563 388, 389, 390, 152, 352, 39, 394, 395, 154, 18,
1564 57, 152, 30, 18, 152, 152, 152, 152, 152, 15,
1565 432, 433, 152, 154, 152, 437, 414, 439, 484, 485,
1566 152, 443, 57, 158, 155, 491, 39, 449, 450, 451,
1567 152, 156, 152, 15, 500, 152, 152, 155, 152, 152,
1568 152, 152, 440, 493, 494, 495, 15, 155, 158, 155,
1569 155, 155, 155, 155, 155, 155, 155, 155, 456, 517,
1570 517, 527, 484, 485, 155, 155, 155, 155, 152, 491,
1571 15, 15, 104, 104, 104, 525, 255, 104, 500, 545,
1572 104, 256, 480, 43, 24, 483, 415, 130, 50, 414,
1573 548, 548, 29, 235, 3, 493, 494, 495, 41, 575,
1574 499, 499, 440, 420, -1, 527, 572, 573, -1, -1,
1575 -1, 577, -1, -1, 580, -1, -1, -1, -1, -1,
1576 -1, -1, -1, 545, -1, -1, -1, 525, 362, 363,
1577 364, 365, 366, -1, -1, 369, 370, 371, 372, 373,
1578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1579 572, 573, -1, -1, -1, 577, -1, -1, 580, -1,
1580 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1581 12, 13, 14, 15, 16, -1, -1, 19, 20, -1,
1582 -1, -1, -1, -1, 418, 419, 28, -1, 30, -1,
1583 -1, 425, 3, 4, 5, 6, 7, 8, 9, 10,
1584 11, 12, 13, 14, 15, 16, -1, -1, 19, 20,
1585 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
1586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1587 -1, -1, -1, -1, -1, -1, -1, 471, 472, 473,
1588 474, -1, 476, 477, 478, 479, -1, 3, 4, 5,
1589 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1590 16, -1, -1, 19, 20, -1, -1, -1, -1, -1,
1591 504, 505, 28, -1, 30, -1, -1, -1, -1, -1,
1592 -1, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1594 -1, -1, 536, -1, 538, 539, -1, -1, -1, -1,
1595 -1, 153, -1, -1, 156, -1, -1, 159, -1, 161,
1596 162, -1, 3, 4, 5, 6, 7, 8, 9, 10,
1597 11, 12, 13, 14, 15, 16, -1, -1, 19, 20,
1598 -1, -1, 153, -1, -1, 156, -1, 28, 159, 30,
1599 161, 162, -1, -1, -1, -1, -1, -1, -1, 40,
1600 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1601 13, 14, 15, 16, -1, -1, 19, 20, -1, -1,
1602 -1, -1, -1, -1, -1, 28, -1, 30, -1, -1,
1603 -1, -1, -1, -1, -1, -1, -1, 153, -1, -1,
1604 156, -1, -1, 159, -1, 161, 3, 4, 5, 6,
1605 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1606 -1, -1, 19, 20, -1, -1, -1, -1, -1, -1,
1607 -1, 28, -1, 30, -1, -1, -1, -1, -1, -1,
1608 -1, -1, -1, 40, 3, 4, 5, 6, 7, 8,
1609 9, 10, 11, 12, 13, 14, 15, 16, -1, -1,
1610 19, 20, -1, -1, -1, -1, -1, -1, -1, 28,
1611 -1, 30, 153, -1, -1, 156, -1, -1, 159, -1,
1612 161, 40, 3, 4, 5, 6, 7, 8, 9, 10,
1613 11, 12, 13, 14, 15, 16, -1, -1, 19, 20,
1614 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
1615 153, -1, -1, 156, -1, 158, 159, -1, 161, 3,
1616 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1617 14, 15, 16, -1, -1, 19, 20, -1, -1, -1,
1618 -1, -1, -1, -1, 28, -1, 30, -1, -1, -1,
1619 -1, -1, -1, -1, -1, -1, 153, -1, -1, 156,
1620 -1, -1, 159, -1, 161, 3, 4, 5, 6, 7,
1621 8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
1622 -1, 19, 20, -1, -1, -1, -1, -1, -1, -1,
1623 28, -1, 30, -1, 153, -1, -1, 156, -1, -1,
1624 159, -1, 161, 3, 4, 5, 6, 7, 8, 9,
1625 10, 11, 12, 13, 14, 15, 16, -1, -1, 19,
1626 20, -1, -1, -1, -1, -1, -1, -1, 28, -1,
1627 30, -1, 153, -1, -1, 156, -1, -1, 159, -1,
1628 161, -1, 27, 28, -1, 30, -1, -1, -1, 34,
1629 35, 36, -1, -1, -1, -1, -1, 42, 43, 44,
1630 45, 46, 47, 48, -1, 50, 51, -1, -1, 153,
1631 -1, -1, 156, 58, 59, 159, -1, 161, 63, -1,
1632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1634 -1, 19, 20, -1, 22, 23, 24, -1, -1, -1,
1635 28, -1, 30, -1, -1, 153, -1, -1, 156, -1,
1636 -1, 159, -1, 161, -1, -1, -1, -1, -1, -1,
1637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1639 -1, -1, -1, 153, -1, -1, 156, -1, -1, 159,
1640 -1, 161, 80, 81, 82, 83, 84, 85, 86, 87,
1641 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1642 98, 99, 100, 101, -1, -1, -1, -1, 17, 18,
1643 19, 20, 21, 22, 23, 24, 25, 26, -1, 28,
1644 -1, 30, -1, -1, -1, -1, -1, -1, -1, 127,
1645 -1, 129, 130, 131, 132, 133, -1, 135, 136, 137,
1646 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
1647 148, 149, 150, 62, -1, -1, -1, -1, 156, -1,
1648 -1, 159, -1, 161, -1, -1, 164, -1, -1, -1,
1649 -1, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1650 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1651 99, 100, 101, -1, -1, -1, -1, 17, 18, -1,
1652 -1, 21, 22, 23, 24, 25, 26, -1, -1, -1,
1653 -1, -1, -1, -1, -1, -1, -1, -1, 127, -1,
1654 129, 130, 131, 132, 133, -1, 135, 136, 137, 138,
1655 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1656 149, 150, 62, -1, -1, -1, -1, -1, -1, -1,
1657 159, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1658 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1659 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1660 100, 101, -1, -1, -1, -1, -1, -1, -1, -1,
1661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1662 -1, -1, -1, -1, -1, -1, -1, 127, -1, 129,
1663 130, 131, 132, 133, -1, 135, 136, 137, 138, 139,
1664 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1665 150, 38, -1, -1, -1, -1, -1, -1, -1, 159,
1666 -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, 60, 61, -1, -1, -1, -1, -1,
1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, 76,
1669 -1, -1, -1, 80, 81, 82, 83, 84, 85, 86,
1670 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1671 97, 98, 99, 100, 101, -1, -1, -1, -1, -1,
1672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1673 -1, -1, -1, -1, -1, 122, 123, 124, -1, -1,
1674 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1675 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1676 147, 148, 149, 150
1677};
1678
1679/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1680 symbol of state STATE-NUM. */
1681static const unsigned char yystos[] =
1682{
1683 0, 199, 200, 202, 0, 31, 34, 42, 43, 44,
1684 45, 46, 47, 48, 63, 180, 215, 217, 219, 28,
1685 30, 51, 59, 63, 179, 208, 219, 45, 47, 218,
1686 62, 65, 66, 67, 68, 69, 70, 71, 181, 213,
1687 29, 225, 226, 227, 52, 53, 54, 72, 205, 151,
1688 62, 27, 45, 47, 50, 58, 180, 201, 151, 213,
1689 30, 203, 18, 3, 4, 5, 6, 7, 8, 9,
1690 10, 11, 12, 13, 14, 15, 16, 19, 20, 153,
1691 156, 159, 161, 166, 188, 189, 190, 191, 192, 208,
1692 222, 32, 161, 214, 33, 162, 216, 226, 73, 74,
1693 75, 77, 78, 79, 179, 228, 229, 231, 151, 151,
1694 151, 151, 156, 206, 203, 188, 35, 36, 198, 198,
1695 198, 198, 18, 18, 18, 3, 162, 192, 193, 208,
1696 154, 163, 3, 190, 224, 4, 15, 5, 6, 7,
1697 8, 9, 10, 11, 12, 175, 176, 177, 38, 49,
1698 60, 61, 76, 80, 81, 82, 83, 84, 85, 86,
1699 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1700 97, 98, 99, 100, 101, 122, 123, 124, 127, 128,
1701 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1702 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1703 149, 150, 168, 169, 170, 173, 174, 235, 236, 238,
1704 239, 30, 55, 56, 204, 18, 30, 30, 207, 190,
1705 190, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1706 13, 14, 175, 176, 178, 190, 195, 190, 157, 157,
1707 152, 162, 154, 40, 193, 194, 17, 18, 21, 22,
1708 23, 24, 25, 26, 62, 100, 101, 127, 129, 135,
1709 136, 137, 159, 168, 169, 170, 173, 174, 196, 221,
1710 222, 223, 223, 223, 223, 224, 60, 181, 102, 103,
1711 104, 105, 106, 107, 118, 119, 120, 121, 171, 25,
1712 26, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1713 117, 118, 119, 120, 121, 172, 190, 190, 224, 190,
1714 190, 232, 224, 224, 224, 224, 224, 190, 190, 190,
1715 224, 224, 181, 125, 126, 152, 158, 152, 186, 186,
1716 25, 26, 17, 18, 167, 18, 21, 22, 23, 24,
1717 156, 159, 161, 164, 196, 222, 186, 186, 192, 192,
1718 192, 40, 190, 210, 211, 212, 152, 155, 64, 220,
1719 171, 172, 154, 154, 154, 154, 154, 195, 197, 154,
1720 154, 154, 154, 154, 152, 152, 188, 190, 190, 152,
1721 183, 152, 183, 223, 156, 152, 152, 152, 152, 152,
1722 152, 223, 223, 223, 152, 39, 188, 190, 224, 30,
1723 37, 57, 184, 187, 158, 197, 197, 162, 197, 30,
1724 158, 160, 208, 209, 152, 155, 40, 30, 154, 154,
1725 195, 195, 195, 195, 195, 152, 160, 195, 195, 195,
1726 195, 195, 15, 15, 223, 223, 223, 10, 57, 10,
1727 152, 237, 223, 156, 224, 190, 224, 224, 224, 152,
1728 152, 152, 224, 190, 223, 223, 152, 30, 18, 186,
1729 158, 160, 162, 40, 210, 184, 185, 152, 195, 195,
1730 237, 152, 152, 152, 152, 195, 152, 152, 152, 152,
1731 39, 223, 223, 154, 152, 152, 223, 18, 223, 224,
1732 233, 152, 223, 152, 152, 152, 223, 223, 223, 154,
1733 190, 57, 182, 30, 152, 152, 155, 195, 195, 195,
1734 195, 195, 195, 195, 195, 190, 152, 156, 233, 234,
1735 223, 223, 152, 183, 183, 152, 223, 152, 224, 224,
1736 224, 234, 223, 18, 195, 195, 152, 155, 152, 152,
1737 155, 155, 155, 155, 155, 15, 158, 177, 230, 155,
1738 155, 155, 224, 158, 223, 155, 155, 155, 195, 195,
1739 195, 223, 221, 158, 177, 39, 158, 155, 155, 155,
1740 152, 221, 15, 15, 152, 223, 223, 15, 228, 223,
1741 15, 223
1742};
Reid Spencere7c3c602006-11-30 06:36:44 +00001743
1744#define yyerrok (yyerrstatus = 0)
1745#define yyclearin (yychar = YYEMPTY)
Jim Laskey2792cfb2006-12-06 11:03:10 +00001746#define YYEMPTY (-2)
Reid Spencere7c3c602006-11-30 06:36:44 +00001747#define YYEOF 0
Jim Laskey2792cfb2006-12-06 11:03:10 +00001748
Reid Spencere7c3c602006-11-30 06:36:44 +00001749#define YYACCEPT goto yyacceptlab
Jim Laskey2792cfb2006-12-06 11:03:10 +00001750#define YYABORT goto yyabortlab
1751#define YYERROR goto yyerrorlab
1752
1753
1754/* Like YYERROR except do call yyerror. This remains here temporarily
1755 to ease the transition to the new meaning of YYERROR, for GCC.
Reid Spencere7c3c602006-11-30 06:36:44 +00001756 Once GCC version 2 has supplanted version 1, this can go. */
Jim Laskey2792cfb2006-12-06 11:03:10 +00001757
Reid Spencere7c3c602006-11-30 06:36:44 +00001758#define YYFAIL goto yyerrlab
Jim Laskey2792cfb2006-12-06 11:03:10 +00001759
Reid Spencere7c3c602006-11-30 06:36:44 +00001760#define YYRECOVERING() (!!yyerrstatus)
Jim Laskey2792cfb2006-12-06 11:03:10 +00001761
1762#define YYBACKUP(Token, Value) \
Reid Spencere7c3c602006-11-30 06:36:44 +00001763do \
1764 if (yychar == YYEMPTY && yylen == 1) \
Jim Laskey2792cfb2006-12-06 11:03:10 +00001765 { \
1766 yychar = (Token); \
1767 yylval = (Value); \
1768 yytoken = YYTRANSLATE (yychar); \
Reid Spencere7c3c602006-11-30 06:36:44 +00001769 YYPOPSTACK; \
1770 goto yybackup; \
1771 } \
1772 else \
Jim Laskey2792cfb2006-12-06 11:03:10 +00001773 { \
1774 yyerror (YY_("syntax error: cannot back up")); \
1775 YYERROR; \
1776 } \
Reid Spencere7c3c602006-11-30 06:36:44 +00001777while (0)
1778
Jim Laskey2792cfb2006-12-06 11:03:10 +00001779
Reid Spencere7c3c602006-11-30 06:36:44 +00001780#define YYTERROR 1
1781#define YYERRCODE 256
1782
Jim Laskey2792cfb2006-12-06 11:03:10 +00001783
1784/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1785 If N is 0, then set CURRENT to the empty location which ends
1786 the previous symbol: RHS[0] (always defined). */
1787
1788#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1789#ifndef YYLLOC_DEFAULT
1790# define YYLLOC_DEFAULT(Current, Rhs, N) \
1791 do \
1792 if (N) \
1793 { \
1794 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1795 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1796 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1797 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1798 } \
1799 else \
1800 { \
1801 (Current).first_line = (Current).last_line = \
1802 YYRHSLOC (Rhs, 0).last_line; \
1803 (Current).first_column = (Current).last_column = \
1804 YYRHSLOC (Rhs, 0).last_column; \
1805 } \
1806 while (0)
Reid Spencere7c3c602006-11-30 06:36:44 +00001807#endif
1808
Jim Laskey2792cfb2006-12-06 11:03:10 +00001809
1810/* YY_LOCATION_PRINT -- Print the location on the stream.
1811 This macro was not mandated originally: define only if we know
1812 we won't break user code: when these are the locations we know. */
1813
1814#ifndef YY_LOCATION_PRINT
1815# if YYLTYPE_IS_TRIVIAL
1816# define YY_LOCATION_PRINT(File, Loc) \
1817 fprintf (File, "%d.%d-%d.%d", \
1818 (Loc).first_line, (Loc).first_column, \
1819 (Loc).last_line, (Loc).last_column)
1820# else
1821# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1822# endif
1823#endif
1824
1825
1826/* YYLEX -- calling `yylex' with the right arguments. */
1827
Reid Spencere7c3c602006-11-30 06:36:44 +00001828#ifdef YYLEX_PARAM
Jim Laskey2792cfb2006-12-06 11:03:10 +00001829# define YYLEX yylex (YYLEX_PARAM)
Reid Spencere7c3c602006-11-30 06:36:44 +00001830#else
Jim Laskey2792cfb2006-12-06 11:03:10 +00001831# define YYLEX yylex ()
Jim Laskey98ba5882006-12-06 10:57:33 +00001832#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00001833
1834/* Enable debugging if requested. */
1835#if YYDEBUG
1836
1837# ifndef YYFPRINTF
1838# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1839# define YYFPRINTF fprintf
1840# endif
1841
1842# define YYDPRINTF(Args) \
1843do { \
1844 if (yydebug) \
1845 YYFPRINTF Args; \
1846} while (0)
1847
1848# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1849do { \
1850 if (yydebug) \
1851 { \
1852 YYFPRINTF (stderr, "%s ", Title); \
1853 yysymprint (stderr, \
1854 Type, Value); \
1855 YYFPRINTF (stderr, "\n"); \
1856 } \
1857} while (0)
1858
1859/*------------------------------------------------------------------.
1860| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1861| TOP (included). |
1862`------------------------------------------------------------------*/
1863
1864#if defined (__STDC__) || defined (__cplusplus)
1865static void
1866yy_stack_print (short int *bottom, short int *top)
Jim Laskey98ba5882006-12-06 10:57:33 +00001867#else
Jim Laskey2792cfb2006-12-06 11:03:10 +00001868static void
1869yy_stack_print (bottom, top)
1870 short int *bottom;
1871 short int *top;
Jim Laskey98ba5882006-12-06 10:57:33 +00001872#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00001873{
1874 YYFPRINTF (stderr, "Stack now");
1875 for (/* Nothing. */; bottom <= top; ++bottom)
1876 YYFPRINTF (stderr, " %d", *bottom);
1877 YYFPRINTF (stderr, "\n");
1878}
1879
1880# define YY_STACK_PRINT(Bottom, Top) \
1881do { \
1882 if (yydebug) \
1883 yy_stack_print ((Bottom), (Top)); \
1884} while (0)
1885
1886
1887/*------------------------------------------------.
1888| Report that the YYRULE is going to be reduced. |
1889`------------------------------------------------*/
1890
1891#if defined (__STDC__) || defined (__cplusplus)
1892static void
1893yy_reduce_print (int yyrule)
1894#else
1895static void
1896yy_reduce_print (yyrule)
1897 int yyrule;
Reid Spencere7c3c602006-11-30 06:36:44 +00001898#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00001899{
1900 int yyi;
1901 unsigned long int yylno = yyrline[yyrule];
1902 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1903 yyrule - 1, yylno);
1904 /* Print the symbols being reduced, and their result. */
1905 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1906 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1907 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1908}
Reid Spencere7c3c602006-11-30 06:36:44 +00001909
Jim Laskey2792cfb2006-12-06 11:03:10 +00001910# define YY_REDUCE_PRINT(Rule) \
1911do { \
1912 if (yydebug) \
1913 yy_reduce_print (Rule); \
1914} while (0)
Reid Spencere7c3c602006-11-30 06:36:44 +00001915
Jim Laskey2792cfb2006-12-06 11:03:10 +00001916/* Nonzero means print parse trace. It is left uninitialized so that
1917 multiple parsers can coexist. */
1918int yydebug;
1919#else /* !YYDEBUG */
1920# define YYDPRINTF(Args)
1921# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1922# define YY_STACK_PRINT(Bottom, Top)
1923# define YY_REDUCE_PRINT(Rule)
1924#endif /* !YYDEBUG */
Reid Spencere7c3c602006-11-30 06:36:44 +00001925
Reid Spencere7c3c602006-11-30 06:36:44 +00001926
Jim Laskey2792cfb2006-12-06 11:03:10 +00001927/* YYINITDEPTH -- initial size of the parser's stacks. */
Reid Spencere7c3c602006-11-30 06:36:44 +00001928#ifndef YYINITDEPTH
Jim Laskey2792cfb2006-12-06 11:03:10 +00001929# define YYINITDEPTH 200
Reid Spencere7c3c602006-11-30 06:36:44 +00001930#endif
1931
Jim Laskey2792cfb2006-12-06 11:03:10 +00001932/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1933 if the built-in stack extension method is used).
Reid Spencere7c3c602006-11-30 06:36:44 +00001934
Jim Laskey2792cfb2006-12-06 11:03:10 +00001935 Do not make this value too large; the results are undefined if
1936 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1937 evaluated with infinite-precision integer arithmetic. */
Reid Spencere7c3c602006-11-30 06:36:44 +00001938
1939#ifndef YYMAXDEPTH
Jim Laskey2792cfb2006-12-06 11:03:10 +00001940# define YYMAXDEPTH 10000
Reid Spencere7c3c602006-11-30 06:36:44 +00001941#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00001942
Reid Spencere7c3c602006-11-30 06:36:44 +00001943
1944
Jim Laskey2792cfb2006-12-06 11:03:10 +00001945#if YYERROR_VERBOSE
Reid Spencere7c3c602006-11-30 06:36:44 +00001946
Jim Laskey2792cfb2006-12-06 11:03:10 +00001947# ifndef yystrlen
1948# if defined (__GLIBC__) && defined (_STRING_H)
1949# define yystrlen strlen
1950# else
1951/* Return the length of YYSTR. */
1952static YYSIZE_T
1953# if defined (__STDC__) || defined (__cplusplus)
1954yystrlen (const char *yystr)
1955# else
1956yystrlen (yystr)
1957 const char *yystr;
1958# endif
Jim Laskey98ba5882006-12-06 10:57:33 +00001959{
Jim Laskey2792cfb2006-12-06 11:03:10 +00001960 const char *yys = yystr;
Jim Laskey98ba5882006-12-06 10:57:33 +00001961
Jim Laskey2792cfb2006-12-06 11:03:10 +00001962 while (*yys++ != '\0')
1963 continue;
1964
1965 return yys - yystr - 1;
Jim Laskey98ba5882006-12-06 10:57:33 +00001966}
Jim Laskey2792cfb2006-12-06 11:03:10 +00001967# endif
1968# endif
Jim Laskey98ba5882006-12-06 10:57:33 +00001969
Jim Laskey2792cfb2006-12-06 11:03:10 +00001970# ifndef yystpcpy
1971# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1972# define yystpcpy stpcpy
1973# else
1974/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1975 YYDEST. */
1976static char *
1977# if defined (__STDC__) || defined (__cplusplus)
1978yystpcpy (char *yydest, const char *yysrc)
1979# else
1980yystpcpy (yydest, yysrc)
1981 char *yydest;
1982 const char *yysrc;
1983# endif
Jim Laskey98ba5882006-12-06 10:57:33 +00001984{
Jim Laskey2792cfb2006-12-06 11:03:10 +00001985 char *yyd = yydest;
1986 const char *yys = yysrc;
Jim Laskey98ba5882006-12-06 10:57:33 +00001987
Jim Laskey2792cfb2006-12-06 11:03:10 +00001988 while ((*yyd++ = *yys++) != '\0')
1989 continue;
1990
1991 return yyd - 1;
Jim Laskey98ba5882006-12-06 10:57:33 +00001992}
Jim Laskey2792cfb2006-12-06 11:03:10 +00001993# endif
1994# endif
Jim Laskey98ba5882006-12-06 10:57:33 +00001995
Jim Laskey2792cfb2006-12-06 11:03:10 +00001996# ifndef yytnamerr
1997/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1998 quotes and backslashes, so that it's suitable for yyerror. The
1999 heuristic is that double-quoting is unnecessary unless the string
2000 contains an apostrophe, a comma, or backslash (other than
2001 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2002 null, do not copy; instead, return the length of what the result
2003 would have been. */
2004static YYSIZE_T
2005yytnamerr (char *yyres, const char *yystr)
2006{
2007 if (*yystr == '"')
2008 {
2009 size_t yyn = 0;
2010 char const *yyp = yystr;
2011
2012 for (;;)
2013 switch (*++yyp)
2014 {
2015 case '\'':
2016 case ',':
2017 goto do_not_strip_quotes;
2018
2019 case '\\':
2020 if (*++yyp != '\\')
2021 goto do_not_strip_quotes;
2022 /* Fall through. */
2023 default:
2024 if (yyres)
2025 yyres[yyn] = *yyp;
2026 yyn++;
2027 break;
2028
2029 case '"':
2030 if (yyres)
2031 yyres[yyn] = '\0';
2032 return yyn;
2033 }
2034 do_not_strip_quotes: ;
2035 }
2036
2037 if (! yyres)
2038 return yystrlen (yystr);
2039
2040 return yystpcpy (yyres, yystr) - yyres;
2041}
2042# endif
2043
2044#endif /* YYERROR_VERBOSE */
2045
Reid Spencere7c3c602006-11-30 06:36:44 +00002046
2047
Jim Laskey2792cfb2006-12-06 11:03:10 +00002048#if YYDEBUG
2049/*--------------------------------.
2050| Print this symbol on YYOUTPUT. |
2051`--------------------------------*/
Reid Spencere7c3c602006-11-30 06:36:44 +00002052
Jim Laskey2792cfb2006-12-06 11:03:10 +00002053#if defined (__STDC__) || defined (__cplusplus)
2054static void
2055yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
Jim Laskey98ba5882006-12-06 10:57:33 +00002056#else
Jim Laskey2792cfb2006-12-06 11:03:10 +00002057static void
2058yysymprint (yyoutput, yytype, yyvaluep)
2059 FILE *yyoutput;
2060 int yytype;
2061 YYSTYPE *yyvaluep;
2062#endif
2063{
2064 /* Pacify ``unused variable'' warnings. */
2065 (void) yyvaluep;
2066
2067 if (yytype < YYNTOKENS)
2068 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2069 else
2070 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2071
2072
2073# ifdef YYPRINT
2074 if (yytype < YYNTOKENS)
2075 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2076# endif
2077 switch (yytype)
2078 {
2079 default:
2080 break;
2081 }
2082 YYFPRINTF (yyoutput, ")");
2083}
2084
2085#endif /* ! YYDEBUG */
2086/*-----------------------------------------------.
2087| Release the memory associated to this symbol. |
2088`-----------------------------------------------*/
2089
2090#if defined (__STDC__) || defined (__cplusplus)
2091static void
2092yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2093#else
2094static void
2095yydestruct (yymsg, yytype, yyvaluep)
2096 const char *yymsg;
2097 int yytype;
2098 YYSTYPE *yyvaluep;
2099#endif
2100{
2101 /* Pacify ``unused variable'' warnings. */
2102 (void) yyvaluep;
2103
2104 if (!yymsg)
2105 yymsg = "Deleting";
2106 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2107
2108 switch (yytype)
2109 {
2110
2111 default:
2112 break;
2113 }
2114}
2115
2116
2117/* Prevent warnings from -Wmissing-prototypes. */
2118
2119#ifdef YYPARSE_PARAM
2120# if defined (__STDC__) || defined (__cplusplus)
2121int yyparse (void *YYPARSE_PARAM);
2122# else
2123int yyparse ();
2124# endif
2125#else /* ! YYPARSE_PARAM */
2126#if defined (__STDC__) || defined (__cplusplus)
Reid Spencere7c3c602006-11-30 06:36:44 +00002127int yyparse (void);
Jim Laskey98ba5882006-12-06 10:57:33 +00002128#else
Jim Laskey2792cfb2006-12-06 11:03:10 +00002129int yyparse ();
2130#endif
2131#endif /* ! YYPARSE_PARAM */
2132
2133
2134
2135/* The look-ahead symbol. */
2136int yychar;
2137
2138/* The semantic value of the look-ahead symbol. */
2139YYSTYPE yylval;
2140
2141/* Number of syntax errors so far. */
2142int yynerrs;
2143
2144
2145
2146/*----------.
2147| yyparse. |
2148`----------*/
2149
2150#ifdef YYPARSE_PARAM
2151# if defined (__STDC__) || defined (__cplusplus)
2152int yyparse (void *YYPARSE_PARAM)
2153# else
2154int yyparse (YYPARSE_PARAM)
2155 void *YYPARSE_PARAM;
2156# endif
2157#else /* ! YYPARSE_PARAM */
2158#if defined (__STDC__) || defined (__cplusplus)
2159int
2160yyparse (void)
2161#else
2162int
2163yyparse ()
2164
2165#endif
2166#endif
2167{
2168
2169 int yystate;
2170 int yyn;
2171 int yyresult;
2172 /* Number of tokens to shift before error messages enabled. */
2173 int yyerrstatus;
2174 /* Look-ahead token as an internal (translated) token number. */
2175 int yytoken = 0;
2176
2177 /* Three stacks and their tools:
2178 `yyss': related to states,
2179 `yyvs': related to semantic values,
2180 `yyls': related to locations.
2181
2182 Refer to the stacks thru separate pointers, to allow yyoverflow
2183 to reallocate them elsewhere. */
2184
2185 /* The state stack. */
2186 short int yyssa[YYINITDEPTH];
2187 short int *yyss = yyssa;
2188 short int *yyssp;
2189
2190 /* The semantic value stack. */
2191 YYSTYPE yyvsa[YYINITDEPTH];
2192 YYSTYPE *yyvs = yyvsa;
2193 YYSTYPE *yyvsp;
2194
2195
2196
Reid Spencere7c3c602006-11-30 06:36:44 +00002197#define YYPOPSTACK (yyvsp--, yyssp--)
2198
Jim Laskey2792cfb2006-12-06 11:03:10 +00002199 YYSIZE_T yystacksize = YYINITDEPTH;
Reid Spencere7c3c602006-11-30 06:36:44 +00002200
Jim Laskey2792cfb2006-12-06 11:03:10 +00002201 /* The variables used to return semantic value and location from the
2202 action routines. */
2203 YYSTYPE yyval;
Reid Spencere7c3c602006-11-30 06:36:44 +00002204
2205
Jim Laskey2792cfb2006-12-06 11:03:10 +00002206 /* When reducing, the number of symbols on the RHS of the reduced
2207 rule. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002208 int yylen;
2209
Jim Laskey2792cfb2006-12-06 11:03:10 +00002210 YYDPRINTF ((stderr, "Starting parse\n"));
Reid Spencere7c3c602006-11-30 06:36:44 +00002211
2212 yystate = 0;
2213 yyerrstatus = 0;
2214 yynerrs = 0;
2215 yychar = YYEMPTY; /* Cause a token to be read. */
2216
2217 /* Initialize stack pointers.
2218 Waste one element of value and location stack
2219 so that they stay on the same level as the state stack.
2220 The wasted elements are never initialized. */
2221
Jim Laskey2792cfb2006-12-06 11:03:10 +00002222 yyssp = yyss;
Reid Spencere7c3c602006-11-30 06:36:44 +00002223 yyvsp = yyvs;
2224
Jim Laskey2792cfb2006-12-06 11:03:10 +00002225 goto yysetstate;
Reid Spencere7c3c602006-11-30 06:36:44 +00002226
Jim Laskey2792cfb2006-12-06 11:03:10 +00002227/*------------------------------------------------------------.
2228| yynewstate -- Push a new state, which is found in yystate. |
2229`------------------------------------------------------------*/
2230 yynewstate:
2231 /* In all cases, when you get here, the value and location stacks
2232 have just been pushed. so pushing a state here evens the stacks.
2233 */
2234 yyssp++;
Reid Spencere7c3c602006-11-30 06:36:44 +00002235
Jim Laskey2792cfb2006-12-06 11:03:10 +00002236 yysetstate:
2237 *yyssp = yystate;
2238
2239 if (yyss + yystacksize - 1 <= yyssp)
Reid Spencere7c3c602006-11-30 06:36:44 +00002240 {
2241 /* Get the current used size of the three stacks, in elements. */
Jim Laskey2792cfb2006-12-06 11:03:10 +00002242 YYSIZE_T yysize = yyssp - yyss + 1;
Reid Spencere7c3c602006-11-30 06:36:44 +00002243
2244#ifdef yyoverflow
Jim Laskey2792cfb2006-12-06 11:03:10 +00002245 {
2246 /* Give user a chance to reallocate the stack. Use copies of
2247 these so that the &'s don't force the real ones into
2248 memory. */
2249 YYSTYPE *yyvs1 = yyvs;
2250 short int *yyss1 = yyss;
Reid Spencere7c3c602006-11-30 06:36:44 +00002251
Jim Laskey2792cfb2006-12-06 11:03:10 +00002252
2253 /* Each stack pointer address is followed by the size of the
2254 data in use in that stack, in bytes. This used to be a
2255 conditional around just the two extra args, but that might
2256 be undefined if yyoverflow is a macro. */
2257 yyoverflow (YY_("memory exhausted"),
2258 &yyss1, yysize * sizeof (*yyssp),
2259 &yyvs1, yysize * sizeof (*yyvsp),
2260
2261 &yystacksize);
2262
2263 yyss = yyss1;
2264 yyvs = yyvs1;
2265 }
Reid Spencere7c3c602006-11-30 06:36:44 +00002266#else /* no yyoverflow */
Jim Laskey2792cfb2006-12-06 11:03:10 +00002267# ifndef YYSTACK_RELOCATE
2268 goto yyexhaustedlab;
2269# else
Reid Spencere7c3c602006-11-30 06:36:44 +00002270 /* Extend the stack our own way. */
Jim Laskey2792cfb2006-12-06 11:03:10 +00002271 if (YYMAXDEPTH <= yystacksize)
2272 goto yyexhaustedlab;
Reid Spencere7c3c602006-11-30 06:36:44 +00002273 yystacksize *= 2;
Jim Laskey2792cfb2006-12-06 11:03:10 +00002274 if (YYMAXDEPTH < yystacksize)
Reid Spencere7c3c602006-11-30 06:36:44 +00002275 yystacksize = YYMAXDEPTH;
Jim Laskey2792cfb2006-12-06 11:03:10 +00002276
2277 {
2278 short int *yyss1 = yyss;
2279 union yyalloc *yyptr =
2280 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2281 if (! yyptr)
2282 goto yyexhaustedlab;
2283 YYSTACK_RELOCATE (yyss);
2284 YYSTACK_RELOCATE (yyvs);
2285
2286# undef YYSTACK_RELOCATE
2287 if (yyss1 != yyssa)
2288 YYSTACK_FREE (yyss1);
2289 }
2290# endif
Reid Spencere7c3c602006-11-30 06:36:44 +00002291#endif /* no yyoverflow */
2292
Jim Laskey2792cfb2006-12-06 11:03:10 +00002293 yyssp = yyss + yysize - 1;
2294 yyvsp = yyvs + yysize - 1;
Reid Spencere7c3c602006-11-30 06:36:44 +00002295
2296
Jim Laskey2792cfb2006-12-06 11:03:10 +00002297 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2298 (unsigned long int) yystacksize));
2299
2300 if (yyss + yystacksize - 1 <= yyssp)
Reid Spencere7c3c602006-11-30 06:36:44 +00002301 YYABORT;
2302 }
2303
Jim Laskey2792cfb2006-12-06 11:03:10 +00002304 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
Reid Spencere7c3c602006-11-30 06:36:44 +00002305
2306 goto yybackup;
Jim Laskey2792cfb2006-12-06 11:03:10 +00002307
2308/*-----------.
2309| yybackup. |
2310`-----------*/
2311yybackup:
Reid Spencere7c3c602006-11-30 06:36:44 +00002312
2313/* Do appropriate processing given the current state. */
Jim Laskey2792cfb2006-12-06 11:03:10 +00002314/* Read a look-ahead token if we need one and don't already have one. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002315/* yyresume: */
2316
Jim Laskey2792cfb2006-12-06 11:03:10 +00002317 /* First try to decide what to do without reference to look-ahead token. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002318
2319 yyn = yypact[yystate];
Jim Laskey2792cfb2006-12-06 11:03:10 +00002320 if (yyn == YYPACT_NINF)
Reid Spencere7c3c602006-11-30 06:36:44 +00002321 goto yydefault;
2322
Jim Laskey2792cfb2006-12-06 11:03:10 +00002323 /* Not known => get a look-ahead token if don't already have one. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002324
Jim Laskey2792cfb2006-12-06 11:03:10 +00002325 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002326 if (yychar == YYEMPTY)
2327 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00002328 YYDPRINTF ((stderr, "Reading a token: "));
Reid Spencere7c3c602006-11-30 06:36:44 +00002329 yychar = YYLEX;
2330 }
2331
Jim Laskey2792cfb2006-12-06 11:03:10 +00002332 if (yychar <= YYEOF)
Reid Spencere7c3c602006-11-30 06:36:44 +00002333 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00002334 yychar = yytoken = YYEOF;
2335 YYDPRINTF ((stderr, "Now at end of input.\n"));
Reid Spencere7c3c602006-11-30 06:36:44 +00002336 }
2337 else
2338 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00002339 yytoken = YYTRANSLATE (yychar);
2340 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
Reid Spencere7c3c602006-11-30 06:36:44 +00002341 }
2342
Jim Laskey2792cfb2006-12-06 11:03:10 +00002343 /* If the proper action on seeing token YYTOKEN is to reduce or to
2344 detect an error, take that action. */
2345 yyn += yytoken;
2346 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
Reid Spencere7c3c602006-11-30 06:36:44 +00002347 goto yydefault;
2348 yyn = yytable[yyn];
Jim Laskey2792cfb2006-12-06 11:03:10 +00002349 if (yyn <= 0)
Reid Spencere7c3c602006-11-30 06:36:44 +00002350 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00002351 if (yyn == 0 || yyn == YYTABLE_NINF)
Reid Spencere7c3c602006-11-30 06:36:44 +00002352 goto yyerrlab;
2353 yyn = -yyn;
2354 goto yyreduce;
2355 }
2356
2357 if (yyn == YYFINAL)
2358 YYACCEPT;
2359
Jim Laskey2792cfb2006-12-06 11:03:10 +00002360 /* Shift the look-ahead token. */
2361 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
Reid Spencere7c3c602006-11-30 06:36:44 +00002362
2363 /* Discard the token being shifted unless it is eof. */
2364 if (yychar != YYEOF)
2365 yychar = YYEMPTY;
2366
2367 *++yyvsp = yylval;
2368
Jim Laskey2792cfb2006-12-06 11:03:10 +00002369
2370 /* Count tokens shifted since error; after three, turn off error
2371 status. */
2372 if (yyerrstatus)
2373 yyerrstatus--;
Reid Spencere7c3c602006-11-30 06:36:44 +00002374
2375 yystate = yyn;
2376 goto yynewstate;
2377
Jim Laskey98ba5882006-12-06 10:57:33 +00002378
Jim Laskey2792cfb2006-12-06 11:03:10 +00002379/*-----------------------------------------------------------.
2380| yydefault -- do the default action for the current state. |
2381`-----------------------------------------------------------*/
2382yydefault:
Reid Spencere7c3c602006-11-30 06:36:44 +00002383 yyn = yydefact[yystate];
2384 if (yyn == 0)
2385 goto yyerrlab;
Jim Laskey2792cfb2006-12-06 11:03:10 +00002386 goto yyreduce;
Reid Spencere7c3c602006-11-30 06:36:44 +00002387
Jim Laskey2792cfb2006-12-06 11:03:10 +00002388
2389/*-----------------------------.
2390| yyreduce -- Do a reduction. |
2391`-----------------------------*/
Reid Spencere7c3c602006-11-30 06:36:44 +00002392yyreduce:
Jim Laskey2792cfb2006-12-06 11:03:10 +00002393 /* yyn is the number of a rule to reduce with. */
Reid Spencere7c3c602006-11-30 06:36:44 +00002394 yylen = yyr2[yyn];
2395
Jim Laskey2792cfb2006-12-06 11:03:10 +00002396 /* If YYLEN is nonzero, implement the default value of the action:
2397 `$$ = $1'.
2398
2399 Otherwise, the following line sets YYVAL to garbage.
2400 This behavior is undocumented and Bison
2401 users should not rely upon it. Assigning to YYVAL
2402 unconditionally makes the parser a bit smaller, and it avoids a
2403 GCC warning that YYVAL may be used uninitialized. */
2404 yyval = yyvsp[1-yylen];
2405
2406
2407 YY_REDUCE_PRINT (yyn);
2408 switch (yyn)
Reid Spencere7c3c602006-11-30 06:36:44 +00002409 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00002410 case 81:
Reid Spencer187ccf82006-12-09 16:57:22 +00002411#line 373 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002412 {
2413 (yyval.String) = (yyvsp[-1].String);
2414 ;}
2415 break;
Reid Spencere7c3c602006-11-30 06:36:44 +00002416
Jim Laskey2792cfb2006-12-06 11:03:10 +00002417 case 82:
Reid Spencer187ccf82006-12-09 16:57:22 +00002418#line 376 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002419 {
2420 (yyval.String) = new std::string("");
2421 ;}
2422 break;
Reid Spencere7c3c602006-11-30 06:36:44 +00002423
Jim Laskey2792cfb2006-12-06 11:03:10 +00002424 case 90:
Reid Spencer187ccf82006-12-09 16:57:22 +00002425#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002426 { (yyval.String) = new std::string(""); ;}
2427 break;
Reid Spencere77e35e2006-12-01 20:26:20 +00002428
Jim Laskey2792cfb2006-12-06 11:03:10 +00002429 case 97:
Reid Spencer187ccf82006-12-09 16:57:22 +00002430#line 388 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002431 {
2432 *(yyvsp[-1].String) += *(yyvsp[0].String);
2433 delete (yyvsp[0].String);
2434 (yyval.String) = (yyvsp[-1].String);
2435 ;}
2436 break;
Reid Spencer16244f42006-12-01 21:10:07 +00002437
Jim Laskey2792cfb2006-12-06 11:03:10 +00002438 case 98:
Reid Spencer187ccf82006-12-09 16:57:22 +00002439#line 393 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002440 { (yyval.String) = new std::string(""); ;}
2441 break;
Reid Spencere7c3c602006-11-30 06:36:44 +00002442
Jim Laskey2792cfb2006-12-06 11:03:10 +00002443 case 99:
Reid Spencer187ccf82006-12-09 16:57:22 +00002444#line 398 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002445 { (yyval.String) = new std::string(); ;}
2446 break;
2447
2448 case 100:
Reid Spencer187ccf82006-12-09 16:57:22 +00002449#line 399 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002450 { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;}
2451 break;
2452
2453 case 101:
Reid Spencer187ccf82006-12-09 16:57:22 +00002454#line 402 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002455 { (yyval.String) = new std::string(); ;}
2456 break;
2457
2458 case 102:
Reid Spencer187ccf82006-12-09 16:57:22 +00002459#line 403 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002460 {
2461 (yyvsp[-1].String)->insert(0, ", ");
2462 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2463 delete (yyvsp[0].String);
2464 (yyval.String) = (yyvsp[-1].String);
2465 ;}
2466 break;
2467
2468 case 103:
Reid Spencer187ccf82006-12-09 16:57:22 +00002469#line 411 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002470 {
2471 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2472 delete (yyvsp[0].String);
2473 (yyval.String) = (yyvsp[-1].String);
2474 ;}
2475 break;
2476
2477 case 104:
Reid Spencer187ccf82006-12-09 16:57:22 +00002478#line 417 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002479 { (yyval.String) = new std::string(); ;}
2480 break;
2481
2482 case 106:
Reid Spencer187ccf82006-12-09 16:57:22 +00002483#line 421 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002484 { (yyval.String) = new std::string(); ;}
2485 break;
2486
2487 case 107:
Reid Spencer187ccf82006-12-09 16:57:22 +00002488#line 422 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002489 {
2490 (yyvsp[-1].String)->insert(0, ", ");
2491 if (!(yyvsp[0].String)->empty())
2492 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2493 delete (yyvsp[0].String);
2494 (yyval.String) = (yyvsp[-1].String);
2495 ;}
2496 break;
2497
2498 case 109:
Reid Spencer187ccf82006-12-09 16:57:22 +00002499#line 432 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002500 {
2501 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2502 delete (yyvsp[0].String);
2503 (yyval.String) = (yyvsp[-1].String);
2504 ;}
2505 break;
2506
2507 case 127:
Reid Spencer187ccf82006-12-09 16:57:22 +00002508#line 454 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002509 {
2510 (yyval.Type).newTy = (yyvsp[0].String);
2511 (yyval.Type).oldTy = OpaqueTy;
2512 ;}
2513 break;
2514
2515 case 128:
Reid Spencer187ccf82006-12-09 16:57:22 +00002516#line 458 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002517 {
2518 (yyval.Type).newTy = (yyvsp[0].String);
2519 (yyval.Type).oldTy = UnresolvedTy;
2520 ;}
2521 break;
2522
2523 case 129:
Reid Spencer187ccf82006-12-09 16:57:22 +00002524#line 462 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002525 {
2526 (yyval.Type) = (yyvsp[0].Type);
2527 ;}
2528 break;
2529
2530 case 130:
Reid Spencer187ccf82006-12-09 16:57:22 +00002531#line 465 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002532 { // Type UpReference
2533 (yyvsp[0].String)->insert(0, "\\");
2534 (yyval.Type).newTy = (yyvsp[0].String);
2535 (yyval.Type).oldTy = NumericTy;
2536 ;}
2537 break;
2538
2539 case 131:
Reid Spencer187ccf82006-12-09 16:57:22 +00002540#line 470 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002541 { // Function derived type?
2542 *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )";
2543 delete (yyvsp[-1].String);
2544 (yyval.Type).newTy = (yyvsp[-3].Type).newTy;
2545 (yyval.Type).oldTy = FunctionTy;
2546 ;}
2547 break;
2548
2549 case 132:
Reid Spencer187ccf82006-12-09 16:57:22 +00002550#line 476 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002551 { // Sized array type?
2552 (yyvsp[-3].String)->insert(0,"[ ");
2553 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]";
2554 delete (yyvsp[-1].Type).newTy;
2555 (yyval.Type).newTy = (yyvsp[-3].String);
2556 (yyval.Type).oldTy = ArrayTy;
2557 (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy;
2558 ;}
2559 break;
2560
2561 case 133:
Reid Spencer187ccf82006-12-09 16:57:22 +00002562#line 484 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002563 { // Packed array type?
2564 (yyvsp[-3].String)->insert(0,"< ");
2565 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >";
2566 delete (yyvsp[-1].Type).newTy;
2567 (yyval.Type).newTy = (yyvsp[-3].String);
2568 (yyval.Type).oldTy = PackedTy;
2569 (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy;
2570 ;}
2571 break;
2572
2573 case 134:
Reid Spencer187ccf82006-12-09 16:57:22 +00002574#line 492 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002575 { // Structure type?
2576 (yyvsp[-1].String)->insert(0, "{ ");
2577 *(yyvsp[-1].String) += " }";
2578 (yyval.Type).newTy = (yyvsp[-1].String);
2579 (yyval.Type).oldTy = StructTy;
2580 ;}
2581 break;
2582
2583 case 135:
Reid Spencer187ccf82006-12-09 16:57:22 +00002584#line 498 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002585 { // Empty structure type?
2586 (yyval.Type).newTy = new std::string("{}");
2587 (yyval.Type).oldTy = StructTy;
2588 ;}
2589 break;
2590
2591 case 136:
Reid Spencer187ccf82006-12-09 16:57:22 +00002592#line 502 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002593 { // Pointer type?
2594 *(yyvsp[-1].Type).newTy += '*';
2595 (yyval.Type).elemTy = (yyvsp[-1].Type).oldTy;
2596 (yyvsp[-1].Type).oldTy = PointerTy;
2597 (yyval.Type) = (yyvsp[-1].Type);
2598 ;}
2599 break;
2600
2601 case 137:
Reid Spencer187ccf82006-12-09 16:57:22 +00002602#line 513 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002603 {
2604 (yyval.String) = (yyvsp[0].Type).newTy;
2605 ;}
2606 break;
2607
2608 case 138:
Reid Spencer187ccf82006-12-09 16:57:22 +00002609#line 516 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002610 {
2611 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy;
2612 delete (yyvsp[0].Type).newTy;
2613 (yyval.String) = (yyvsp[-2].String);
2614 ;}
2615 break;
2616
2617 case 140:
Reid Spencer187ccf82006-12-09 16:57:22 +00002618#line 525 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002619 {
2620 *(yyvsp[-2].String) += ", ...";
2621 delete (yyvsp[0].String);
2622 (yyval.String) = (yyvsp[-2].String);
2623 ;}
2624 break;
2625
2626 case 141:
Reid Spencer187ccf82006-12-09 16:57:22 +00002627#line 530 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002628 {
2629 (yyval.String) = (yyvsp[0].String);
2630 ;}
2631 break;
2632
2633 case 142:
Reid Spencer187ccf82006-12-09 16:57:22 +00002634#line 533 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002635 {
2636 (yyval.String) = new std::string();
2637 ;}
2638 break;
2639
2640 case 143:
Reid Spencer187ccf82006-12-09 16:57:22 +00002641#line 543 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002642 { // Nonempty unsized arr
2643 (yyval.Const).type = (yyvsp[-3].Type);
2644 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2645 *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]";
2646 delete (yyvsp[-1].String);
2647 ;}
2648 break;
2649
2650 case 144:
Reid Spencer187ccf82006-12-09 16:57:22 +00002651#line 549 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002652 {
2653 (yyval.Const).type = (yyvsp[-2].Type);
2654 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2655 *(yyval.Const).cnst += "[ ]";
2656 ;}
2657 break;
2658
2659 case 145:
Reid Spencer187ccf82006-12-09 16:57:22 +00002660#line 554 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002661 {
2662 (yyval.Const).type = (yyvsp[-2].Type);
2663 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2664 *(yyval.Const).cnst += " c" + *(yyvsp[0].String);
2665 delete (yyvsp[0].String);
2666 ;}
2667 break;
2668
2669 case 146:
Reid Spencer187ccf82006-12-09 16:57:22 +00002670#line 560 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002671 { // Nonempty unsized arr
2672 (yyval.Const).type = (yyvsp[-3].Type);
2673 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2674 *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >";
2675 delete (yyvsp[-1].String);
2676 ;}
2677 break;
2678
2679 case 147:
Reid Spencer187ccf82006-12-09 16:57:22 +00002680#line 566 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002681 {
2682 (yyval.Const).type = (yyvsp[-3].Type);
2683 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2684 *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }";
2685 delete (yyvsp[-1].String);
2686 ;}
2687 break;
2688
2689 case 148:
Reid Spencer187ccf82006-12-09 16:57:22 +00002690#line 572 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002691 {
2692 (yyval.Const).type = (yyvsp[-2].Type);
2693 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2694 *(yyval.Const).cnst += " {}";
2695 ;}
2696 break;
2697
2698 case 149:
Reid Spencer187ccf82006-12-09 16:57:22 +00002699#line 577 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002700 {
2701 (yyval.Const).type = (yyvsp[-1].Type);
2702 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2703 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2704 delete (yyvsp[0].String);
2705 ;}
2706 break;
2707
2708 case 150:
Reid Spencerf0cf1322006-12-07 04:23:03 +00002709#line 583 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002710 {
2711 (yyval.Const).type = (yyvsp[-1].Type);
2712 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2713 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2714 delete (yyvsp[0].String);
2715 ;}
2716 break;
2717
Reid Spencer187ccf82006-12-09 16:57:22 +00002718 case 151:
Reid Spencerf0cf1322006-12-07 04:23:03 +00002719#line 589 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002720 {
2721 (yyval.Const).type = (yyvsp[-1].Type);
2722 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2723 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2724 delete (yyvsp[0].String);
2725 ;}
2726 break;
2727
Reid Spencer187ccf82006-12-09 16:57:22 +00002728 case 152:
Reid Spencerf0cf1322006-12-07 04:23:03 +00002729#line 595 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002730 {
2731 (yyval.Const).type = (yyvsp[-1].Type);
2732 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2733 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2734 delete (yyvsp[0].String);
2735 ;}
2736 break;
2737
Reid Spencer187ccf82006-12-09 16:57:22 +00002738 case 153:
Reid Spencerf0cf1322006-12-07 04:23:03 +00002739#line 601 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer187ccf82006-12-09 16:57:22 +00002740 {
2741 (yyval.Const).type = (yyvsp[-1].Type);
2742 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2743 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2744 delete (yyvsp[0].String);
2745 ;}
2746 break;
2747
2748 case 154:
2749#line 607 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002750 { // integral constants
2751 (yyval.Const).type = (yyvsp[-1].Type);
2752 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2753 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2754 delete (yyvsp[0].String);
2755 ;}
2756 break;
2757
2758 case 155:
Reid Spencer187ccf82006-12-09 16:57:22 +00002759#line 613 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002760 { // integral constants
2761 (yyval.Const).type = (yyvsp[-1].Type);
2762 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2763 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2764 delete (yyvsp[0].String);
2765 ;}
2766 break;
2767
2768 case 156:
Reid Spencer187ccf82006-12-09 16:57:22 +00002769#line 619 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002770 { // Boolean constants
2771 (yyval.Const).type = (yyvsp[-1].Type);
2772 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2773 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2774 delete (yyvsp[0].String);
2775 ;}
2776 break;
2777
2778 case 157:
Reid Spencer187ccf82006-12-09 16:57:22 +00002779#line 625 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002780 { // Boolean constants
2781 (yyval.Const).type = (yyvsp[-1].Type);
2782 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2783 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2784 delete (yyvsp[0].String);
2785 ;}
2786 break;
2787
2788 case 158:
Reid Spencer187ccf82006-12-09 16:57:22 +00002789#line 631 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002790 { // Float & Double constants
2791 (yyval.Const).type = (yyvsp[-1].Type);
2792 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2793 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2794 delete (yyvsp[0].String);
2795 ;}
2796 break;
2797
2798 case 159:
Reid Spencer187ccf82006-12-09 16:57:22 +00002799#line 639 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002800 {
2801 std::string source = *(yyvsp[-3].Const).cnst;
2802 TypeInfo DstTy = (yyvsp[-1].Type);
Reid Spencera50d5962006-12-02 04:11:07 +00002803 ResolveType(DstTy);
Jim Laskey2792cfb2006-12-06 11:03:10 +00002804 if (*(yyvsp[-5].String) == "cast") {
Reid Spencera50d5962006-12-02 04:11:07 +00002805 // Call getCastUpgrade to upgrade the old cast
Jim Laskey2792cfb2006-12-06 11:03:10 +00002806 (yyval.String) = new std::string(getCastUpgrade(source, (yyvsp[-3].Const).type, (yyvsp[-1].Type), true));
Reid Spencera50d5962006-12-02 04:11:07 +00002807 } else {
2808 // Nothing to upgrade, just create the cast constant expr
Jim Laskey2792cfb2006-12-06 11:03:10 +00002809 (yyval.String) = new std::string(*(yyvsp[-5].String));
2810 *(yyval.String) += "( " + source + " to " + *(yyvsp[-1].Type).newTy + ")";
Reid Spencer280d8012006-12-01 23:40:53 +00002811 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00002812 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
2813 ;}
2814 break;
2815
2816 case 160:
Reid Spencer187ccf82006-12-09 16:57:22 +00002817#line 653 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002818 {
2819 *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst;
2820 for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) {
2821 ValueInfo& VI = (*(yyvsp[-1].ValList))[i];
2822 *(yyvsp[-4].String) += ", " + *VI.val;
Reid Spencerf8483652006-12-02 15:16:01 +00002823 VI.destroy();
2824 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00002825 *(yyvsp[-4].String) += ")";
2826 (yyval.String) = (yyvsp[-4].String);
2827 (yyvsp[-2].Const).destroy();
2828 delete (yyvsp[-1].ValList);
2829 ;}
2830 break;
2831
2832 case 161:
Reid Spencer187ccf82006-12-09 16:57:22 +00002833#line 665 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002834 {
2835 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2836 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2837 (yyval.String) = (yyvsp[-7].String);
2838 ;}
2839 break;
2840
2841 case 162:
Reid Spencer187ccf82006-12-09 16:57:22 +00002842#line 670 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002843 {
2844 const char* op = getDivRemOpcode(*(yyvsp[-5].String), (yyvsp[-3].Const).type);
2845 (yyval.String) = new std::string(op);
2846 *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2847 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2848 ;}
2849 break;
2850
2851 case 163:
Reid Spencer187ccf82006-12-09 16:57:22 +00002852#line 676 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002853 {
2854 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2855 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2856 (yyval.String) = (yyvsp[-5].String);
2857 ;}
2858 break;
2859
2860 case 164:
Reid Spencer187ccf82006-12-09 16:57:22 +00002861#line 681 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002862 {
Reid Spencer229e9362006-12-02 22:14:11 +00002863#if UPGRADE_SETCOND_OPS
Jim Laskey2792cfb2006-12-06 11:03:10 +00002864 *(yyvsp[-5].String) = getCompareOp(*(yyvsp[-5].String), (yyvsp[-3].Const).type);
Reid Spencer229e9362006-12-02 22:14:11 +00002865#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00002866 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2867 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2868 (yyval.String) = (yyvsp[-5].String);
2869 ;}
2870 break;
2871
2872 case 165:
Reid Spencer187ccf82006-12-09 16:57:22 +00002873#line 689 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002874 {
2875 *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2876 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2877 (yyval.String) = (yyvsp[-6].String);
2878 ;}
2879 break;
2880
2881 case 166:
Reid Spencer187ccf82006-12-09 16:57:22 +00002882#line 694 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002883 {
2884 *(yyvsp[-6].String) += "(" + *(yyvsp[-5].String) + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2885 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2886 (yyval.String) = (yyvsp[-6].String);
2887 ;}
2888 break;
2889
2890 case 167:
Reid Spencer187ccf82006-12-09 16:57:22 +00002891#line 699 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002892 {
2893 const char* shiftop = (yyvsp[-5].String)->c_str();
2894 if (*(yyvsp[-5].String) == "shr")
2895 shiftop = ((yyvsp[-3].Const).type.isUnsigned()) ? "lshr" : "ashr";
2896 (yyval.String) = new std::string(shiftop);
2897 *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2898 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2899 ;}
2900 break;
2901
2902 case 168:
Reid Spencer187ccf82006-12-09 16:57:22 +00002903#line 707 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002904 {
2905 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2906 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2907 (yyval.String) = (yyvsp[-5].String);
2908 ;}
2909 break;
2910
2911 case 169:
Reid Spencer187ccf82006-12-09 16:57:22 +00002912#line 712 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002913 {
2914 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2915 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2916 (yyval.String) = (yyvsp[-7].String);
2917 ;}
2918 break;
2919
2920 case 170:
Reid Spencer187ccf82006-12-09 16:57:22 +00002921#line 717 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002922 {
2923 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2924 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2925 (yyval.String) = (yyvsp[-7].String);
2926 ;}
2927 break;
2928
2929 case 171:
Reid Spencer187ccf82006-12-09 16:57:22 +00002930#line 727 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002931 {
2932 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
2933 (yyvsp[0].Const).destroy();
2934 (yyval.String) = (yyvsp[-2].String);
2935 ;}
2936 break;
2937
2938 case 172:
Reid Spencer187ccf82006-12-09 16:57:22 +00002939#line 732 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002940 { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
2941 break;
2942
2943 case 175:
Reid Spencer187ccf82006-12-09 16:57:22 +00002944#line 747 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002945 {
2946;}
2947 break;
2948
2949 case 176:
Reid Spencer187ccf82006-12-09 16:57:22 +00002950#line 752 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002951 {
2952 (yyval.String) = 0;
2953 ;}
2954 break;
2955
2956 case 177:
Reid Spencer187ccf82006-12-09 16:57:22 +00002957#line 755 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002958 {
2959 *O << *(yyvsp[0].String) << "\n";
2960 delete (yyvsp[0].String);
2961 (yyval.String) = 0;
2962 ;}
2963 break;
2964
2965 case 178:
Reid Spencer187ccf82006-12-09 16:57:22 +00002966#line 760 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002967 {
2968 *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
2969 (yyval.String) = 0;
2970 ;}
2971 break;
2972
2973 case 179:
Reid Spencer187ccf82006-12-09 16:57:22 +00002974#line 764 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002975 {
Reid Spencerd154b572006-12-01 20:36:40 +00002976 *O << "implementation\n";
Jim Laskey2792cfb2006-12-06 11:03:10 +00002977 (yyval.String) = 0;
2978 ;}
2979 break;
2980
2981 case 180:
Reid Spencer187ccf82006-12-09 16:57:22 +00002982#line 768 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002983 { (yyval.String) = 0; ;}
2984 break;
2985
2986 case 182:
Reid Spencer187ccf82006-12-09 16:57:22 +00002987#line 770 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002988 { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "external"; ;}
2989 break;
2990
2991 case 183:
Reid Spencer187ccf82006-12-09 16:57:22 +00002992#line 773 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00002993 {
2994 EnumeratedTypes.push_back((yyvsp[0].Type));
2995 if (!(yyvsp[-2].String)->empty()) {
2996 NamedTypes[*(yyvsp[-2].String)].newTy = new std::string(*(yyvsp[0].Type).newTy);
2997 NamedTypes[*(yyvsp[-2].String)].oldTy = (yyvsp[0].Type).oldTy;
2998 NamedTypes[*(yyvsp[-2].String)].elemTy = (yyvsp[0].Type).elemTy;
2999 *O << *(yyvsp[-2].String) << " = ";
Reid Spencera50d5962006-12-02 04:11:07 +00003000 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003001 *O << "type " << *(yyvsp[0].Type).newTy << "\n";
3002 delete (yyvsp[-2].String); delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3003 (yyval.String) = 0;
3004 ;}
3005 break;
3006
3007 case 184:
Reid Spencer187ccf82006-12-09 16:57:22 +00003008#line 785 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003009 { // Function prototypes can be in const pool
3010 *O << *(yyvsp[0].String) << "\n";
3011 delete (yyvsp[0].String);
3012 (yyval.String) = 0;
3013 ;}
3014 break;
3015
3016 case 185:
Reid Spencer187ccf82006-12-09 16:57:22 +00003017#line 790 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003018 { // Asm blocks can be in the const pool
3019 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
3020 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3021 (yyval.String) = 0;
3022 ;}
3023 break;
3024
3025 case 186:
Reid Spencer187ccf82006-12-09 16:57:22 +00003026#line 795 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003027 {
3028 if (!(yyvsp[-4].String)->empty()) {
3029 *O << *(yyvsp[-4].String) << " = ";
3030 Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Const).type.clone();
Reid Spencerf12ee422006-12-05 19:21:25 +00003031 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003032 *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " " << *(yyvsp[0].String) << "\n";
3033 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String);
3034 (yyval.String) = 0;
3035 ;}
3036 break;
3037
3038 case 187:
Reid Spencer187ccf82006-12-09 16:57:22 +00003039#line 804 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003040 {
3041 if (!(yyvsp[-4].String)->empty()) {
3042 *O << *(yyvsp[-4].String) << " = ";
3043 Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone();
Reid Spencerf12ee422006-12-05 19:21:25 +00003044 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003045 *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3046 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3047 (yyval.String) = 0;
3048 ;}
3049 break;
3050
3051 case 188:
Reid Spencer187ccf82006-12-09 16:57:22 +00003052#line 813 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003053 {
3054 if (!(yyvsp[-4].String)->empty()) {
3055 *O << *(yyvsp[-4].String) << " = ";
3056 Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone();
Reid Spencerf12ee422006-12-05 19:21:25 +00003057 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003058 *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3059 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3060 (yyval.String) = 0;
3061 ;}
3062 break;
3063
3064 case 189:
Reid Spencer187ccf82006-12-09 16:57:22 +00003065#line 822 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003066 {
3067 if (!(yyvsp[-4].String)->empty()) {
3068 *O << *(yyvsp[-4].String) << " = ";
3069 Globals[*(yyvsp[-4].String)] = (yyvsp[-1].Type).clone();
Reid Spencerf12ee422006-12-05 19:21:25 +00003070 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003071 *O << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3072 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3073 (yyval.String) = 0;
3074 ;}
3075 break;
3076
3077 case 190:
Reid Spencer187ccf82006-12-09 16:57:22 +00003078#line 831 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003079 {
3080 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
3081 delete (yyvsp[-1].String); delete (yyvsp[0].String);
3082 (yyval.String) = 0;
3083 ;}
3084 break;
3085
3086 case 191:
Reid Spencer187ccf82006-12-09 16:57:22 +00003087#line 836 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003088 {
3089 *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
3090 delete (yyvsp[-2].String); delete (yyvsp[0].String);
3091 (yyval.String) = 0;
3092 ;}
3093 break;
3094
3095 case 192:
Reid Spencer187ccf82006-12-09 16:57:22 +00003096#line 841 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003097 {
3098 (yyval.String) = 0;
3099 ;}
3100 break;
3101
3102 case 196:
Reid Spencer187ccf82006-12-09 16:57:22 +00003103#line 851 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003104 {
3105 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
3106 delete (yyvsp[0].String);
3107 (yyval.String) = (yyvsp[-2].String);
3108 ;}
3109 break;
3110
3111 case 197:
Reid Spencer187ccf82006-12-09 16:57:22 +00003112#line 856 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003113 {
3114 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
3115 if (*(yyvsp[0].String) == "64")
Reid Spencere77e35e2006-12-01 20:26:20 +00003116 SizeOfPointer = 64;
Jim Laskey2792cfb2006-12-06 11:03:10 +00003117 delete (yyvsp[0].String);
3118 (yyval.String) = (yyvsp[-2].String);
3119 ;}
3120 break;
3121
3122 case 198:
Reid Spencer187ccf82006-12-09 16:57:22 +00003123#line 863 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003124 {
3125 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
3126 delete (yyvsp[0].String);
3127 (yyval.String) = (yyvsp[-2].String);
3128 ;}
3129 break;
3130
3131 case 199:
Reid Spencer187ccf82006-12-09 16:57:22 +00003132#line 868 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003133 {
3134 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
3135 delete (yyvsp[0].String);
3136 (yyval.String) = (yyvsp[-2].String);
3137 ;}
3138 break;
3139
3140 case 200:
Reid Spencer187ccf82006-12-09 16:57:22 +00003141#line 875 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003142 {
3143 (yyvsp[-1].String)->insert(0, "[ ");
3144 *(yyvsp[-1].String) += " ]";
3145 (yyval.String) = (yyvsp[-1].String);
3146 ;}
3147 break;
3148
3149 case 201:
Reid Spencer187ccf82006-12-09 16:57:22 +00003150#line 882 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003151 {
3152 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
3153 delete (yyvsp[0].String);
3154 (yyval.String) = (yyvsp[-2].String);
3155 ;}
3156 break;
3157
3158 case 203:
Reid Spencer187ccf82006-12-09 16:57:22 +00003159#line 888 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003160 {
3161 (yyval.String) = new std::string();
3162 ;}
3163 break;
3164
3165 case 207:
Reid Spencer187ccf82006-12-09 16:57:22 +00003166#line 897 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003167 { (yyval.String) = new std::string(); ;}
3168 break;
3169
3170 case 208:
Reid Spencer187ccf82006-12-09 16:57:22 +00003171#line 899 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003172 {
3173 (yyval.String) = (yyvsp[-1].Type).newTy;
3174 if (!(yyvsp[0].String)->empty())
3175 *(yyval.String) += " " + *(yyvsp[0].String);
3176 delete (yyvsp[0].String);
3177;}
3178 break;
3179
3180 case 209:
Reid Spencer187ccf82006-12-09 16:57:22 +00003181#line 906 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003182 {
3183 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
3184 delete (yyvsp[0].String);
3185 ;}
3186 break;
3187
3188 case 210:
Reid Spencer187ccf82006-12-09 16:57:22 +00003189#line 910 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003190 {
3191 (yyval.String) = (yyvsp[0].String);
3192 ;}
3193 break;
3194
3195 case 211:
Reid Spencer187ccf82006-12-09 16:57:22 +00003196#line 914 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003197 {
3198 (yyval.String) = (yyvsp[0].String);
3199 ;}
3200 break;
3201
3202 case 212:
Reid Spencer187ccf82006-12-09 16:57:22 +00003203#line 917 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003204 {
3205 *(yyvsp[-2].String) += ", ...";
3206 (yyval.String) = (yyvsp[-2].String);
3207 delete (yyvsp[0].String);
3208 ;}
3209 break;
3210
3211 case 213:
Reid Spencer187ccf82006-12-09 16:57:22 +00003212#line 922 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003213 {
3214 (yyval.String) = (yyvsp[0].String);
3215 ;}
3216 break;
3217
3218 case 214:
Reid Spencer187ccf82006-12-09 16:57:22 +00003219#line 925 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003220 { (yyval.String) = new std::string(); ;}
3221 break;
3222
3223 case 215:
Reid Spencer187ccf82006-12-09 16:57:22 +00003224#line 928 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003225 {
3226 if (!(yyvsp[-7].String)->empty()) {
3227 *(yyvsp[-7].String) += " ";
Reid Spencere77e35e2006-12-01 20:26:20 +00003228 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003229 *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")";
3230 if (!(yyvsp[-1].String)->empty()) {
3231 *(yyvsp[-7].String) += " " + *(yyvsp[-1].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003232 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003233 if (!(yyvsp[0].String)->empty()) {
3234 *(yyvsp[-7].String) += " " + *(yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003235 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003236 (yyvsp[-6].Type).destroy();
3237 delete (yyvsp[-5].String);
3238 delete (yyvsp[-3].String);
3239 delete (yyvsp[-1].String);
3240 delete (yyvsp[0].String);
3241 (yyval.String) = (yyvsp[-7].String);
3242 ;}
3243 break;
3244
3245 case 216:
Reid Spencer187ccf82006-12-09 16:57:22 +00003246#line 947 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003247 { (yyval.String) = new std::string("{"); delete (yyvsp[0].String); ;}
3248 break;
3249
3250 case 217:
Reid Spencer187ccf82006-12-09 16:57:22 +00003251#line 948 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003252 { (yyval.String) = new std::string ("{"); ;}
3253 break;
3254
3255 case 218:
Reid Spencer187ccf82006-12-09 16:57:22 +00003256#line 950 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003257 {
3258 if (!(yyvsp[-2].String)->empty()) {
3259 *O << *(yyvsp[-2].String) << " ";
Reid Spencere77e35e2006-12-01 20:26:20 +00003260 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003261 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
3262 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3263 (yyval.String) = 0;
3264;}
3265 break;
3266
3267 case 219:
Reid Spencer187ccf82006-12-09 16:57:22 +00003268#line 959 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003269 { (yyval.String) = new std::string("}"); delete (yyvsp[0].String); ;}
3270 break;
3271
3272 case 220:
Reid Spencer187ccf82006-12-09 16:57:22 +00003273#line 960 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003274 { (yyval.String) = new std::string("}"); ;}
3275 break;
3276
3277 case 221:
Reid Spencer187ccf82006-12-09 16:57:22 +00003278#line 962 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003279 {
3280 if ((yyvsp[-1].String))
3281 *O << *(yyvsp[-1].String);
3282 *O << '\n' << *(yyvsp[0].String) << "\n";
3283 (yyval.String) = 0;
3284;}
3285 break;
3286
3287 case 222:
Reid Spencer187ccf82006-12-09 16:57:22 +00003288#line 970 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003289 { (yyval.String) = new std::string(); ;}
3290 break;
3291
3292 case 225:
Reid Spencer187ccf82006-12-09 16:57:22 +00003293#line 976 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003294 {
3295 if (!(yyvsp[-1].String)->empty())
3296 *(yyvsp[-2].String) += " " + *(yyvsp[-1].String);
3297 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3298 delete (yyvsp[-1].String);
3299 delete (yyvsp[0].String);
3300 (yyval.String) = (yyvsp[-2].String);
3301 ;}
3302 break;
3303
3304 case 226:
Reid Spencer187ccf82006-12-09 16:57:22 +00003305#line 989 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003306 { (yyval.String) = new std::string(); ;}
3307 break;
3308
3309 case 236:
Reid Spencer187ccf82006-12-09 16:57:22 +00003310#line 995 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003311 {
3312 (yyvsp[-1].String)->insert(0, "<");
3313 *(yyvsp[-1].String) += ">";
3314 (yyval.String) = (yyvsp[-1].String);
3315 ;}
3316 break;
3317
3318 case 238:
Reid Spencer187ccf82006-12-09 16:57:22 +00003319#line 1001 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003320 {
3321 if (!(yyvsp[-3].String)->empty()) {
3322 *(yyvsp[-4].String) += " " + *(yyvsp[-3].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003323 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003324 *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3325 delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3326 (yyval.String) = (yyvsp[-4].String);
3327 ;}
3328 break;
3329
3330 case 241:
Reid Spencer187ccf82006-12-09 16:57:22 +00003331#line 1014 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003332 {
3333 (yyval.Value).val = (yyvsp[0].String);
3334 (yyval.Value).constant = false;
3335 (yyval.Value).type.newTy = 0;
3336 (yyval.Value).type.oldTy = UnresolvedTy;
3337 ;}
3338 break;
3339
3340 case 242:
Reid Spencer187ccf82006-12-09 16:57:22 +00003341#line 1020 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003342 {
3343 (yyval.Value).val = (yyvsp[0].String);
3344 (yyval.Value).constant = true;
3345 (yyval.Value).type.newTy = 0;
3346 (yyval.Value).type.oldTy = UnresolvedTy;
3347 ;}
3348 break;
3349
3350 case 243:
Reid Spencer187ccf82006-12-09 16:57:22 +00003351#line 1031 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003352 {
3353 (yyval.Value) = (yyvsp[0].Value);
3354 (yyval.Value).type = (yyvsp[-1].Type);
3355 (yyval.Value).val->insert(0, *(yyvsp[-1].Type).newTy + " ");
3356 ;}
3357 break;
3358
3359 case 244:
Reid Spencer187ccf82006-12-09 16:57:22 +00003360#line 1037 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003361 {
3362 (yyval.String) = 0;
3363 ;}
3364 break;
3365
3366 case 245:
Reid Spencer187ccf82006-12-09 16:57:22 +00003367#line 1040 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003368 { // Do not allow functions with 0 basic blocks
3369 (yyval.String) = 0;
3370 ;}
3371 break;
3372
3373 case 246:
Reid Spencer187ccf82006-12-09 16:57:22 +00003374#line 1048 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003375 {
3376 (yyval.String) = 0;
3377 ;}
3378 break;
3379
3380 case 247:
Reid Spencer187ccf82006-12-09 16:57:22 +00003381#line 1052 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003382 {
3383 *O << " " << *(yyvsp[0].String) << "\n";
3384 delete (yyvsp[0].String);
3385 (yyval.String) = 0;
3386 ;}
3387 break;
3388
3389 case 248:
Reid Spencer187ccf82006-12-09 16:57:22 +00003390#line 1057 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003391 {
3392 (yyval.String) = 0;
3393 ;}
3394 break;
3395
3396 case 249:
Reid Spencer187ccf82006-12-09 16:57:22 +00003397#line 1060 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003398 {
3399 *O << *(yyvsp[0].String) << "\n";
3400 delete (yyvsp[0].String);
3401 (yyval.String) = 0;
3402 ;}
3403 break;
3404
3405 case 251:
Reid Spencer187ccf82006-12-09 16:57:22 +00003406#line 1066 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003407 { (yyval.String) = (yyvsp[0].String); *(yyval.String) = "unwind"; ;}
3408 break;
3409
3410 case 252:
Reid Spencer187ccf82006-12-09 16:57:22 +00003411#line 1068 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003412 { // Return with a result...
3413 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n";
3414 delete (yyvsp[-1].String); (yyvsp[0].Value).destroy();
3415 (yyval.String) = 0;
3416 ;}
3417 break;
3418
3419 case 253:
Reid Spencer187ccf82006-12-09 16:57:22 +00003420#line 1073 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003421 { // Return with no result...
3422 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
3423 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3424 (yyval.String) = 0;
3425 ;}
3426 break;
3427
3428 case 254:
Reid Spencer187ccf82006-12-09 16:57:22 +00003429#line 1078 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003430 { // Unconditional Branch...
3431 *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n";
3432 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3433 (yyval.String) = 0;
3434 ;}
3435 break;
3436
3437 case 255:
Reid Spencer187ccf82006-12-09 16:57:22 +00003438#line 1083 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003439 {
3440 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", "
3441 << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << ", " << *(yyvsp[-1].Type).newTy << " "
3442 << *(yyvsp[0].Value).val << "\n";
3443 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy();
3444 (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3445 (yyval.String) = 0;
3446 ;}
3447 break;
3448
3449 case 256:
Reid Spencer187ccf82006-12-09 16:57:22 +00003450#line 1091 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003451 {
3452 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].Value).val << ", "
3453 << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " [" << *(yyvsp[-1].String) << " ]\n";
3454 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); (yyvsp[-6].Value).destroy(); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy();
3455 delete (yyvsp[-1].String);
3456 (yyval.String) = 0;
3457 ;}
3458 break;
3459
3460 case 257:
Reid Spencer187ccf82006-12-09 16:57:22 +00003461#line 1098 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003462 {
3463 *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].Value).val << ", "
3464 << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].Value).val << "[]\n";
3465 delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); (yyvsp[-5].Value).destroy(); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy();
3466 (yyval.String) = 0;
3467 ;}
3468 break;
3469
3470 case 258:
Reid Spencer187ccf82006-12-09 16:57:22 +00003471#line 1105 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003472 {
Reid Spencer16244f42006-12-01 21:10:07 +00003473 *O << " ";
Jim Laskey2792cfb2006-12-06 11:03:10 +00003474 if (!(yyvsp[-13].String)->empty())
3475 *O << *(yyvsp[-13].String) << " = ";
3476 *O << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].Value).val << " (";
3477 for (unsigned i = 0; i < (yyvsp[-7].ValList)->size(); ++i) {
3478 ValueInfo& VI = (*(yyvsp[-7].ValList))[i];
Reid Spencerf8483652006-12-02 15:16:01 +00003479 *O << *VI.val;
Jim Laskey2792cfb2006-12-06 11:03:10 +00003480 if (i+1 < (yyvsp[-7].ValList)->size())
Reid Spencerf8483652006-12-02 15:16:01 +00003481 *O << ", ";
3482 VI.destroy();
3483 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003484 *O << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].Value).val << " "
3485 << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].Value).val << "\n";
3486 delete (yyvsp[-13].String); delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); (yyvsp[-9].Value).destroy(); delete (yyvsp[-7].ValList);
3487 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
3488 (yyvsp[0].Value).destroy();
3489 (yyval.String) = 0;
3490 ;}
3491 break;
3492
3493 case 259:
Reid Spencer187ccf82006-12-09 16:57:22 +00003494#line 1124 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003495 {
3496 *O << " " << *(yyvsp[0].String) << "\n";
3497 delete (yyvsp[0].String);
3498 (yyval.String) = 0;
3499 ;}
3500 break;
3501
3502 case 260:
Reid Spencer187ccf82006-12-09 16:57:22 +00003503#line 1129 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003504 {
3505 *O << " " << *(yyvsp[0].String) << "\n";
3506 delete (yyvsp[0].String);
3507 (yyval.String) = 0;
3508 ;}
3509 break;
3510
3511 case 261:
Reid Spencer187ccf82006-12-09 16:57:22 +00003512#line 1135 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003513 {
3514 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val;
3515 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3516 (yyval.String) = (yyvsp[-5].String);
3517 ;}
3518 break;
3519
3520 case 262:
Reid Spencer187ccf82006-12-09 16:57:22 +00003521#line 1140 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003522 {
3523 (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " );
3524 *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val;
3525 (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3526 (yyval.String) = (yyvsp[-3].String);
3527 ;}
3528 break;
3529
3530 case 263:
Reid Spencer187ccf82006-12-09 16:57:22 +00003531#line 1148 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003532 {
3533 if (!(yyvsp[-1].String)->empty())
3534 *(yyvsp[-1].String) += " = ";
3535 *(yyvsp[-1].String) += *(yyvsp[0].String);
3536 delete (yyvsp[0].String);
3537 (yyval.String) = (yyvsp[-1].String);
3538 ;}
3539 break;
3540
3541 case 264:
Reid Spencer187ccf82006-12-09 16:57:22 +00003542#line 1157 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003543 { // Used for PHI nodes
3544 (yyvsp[-3].Value).val->insert(0, *(yyvsp[-5].Type).newTy + "[");
3545 *(yyvsp[-3].Value).val += "," + *(yyvsp[-1].Value).val + "]";
3546 (yyvsp[-5].Type).destroy(); (yyvsp[-1].Value).destroy();
3547 (yyval.String) = new std::string(*(yyvsp[-3].Value).val);
3548 (yyvsp[-3].Value).destroy();
3549 ;}
3550 break;
3551
3552 case 265:
Reid Spencer187ccf82006-12-09 16:57:22 +00003553#line 1164 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003554 {
3555 *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + "]";
3556 (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy();
3557 (yyval.String) = (yyvsp[-6].String);
3558 ;}
3559 break;
3560
3561 case 266:
Reid Spencer187ccf82006-12-09 16:57:22 +00003562#line 1172 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003563 {
3564 (yyval.ValList) = new ValueList();
3565 (yyval.ValList)->push_back((yyvsp[0].Value));
3566 ;}
3567 break;
3568
3569 case 267:
Reid Spencer187ccf82006-12-09 16:57:22 +00003570#line 1176 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003571 {
3572 (yyvsp[-2].ValList)->push_back((yyvsp[0].Value));
3573 (yyval.ValList) = (yyvsp[-2].ValList);
3574 ;}
3575 break;
3576
3577 case 268:
Reid Spencer187ccf82006-12-09 16:57:22 +00003578#line 1183 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003579 { (yyval.ValList) = (yyvsp[0].ValList); ;}
3580 break;
3581
3582 case 269:
Reid Spencer187ccf82006-12-09 16:57:22 +00003583#line 1184 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003584 { (yyval.ValList) = new ValueList(); ;}
3585 break;
3586
3587 case 270:
Reid Spencer187ccf82006-12-09 16:57:22 +00003588#line 1188 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003589 {
3590 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3591 delete (yyvsp[0].String);
3592 (yyval.String) = (yyvsp[-1].String);
3593 ;}
3594 break;
3595
3596 case 272:
Reid Spencer187ccf82006-12-09 16:57:22 +00003597#line 1196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003598 {
3599 const char* op = getDivRemOpcode(*(yyvsp[-4].String), (yyvsp[-3].Type));
3600 (yyval.String) = new std::string(op);
3601 *(yyval.String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3602 delete (yyvsp[-4].String); (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3603 ;}
3604 break;
3605
3606 case 273:
Reid Spencer187ccf82006-12-09 16:57:22 +00003607#line 1202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003608 {
3609 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3610 (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3611 (yyval.String) = (yyvsp[-4].String);
3612 ;}
3613 break;
3614
3615 case 274:
Reid Spencer187ccf82006-12-09 16:57:22 +00003616#line 1207 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003617 {
Reid Spencer229e9362006-12-02 22:14:11 +00003618#if UPGRADE_SETCOND_OPS
Jim Laskey2792cfb2006-12-06 11:03:10 +00003619 *(yyvsp[-4].String) = getCompareOp(*(yyvsp[-4].String), (yyvsp[-3].Type));
Reid Spencer229e9362006-12-02 22:14:11 +00003620#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00003621 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3622 (yyvsp[-3].Type).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3623 (yyval.String) = (yyvsp[-4].String);
3624 ;}
3625 break;
3626
3627 case 275:
Reid Spencer187ccf82006-12-09 16:57:22 +00003628#line 1215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003629 {
3630 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")";
3631 delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy();
3632 (yyval.String) = (yyvsp[-6].String);
3633 ;}
3634 break;
3635
3636 case 276:
Reid Spencer187ccf82006-12-09 16:57:22 +00003637#line 1220 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003638 {
3639 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String) + " " + *(yyvsp[-3].Value).val + "," + *(yyvsp[-1].Value).val + ")";
3640 delete (yyvsp[-5].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Value).destroy();
3641 (yyval.String) = (yyvsp[-6].String);
3642 ;}
3643 break;
3644
3645 case 277:
Reid Spencer187ccf82006-12-09 16:57:22 +00003646#line 1225 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003647 {
3648 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3649 (yyvsp[0].Value).destroy();
3650 (yyval.String) = (yyvsp[-1].String);
3651 ;}
3652 break;
3653
3654 case 278:
Reid Spencer187ccf82006-12-09 16:57:22 +00003655#line 1230 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003656 {
3657 const char* shiftop = (yyvsp[-3].String)->c_str();
3658 if (*(yyvsp[-3].String) == "shr")
3659 shiftop = ((yyvsp[-2].Value).type.isUnsigned()) ? "lshr" : "ashr";
3660 (yyval.String) = new std::string(shiftop);
3661 *(yyval.String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3662 delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3663 ;}
3664 break;
3665
3666 case 279:
Reid Spencer187ccf82006-12-09 16:57:22 +00003667#line 1238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003668 {
3669 std::string source = *(yyvsp[-2].Value).val;
3670 TypeInfo SrcTy = (yyvsp[-2].Value).type;
3671 TypeInfo DstTy = (yyvsp[0].Type);
Reid Spencera50d5962006-12-02 04:11:07 +00003672 ResolveType(DstTy);
Jim Laskey2792cfb2006-12-06 11:03:10 +00003673 (yyval.String) = new std::string();
3674 if (*(yyvsp[-3].String) == "cast") {
3675 *(yyval.String) += getCastUpgrade(source, SrcTy, DstTy, false);
Reid Spencera50d5962006-12-02 04:11:07 +00003676 } else {
Jim Laskey2792cfb2006-12-06 11:03:10 +00003677 *(yyval.String) += *(yyvsp[-3].String) + " " + source + " to " + *DstTy.newTy;
Reid Spencer280d8012006-12-01 23:40:53 +00003678 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003679 delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy();
3680 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3681 ;}
3682 break;
3683
3684 case 280:
Reid Spencer187ccf82006-12-09 16:57:22 +00003685#line 1252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003686 {
3687 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3688 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3689 (yyval.String) = (yyvsp[-5].String);
3690 ;}
3691 break;
3692
3693 case 281:
Reid Spencer187ccf82006-12-09 16:57:22 +00003694#line 1257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003695 {
3696 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy;
3697 (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy();
3698 (yyval.String) = (yyvsp[-3].String);
3699 ;}
3700 break;
3701
3702 case 282:
Reid Spencer187ccf82006-12-09 16:57:22 +00003703#line 1262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003704 {
3705 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3706 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3707 (yyval.String) = (yyvsp[-3].String);
3708 ;}
3709 break;
3710
3711 case 283:
Reid Spencer187ccf82006-12-09 16:57:22 +00003712#line 1267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003713 {
3714 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3715 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3716 (yyval.String) = (yyvsp[-5].String);
3717 ;}
3718 break;
3719
3720 case 284:
Reid Spencer187ccf82006-12-09 16:57:22 +00003721#line 1272 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003722 {
3723 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3724 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3725 (yyval.String) = (yyvsp[-5].String);
3726 ;}
3727 break;
3728
3729 case 285:
Reid Spencer187ccf82006-12-09 16:57:22 +00003730#line 1277 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003731 {
3732 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3733 delete (yyvsp[0].String);
3734 (yyval.String) = (yyvsp[-1].String);
3735 ;}
3736 break;
3737
3738 case 286:
Reid Spencer187ccf82006-12-09 16:57:22 +00003739#line 1282 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003740 {
3741 if (!(yyvsp[-5].String)->empty())
3742 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String);
3743 if (!(yyvsp[-6].String)->empty())
3744 *(yyvsp[-6].String) += " ";
3745 *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].Value).val + "(";
3746 for (unsigned i = 0; i < (yyvsp[-1].ValList)->size(); ++i) {
3747 ValueInfo& VI = (*(yyvsp[-1].ValList))[i];
3748 *(yyvsp[-6].String) += *VI.val;
3749 if (i+1 < (yyvsp[-1].ValList)->size())
3750 *(yyvsp[-6].String) += ", ";
Reid Spencerf8483652006-12-02 15:16:01 +00003751 VI.destroy();
3752 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003753 *(yyvsp[-6].String) += ")";
3754 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); (yyvsp[-3].Value).destroy(); delete (yyvsp[-1].ValList);
3755 (yyval.String) = (yyvsp[-6].String);
3756 ;}
3757 break;
3758
3759 case 288:
Reid Spencer187ccf82006-12-09 16:57:22 +00003760#line 1304 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003761 { (yyval.ValList) = (yyvsp[0].ValList); ;}
3762 break;
3763
3764 case 289:
Reid Spencer187ccf82006-12-09 16:57:22 +00003765#line 1305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003766 { (yyval.ValList) = new ValueList(); ;}
3767 break;
3768
3769 case 291:
Reid Spencer187ccf82006-12-09 16:57:22 +00003770#line 1310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003771 { (yyval.String) = new std::string(); ;}
3772 break;
3773
3774 case 292:
Reid Spencer187ccf82006-12-09 16:57:22 +00003775#line 1313 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003776 {
3777 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3778 if (!(yyvsp[0].String)->empty())
3779 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3780 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3781 (yyval.String) = (yyvsp[-2].String);
3782 ;}
3783 break;
3784
3785 case 293:
Reid Spencer187ccf82006-12-09 16:57:22 +00003786#line 1320 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003787 {
3788 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val;
3789 if (!(yyvsp[0].String)->empty())
3790 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3791 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String);
3792 (yyval.String) = (yyvsp[-5].String);
3793 ;}
3794 break;
3795
3796 case 294:
Reid Spencer187ccf82006-12-09 16:57:22 +00003797#line 1327 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003798 {
3799 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3800 if (!(yyvsp[0].String)->empty())
3801 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3802 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3803 (yyval.String) = (yyvsp[-2].String);
3804 ;}
3805 break;
3806
3807 case 295:
Reid Spencer187ccf82006-12-09 16:57:22 +00003808#line 1334 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003809 {
3810 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val;
3811 if (!(yyvsp[0].String)->empty())
3812 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3813 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].String);
3814 (yyval.String) = (yyvsp[-5].String);
3815 ;}
3816 break;
3817
3818 case 296:
Reid Spencer187ccf82006-12-09 16:57:22 +00003819#line 1341 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003820 {
3821 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3822 (yyvsp[0].Value).destroy();
3823 (yyval.String) = (yyvsp[-1].String);
3824 ;}
3825 break;
3826
3827 case 297:
Reid Spencer187ccf82006-12-09 16:57:22 +00003828#line 1346 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003829 {
3830 if (!(yyvsp[-3].String)->empty())
3831 *(yyvsp[-3].String) += " ";
3832 *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val;
3833 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3834 (yyval.String) = (yyvsp[-3].String);
3835 ;}
3836 break;
3837
3838 case 298:
Reid Spencer187ccf82006-12-09 16:57:22 +00003839#line 1353 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003840 {
3841 if (!(yyvsp[-5].String)->empty())
3842 *(yyvsp[-5].String) += " ";
3843 *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].Value).val;
3844 delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); (yyvsp[0].Value).destroy();
3845 (yyval.String) = (yyvsp[-5].String);
3846 ;}
3847 break;
3848
3849 case 299:
Reid Spencer187ccf82006-12-09 16:57:22 +00003850#line 1360 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Jim Laskey2792cfb2006-12-06 11:03:10 +00003851 {
Reid Spencerf459d392006-12-02 16:19:52 +00003852 // Upgrade the indices
Jim Laskey2792cfb2006-12-06 11:03:10 +00003853 for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) {
3854 ValueInfo& VI = (*(yyvsp[0].ValList))[i];
Reid Spencerf459d392006-12-02 16:19:52 +00003855 if (VI.type.isUnsigned() && !VI.isConstant() &&
3856 VI.type.getBitWidth() < 64) {
3857 std::string* old = VI.val;
3858 *O << " %gep_upgrade" << unique << " = zext " << *old
3859 << " to ulong\n";
3860 VI.val = new std::string("ulong %gep_upgrade" + llvm::utostr(unique++));
3861 VI.type.oldTy = ULongTy;
3862 delete old;
3863 }
3864 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003865 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].Value).val;
3866 for (unsigned i = 0; i < (yyvsp[0].ValList)->size(); ++i) {
3867 ValueInfo& VI = (*(yyvsp[0].ValList))[i];
3868 *(yyvsp[-3].String) += ", " + *VI.val;
Reid Spencerf8483652006-12-02 15:16:01 +00003869 VI.destroy();
3870 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00003871 (yyvsp[-2].Type).destroy(); (yyvsp[-1].Value).destroy(); delete (yyvsp[0].ValList);
3872 (yyval.String) = (yyvsp[-3].String);
3873 ;}
3874 break;
3875
3876
3877 default: break;
3878 }
3879
3880/* Line 1126 of yacc.c. */
Reid Spencer187ccf82006-12-09 16:57:22 +00003881#line 3882 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +00003882
3883 yyvsp -= yylen;
3884 yyssp -= yylen;
3885
Jim Laskey2792cfb2006-12-06 11:03:10 +00003886
3887 YY_STACK_PRINT (yyss, yyssp);
Reid Spencere7c3c602006-11-30 06:36:44 +00003888
3889 *++yyvsp = yyval;
3890
3891
Jim Laskey2792cfb2006-12-06 11:03:10 +00003892 /* Now `shift' the result of the reduction. Determine what state
3893 that goes to, based on the state we popped back to and the rule
3894 number reduced by. */
Reid Spencere7c3c602006-11-30 06:36:44 +00003895
3896 yyn = yyr1[yyn];
3897
Jim Laskey2792cfb2006-12-06 11:03:10 +00003898 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3899 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
Reid Spencere7c3c602006-11-30 06:36:44 +00003900 yystate = yytable[yystate];
3901 else
Jim Laskey2792cfb2006-12-06 11:03:10 +00003902 yystate = yydefgoto[yyn - YYNTOKENS];
Reid Spencere7c3c602006-11-30 06:36:44 +00003903
3904 goto yynewstate;
3905
3906
Jim Laskey2792cfb2006-12-06 11:03:10 +00003907/*------------------------------------.
3908| yyerrlab -- here on detecting error |
3909`------------------------------------*/
3910yyerrlab:
3911 /* If not already recovering from an error, report this error. */
3912 if (!yyerrstatus)
Reid Spencere7c3c602006-11-30 06:36:44 +00003913 {
3914 ++yynerrs;
Jim Laskey2792cfb2006-12-06 11:03:10 +00003915#if YYERROR_VERBOSE
Reid Spencere7c3c602006-11-30 06:36:44 +00003916 yyn = yypact[yystate];
3917
Jim Laskey2792cfb2006-12-06 11:03:10 +00003918 if (YYPACT_NINF < yyn && yyn < YYLAST)
Reid Spencere7c3c602006-11-30 06:36:44 +00003919 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00003920 int yytype = YYTRANSLATE (yychar);
3921 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3922 YYSIZE_T yysize = yysize0;
3923 YYSIZE_T yysize1;
3924 int yysize_overflow = 0;
3925 char *yymsg = 0;
3926# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
3927 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3928 int yyx;
Reid Spencere7c3c602006-11-30 06:36:44 +00003929
Jim Laskey2792cfb2006-12-06 11:03:10 +00003930#if 0
3931 /* This is so xgettext sees the translatable formats that are
3932 constructed on the fly. */
3933 YY_("syntax error, unexpected %s");
3934 YY_("syntax error, unexpected %s, expecting %s");
3935 YY_("syntax error, unexpected %s, expecting %s or %s");
3936 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3937 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3938#endif
3939 char *yyfmt;
3940 char const *yyf;
3941 static char const yyunexpected[] = "syntax error, unexpected %s";
3942 static char const yyexpecting[] = ", expecting %s";
3943 static char const yyor[] = " or %s";
3944 char yyformat[sizeof yyunexpected
3945 + sizeof yyexpecting - 1
3946 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3947 * (sizeof yyor - 1))];
3948 char const *yyprefix = yyexpecting;
3949
3950 /* Start YYX at -YYN if negative to avoid negative indexes in
3951 YYCHECK. */
3952 int yyxbegin = yyn < 0 ? -yyn : 0;
3953
3954 /* Stay within bounds of both yycheck and yytname. */
3955 int yychecklim = YYLAST - yyn;
3956 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3957 int yycount = 1;
3958
3959 yyarg[0] = yytname[yytype];
3960 yyfmt = yystpcpy (yyformat, yyunexpected);
3961
3962 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3963 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3964 {
3965 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3966 {
3967 yycount = 1;
3968 yysize = yysize0;
3969 yyformat[sizeof yyunexpected - 1] = '\0';
3970 break;
3971 }
3972 yyarg[yycount++] = yytname[yyx];
3973 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3974 yysize_overflow |= yysize1 < yysize;
3975 yysize = yysize1;
3976 yyfmt = yystpcpy (yyfmt, yyprefix);
3977 yyprefix = yyor;
3978 }
3979
3980 yyf = YY_(yyformat);
3981 yysize1 = yysize + yystrlen (yyf);
3982 yysize_overflow |= yysize1 < yysize;
3983 yysize = yysize1;
3984
3985 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
3986 yymsg = (char *) YYSTACK_ALLOC (yysize);
3987 if (yymsg)
Reid Spencere7c3c602006-11-30 06:36:44 +00003988 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00003989 /* Avoid sprintf, as that infringes on the user's name space.
3990 Don't have undefined behavior even if the translation
3991 produced a string with the wrong number of "%s"s. */
3992 char *yyp = yymsg;
3993 int yyi = 0;
3994 while ((*yyp = *yyf))
Reid Spencere7c3c602006-11-30 06:36:44 +00003995 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00003996 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3997 {
3998 yyp += yytnamerr (yyp, yyarg[yyi++]);
3999 yyf += 2;
4000 }
4001 else
4002 {
4003 yyp++;
4004 yyf++;
4005 }
Reid Spencere7c3c602006-11-30 06:36:44 +00004006 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00004007 yyerror (yymsg);
4008 YYSTACK_FREE (yymsg);
Reid Spencere7c3c602006-11-30 06:36:44 +00004009 }
4010 else
Jim Laskey2792cfb2006-12-06 11:03:10 +00004011 {
4012 yyerror (YY_("syntax error"));
4013 goto yyexhaustedlab;
4014 }
Reid Spencere7c3c602006-11-30 06:36:44 +00004015 }
4016 else
4017#endif /* YYERROR_VERBOSE */
Jim Laskey2792cfb2006-12-06 11:03:10 +00004018 yyerror (YY_("syntax error"));
Reid Spencere7c3c602006-11-30 06:36:44 +00004019 }
4020
Jim Laskey2792cfb2006-12-06 11:03:10 +00004021
Reid Spencere7c3c602006-11-30 06:36:44 +00004022
4023 if (yyerrstatus == 3)
4024 {
Jim Laskey2792cfb2006-12-06 11:03:10 +00004025 /* If just tried and failed to reuse look-ahead token after an
4026 error, discard it. */
Reid Spencere7c3c602006-11-30 06:36:44 +00004027
Jim Laskey2792cfb2006-12-06 11:03:10 +00004028 if (yychar <= YYEOF)
4029 {
4030 /* Return failure if at end of input. */
4031 if (yychar == YYEOF)
4032 YYABORT;
4033 }
4034 else
4035 {
4036 yydestruct ("Error: discarding", yytoken, &yylval);
4037 yychar = YYEMPTY;
4038 }
4039 }
4040
4041 /* Else will try to reuse look-ahead token after shifting the error
4042 token. */
4043 goto yyerrlab1;
4044
4045
4046/*---------------------------------------------------.
4047| yyerrorlab -- error raised explicitly by YYERROR. |
4048`---------------------------------------------------*/
4049yyerrorlab:
4050
4051 /* Pacify compilers like GCC when the user code never invokes
4052 YYERROR and the label yyerrorlab therefore never appears in user
4053 code. */
4054 if (0)
4055 goto yyerrorlab;
4056
4057yyvsp -= yylen;
4058 yyssp -= yylen;
4059 yystate = *yyssp;
4060 goto yyerrlab1;
4061
4062
4063/*-------------------------------------------------------------.
4064| yyerrlab1 -- common code for both syntax error and YYERROR. |
4065`-------------------------------------------------------------*/
4066yyerrlab1:
4067 yyerrstatus = 3; /* Each real token shifted decrements this. */
4068
4069 for (;;)
4070 {
4071 yyn = yypact[yystate];
4072 if (yyn != YYPACT_NINF)
4073 {
4074 yyn += YYTERROR;
4075 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4076 {
4077 yyn = yytable[yyn];
4078 if (0 < yyn)
4079 break;
4080 }
4081 }
4082
4083 /* Pop the current state because it cannot handle the error token. */
4084 if (yyssp == yyss)
Reid Spencere7c3c602006-11-30 06:36:44 +00004085 YYABORT;
4086
4087
Jim Laskey2792cfb2006-12-06 11:03:10 +00004088 yydestruct ("Error: popping", yystos[yystate], yyvsp);
4089 YYPOPSTACK;
4090 yystate = *yyssp;
4091 YY_STACK_PRINT (yyss, yyssp);
Reid Spencere7c3c602006-11-30 06:36:44 +00004092 }
4093
4094 if (yyn == YYFINAL)
4095 YYACCEPT;
4096
4097 *++yyvsp = yylval;
Jim Laskey2792cfb2006-12-06 11:03:10 +00004098
4099
4100 /* Shift the error token. */
4101 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
Reid Spencere7c3c602006-11-30 06:36:44 +00004102
4103 yystate = yyn;
4104 goto yynewstate;
4105
Jim Laskey98ba5882006-12-06 10:57:33 +00004106
Jim Laskey2792cfb2006-12-06 11:03:10 +00004107/*-------------------------------------.
4108| yyacceptlab -- YYACCEPT comes here. |
4109`-------------------------------------*/
4110yyacceptlab:
4111 yyresult = 0;
4112 goto yyreturn;
4113
4114/*-----------------------------------.
4115| yyabortlab -- YYABORT comes here. |
4116`-----------------------------------*/
4117yyabortlab:
4118 yyresult = 1;
4119 goto yyreturn;
4120
4121#ifndef yyoverflow
4122/*-------------------------------------------------.
4123| yyexhaustedlab -- memory exhaustion comes here. |
4124`-------------------------------------------------*/
4125yyexhaustedlab:
4126 yyerror (YY_("memory exhausted"));
4127 yyresult = 2;
4128 /* Fall through. */
Jim Laskey98ba5882006-12-06 10:57:33 +00004129#endif
Jim Laskey2792cfb2006-12-06 11:03:10 +00004130
4131yyreturn:
4132 if (yychar != YYEOF && yychar != YYEMPTY)
4133 yydestruct ("Cleanup: discarding lookahead",
4134 yytoken, &yylval);
4135 while (yyssp != yyss)
4136 {
4137 yydestruct ("Cleanup: popping",
4138 yystos[*yyssp], yyvsp);
4139 YYPOPSTACK;
Jim Laskey98ba5882006-12-06 10:57:33 +00004140 }
Jim Laskey2792cfb2006-12-06 11:03:10 +00004141#ifndef yyoverflow
4142 if (yyss != yyssa)
4143 YYSTACK_FREE (yyss);
4144#endif
4145 return yyresult;
Reid Spencere7c3c602006-11-30 06:36:44 +00004146}
Jim Laskey2792cfb2006-12-06 11:03:10 +00004147
4148
Reid Spencer187ccf82006-12-09 16:57:22 +00004149#line 1384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00004150
4151
4152int yyerror(const char *ErrorMsg) {
4153 std::string where
4154 = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
4155 + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
4156 std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
4157 if (yychar == YYEMPTY || yychar == 0)
4158 errMsg += "end-of-file.";
4159 else
4160 errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
4161 std::cerr << errMsg << '\n';
4162 exit(1);
4163}
Jim Laskey2792cfb2006-12-06 11:03:10 +00004164