blob: 68a8423b76c352278b77708f4206a7d6b684a2f3 [file] [log] [blame]
Reid Spencere7c3c602006-11-30 06:36:44 +00001/* A Bison parser, made by GNU Bison 2.1. */
2
3/* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA. */
20
21/* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26/* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29/* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36/* Identify Bison output. */
37#define YYBISON 1
38
39/* Bison version. */
40#define YYBISON_VERSION "2.1"
41
42/* Skeleton name. */
43#define YYSKELETON_NAME "yacc.c"
44
45/* Pure parsers. */
46#define YYPURE 0
47
48/* Using locations. */
49#define YYLSP_NEEDED 0
50
51/* Substitute the variable and function names. */
52#define yyparse Upgradeparse
53#define yylex Upgradelex
54#define yyerror Upgradeerror
55#define yylval Upgradelval
56#define yychar Upgradechar
57#define yydebug Upgradedebug
58#define yynerrs Upgradenerrs
59
60
61/* Tokens. */
62#ifndef YYTOKENTYPE
63# define YYTOKENTYPE
64 /* Put the tokens into the symbol table, so that GDB and other debuggers
65 know about them. */
66 enum yytokentype {
Reid Spencerf2d55322006-12-01 21:52:30 +000067 VOID = 258,
68 BOOL = 259,
69 SBYTE = 260,
70 UBYTE = 261,
71 SHORT = 262,
72 USHORT = 263,
73 INT = 264,
74 UINT = 265,
75 LONG = 266,
76 ULONG = 267,
77 FLOAT = 268,
78 DOUBLE = 269,
79 LABEL = 270,
80 OPAQUE = 271,
81 ESINT64VAL = 272,
82 EUINT64VAL = 273,
83 SINTVAL = 274,
84 UINTVAL = 275,
85 FPVAL = 276,
86 NULL_TOK = 277,
87 UNDEF = 278,
88 ZEROINITIALIZER = 279,
89 TRUETOK = 280,
90 FALSETOK = 281,
Reid Spencere77e35e2006-12-01 20:26:20 +000091 TYPE = 282,
92 VAR_ID = 283,
93 LABELSTR = 284,
94 STRINGCONSTANT = 285,
95 IMPLEMENTATION = 286,
96 BEGINTOK = 287,
97 ENDTOK = 288,
98 DECLARE = 289,
99 GLOBAL = 290,
100 CONSTANT = 291,
101 SECTION = 292,
102 VOLATILE = 293,
103 TO = 294,
104 DOTDOTDOT = 295,
105 CONST = 296,
106 INTERNAL = 297,
107 LINKONCE = 298,
108 WEAK = 299,
Reid Spencere7c3c602006-11-30 06:36:44 +0000109 DLLIMPORT = 300,
110 DLLEXPORT = 301,
111 EXTERN_WEAK = 302,
Reid Spencere77e35e2006-12-01 20:26:20 +0000112 APPENDING = 303,
Reid Spencere7c3c602006-11-30 06:36:44 +0000113 NOT = 304,
114 EXTERNAL = 305,
115 TARGET = 306,
116 TRIPLE = 307,
117 ENDIAN = 308,
118 POINTERSIZE = 309,
119 LITTLE = 310,
120 BIG = 311,
121 ALIGN = 312,
122 DEPLIBS = 313,
123 CALL = 314,
124 TAIL = 315,
125 ASM_TOK = 316,
126 MODULE = 317,
127 SIDEEFFECT = 318,
128 CC_TOK = 319,
129 CCC_TOK = 320,
130 CSRETCC_TOK = 321,
131 FASTCC_TOK = 322,
132 COLDCC_TOK = 323,
133 X86_STDCALLCC_TOK = 324,
134 X86_FASTCALLCC_TOK = 325,
135 DATALAYOUT = 326,
136 RET = 327,
137 BR = 328,
138 SWITCH = 329,
139 INVOKE = 330,
140 UNWIND = 331,
141 UNREACHABLE = 332,
142 ADD = 333,
143 SUB = 334,
144 MUL = 335,
145 UDIV = 336,
146 SDIV = 337,
147 FDIV = 338,
148 UREM = 339,
149 SREM = 340,
150 FREM = 341,
151 AND = 342,
152 OR = 343,
153 XOR = 344,
154 SETLE = 345,
155 SETGE = 346,
156 SETLT = 347,
157 SETGT = 348,
158 SETEQ = 349,
159 SETNE = 350,
160 MALLOC = 351,
161 ALLOCA = 352,
162 FREE = 353,
163 LOAD = 354,
164 STORE = 355,
165 GETELEMENTPTR = 356,
Reid Spencere77e35e2006-12-01 20:26:20 +0000166 PHI_TOK = 357,
167 SELECT = 358,
168 SHL = 359,
169 LSHR = 360,
170 ASHR = 361,
171 VAARG = 362,
172 EXTRACTELEMENT = 363,
173 INSERTELEMENT = 364,
174 SHUFFLEVECTOR = 365,
175 CAST = 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000176 };
177#endif
178/* Tokens. */
Reid Spencerf2d55322006-12-01 21:52:30 +0000179#define VOID 258
180#define BOOL 259
181#define SBYTE 260
182#define UBYTE 261
183#define SHORT 262
184#define USHORT 263
185#define INT 264
186#define UINT 265
187#define LONG 266
188#define ULONG 267
189#define FLOAT 268
190#define DOUBLE 269
191#define LABEL 270
192#define OPAQUE 271
193#define ESINT64VAL 272
194#define EUINT64VAL 273
195#define SINTVAL 274
196#define UINTVAL 275
197#define FPVAL 276
198#define NULL_TOK 277
199#define UNDEF 278
200#define ZEROINITIALIZER 279
201#define TRUETOK 280
202#define FALSETOK 281
Reid Spencere77e35e2006-12-01 20:26:20 +0000203#define TYPE 282
204#define VAR_ID 283
205#define LABELSTR 284
206#define STRINGCONSTANT 285
207#define IMPLEMENTATION 286
208#define BEGINTOK 287
209#define ENDTOK 288
210#define DECLARE 289
211#define GLOBAL 290
212#define CONSTANT 291
213#define SECTION 292
214#define VOLATILE 293
215#define TO 294
216#define DOTDOTDOT 295
217#define CONST 296
218#define INTERNAL 297
219#define LINKONCE 298
220#define WEAK 299
Reid Spencere7c3c602006-11-30 06:36:44 +0000221#define DLLIMPORT 300
222#define DLLEXPORT 301
223#define EXTERN_WEAK 302
Reid Spencere77e35e2006-12-01 20:26:20 +0000224#define APPENDING 303
Reid Spencere7c3c602006-11-30 06:36:44 +0000225#define NOT 304
226#define EXTERNAL 305
227#define TARGET 306
228#define TRIPLE 307
229#define ENDIAN 308
230#define POINTERSIZE 309
231#define LITTLE 310
232#define BIG 311
233#define ALIGN 312
234#define DEPLIBS 313
235#define CALL 314
236#define TAIL 315
237#define ASM_TOK 316
238#define MODULE 317
239#define SIDEEFFECT 318
240#define CC_TOK 319
241#define CCC_TOK 320
242#define CSRETCC_TOK 321
243#define FASTCC_TOK 322
244#define COLDCC_TOK 323
245#define X86_STDCALLCC_TOK 324
246#define X86_FASTCALLCC_TOK 325
247#define DATALAYOUT 326
248#define RET 327
249#define BR 328
250#define SWITCH 329
251#define INVOKE 330
252#define UNWIND 331
253#define UNREACHABLE 332
254#define ADD 333
255#define SUB 334
256#define MUL 335
257#define UDIV 336
258#define SDIV 337
259#define FDIV 338
260#define UREM 339
261#define SREM 340
262#define FREM 341
263#define AND 342
264#define OR 343
265#define XOR 344
266#define SETLE 345
267#define SETGE 346
268#define SETLT 347
269#define SETGT 348
270#define SETEQ 349
271#define SETNE 350
272#define MALLOC 351
273#define ALLOCA 352
274#define FREE 353
275#define LOAD 354
276#define STORE 355
277#define GETELEMENTPTR 356
Reid Spencere77e35e2006-12-01 20:26:20 +0000278#define PHI_TOK 357
279#define SELECT 358
280#define SHL 359
281#define LSHR 360
282#define ASHR 361
283#define VAARG 362
284#define EXTRACTELEMENT 363
285#define INSERTELEMENT 364
286#define SHUFFLEVECTOR 365
287#define CAST 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000288
289
290
291
292/* Copy the first part of user declarations. */
293#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
294
Reid Spencere7c3c602006-11-30 06:36:44 +0000295#include "ParserInternals.h"
296#include <llvm/ADT/StringExtras.h>
Reid Spencere7c3c602006-11-30 06:36:44 +0000297#include <algorithm>
298#include <list>
299#include <utility>
300#include <iostream>
301
Reid Spencere77e35e2006-12-01 20:26:20 +0000302#define YYERROR_VERBOSE 1
Reid Spencer96839be2006-11-30 16:50:26 +0000303#define YYINCLUDED_STDLIB_H
Reid Spencere77e35e2006-12-01 20:26:20 +0000304#define YYDEBUG 1
Reid Spencere7c3c602006-11-30 06:36:44 +0000305
306int yylex(); // declaration" of xxx warnings.
307int yyparse();
Reid Spencere77e35e2006-12-01 20:26:20 +0000308extern int yydebug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000309
310static std::string CurFilename;
Reid Spencere7c3c602006-11-30 06:36:44 +0000311static std::ostream *O = 0;
Reid Spencer96839be2006-11-30 16:50:26 +0000312std::istream* LexInput = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +0000313unsigned SizeOfPointer = 32;
Reid Spencer96839be2006-11-30 16:50:26 +0000314
315void UpgradeAssembly(const std::string &infile, std::istream& in,
Reid Spencere77e35e2006-12-01 20:26:20 +0000316 std::ostream &out, bool debug)
Reid Spencere7c3c602006-11-30 06:36:44 +0000317{
318 Upgradelineno = 1;
319 CurFilename = infile;
Reid Spencer96839be2006-11-30 16:50:26 +0000320 LexInput = &in;
Reid Spencere77e35e2006-12-01 20:26:20 +0000321 yydebug = debug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000322 O = &out;
323
324 if (yyparse()) {
325 std::cerr << "Parse failed.\n";
326 exit(1);
327 }
328}
329
Reid Spencere77e35e2006-12-01 20:26:20 +0000330const char* getCastOpcode(TypeInfo& SrcTy, TypeInfo&DstTy) {
331 unsigned SrcBits = SrcTy.getBitWidth();
332 unsigned DstBits = DstTy.getBitWidth();
333 const char* opcode = "bitcast";
334 // Run through the possibilities ...
335 if (DstTy.isIntegral()) { // Casting to integral
336 if (SrcTy.isIntegral()) { // Casting from integral
337 if (DstBits < SrcBits)
338 opcode = "trunc";
339 else if (DstBits > SrcBits) { // its an extension
340 if (SrcTy.isSigned())
341 opcode ="sext"; // signed -> SEXT
342 else
343 opcode = "zext"; // unsigned -> ZEXT
344 } else {
345 opcode = "bitcast"; // Same size, No-op cast
346 }
347 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
348 if (DstTy.isSigned())
349 opcode = "fptosi"; // FP -> sint
350 else
351 opcode = "fptoui"; // FP -> uint
352 } else if (SrcTy.isPacked()) {
353 assert(DstBits == SrcTy.getBitWidth() &&
354 "Casting packed to integer of different width");
355 opcode = "bitcast"; // same size, no-op cast
356 } else {
357 assert(SrcTy.isPointer() &&
358 "Casting from a value that is not first-class type");
359 opcode = "ptrtoint"; // ptr -> int
360 }
361 } else if (DstTy.isFloatingPoint()) { // Casting to floating pt
362 if (SrcTy.isIntegral()) { // Casting from integral
363 if (SrcTy.isSigned())
364 opcode = "sitofp"; // sint -> FP
365 else
366 opcode = "uitofp"; // uint -> FP
367 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
368 if (DstBits < SrcBits) {
369 opcode = "fptrunc"; // FP -> smaller FP
370 } else if (DstBits > SrcBits) {
371 opcode = "fpext"; // FP -> larger FP
372 } else {
373 opcode ="bitcast"; // same size, no-op cast
374 }
375 } else if (SrcTy.isPacked()) {
376 assert(DstBits == SrcTy.getBitWidth() &&
377 "Casting packed to floating point of different width");
378 opcode = "bitcast"; // same size, no-op cast
379 } else {
380 assert(0 && "Casting pointer or non-first class to float");
381 }
382 } else if (DstTy.isPacked()) {
383 if (SrcTy.isPacked()) {
384 assert(DstTy.getBitWidth() == SrcTy.getBitWidth() &&
385 "Casting packed to packed of different widths");
386 opcode = "bitcast"; // packed -> packed
387 } else if (DstTy.getBitWidth() == SrcBits) {
388 opcode = "bitcast"; // float/int -> packed
389 } else {
390 assert(!"Illegal cast to packed (wrong type or size)");
391 }
392 } else if (DstTy.isPointer()) {
393 if (SrcTy.isPointer()) {
394 opcode = "bitcast"; // ptr -> ptr
395 } else if (SrcTy.isIntegral()) {
396 opcode = "inttoptr"; // int -> ptr
397 } else {
398 assert(!"Casting pointer to other than pointer or int");
399 }
400 } else {
401 assert(!"Casting to type that is not first-class");
402 }
403 return opcode;
404}
405
Reid Spencere7c3c602006-11-30 06:36:44 +0000406
407
408/* Enabling traces. */
409#ifndef YYDEBUG
410# define YYDEBUG 0
411#endif
412
413/* Enabling verbose error messages. */
414#ifdef YYERROR_VERBOSE
415# undef YYERROR_VERBOSE
416# define YYERROR_VERBOSE 1
417#else
418# define YYERROR_VERBOSE 0
419#endif
420
421/* Enabling the token table. */
422#ifndef YYTOKEN_TABLE
423# define YYTOKEN_TABLE 0
424#endif
425
426#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
Reid Spencere77e35e2006-12-01 20:26:20 +0000427#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
428typedef union YYSTYPE {
429 std::string* String;
430 TypeInfo Type;
431 ValueInfo Value;
432 ConstInfo Const;
433} YYSTYPE;
434/* Line 196 of yacc.c. */
435#line 436 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000436# define yystype YYSTYPE /* obsolescent; will be withdrawn */
437# define YYSTYPE_IS_DECLARED 1
438# define YYSTYPE_IS_TRIVIAL 1
439#endif
440
441
442
443/* Copy the second part of user declarations. */
444
445
446/* Line 219 of yacc.c. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000447#line 448 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000448
449#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
450# define YYSIZE_T __SIZE_TYPE__
451#endif
452#if ! defined (YYSIZE_T) && defined (size_t)
453# define YYSIZE_T size_t
454#endif
455#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
456# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457# define YYSIZE_T size_t
458#endif
459#if ! defined (YYSIZE_T)
460# define YYSIZE_T unsigned int
461#endif
462
463#ifndef YY_
464# if YYENABLE_NLS
465# if ENABLE_NLS
466# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
467# define YY_(msgid) dgettext ("bison-runtime", msgid)
468# endif
469# endif
470# ifndef YY_
471# define YY_(msgid) msgid
472# endif
473#endif
474
475#if ! defined (yyoverflow) || YYERROR_VERBOSE
476
477/* The parser invokes alloca or malloc; define the necessary symbols. */
478
479# ifdef YYSTACK_USE_ALLOCA
480# if YYSTACK_USE_ALLOCA
481# ifdef __GNUC__
482# define YYSTACK_ALLOC __builtin_alloca
483# else
484# define YYSTACK_ALLOC alloca
485# if defined (__STDC__) || defined (__cplusplus)
486# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487# define YYINCLUDED_STDLIB_H
488# endif
489# endif
490# endif
491# endif
492
493# ifdef YYSTACK_ALLOC
494 /* Pacify GCC's `empty if-body' warning. */
495# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
496# ifndef YYSTACK_ALLOC_MAXIMUM
497 /* The OS might guarantee only one guard page at the bottom of the stack,
498 and a page size can be as small as 4096 bytes. So we cannot safely
499 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
500 to allow for a few compiler-allocated temporary stack slots. */
501# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
502# endif
503# else
504# define YYSTACK_ALLOC YYMALLOC
505# define YYSTACK_FREE YYFREE
506# ifndef YYSTACK_ALLOC_MAXIMUM
507# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
508# endif
509# ifdef __cplusplus
510extern "C" {
511# endif
512# ifndef YYMALLOC
513# define YYMALLOC malloc
514# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
515 && (defined (__STDC__) || defined (__cplusplus)))
516void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
517# endif
518# endif
519# ifndef YYFREE
520# define YYFREE free
521# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
522 && (defined (__STDC__) || defined (__cplusplus)))
523void free (void *); /* INFRINGES ON USER NAME SPACE */
524# endif
525# endif
526# ifdef __cplusplus
527}
528# endif
529# endif
530#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
531
532
533#if (! defined (yyoverflow) \
534 && (! defined (__cplusplus) \
535 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
536
537/* A type that is properly aligned for any stack member. */
538union yyalloc
539{
540 short int yyss;
541 YYSTYPE yyvs;
542 };
543
544/* The size of the maximum gap between one aligned stack and the next. */
545# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
546
547/* The size of an array large to enough to hold all stacks, each with
548 N elements. */
549# define YYSTACK_BYTES(N) \
550 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
551 + YYSTACK_GAP_MAXIMUM)
552
553/* Copy COUNT objects from FROM to TO. The source and destination do
554 not overlap. */
555# ifndef YYCOPY
556# if defined (__GNUC__) && 1 < __GNUC__
557# define YYCOPY(To, From, Count) \
558 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
559# else
560# define YYCOPY(To, From, Count) \
561 do \
562 { \
563 YYSIZE_T yyi; \
564 for (yyi = 0; yyi < (Count); yyi++) \
565 (To)[yyi] = (From)[yyi]; \
566 } \
567 while (0)
568# endif
569# endif
570
571/* Relocate STACK from its old location to the new one. The
572 local variables YYSIZE and YYSTACKSIZE give the old and new number of
573 elements in the stack, and YYPTR gives the new location of the
574 stack. Advance YYPTR to a properly aligned location for the next
575 stack. */
576# define YYSTACK_RELOCATE(Stack) \
577 do \
578 { \
579 YYSIZE_T yynewbytes; \
580 YYCOPY (&yyptr->Stack, Stack, yysize); \
581 Stack = &yyptr->Stack; \
582 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
583 yyptr += yynewbytes / sizeof (*yyptr); \
584 } \
585 while (0)
586
587#endif
588
589#if defined (__STDC__) || defined (__cplusplus)
590 typedef signed char yysigned_char;
591#else
592 typedef short int yysigned_char;
593#endif
594
595/* YYFINAL -- State number of the termination state. */
596#define YYFINAL 4
597/* YYLAST -- Last index in YYTABLE. */
Reid Spencerf2d55322006-12-01 21:52:30 +0000598#define YYLAST 1142
Reid Spencere7c3c602006-11-30 06:36:44 +0000599
600/* YYNTOKENS -- Number of terminals. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000601#define YYNTOKENS 126
Reid Spencere7c3c602006-11-30 06:36:44 +0000602/* YYNNTS -- Number of nonterminals. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000603#define YYNNTS 70
Reid Spencere7c3c602006-11-30 06:36:44 +0000604/* YYNRULES -- Number of rules. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000605#define YYNRULES 249
Reid Spencere7c3c602006-11-30 06:36:44 +0000606/* YYNRULES -- Number of states. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000607#define YYNSTATES 508
Reid Spencere7c3c602006-11-30 06:36:44 +0000608
609/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
610#define YYUNDEFTOK 2
Reid Spencere77e35e2006-12-01 20:26:20 +0000611#define YYMAXUTOK 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000612
613#define YYTRANSLATE(YYX) \
614 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
615
616/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
617static const unsigned char yytranslate[] =
618{
619 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000623 115, 116, 124, 2, 113, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000625 120, 112, 121, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000628 2, 117, 114, 119, 2, 2, 2, 2, 2, 125,
Reid Spencere7c3c602006-11-30 06:36:44 +0000629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Reid Spencere77e35e2006-12-01 20:26:20 +0000631 118, 2, 2, 122, 2, 123, 2, 2, 2, 2,
Reid Spencere7c3c602006-11-30 06:36:44 +0000632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
635 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
645 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
646 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
647 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
648 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
649 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
650 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
651 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
652 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
653 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
654 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
Reid Spencere77e35e2006-12-01 20:26:20 +0000655 105, 106, 107, 108, 109, 110, 111
Reid Spencere7c3c602006-11-30 06:36:44 +0000656};
657
658#if YYDEBUG
659/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
660 YYRHS. */
661static const unsigned short int yyprhs[] =
662{
663 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
664 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
665 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
666 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
Reid Spencere77e35e2006-12-01 20:26:20 +0000667 80, 81, 83, 85, 87, 89, 91, 93, 95, 96,
668 98, 100, 102, 104, 106, 108, 111, 112, 113, 116,
669 117, 121, 124, 125, 127, 128, 132, 134, 137, 139,
Reid Spencere7c3c602006-11-30 06:36:44 +0000670 141, 143, 145, 147, 149, 151, 153, 155, 157, 159,
Reid Spencere77e35e2006-12-01 20:26:20 +0000671 161, 163, 165, 167, 169, 171, 173, 175, 177, 180,
672 185, 191, 197, 201, 204, 207, 209, 213, 215, 219,
673 221, 222, 227, 231, 235, 240, 245, 249, 252, 255,
674 258, 261, 264, 267, 270, 273, 276, 279, 286, 292,
675 301, 308, 315, 322, 329, 336, 345, 354, 358, 360,
676 362, 364, 366, 369, 372, 377, 380, 382, 387, 390,
677 395, 402, 409, 416, 423, 427, 432, 433, 435, 437,
678 439, 443, 447, 451, 455, 459, 463, 465, 466, 468,
679 470, 472, 473, 476, 480, 482, 484, 488, 490, 491,
680 500, 502, 504, 508, 510, 512, 516, 517, 519, 521,
681 525, 526, 528, 530, 532, 534, 536, 538, 540, 542,
682 544, 548, 550, 556, 558, 560, 562, 564, 567, 570,
Reid Spencer16244f42006-12-01 21:10:07 +0000683 572, 575, 578, 579, 581, 584, 587, 591, 601, 611,
684 620, 635, 637, 639, 646, 652, 655, 662, 670, 672,
Reid Spencere77e35e2006-12-01 20:26:20 +0000685 676, 678, 679, 682, 684, 690, 696, 702, 705, 710,
686 715, 722, 727, 732, 739, 746, 749, 757, 759, 762,
687 763, 765, 766, 770, 777, 781, 788, 791, 796, 803
Reid Spencere7c3c602006-11-30 06:36:44 +0000688};
689
690/* YYRHS -- A `-1'-separated list of the rules' RHS. */
691static const short int yyrhs[] =
692{
Reid Spencerf2d55322006-12-01 21:52:30 +0000693 157, 0, -1, 19, -1, 20, -1, 17, -1, 18,
Reid Spencere7c3c602006-11-30 06:36:44 +0000694 -1, 78, -1, 79, -1, 80, -1, 81, -1, 82,
695 -1, 83, -1, 84, -1, 85, -1, 86, -1, 87,
696 -1, 88, -1, 89, -1, 90, -1, 91, -1, 92,
Reid Spencere77e35e2006-12-01 20:26:20 +0000697 -1, 93, -1, 94, -1, 95, -1, 104, -1, 105,
Reid Spencerf2d55322006-12-01 21:52:30 +0000698 -1, 106, -1, 11, -1, 9, -1, 7, -1, 5,
699 -1, 12, -1, 10, -1, 8, -1, 6, -1, 133,
700 -1, 134, -1, 13, -1, 14, -1, 165, 112, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000701 -1, 42, -1, 43, -1, 44, -1, 48, -1, 45,
702 -1, 46, -1, 47, -1, -1, 65, -1, 66, -1,
Reid Spencerf2d55322006-12-01 21:52:30 +0000703 67, -1, 68, -1, 69, -1, 70, -1, 64, 18,
704 -1, -1, -1, 57, 18, -1, -1, 113, 57, 18,
Reid Spencere77e35e2006-12-01 20:26:20 +0000705 -1, 37, 30, -1, -1, 142, -1, -1, 113, 145,
Reid Spencerf2d55322006-12-01 21:52:30 +0000706 144, -1, 142, -1, 57, 18, -1, 148, -1, 3,
707 -1, 150, -1, 3, -1, 150, -1, 4, -1, 5,
708 -1, 6, -1, 7, -1, 8, -1, 9, -1, 10,
709 -1, 11, -1, 12, -1, 13, -1, 14, -1, 15,
710 -1, 16, -1, 149, -1, 179, -1, 114, 18, -1,
711 147, 115, 152, 116, -1, 117, 18, 118, 150, 119,
712 -1, 120, 18, 118, 150, 121, -1, 122, 151, 123,
Reid Spencere77e35e2006-12-01 20:26:20 +0000713 -1, 122, 123, -1, 150, 124, -1, 150, -1, 151,
714 113, 150, -1, 151, -1, 151, 113, 40, -1, 40,
715 -1, -1, 148, 117, 155, 119, -1, 148, 117, 119,
716 -1, 148, 125, 30, -1, 148, 120, 155, 121, -1,
717 148, 122, 155, 123, -1, 148, 122, 123, -1, 148,
Reid Spencerf2d55322006-12-01 21:52:30 +0000718 22, -1, 148, 23, -1, 148, 179, -1, 148, 154,
719 -1, 148, 24, -1, 133, 128, -1, 134, 18, -1,
720 4, 25, -1, 4, 26, -1, 136, 21, -1, 111,
Reid Spencere77e35e2006-12-01 20:26:20 +0000721 115, 153, 39, 148, 116, -1, 101, 115, 153, 193,
722 116, -1, 103, 115, 153, 113, 153, 113, 153, 116,
723 -1, 129, 115, 153, 113, 153, 116, -1, 130, 115,
724 153, 113, 153, 116, -1, 131, 115, 153, 113, 153,
725 116, -1, 132, 115, 153, 113, 153, 116, -1, 108,
726 115, 153, 113, 153, 116, -1, 109, 115, 153, 113,
727 153, 113, 153, 116, -1, 110, 115, 153, 113, 153,
728 113, 153, 116, -1, 155, 113, 153, -1, 153, -1,
729 35, -1, 36, -1, 158, -1, 158, 174, -1, 158,
730 176, -1, 158, 62, 61, 160, -1, 158, 31, -1,
731 159, -1, 159, 137, 27, 146, -1, 159, 176, -1,
732 159, 62, 61, 160, -1, 159, 137, 138, 156, 153,
733 144, -1, 159, 137, 50, 156, 148, 144, -1, 159,
734 137, 45, 156, 148, 144, -1, 159, 137, 47, 156,
735 148, 144, -1, 159, 51, 162, -1, 159, 58, 112,
736 163, -1, -1, 30, -1, 56, -1, 55, -1, 53,
Reid Spencerf2d55322006-12-01 21:52:30 +0000737 112, 161, -1, 54, 112, 18, -1, 52, 112, 30,
Reid Spencere77e35e2006-12-01 20:26:20 +0000738 -1, 71, 112, 30, -1, 117, 164, 119, -1, 164,
739 113, 30, -1, 30, -1, -1, 28, -1, 30, -1,
740 165, -1, -1, 148, 166, -1, 168, 113, 167, -1,
741 167, -1, 168, -1, 168, 113, 40, -1, 40, -1,
742 -1, 139, 146, 165, 115, 169, 116, 143, 140, -1,
743 32, -1, 122, -1, 138, 170, 171, -1, 33, -1,
744 123, -1, 172, 182, 173, -1, -1, 45, -1, 47,
Reid Spencerf2d55322006-12-01 21:52:30 +0000745 -1, 34, 175, 170, -1, -1, 63, -1, 17, -1,
746 18, -1, 21, -1, 25, -1, 26, -1, 22, -1,
747 23, -1, 24, -1, 120, 155, 121, -1, 154, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000748 61, 177, 30, 113, 30, -1, 127, -1, 165, -1,
749 179, -1, 178, -1, 148, 180, -1, 182, 183, -1,
Reid Spencer16244f42006-12-01 21:10:07 +0000750 183, -1, 184, 185, -1, 184, 187, -1, -1, 29,
Reid Spencerf2d55322006-12-01 21:52:30 +0000751 -1, 72, 181, -1, 72, 3, -1, 73, 15, 180,
752 -1, 73, 4, 180, 113, 15, 180, 113, 15, 180,
753 -1, 74, 135, 180, 113, 15, 180, 117, 186, 119,
754 -1, 74, 135, 180, 113, 15, 180, 117, 119, -1,
755 137, 75, 139, 146, 180, 115, 190, 116, 39, 15,
756 180, 76, 15, 180, -1, 76, -1, 77, -1, 186,
757 135, 178, 113, 15, 180, -1, 135, 178, 113, 15,
Reid Spencere77e35e2006-12-01 20:26:20 +0000758 180, -1, 137, 192, -1, 148, 117, 180, 113, 180,
759 119, -1, 188, 113, 117, 180, 113, 180, 119, -1,
760 181, -1, 189, 113, 181, -1, 189, -1, -1, 60,
761 59, -1, 59, -1, 129, 148, 180, 113, 180, -1,
762 130, 148, 180, 113, 180, -1, 131, 148, 180, 113,
763 180, -1, 49, 181, -1, 132, 181, 113, 181, -1,
764 111, 181, 39, 148, -1, 103, 181, 113, 181, 113,
765 181, -1, 107, 181, 113, 148, -1, 108, 181, 113,
766 181, -1, 109, 181, 113, 181, 113, 181, -1, 110,
767 181, 113, 181, 113, 181, -1, 102, 188, -1, 191,
768 139, 146, 180, 115, 190, 116, -1, 195, -1, 113,
769 189, -1, -1, 38, -1, -1, 96, 148, 141, -1,
Reid Spencerf2d55322006-12-01 21:52:30 +0000770 96, 148, 113, 10, 180, 141, -1, 97, 148, 141,
771 -1, 97, 148, 113, 10, 180, 141, -1, 98, 181,
Reid Spencere77e35e2006-12-01 20:26:20 +0000772 -1, 194, 99, 148, 180, -1, 194, 100, 181, 113,
773 148, 180, -1, 101, 148, 180, 193, -1
Reid Spencere7c3c602006-11-30 06:36:44 +0000774};
775
776/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
777static const unsigned short int yyrline[] =
778{
Reid Spencerf2d55322006-12-01 21:52:30 +0000779 0, 188, 188, 188, 189, 189, 193, 193, 193, 193,
780 193, 193, 193, 193, 193, 194, 194, 194, 195, 195,
781 195, 195, 195, 195, 196, 196, 196, 200, 200, 200,
782 200, 201, 201, 201, 201, 202, 202, 203, 203, 206,
783 210, 215, 215, 215, 215, 215, 215, 216, 217, 220,
784 220, 220, 220, 220, 221, 222, 227, 232, 233, 236,
785 237, 245, 251, 252, 255, 256, 265, 266, 279, 279,
786 280, 280, 281, 285, 285, 285, 285, 285, 285, 285,
787 286, 286, 286, 286, 286, 287, 287, 288, 294, 299,
788 305, 312, 319, 325, 329, 339, 342, 350, 351, 356,
789 359, 369, 375, 380, 386, 392, 398, 403, 409, 415,
790 421, 427, 433, 439, 445, 451, 457, 465, 472, 478,
791 483, 488, 493, 498, 503, 508, 513, 523, 528, 533,
792 533, 543, 548, 551, 556, 560, 564, 567, 572, 577,
793 582, 588, 594, 600, 606, 611, 616, 621, 623, 623,
794 626, 631, 638, 643, 650, 657, 662, 663, 671, 671,
795 672, 672, 674, 681, 685, 689, 692, 697, 700, 702,
796 722, 725, 729, 738, 739, 741, 749, 750, 751, 755,
797 768, 769, 772, 772, 772, 772, 772, 772, 772, 773,
798 774, 779, 780, 789, 789, 792, 792, 798, 805, 808,
799 816, 820, 825, 828, 834, 839, 844, 849, 856, 862,
800 868, 881, 886, 892, 897, 905, 912, 918, 926, 927,
801 935, 936, 940, 945, 948, 953, 958, 963, 968, 973,
802 980, 985, 990, 995, 1000, 1005, 1010, 1019, 1024, 1028,
803 1032, 1033, 1036, 1043, 1050, 1057, 1064, 1069, 1076, 1083
Reid Spencere7c3c602006-11-30 06:36:44 +0000804};
805#endif
806
807#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
808/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
809 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
810static const char *const yytname[] =
811{
Reid Spencerf2d55322006-12-01 21:52:30 +0000812 "$end", "error", "$undefined", "VOID", "BOOL", "SBYTE", "UBYTE",
813 "SHORT", "USHORT", "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE",
814 "LABEL", "OPAQUE", "ESINT64VAL", "EUINT64VAL", "SINTVAL", "UINTVAL",
815 "FPVAL", "NULL_TOK", "UNDEF", "ZEROINITIALIZER", "TRUETOK", "FALSETOK",
Reid Spencere77e35e2006-12-01 20:26:20 +0000816 "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
817 "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION",
818 "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK",
819 "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL",
820 "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN",
821 "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", "SIDEEFFECT", "CC_TOK",
822 "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", "COLDCC_TOK",
823 "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", "RET", "BR",
824 "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB", "MUL", "UDIV",
825 "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR", "XOR", "SETLE",
826 "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC", "ALLOCA", "FREE",
827 "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "LSHR",
Reid Spencere7c3c602006-11-30 06:36:44 +0000828 "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
829 "CAST", "'='", "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'",
Reid Spencere77e35e2006-12-01 20:26:20 +0000830 "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", "IntVal", "EInt64Val",
831 "ArithmeticOps", "LogicalOps", "SetCondOps", "ShiftOps", "SIntType",
832 "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage",
Reid Spencere7c3c602006-11-30 06:36:44 +0000833 "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection",
834 "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV",
835 "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal",
836 "ConstExpr", "ConstVector", "GlobalType", "Module", "DefinitionList",
837 "ConstPool", "AsmBlock", "BigOrLittle", "TargetDefinition",
838 "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
839 "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
840 "END", "Function", "FnDeclareLinkage", "FunctionProto", "OptSideEffect",
841 "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal",
842 "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst",
843 "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE",
844 "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0
845};
846#endif
847
848# ifdef YYPRINT
849/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
850 token YYLEX-NUM. */
851static const unsigned short int yytoknum[] =
852{
853 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
854 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
855 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
856 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
857 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
858 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
859 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
860 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
861 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
862 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
863 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
Reid Spencere77e35e2006-12-01 20:26:20 +0000864 365, 366, 61, 44, 92, 40, 41, 91, 120, 93,
865 60, 62, 123, 125, 42, 99
Reid Spencere7c3c602006-11-30 06:36:44 +0000866};
867# endif
868
869/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
870static const unsigned char yyr1[] =
871{
Reid Spencere77e35e2006-12-01 20:26:20 +0000872 0, 126, 127, 127, 128, 128, 129, 129, 129, 129,
873 129, 129, 129, 129, 129, 130, 130, 130, 131, 131,
874 131, 131, 131, 131, 132, 132, 132, 133, 133, 133,
875 133, 134, 134, 134, 134, 135, 135, 136, 136, 137,
876 137, 138, 138, 138, 138, 138, 138, 138, 138, 139,
877 139, 139, 139, 139, 139, 139, 139, 140, 140, 141,
878 141, 142, 143, 143, 144, 144, 145, 145, 146, 146,
879 147, 147, 148, 149, 149, 149, 149, 149, 149, 149,
880 149, 149, 149, 149, 149, 150, 150, 150, 150, 150,
881 150, 150, 150, 150, 150, 151, 151, 152, 152, 152,
882 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
883 153, 153, 153, 153, 153, 153, 153, 154, 154, 154,
884 154, 154, 154, 154, 154, 154, 154, 155, 155, 156,
885 156, 157, 158, 158, 158, 158, 158, 159, 159, 159,
886 159, 159, 159, 159, 159, 159, 159, 160, 161, 161,
887 162, 162, 162, 162, 163, 164, 164, 164, 165, 165,
888 166, 166, 167, 168, 168, 169, 169, 169, 169, 170,
889 171, 171, 172, 173, 173, 174, 175, 175, 175, 176,
890 177, 177, 178, 178, 178, 178, 178, 178, 178, 178,
891 178, 178, 178, 179, 179, 180, 180, 181, 182, 182,
892 183, 184, 184, 184, 185, 185, 185, 185, 185, 185,
893 185, 185, 185, 186, 186, 187, 188, 188, 189, 189,
894 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
895 192, 192, 192, 192, 192, 192, 192, 192, 193, 193,
896 194, 194, 195, 195, 195, 195, 195, 195, 195, 195
Reid Spencere7c3c602006-11-30 06:36:44 +0000897};
898
899/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
900static const unsigned char yyr2[] =
901{
902 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000905 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
906 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
907 1, 1, 1, 1, 1, 2, 0, 0, 2, 0,
908 3, 2, 0, 1, 0, 3, 1, 2, 1, 1,
Reid Spencere7c3c602006-11-30 06:36:44 +0000909 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000910 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
911 5, 5, 3, 2, 2, 1, 3, 1, 3, 1,
912 0, 4, 3, 3, 4, 4, 3, 2, 2, 2,
913 2, 2, 2, 2, 2, 2, 2, 6, 5, 8,
914 6, 6, 6, 6, 6, 8, 8, 3, 1, 1,
915 1, 1, 2, 2, 4, 2, 1, 4, 2, 4,
916 6, 6, 6, 6, 3, 4, 0, 1, 1, 1,
917 3, 3, 3, 3, 3, 3, 1, 0, 1, 1,
918 1, 0, 2, 3, 1, 1, 3, 1, 0, 8,
919 1, 1, 3, 1, 1, 3, 0, 1, 1, 3,
920 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
921 3, 1, 5, 1, 1, 1, 1, 2, 2, 1,
Reid Spencer16244f42006-12-01 21:10:07 +0000922 2, 2, 0, 1, 2, 2, 3, 9, 9, 8,
923 14, 1, 1, 6, 5, 2, 6, 7, 1, 3,
Reid Spencere77e35e2006-12-01 20:26:20 +0000924 1, 0, 2, 1, 5, 5, 5, 2, 4, 4,
925 6, 4, 4, 6, 6, 2, 7, 1, 2, 0,
926 1, 0, 3, 6, 3, 6, 2, 4, 6, 4
Reid Spencere7c3c602006-11-30 06:36:44 +0000927};
928
929/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
930 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
931 means the default is an error. */
932static const unsigned char yydefact[] =
933{
Reid Spencere77e35e2006-12-01 20:26:20 +0000934 146, 0, 48, 136, 1, 135, 176, 41, 42, 43,
935 45, 46, 47, 44, 0, 56, 202, 132, 133, 158,
936 159, 0, 0, 0, 48, 0, 138, 177, 178, 56,
937 0, 0, 49, 50, 51, 52, 53, 54, 0, 0,
938 203, 202, 199, 40, 0, 0, 0, 0, 144, 0,
939 0, 0, 0, 0, 0, 0, 39, 179, 147, 134,
Reid Spencerf2d55322006-12-01 21:52:30 +0000940 55, 69, 73, 74, 75, 76, 77, 78, 79, 80,
941 81, 82, 83, 84, 85, 2, 3, 0, 0, 0,
Reid Spencere77e35e2006-12-01 20:26:20 +0000942 0, 193, 0, 0, 68, 86, 72, 194, 87, 170,
Reid Spencer16244f42006-12-01 21:10:07 +0000943 171, 172, 173, 174, 175, 198, 0, 0, 0, 211,
944 212, 241, 200, 201, 0, 0, 0, 0, 157, 145,
945 139, 137, 129, 130, 0, 0, 0, 0, 88, 0,
946 0, 71, 93, 95, 0, 0, 100, 94, 205, 0,
947 204, 0, 0, 30, 34, 29, 33, 28, 32, 27,
948 31, 35, 36, 0, 240, 0, 223, 0, 56, 6,
949 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
950 17, 18, 19, 20, 21, 22, 23, 0, 0, 0,
951 0, 0, 0, 24, 25, 26, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 56, 215, 0, 237, 152,
953 149, 148, 150, 151, 153, 156, 0, 64, 64, 64,
954 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
955 83, 0, 0, 0, 0, 64, 0, 0, 0, 92,
Reid Spencerf2d55322006-12-01 21:52:30 +0000956 168, 99, 97, 0, 182, 183, 184, 187, 188, 189,
957 185, 186, 180, 0, 0, 0, 0, 0, 0, 0,
Reid Spencer16244f42006-12-01 21:10:07 +0000958 0, 0, 0, 0, 191, 196, 195, 197, 0, 206,
959 0, 227, 222, 0, 59, 59, 246, 0, 0, 235,
960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, 0, 0, 154, 0, 142, 143, 141, 114,
962 115, 4, 5, 112, 113, 116, 107, 108, 111, 0,
963 0, 0, 0, 110, 109, 140, 70, 70, 96, 167,
964 161, 164, 165, 0, 0, 89, 181, 0, 0, 0,
965 0, 0, 0, 0, 128, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 242, 0, 244, 239, 0, 0,
967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
968 0, 0, 0, 155, 0, 0, 66, 64, 102, 0,
969 0, 106, 0, 103, 90, 91, 160, 162, 0, 62,
970 98, 0, 239, 0, 0, 0, 0, 0, 0, 190,
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
972 0, 249, 0, 0, 0, 231, 232, 0, 0, 229,
973 0, 0, 0, 228, 0, 247, 0, 61, 67, 65,
974 101, 104, 105, 166, 163, 63, 57, 0, 0, 0,
975 0, 0, 0, 0, 127, 0, 0, 0, 0, 0,
976 0, 221, 59, 60, 59, 218, 238, 0, 0, 0,
977 0, 0, 224, 225, 226, 221, 0, 0, 169, 192,
978 118, 0, 0, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 220, 0, 0, 243, 245, 0, 0, 0,
980 230, 233, 234, 0, 248, 58, 0, 124, 0, 0,
981 117, 120, 121, 122, 123, 0, 209, 0, 0, 0,
982 219, 216, 0, 236, 0, 0, 0, 207, 0, 208,
983 0, 0, 217, 119, 125, 126, 0, 0, 0, 0,
984 0, 0, 214, 0, 0, 213, 0, 210
Reid Spencere7c3c602006-11-30 06:36:44 +0000985};
986
987/* YYDEFGOTO[NTERM-NUM]. */
988static const short int yydefgoto[] =
989{
Reid Spencer16244f42006-12-01 21:10:07 +0000990 -1, 81, 283, 240, 241, 242, 243, 211, 212, 143,
991 213, 24, 15, 38, 438, 324, 346, 406, 276, 347,
992 82, 83, 214, 85, 86, 124, 223, 314, 244, 315,
993 114, 1, 2, 3, 59, 192, 48, 109, 196, 87,
994 357, 301, 302, 303, 39, 91, 16, 94, 17, 29,
995 18, 307, 245, 88, 247, 425, 41, 42, 43, 102,
996 478, 103, 259, 452, 453, 185, 186, 381, 187, 188
Reid Spencere7c3c602006-11-30 06:36:44 +0000997};
998
999/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1000 STATE-NUM. */
Reid Spencerf2d55322006-12-01 21:52:30 +00001001#define YYPACT_NINF -442
Reid Spencere7c3c602006-11-30 06:36:44 +00001002static const short int yypact[] =
1003{
Reid Spencerf2d55322006-12-01 21:52:30 +00001004 -442, 61, 222, 381, -442, -442, 106, -442, -442, -442,
1005 -442, -442, -442, -442, -25, 283, 43, -442, -442, -442,
1006 -442, 10, -14, 40, 197, 4, -442, -442, -442, 283,
1007 79, 101, -442, -442, -442, -442, -442, -442, 685, -10,
1008 -442, -2, -442, 41, 15, 38, 48, 50, -442, 53,
1009 79, 685, 44, 44, 44, 44, -442, -442, -442, -442,
1010 -442, 57, -442, -442, -442, -442, -442, -442, -442, -442,
1011 -442, -442, -442, -442, -442, -442, -442, 172, 174, 175,
1012 468, -442, 131, 81, -442, -442, -85, -442, -442, -442,
1013 -442, -442, -442, -442, -442, -442, 714, 20, 320, -442,
1014 -442, 1031, -442, -442, 165, 100, 180, 169, 186, -442,
1015 -442, -442, -442, -442, 743, 743, 743, 773, -442, 83,
1016 92, -442, -442, -85, -57, 102, 80, -442, 57, 927,
1017 -442, 927, 927, -442, -442, -442, -442, -442, -442, -442,
1018 -442, -442, -442, 927, -442, 743, -442, 159, 283, -442,
1019 -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
1020 -442, -442, -442, -442, -442, -442, -442, 743, 743, 743,
1021 743, 743, 743, -442, -442, -442, 743, 743, 743, 743,
1022 743, 743, 743, 743, 743, 283, -442, 36, -442, -442,
1023 -442, -442, -442, -442, -442, -442, -81, 107, 107, 107,
1024 141, 151, 203, 157, 205, 160, 209, 163, 210, 208,
1025 215, 171, 212, 225, 818, 107, 743, 743, 743, -442,
1026 526, -442, 118, 132, -442, -442, -442, -442, -442, -442,
1027 -442, -442, 187, 134, 137, 139, 140, 142, 143, 773,
1028 144, 158, 162, 166, -442, -442, -442, -442, 170, -442,
1029 173, -442, -442, 685, 177, 178, -442, 927, 161, 185,
1030 189, 190, 195, 196, 201, 236, 927, 927, 927, 202,
1031 685, 743, 743, 252, -442, -3, -442, -442, -442, -442,
1032 -442, -442, -442, -442, -442, -442, -442, -442, -442, 564,
1033 773, 498, 255, -442, -442, -442, -22, -51, -85, -442,
1034 131, -442, 204, 183, 594, -442, -442, 288, 773, 773,
1035 773, 773, 773, 773, -442, -80, 773, 773, 773, 773,
1036 304, 306, 927, -5, -442, -4, -442, 223, 927, 206,
1037 743, 743, 743, 743, 743, 743, 230, 231, 232, 743,
1038 927, 927, 244, -442, 308, 341, -442, 107, -442, -45,
1039 -54, -442, -48, -442, -442, -442, -442, -442, 647, 323,
1040 -442, 249, 223, 253, 254, 257, 261, 326, 773, -442,
1041 263, 265, 266, 267, 927, 927, 272, 927, 370, 927,
1042 743, -442, 276, 927, 277, -442, -442, 281, 285, -442,
1043 927, 927, 927, -442, 284, -442, 743, -442, -442, -442,
1044 -442, -442, -442, -442, -442, -442, 344, 372, 289, 773,
1045 773, 773, 773, 743, -442, 773, 773, 773, 773, 291,
1046 290, 743, 293, -442, 293, -442, 297, 927, 299, 743,
1047 743, 743, -442, -442, -442, 743, 927, 395, -442, -442,
1048 -442, 301, 302, 307, 309, 317, 318, 319, 324, 325,
1049 427, 9, 297, 328, 388, -442, -442, 743, 327, 927,
1050 -442, -442, -442, 331, -442, -442, 773, -442, 773, 773,
1051 -442, -442, -442, -442, -442, 927, -442, 973, 39, 409,
1052 -442, -442, 330, -442, 334, 335, 336, -442, 342, -442,
1053 973, 439, -442, -442, -442, -442, 441, 345, 927, 927,
1054 442, 383, -442, 927, 445, -442, 927, -442
Reid Spencere7c3c602006-11-30 06:36:44 +00001055};
1056
1057/* YYPGOTO[NTERM-NUM]. */
1058static const short int yypgoto[] =
1059{
Reid Spencerf2d55322006-12-01 21:52:30 +00001060 -442, -442, -442, 360, 361, 362, 364, -97, -96, -441,
1061 -442, 423, 443, -125, -442, -251, 109, -442, -190, -442,
1062 -44, -442, -38, -442, -69, 359, -442, -105, 256, -185,
1063 69, -442, -442, -442, 436, -442, -442, -442, -442, 0,
1064 -442, 133, -442, -442, 460, -442, -442, -442, -442, -442,
1065 487, -442, -435, -103, -6, 7, -442, 453, -442, -442,
1066 -442, -442, -442, 115, 64, -442, -442, 153, -442, -442
Reid Spencere7c3c602006-11-30 06:36:44 +00001067};
1068
1069/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1070 positive, shift that token. If negative, reduce the rule which
1071 number is the opposite. If zero, do what YYDEFACT says.
1072 If YYTABLE_NINF, syntax error. */
Reid Spencere77e35e2006-12-01 20:26:20 +00001073#define YYTABLE_NINF -132
Reid Spencere7c3c602006-11-30 06:36:44 +00001074static const short int yytable[] =
1075{
Reid Spencerf2d55322006-12-01 21:52:30 +00001076 84, 141, 142, 25, 326, 377, 379, 111, 277, 278,
1077 477, 123, 215, 84, 133, 134, 135, 136, 137, 138,
1078 139, 140, 89, 253, 131, 295, 246, 40, 246, 246,
1079 -70, 92, 273, 368, 344, 132, 30, 490, 274, 127,
1080 246, 369, 488, 25, 133, 134, 135, 136, 137, 138,
1081 139, 140, 378, 378, 345, 497, 218, 123, 129, 368,
1082 270, 4, 44, 45, 46, 368, 219, 401, 368, 19,
1083 355, 20, 40, 127, 400, 402, 197, 198, 199, 112,
1084 113, 47, 125, 121, 62, 63, 64, 65, 66, 67,
1085 68, 69, 70, 71, 72, 73, 74, 354, 49, 75,
1086 76, 50, 127, 130, 349, 350, 352, 129, 19, 58,
1087 20, 294, 90, 96, 97, 98, 56, 99, 100, 60,
1088 221, 93, 115, 116, 117, 248, 249, 104, 476, 254,
1089 255, 129, 257, 258, 129, 271, 272, 250, 129, 129,
Reid Spencer16244f42006-12-01 21:10:07 +00001090 129, 129, 129, 266, 267, 268, 129, 296, 297, 298,
Reid Spencerf2d55322006-12-01 21:52:30 +00001091 105, 27, 251, 28, 246, 190, 191, 399, 489, 19,
1092 106, 20, 107, 246, 246, 246, 279, 280, -30, -30,
1093 108, 455, -71, 456, -29, -29, 256, -28, -28, 260,
1094 -27, -27, 300, 261, 262, 263, 264, 265, 281, 282,
1095 118, 269, 119, 120, 77, 189, 126, 78, 193, 194,
1096 79, 216, 80, 362, 363, 364, 365, 366, 367, 322,
1097 217, 370, 371, 372, 373, 84, 195, 220, 252, 246,
1098 275, -34, -131, -33, 51, 246, 340, -32, -31, -37,
1099 284, 304, 84, 341, 129, 298, -38, 246, 246, 7,
1100 8, 9, 52, 11, 53, 13, 285, 54, 305, 308,
1101 306, 327, 309, 5, 310, 311, 6, 312, 313, 316,
1102 336, 337, 338, 414, 7, 8, 9, 10, 11, 12,
1103 13, 246, 246, 317, 246, 335, 246, 318, 328, 342,
1104 246, 319, 343, 320, 14, 353, 321, 246, 246, 246,
1105 323, 325, 129, 385, 129, 129, 129, 389, 329, 359,
1106 356, 129, 330, 331, 441, 442, 443, 444, 332, 333,
1107 446, 447, 448, 449, 334, 339, 376, 358, 361, 374,
1108 300, 375, 382, 383, 246, 133, 134, 135, 136, 137,
1109 138, 139, 140, 246, 394, 395, 380, 384, 397, 386,
1110 387, 388, 129, 390, 391, 392, 393, 31, 32, 33,
1111 34, 35, 36, 37, 141, 142, 246, 396, 436, 398,
1112 344, 484, 407, 485, 486, 413, 409, 410, 419, 420,
1113 411, 422, 246, 424, 412, 445, 415, 428, 416, 417,
1114 418, 141, 142, 129, 432, 433, 434, 421, 423, 427,
1115 429, 129, 129, 129, 430, 246, 246, 129, 431, 435,
1116 246, 437, 439, 246, 450, 440, 454, 451, -40, 19,
1117 457, 20, 459, 465, 466, 6, -40, -40, 467, 129,
1118 468, 458, 469, -40, -40, -40, -40, -40, -40, -40,
1119 464, -40, 21, 470, 471, 472, 460, 461, 462, 22,
1120 473, 474, 475, 23, 479, 378, 481, 483, 491, 492,
1121 493, 494, 495, 482, 498, 496, 499, 503, 500, 504,
1122 506, 181, 182, 183, 480, 184, 101, 55, 405, 487,
1123 293, 121, 62, 63, 64, 65, 66, 67, 68, 69,
1124 70, 71, 72, 73, 74, 222, 110, 75, 76, 57,
1125 26, 404, 501, 502, 95, 426, 19, 505, 20, 463,
1126 507, 121, 200, 201, 202, 203, 204, 205, 206, 207,
1127 208, 209, 210, 73, 74, 408, 0, 75, 76, 0,
1128 0, 0, 0, 0, 0, 0, 19, 0, 20, 121,
1129 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
1130 72, 73, 74, 0, 0, 75, 76, 0, 0, 0,
1131 0, 0, 0, 0, 19, 0, 20, 0, 0, 0,
1132 0, 0, 0, 0, 0, 0, 299, 121, 200, 201,
1133 202, 203, 204, 205, 206, 207, 208, 209, 210, 73,
1134 74, 0, 77, 75, 76, 78, 0, 0, 79, 0,
1135 80, 122, 19, 0, 20, 0, 0, 121, 62, 63,
1136 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1137 74, 0, 77, 75, 76, 78, 0, 0, 79, 0,
1138 80, 351, 19, 0, 20, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 360, 0, 0, 0, 0, 0,
1140 77, 0, 0, 78, 0, 0, 79, 0, 80, 0,
1141 121, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1142 71, 72, 73, 74, 0, 0, 75, 76, 0, 0,
1143 0, 0, 0, 0, 0, 19, 0, 20, 77, 0,
1144 0, 78, 0, 348, 79, 0, 80, 403, 61, 62,
1145 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1146 73, 74, 0, 0, 75, 76, 0, 0, 77, 0,
1147 0, 78, 0, 19, 79, 20, 80, 128, 62, 63,
1148 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1149 74, 0, 0, 75, 76, 0, 0, 0, 0, 0,
1150 0, 0, 19, 0, 20, 0, 121, 62, 63, 64,
1151 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1152 0, 77, 75, 76, 78, 0, 0, 79, 0, 80,
1153 0, 19, 0, 20, 0, 0, 121, 200, 201, 202,
1154 203, 204, 205, 206, 207, 208, 209, 210, 73, 74,
1155 0, 0, 75, 76, 0, 0, 0, 0, 0, 77,
1156 0, 19, 78, 20, 0, 79, 0, 80, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
1159 0, 78, 0, 0, 79, 0, 80, 75, 76, 0,
1160 286, 287, 288, 0, 0, 0, 19, 0, 20, 0,
1161 0, 0, 0, 0, 0, 0, 0, 77, 0, 0,
1162 78, 0, 0, 79, 0, 80, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 77, 0, 0,
1165 78, 0, 0, 79, 0, 80, 149, 150, 151, 152,
Reid Spencer16244f42006-12-01 21:10:07 +00001166 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1167 163, 164, 165, 166, 0, 0, 0, 0, 0, 233,
Reid Spencerf2d55322006-12-01 21:52:30 +00001168 0, 234, 173, 174, 175, 0, 235, 236, 237, 238,
1169 0, 0, 0, 0, 0, 289, 0, 0, 290, 0,
1170 291, 0, 0, 292, 224, 225, 75, 76, 226, 227,
1171 228, 229, 230, 231, 0, 19, 0, 20, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencerf2d55322006-12-01 21:52:30 +00001174 0, 0, 0, 0, 0, 0, 0, 0, 232, 0,
1175 224, 225, 0, 0, 226, 227, 228, 229, 230, 231,
1176 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
1177 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1178 164, 165, 166, 0, 0, 0, 0, 0, 233, 0,
1179 234, 173, 174, 175, 232, 235, 236, 237, 238, 0,
1180 0, 0, 0, 0, 0, 0, 0, 239, 0, 0,
1181 0, 149, 150, 151, 152, 153, 154, 155, 156, 157,
1182 158, 159, 160, 161, 162, 163, 164, 165, 166, 144,
1183 0, 0, 0, 0, 233, 0, 234, 173, 174, 175,
1184 145, 235, 236, 237, 238, 0, 0, 0, 0, 0,
1185 146, 147, 0, 239, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 148, 0, 0, 149,
1187 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1188 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1189 0, 0, 170, 171, 172, 173, 174, 175, 176, 177,
1190 178, 179, 180
Reid Spencere7c3c602006-11-30 06:36:44 +00001191};
1192
1193static const short int yycheck[] =
1194{
Reid Spencerf2d55322006-12-01 21:52:30 +00001195 38, 98, 98, 3, 255, 10, 10, 51, 198, 199,
1196 451, 80, 117, 51, 5, 6, 7, 8, 9, 10,
1197 11, 12, 32, 148, 4, 215, 129, 29, 131, 132,
1198 115, 33, 113, 113, 37, 15, 61, 478, 119, 124,
1199 143, 121, 477, 43, 5, 6, 7, 8, 9, 10,
1200 11, 12, 57, 57, 57, 490, 113, 126, 96, 113,
1201 185, 0, 52, 53, 54, 113, 123, 121, 113, 28,
1202 121, 30, 29, 124, 119, 123, 114, 115, 116, 35,
1203 36, 71, 82, 3, 4, 5, 6, 7, 8, 9,
1204 10, 11, 12, 13, 14, 15, 16, 119, 112, 19,
1205 20, 61, 124, 96, 289, 290, 291, 145, 28, 30,
1206 30, 214, 122, 72, 73, 74, 112, 76, 77, 18,
1207 40, 123, 53, 54, 55, 131, 132, 112, 119, 167,
1208 168, 169, 170, 171, 172, 99, 100, 143, 176, 177,
Reid Spencer16244f42006-12-01 21:10:07 +00001209 178, 179, 180, 181, 182, 183, 184, 216, 217, 218,
Reid Spencerf2d55322006-12-01 21:52:30 +00001210 112, 45, 145, 47, 257, 55, 56, 347, 119, 28,
1211 112, 30, 112, 266, 267, 268, 25, 26, 17, 18,
1212 117, 422, 115, 424, 17, 18, 169, 17, 18, 172,
1213 17, 18, 220, 176, 177, 178, 179, 180, 17, 18,
1214 18, 184, 18, 18, 114, 30, 115, 117, 18, 30,
1215 120, 118, 122, 308, 309, 310, 311, 312, 313, 253,
1216 118, 316, 317, 318, 319, 253, 30, 115, 59, 322,
1217 113, 18, 0, 18, 27, 328, 270, 18, 18, 21,
1218 18, 113, 270, 271, 272, 304, 21, 340, 341, 42,
1219 43, 44, 45, 46, 47, 48, 21, 50, 116, 115,
1220 63, 257, 115, 31, 115, 115, 34, 115, 115, 115,
1221 266, 267, 268, 368, 42, 43, 44, 45, 46, 47,
1222 48, 374, 375, 115, 377, 39, 379, 115, 117, 272,
1223 383, 115, 30, 113, 62, 30, 113, 390, 391, 392,
1224 113, 113, 330, 331, 332, 333, 334, 335, 113, 116,
1225 300, 339, 113, 113, 409, 410, 411, 412, 113, 113,
1226 415, 416, 417, 418, 113, 113, 322, 113, 30, 15,
1227 358, 15, 328, 117, 427, 5, 6, 7, 8, 9,
1228 10, 11, 12, 436, 340, 341, 113, 330, 30, 332,
1229 333, 334, 380, 113, 113, 113, 339, 64, 65, 66,
1230 67, 68, 69, 70, 451, 451, 459, 113, 396, 18,
1231 37, 466, 113, 468, 469, 39, 113, 113, 374, 375,
1232 113, 377, 475, 379, 113, 413, 113, 383, 113, 113,
1233 113, 478, 478, 421, 390, 391, 392, 115, 18, 113,
1234 113, 429, 430, 431, 113, 498, 499, 435, 113, 115,
1235 503, 57, 30, 506, 113, 116, 113, 117, 27, 28,
1236 113, 30, 113, 18, 113, 34, 35, 36, 116, 457,
1237 113, 427, 113, 42, 43, 44, 45, 46, 47, 48,
1238 436, 50, 51, 116, 116, 116, 429, 430, 431, 58,
1239 116, 116, 15, 62, 116, 57, 119, 116, 39, 119,
1240 116, 116, 116, 459, 15, 113, 15, 15, 113, 76,
1241 15, 101, 101, 101, 457, 101, 43, 24, 359, 475,
1242 214, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1243 12, 13, 14, 15, 16, 126, 50, 19, 20, 29,
1244 3, 358, 498, 499, 41, 380, 28, 503, 30, 435,
1245 506, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1246 12, 13, 14, 15, 16, 362, -1, 19, 20, -1,
1247 -1, -1, -1, -1, -1, -1, 28, -1, 30, 3,
1248 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1249 14, 15, 16, -1, -1, 19, 20, -1, -1, -1,
1250 -1, -1, -1, -1, 28, -1, 30, -1, -1, -1,
1251 -1, -1, -1, -1, -1, -1, 40, 3, 4, 5,
1252 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1253 16, -1, 114, 19, 20, 117, -1, -1, 120, -1,
1254 122, 123, 28, -1, 30, -1, -1, 3, 4, 5,
1255 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1256 16, -1, 114, 19, 20, 117, -1, -1, 120, -1,
1257 122, 123, 28, -1, 30, -1, -1, -1, -1, -1,
1258 -1, -1, -1, -1, 40, -1, -1, -1, -1, -1,
1259 114, -1, -1, 117, -1, -1, 120, -1, 122, -1,
1260 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1261 13, 14, 15, 16, -1, -1, 19, 20, -1, -1,
1262 -1, -1, -1, -1, -1, 28, -1, 30, 114, -1,
1263 -1, 117, -1, 119, 120, -1, 122, 40, 3, 4,
1264 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1265 15, 16, -1, -1, 19, 20, -1, -1, 114, -1,
1266 -1, 117, -1, 28, 120, 30, 122, 3, 4, 5,
1267 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1268 16, -1, -1, 19, 20, -1, -1, -1, -1, -1,
1269 -1, -1, 28, -1, 30, -1, 3, 4, 5, 6,
1270 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1271 -1, 114, 19, 20, 117, -1, -1, 120, -1, 122,
1272 -1, 28, -1, 30, -1, -1, 3, 4, 5, 6,
1273 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1274 -1, -1, 19, 20, -1, -1, -1, -1, -1, 114,
1275 -1, 28, 117, 30, -1, 120, -1, 122, -1, -1,
1276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1277 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1,
1278 -1, 117, -1, -1, 120, -1, 122, 19, 20, -1,
1279 22, 23, 24, -1, -1, -1, 28, -1, 30, -1,
1280 -1, -1, -1, -1, -1, -1, -1, 114, -1, -1,
1281 117, -1, -1, 120, -1, 122, -1, -1, -1, -1,
1282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1283 -1, -1, -1, -1, -1, -1, -1, 114, -1, -1,
1284 117, -1, -1, 120, -1, 122, 78, 79, 80, 81,
Reid Spencer16244f42006-12-01 21:10:07 +00001285 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1286 92, 93, 94, 95, -1, -1, -1, -1, -1, 101,
Reid Spencerf2d55322006-12-01 21:52:30 +00001287 -1, 103, 104, 105, 106, -1, 108, 109, 110, 111,
1288 -1, -1, -1, -1, -1, 117, -1, -1, 120, -1,
1289 122, -1, -1, 125, 17, 18, 19, 20, 21, 22,
1290 23, 24, 25, 26, -1, 28, -1, 30, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencerf2d55322006-12-01 21:52:30 +00001293 -1, -1, -1, -1, -1, -1, -1, -1, 61, -1,
1294 17, 18, -1, -1, 21, 22, 23, 24, 25, 26,
1295 -1, -1, -1, -1, -1, 78, 79, 80, 81, 82,
1296 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1297 93, 94, 95, -1, -1, -1, -1, -1, 101, -1,
1298 103, 104, 105, 106, 61, 108, 109, 110, 111, -1,
1299 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
1300 -1, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1301 87, 88, 89, 90, 91, 92, 93, 94, 95, 38,
1302 -1, -1, -1, -1, 101, -1, 103, 104, 105, 106,
1303 49, 108, 109, 110, 111, -1, -1, -1, -1, -1,
1304 59, 60, -1, 120, -1, -1, -1, -1, -1, -1,
1305 -1, -1, -1, -1, -1, -1, 75, -1, -1, 78,
1306 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1307 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1308 -1, -1, 101, 102, 103, 104, 105, 106, 107, 108,
1309 109, 110, 111
Reid Spencere7c3c602006-11-30 06:36:44 +00001310};
1311
1312/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1313 symbol of state STATE-NUM. */
1314static const unsigned char yystos[] =
1315{
Reid Spencere77e35e2006-12-01 20:26:20 +00001316 0, 157, 158, 159, 0, 31, 34, 42, 43, 44,
1317 45, 46, 47, 48, 62, 138, 172, 174, 176, 28,
1318 30, 51, 58, 62, 137, 165, 176, 45, 47, 175,
1319 61, 64, 65, 66, 67, 68, 69, 70, 139, 170,
1320 29, 182, 183, 184, 52, 53, 54, 71, 162, 112,
1321 61, 27, 45, 47, 50, 138, 112, 170, 30, 160,
Reid Spencerf2d55322006-12-01 21:52:30 +00001322 18, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1323 12, 13, 14, 15, 16, 19, 20, 114, 117, 120,
Reid Spencere77e35e2006-12-01 20:26:20 +00001324 122, 127, 146, 147, 148, 149, 150, 165, 179, 32,
Reid Spencer16244f42006-12-01 21:10:07 +00001325 122, 171, 33, 123, 173, 183, 72, 73, 74, 76,
1326 77, 137, 185, 187, 112, 112, 112, 112, 117, 163,
Reid Spencerf2d55322006-12-01 21:52:30 +00001327 160, 146, 35, 36, 156, 156, 156, 156, 18, 18,
1328 18, 3, 123, 150, 151, 165, 115, 124, 3, 148,
1329 181, 4, 15, 5, 6, 7, 8, 9, 10, 11,
1330 12, 133, 134, 135, 38, 49, 59, 60, 75, 78,
Reid Spencer16244f42006-12-01 21:10:07 +00001331 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1332 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1333 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1334 111, 129, 130, 131, 132, 191, 192, 194, 195, 30,
Reid Spencerf2d55322006-12-01 21:52:30 +00001335 55, 56, 161, 18, 30, 30, 164, 148, 148, 148,
1336 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1337 14, 133, 134, 136, 148, 153, 118, 118, 113, 123,
1338 115, 40, 151, 152, 17, 18, 21, 22, 23, 24,
1339 25, 26, 61, 101, 103, 108, 109, 110, 111, 120,
Reid Spencer16244f42006-12-01 21:10:07 +00001340 129, 130, 131, 132, 154, 178, 179, 180, 180, 180,
1341 180, 181, 59, 139, 148, 148, 181, 148, 148, 188,
1342 181, 181, 181, 181, 181, 181, 148, 148, 148, 181,
Reid Spencerf2d55322006-12-01 21:52:30 +00001343 139, 99, 100, 113, 119, 113, 144, 144, 144, 25,
1344 26, 17, 18, 128, 18, 21, 22, 23, 24, 117,
Reid Spencer16244f42006-12-01 21:10:07 +00001345 120, 122, 125, 154, 179, 144, 150, 150, 150, 40,
1346 148, 167, 168, 169, 113, 116, 63, 177, 115, 115,
1347 115, 115, 115, 115, 153, 155, 115, 115, 115, 115,
1348 113, 113, 146, 113, 141, 113, 141, 180, 117, 113,
1349 113, 113, 113, 113, 113, 39, 180, 180, 180, 113,
1350 146, 148, 181, 30, 37, 57, 142, 145, 119, 155,
1351 155, 123, 155, 30, 119, 121, 165, 166, 113, 116,
1352 40, 30, 153, 153, 153, 153, 153, 153, 113, 121,
Reid Spencerf2d55322006-12-01 21:52:30 +00001353 153, 153, 153, 153, 15, 15, 180, 10, 57, 10,
Reid Spencer16244f42006-12-01 21:10:07 +00001354 113, 193, 180, 117, 181, 148, 181, 181, 181, 148,
Reid Spencerf2d55322006-12-01 21:52:30 +00001355 113, 113, 113, 181, 180, 180, 113, 30, 18, 144,
Reid Spencer16244f42006-12-01 21:10:07 +00001356 119, 121, 123, 40, 167, 142, 143, 113, 193, 113,
1357 113, 113, 113, 39, 153, 113, 113, 113, 113, 180,
Reid Spencerf2d55322006-12-01 21:52:30 +00001358 180, 115, 180, 18, 180, 181, 189, 113, 180, 113,
Reid Spencer16244f42006-12-01 21:10:07 +00001359 113, 113, 180, 180, 180, 115, 148, 57, 140, 30,
1360 116, 153, 153, 153, 153, 148, 153, 153, 153, 153,
1361 113, 117, 189, 190, 113, 141, 141, 113, 180, 113,
Reid Spencerf2d55322006-12-01 21:52:30 +00001362 181, 181, 181, 190, 180, 18, 113, 116, 113, 113,
1363 116, 116, 116, 116, 116, 15, 119, 135, 186, 116,
Reid Spencer16244f42006-12-01 21:10:07 +00001364 181, 119, 180, 116, 153, 153, 153, 180, 178, 119,
Reid Spencerf2d55322006-12-01 21:52:30 +00001365 135, 39, 119, 116, 116, 116, 113, 178, 15, 15,
1366 113, 180, 180, 15, 76, 180, 15, 180
Reid Spencere7c3c602006-11-30 06:36:44 +00001367};
1368
1369#define yyerrok (yyerrstatus = 0)
1370#define yyclearin (yychar = YYEMPTY)
1371#define YYEMPTY (-2)
1372#define YYEOF 0
1373
1374#define YYACCEPT goto yyacceptlab
1375#define YYABORT goto yyabortlab
1376#define YYERROR goto yyerrorlab
1377
1378
1379/* Like YYERROR except do call yyerror. This remains here temporarily
1380 to ease the transition to the new meaning of YYERROR, for GCC.
1381 Once GCC version 2 has supplanted version 1, this can go. */
1382
1383#define YYFAIL goto yyerrlab
1384
1385#define YYRECOVERING() (!!yyerrstatus)
1386
1387#define YYBACKUP(Token, Value) \
1388do \
1389 if (yychar == YYEMPTY && yylen == 1) \
1390 { \
1391 yychar = (Token); \
1392 yylval = (Value); \
1393 yytoken = YYTRANSLATE (yychar); \
1394 YYPOPSTACK; \
1395 goto yybackup; \
1396 } \
1397 else \
1398 { \
1399 yyerror (YY_("syntax error: cannot back up")); \
1400 YYERROR; \
1401 } \
1402while (0)
1403
1404
1405#define YYTERROR 1
1406#define YYERRCODE 256
1407
1408
1409/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1410 If N is 0, then set CURRENT to the empty location which ends
1411 the previous symbol: RHS[0] (always defined). */
1412
1413#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1414#ifndef YYLLOC_DEFAULT
1415# define YYLLOC_DEFAULT(Current, Rhs, N) \
1416 do \
1417 if (N) \
1418 { \
1419 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1420 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1421 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1422 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1423 } \
1424 else \
1425 { \
1426 (Current).first_line = (Current).last_line = \
1427 YYRHSLOC (Rhs, 0).last_line; \
1428 (Current).first_column = (Current).last_column = \
1429 YYRHSLOC (Rhs, 0).last_column; \
1430 } \
1431 while (0)
1432#endif
1433
1434
1435/* YY_LOCATION_PRINT -- Print the location on the stream.
1436 This macro was not mandated originally: define only if we know
1437 we won't break user code: when these are the locations we know. */
1438
1439#ifndef YY_LOCATION_PRINT
1440# if YYLTYPE_IS_TRIVIAL
1441# define YY_LOCATION_PRINT(File, Loc) \
1442 fprintf (File, "%d.%d-%d.%d", \
1443 (Loc).first_line, (Loc).first_column, \
1444 (Loc).last_line, (Loc).last_column)
1445# else
1446# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1447# endif
1448#endif
1449
1450
1451/* YYLEX -- calling `yylex' with the right arguments. */
1452
1453#ifdef YYLEX_PARAM
1454# define YYLEX yylex (YYLEX_PARAM)
1455#else
1456# define YYLEX yylex ()
1457#endif
1458
1459/* Enable debugging if requested. */
1460#if YYDEBUG
1461
1462# ifndef YYFPRINTF
1463# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1464# define YYFPRINTF fprintf
1465# endif
1466
1467# define YYDPRINTF(Args) \
1468do { \
1469 if (yydebug) \
1470 YYFPRINTF Args; \
1471} while (0)
1472
1473# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1474do { \
1475 if (yydebug) \
1476 { \
1477 YYFPRINTF (stderr, "%s ", Title); \
1478 yysymprint (stderr, \
1479 Type, Value); \
1480 YYFPRINTF (stderr, "\n"); \
1481 } \
1482} while (0)
1483
1484/*------------------------------------------------------------------.
1485| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1486| TOP (included). |
1487`------------------------------------------------------------------*/
1488
1489#if defined (__STDC__) || defined (__cplusplus)
1490static void
1491yy_stack_print (short int *bottom, short int *top)
1492#else
1493static void
1494yy_stack_print (bottom, top)
1495 short int *bottom;
1496 short int *top;
1497#endif
1498{
1499 YYFPRINTF (stderr, "Stack now");
1500 for (/* Nothing. */; bottom <= top; ++bottom)
1501 YYFPRINTF (stderr, " %d", *bottom);
1502 YYFPRINTF (stderr, "\n");
1503}
1504
1505# define YY_STACK_PRINT(Bottom, Top) \
1506do { \
1507 if (yydebug) \
1508 yy_stack_print ((Bottom), (Top)); \
1509} while (0)
1510
1511
1512/*------------------------------------------------.
1513| Report that the YYRULE is going to be reduced. |
1514`------------------------------------------------*/
1515
1516#if defined (__STDC__) || defined (__cplusplus)
1517static void
1518yy_reduce_print (int yyrule)
1519#else
1520static void
1521yy_reduce_print (yyrule)
1522 int yyrule;
1523#endif
1524{
1525 int yyi;
1526 unsigned long int yylno = yyrline[yyrule];
1527 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1528 yyrule - 1, yylno);
1529 /* Print the symbols being reduced, and their result. */
1530 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1531 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1532 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1533}
1534
1535# define YY_REDUCE_PRINT(Rule) \
1536do { \
1537 if (yydebug) \
1538 yy_reduce_print (Rule); \
1539} while (0)
1540
1541/* Nonzero means print parse trace. It is left uninitialized so that
1542 multiple parsers can coexist. */
1543int yydebug;
1544#else /* !YYDEBUG */
1545# define YYDPRINTF(Args)
1546# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1547# define YY_STACK_PRINT(Bottom, Top)
1548# define YY_REDUCE_PRINT(Rule)
1549#endif /* !YYDEBUG */
1550
1551
1552/* YYINITDEPTH -- initial size of the parser's stacks. */
1553#ifndef YYINITDEPTH
1554# define YYINITDEPTH 200
1555#endif
1556
1557/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1558 if the built-in stack extension method is used).
1559
1560 Do not make this value too large; the results are undefined if
1561 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1562 evaluated with infinite-precision integer arithmetic. */
1563
1564#ifndef YYMAXDEPTH
1565# define YYMAXDEPTH 10000
1566#endif
1567
1568
1569
1570#if YYERROR_VERBOSE
1571
1572# ifndef yystrlen
1573# if defined (__GLIBC__) && defined (_STRING_H)
1574# define yystrlen strlen
1575# else
1576/* Return the length of YYSTR. */
1577static YYSIZE_T
1578# if defined (__STDC__) || defined (__cplusplus)
1579yystrlen (const char *yystr)
1580# else
1581yystrlen (yystr)
1582 const char *yystr;
1583# endif
1584{
1585 const char *yys = yystr;
1586
1587 while (*yys++ != '\0')
1588 continue;
1589
1590 return yys - yystr - 1;
1591}
1592# endif
1593# endif
1594
1595# ifndef yystpcpy
1596# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1597# define yystpcpy stpcpy
1598# else
1599/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1600 YYDEST. */
1601static char *
1602# if defined (__STDC__) || defined (__cplusplus)
1603yystpcpy (char *yydest, const char *yysrc)
1604# else
1605yystpcpy (yydest, yysrc)
1606 char *yydest;
1607 const char *yysrc;
1608# endif
1609{
1610 char *yyd = yydest;
1611 const char *yys = yysrc;
1612
1613 while ((*yyd++ = *yys++) != '\0')
1614 continue;
1615
1616 return yyd - 1;
1617}
1618# endif
1619# endif
1620
1621# ifndef yytnamerr
1622/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1623 quotes and backslashes, so that it's suitable for yyerror. The
1624 heuristic is that double-quoting is unnecessary unless the string
1625 contains an apostrophe, a comma, or backslash (other than
1626 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1627 null, do not copy; instead, return the length of what the result
1628 would have been. */
1629static YYSIZE_T
1630yytnamerr (char *yyres, const char *yystr)
1631{
1632 if (*yystr == '"')
1633 {
1634 size_t yyn = 0;
1635 char const *yyp = yystr;
1636
1637 for (;;)
1638 switch (*++yyp)
1639 {
1640 case '\'':
1641 case ',':
1642 goto do_not_strip_quotes;
1643
1644 case '\\':
1645 if (*++yyp != '\\')
1646 goto do_not_strip_quotes;
1647 /* Fall through. */
1648 default:
1649 if (yyres)
1650 yyres[yyn] = *yyp;
1651 yyn++;
1652 break;
1653
1654 case '"':
1655 if (yyres)
1656 yyres[yyn] = '\0';
1657 return yyn;
1658 }
1659 do_not_strip_quotes: ;
1660 }
1661
1662 if (! yyres)
1663 return yystrlen (yystr);
1664
1665 return yystpcpy (yyres, yystr) - yyres;
1666}
1667# endif
1668
1669#endif /* YYERROR_VERBOSE */
1670
1671
1672
1673#if YYDEBUG
1674/*--------------------------------.
1675| Print this symbol on YYOUTPUT. |
1676`--------------------------------*/
1677
1678#if defined (__STDC__) || defined (__cplusplus)
1679static void
1680yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1681#else
1682static void
1683yysymprint (yyoutput, yytype, yyvaluep)
1684 FILE *yyoutput;
1685 int yytype;
1686 YYSTYPE *yyvaluep;
1687#endif
1688{
1689 /* Pacify ``unused variable'' warnings. */
1690 (void) yyvaluep;
1691
1692 if (yytype < YYNTOKENS)
1693 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1694 else
1695 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1696
1697
1698# ifdef YYPRINT
1699 if (yytype < YYNTOKENS)
1700 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1701# endif
1702 switch (yytype)
1703 {
1704 default:
1705 break;
1706 }
1707 YYFPRINTF (yyoutput, ")");
1708}
1709
1710#endif /* ! YYDEBUG */
1711/*-----------------------------------------------.
1712| Release the memory associated to this symbol. |
1713`-----------------------------------------------*/
1714
1715#if defined (__STDC__) || defined (__cplusplus)
1716static void
1717yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1718#else
1719static void
1720yydestruct (yymsg, yytype, yyvaluep)
1721 const char *yymsg;
1722 int yytype;
1723 YYSTYPE *yyvaluep;
1724#endif
1725{
1726 /* Pacify ``unused variable'' warnings. */
1727 (void) yyvaluep;
1728
1729 if (!yymsg)
1730 yymsg = "Deleting";
1731 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1732
1733 switch (yytype)
1734 {
1735
1736 default:
1737 break;
1738 }
1739}
1740
1741
1742/* Prevent warnings from -Wmissing-prototypes. */
1743
1744#ifdef YYPARSE_PARAM
1745# if defined (__STDC__) || defined (__cplusplus)
1746int yyparse (void *YYPARSE_PARAM);
1747# else
1748int yyparse ();
1749# endif
1750#else /* ! YYPARSE_PARAM */
1751#if defined (__STDC__) || defined (__cplusplus)
1752int yyparse (void);
1753#else
1754int yyparse ();
1755#endif
1756#endif /* ! YYPARSE_PARAM */
1757
1758
1759
1760/* The look-ahead symbol. */
1761int yychar;
1762
1763/* The semantic value of the look-ahead symbol. */
1764YYSTYPE yylval;
1765
1766/* Number of syntax errors so far. */
1767int yynerrs;
1768
1769
1770
1771/*----------.
1772| yyparse. |
1773`----------*/
1774
1775#ifdef YYPARSE_PARAM
1776# if defined (__STDC__) || defined (__cplusplus)
1777int yyparse (void *YYPARSE_PARAM)
1778# else
1779int yyparse (YYPARSE_PARAM)
1780 void *YYPARSE_PARAM;
1781# endif
1782#else /* ! YYPARSE_PARAM */
1783#if defined (__STDC__) || defined (__cplusplus)
1784int
1785yyparse (void)
1786#else
1787int
1788yyparse ()
1789
1790#endif
1791#endif
1792{
1793
1794 int yystate;
1795 int yyn;
1796 int yyresult;
1797 /* Number of tokens to shift before error messages enabled. */
1798 int yyerrstatus;
1799 /* Look-ahead token as an internal (translated) token number. */
1800 int yytoken = 0;
1801
1802 /* Three stacks and their tools:
1803 `yyss': related to states,
1804 `yyvs': related to semantic values,
1805 `yyls': related to locations.
1806
1807 Refer to the stacks thru separate pointers, to allow yyoverflow
1808 to reallocate them elsewhere. */
1809
1810 /* The state stack. */
1811 short int yyssa[YYINITDEPTH];
1812 short int *yyss = yyssa;
1813 short int *yyssp;
1814
1815 /* The semantic value stack. */
1816 YYSTYPE yyvsa[YYINITDEPTH];
1817 YYSTYPE *yyvs = yyvsa;
1818 YYSTYPE *yyvsp;
1819
1820
1821
1822#define YYPOPSTACK (yyvsp--, yyssp--)
1823
1824 YYSIZE_T yystacksize = YYINITDEPTH;
1825
1826 /* The variables used to return semantic value and location from the
1827 action routines. */
1828 YYSTYPE yyval;
1829
1830
1831 /* When reducing, the number of symbols on the RHS of the reduced
1832 rule. */
1833 int yylen;
1834
1835 YYDPRINTF ((stderr, "Starting parse\n"));
1836
1837 yystate = 0;
1838 yyerrstatus = 0;
1839 yynerrs = 0;
1840 yychar = YYEMPTY; /* Cause a token to be read. */
1841
1842 /* Initialize stack pointers.
1843 Waste one element of value and location stack
1844 so that they stay on the same level as the state stack.
1845 The wasted elements are never initialized. */
1846
1847 yyssp = yyss;
1848 yyvsp = yyvs;
1849
1850 goto yysetstate;
1851
1852/*------------------------------------------------------------.
1853| yynewstate -- Push a new state, which is found in yystate. |
1854`------------------------------------------------------------*/
1855 yynewstate:
1856 /* In all cases, when you get here, the value and location stacks
1857 have just been pushed. so pushing a state here evens the stacks.
1858 */
1859 yyssp++;
1860
1861 yysetstate:
1862 *yyssp = yystate;
1863
1864 if (yyss + yystacksize - 1 <= yyssp)
1865 {
1866 /* Get the current used size of the three stacks, in elements. */
1867 YYSIZE_T yysize = yyssp - yyss + 1;
1868
1869#ifdef yyoverflow
1870 {
1871 /* Give user a chance to reallocate the stack. Use copies of
1872 these so that the &'s don't force the real ones into
1873 memory. */
1874 YYSTYPE *yyvs1 = yyvs;
1875 short int *yyss1 = yyss;
1876
1877
1878 /* Each stack pointer address is followed by the size of the
1879 data in use in that stack, in bytes. This used to be a
1880 conditional around just the two extra args, but that might
1881 be undefined if yyoverflow is a macro. */
1882 yyoverflow (YY_("memory exhausted"),
1883 &yyss1, yysize * sizeof (*yyssp),
1884 &yyvs1, yysize * sizeof (*yyvsp),
1885
1886 &yystacksize);
1887
1888 yyss = yyss1;
1889 yyvs = yyvs1;
1890 }
1891#else /* no yyoverflow */
1892# ifndef YYSTACK_RELOCATE
1893 goto yyexhaustedlab;
1894# else
1895 /* Extend the stack our own way. */
1896 if (YYMAXDEPTH <= yystacksize)
1897 goto yyexhaustedlab;
1898 yystacksize *= 2;
1899 if (YYMAXDEPTH < yystacksize)
1900 yystacksize = YYMAXDEPTH;
1901
1902 {
1903 short int *yyss1 = yyss;
1904 union yyalloc *yyptr =
1905 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1906 if (! yyptr)
1907 goto yyexhaustedlab;
1908 YYSTACK_RELOCATE (yyss);
1909 YYSTACK_RELOCATE (yyvs);
1910
1911# undef YYSTACK_RELOCATE
1912 if (yyss1 != yyssa)
1913 YYSTACK_FREE (yyss1);
1914 }
1915# endif
1916#endif /* no yyoverflow */
1917
1918 yyssp = yyss + yysize - 1;
1919 yyvsp = yyvs + yysize - 1;
1920
1921
1922 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1923 (unsigned long int) yystacksize));
1924
1925 if (yyss + yystacksize - 1 <= yyssp)
1926 YYABORT;
1927 }
1928
1929 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1930
1931 goto yybackup;
1932
1933/*-----------.
1934| yybackup. |
1935`-----------*/
1936yybackup:
1937
1938/* Do appropriate processing given the current state. */
1939/* Read a look-ahead token if we need one and don't already have one. */
1940/* yyresume: */
1941
1942 /* First try to decide what to do without reference to look-ahead token. */
1943
1944 yyn = yypact[yystate];
1945 if (yyn == YYPACT_NINF)
1946 goto yydefault;
1947
1948 /* Not known => get a look-ahead token if don't already have one. */
1949
1950 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1951 if (yychar == YYEMPTY)
1952 {
1953 YYDPRINTF ((stderr, "Reading a token: "));
1954 yychar = YYLEX;
1955 }
1956
1957 if (yychar <= YYEOF)
1958 {
1959 yychar = yytoken = YYEOF;
1960 YYDPRINTF ((stderr, "Now at end of input.\n"));
1961 }
1962 else
1963 {
1964 yytoken = YYTRANSLATE (yychar);
1965 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1966 }
1967
1968 /* If the proper action on seeing token YYTOKEN is to reduce or to
1969 detect an error, take that action. */
1970 yyn += yytoken;
1971 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1972 goto yydefault;
1973 yyn = yytable[yyn];
1974 if (yyn <= 0)
1975 {
1976 if (yyn == 0 || yyn == YYTABLE_NINF)
1977 goto yyerrlab;
1978 yyn = -yyn;
1979 goto yyreduce;
1980 }
1981
1982 if (yyn == YYFINAL)
1983 YYACCEPT;
1984
1985 /* Shift the look-ahead token. */
1986 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1987
1988 /* Discard the token being shifted unless it is eof. */
1989 if (yychar != YYEOF)
1990 yychar = YYEMPTY;
1991
1992 *++yyvsp = yylval;
1993
1994
1995 /* Count tokens shifted since error; after three, turn off error
1996 status. */
1997 if (yyerrstatus)
1998 yyerrstatus--;
1999
2000 yystate = yyn;
2001 goto yynewstate;
2002
2003
2004/*-----------------------------------------------------------.
2005| yydefault -- do the default action for the current state. |
2006`-----------------------------------------------------------*/
2007yydefault:
2008 yyn = yydefact[yystate];
2009 if (yyn == 0)
2010 goto yyerrlab;
2011 goto yyreduce;
2012
2013
2014/*-----------------------------.
2015| yyreduce -- Do a reduction. |
2016`-----------------------------*/
2017yyreduce:
2018 /* yyn is the number of a rule to reduce with. */
2019 yylen = yyr2[yyn];
2020
2021 /* If YYLEN is nonzero, implement the default value of the action:
2022 `$$ = $1'.
2023
2024 Otherwise, the following line sets YYVAL to garbage.
2025 This behavior is undocumented and Bison
2026 users should not rely upon it. Assigning to YYVAL
2027 unconditionally makes the parser a bit smaller, and it avoids a
2028 GCC warning that YYVAL may be used uninitialized. */
2029 yyval = yyvsp[1-yylen];
2030
2031
2032 YY_REDUCE_PRINT (yyn);
2033 switch (yyn)
2034 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002035 case 39:
Reid Spencerf2d55322006-12-01 21:52:30 +00002036#line 206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002037 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002038 *(yyvsp[-1].String) += " = ";
2039 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002040 ;}
2041 break;
2042
Reid Spencere77e35e2006-12-01 20:26:20 +00002043 case 40:
Reid Spencerf2d55322006-12-01 21:52:30 +00002044#line 210 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002045 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002046 (yyval.String) = new std::string("");
Reid Spencere7c3c602006-11-30 06:36:44 +00002047 ;}
2048 break;
2049
Reid Spencere77e35e2006-12-01 20:26:20 +00002050 case 48:
Reid Spencerf2d55322006-12-01 21:52:30 +00002051#line 217 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002052 { (yyval.String) = new std::string(""); ;}
2053 break;
2054
Reid Spencer16244f42006-12-01 21:10:07 +00002055 case 55:
Reid Spencerf2d55322006-12-01 21:52:30 +00002056#line 222 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002057 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002058 *(yyvsp[-1].String) += *(yyvsp[0].String);
2059 delete (yyvsp[0].String);
Reid Spencer16244f42006-12-01 21:10:07 +00002060 (yyval.String) = (yyvsp[-1].String);
2061 ;}
2062 break;
2063
2064 case 56:
Reid Spencerf2d55322006-12-01 21:52:30 +00002065#line 227 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002066 { (yyval.String) = new std::string(""); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002067 break;
2068
2069 case 57:
Reid Spencerf2d55322006-12-01 21:52:30 +00002070#line 232 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002071 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002072 break;
2073
2074 case 58:
Reid Spencerf2d55322006-12-01 21:52:30 +00002075#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2076 { *(yyvsp[-1].String) += " " + *(yyvsp[0].String); delete (yyvsp[0].String); (yyval.String) = (yyvsp[-1].String); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002077 break;
2078
2079 case 59:
Reid Spencerf2d55322006-12-01 21:52:30 +00002080#line 236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002081 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002082 break;
2083
2084 case 60:
Reid Spencerf2d55322006-12-01 21:52:30 +00002085#line 237 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002086 {
2087 (yyvsp[-1].String)->insert(0, ", ");
Reid Spencerf2d55322006-12-01 21:52:30 +00002088 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2089 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002090 (yyval.String) = (yyvsp[-1].String);
2091 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002092 break;
2093
2094 case 61:
Reid Spencerf2d55322006-12-01 21:52:30 +00002095#line 245 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002096 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002097 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2098 delete (yyvsp[0].String);
2099 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002100 ;}
2101 break;
2102
2103 case 62:
Reid Spencerf2d55322006-12-01 21:52:30 +00002104#line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002105 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002106 break;
2107
Reid Spencere77e35e2006-12-01 20:26:20 +00002108 case 64:
Reid Spencerf2d55322006-12-01 21:52:30 +00002109#line 255 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002110 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002111 break;
2112
2113 case 65:
Reid Spencerf2d55322006-12-01 21:52:30 +00002114#line 256 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002115 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002116 (yyvsp[-1].String)->insert(0, ", ");
2117 if (!(yyvsp[0].String)->empty())
2118 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2119 delete (yyvsp[0].String);
2120 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002121 ;}
2122 break;
2123
Reid Spencere77e35e2006-12-01 20:26:20 +00002124 case 67:
Reid Spencerf2d55322006-12-01 21:52:30 +00002125#line 266 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002126 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002127 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2128 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002129 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002130 ;}
2131 break;
2132
Reid Spencere77e35e2006-12-01 20:26:20 +00002133 case 87:
Reid Spencerf2d55322006-12-01 21:52:30 +00002134#line 288 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002135 {
Reid Spencerd154b572006-12-01 20:36:40 +00002136 (yyval.Type).newTy = (yyvsp[0].String); (yyval.Type).oldTy = OpaqueTy;
2137 ;}
Reid Spencere77e35e2006-12-01 20:26:20 +00002138 break;
2139
2140 case 88:
Reid Spencerf2d55322006-12-01 21:52:30 +00002141#line 294 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002142 { // Type UpReference
Reid Spencerf2d55322006-12-01 21:52:30 +00002143 (yyvsp[0].String)->insert(0, "\\");
2144 (yyval.Type).newTy = (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002145 (yyval.Type).oldTy = OpaqueTy;
2146 ;}
2147 break;
2148
2149 case 89:
Reid Spencerf2d55322006-12-01 21:52:30 +00002150#line 299 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002151 { // Function derived type?
2152 *(yyvsp[-3].Type).newTy += "( " + *(yyvsp[-1].String) + " )";
2153 delete (yyvsp[-1].String);
2154 (yyval.Type).newTy = (yyvsp[-3].Type).newTy;
2155 (yyval.Type).oldTy = FunctionTy;
2156 ;}
2157 break;
2158
Reid Spencere7c3c602006-11-30 06:36:44 +00002159 case 90:
Reid Spencerf2d55322006-12-01 21:52:30 +00002160#line 305 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002161 { // Sized array type?
Reid Spencerf2d55322006-12-01 21:52:30 +00002162 (yyvsp[-3].String)->insert(0,"[ ");
2163 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " ]";
Reid Spencere77e35e2006-12-01 20:26:20 +00002164 delete (yyvsp[-1].Type).newTy;
Reid Spencerf2d55322006-12-01 21:52:30 +00002165 (yyval.Type).newTy = (yyvsp[-3].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002166 (yyval.Type).oldTy = ArrayTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002167 ;}
2168 break;
2169
2170 case 91:
Reid Spencerf2d55322006-12-01 21:52:30 +00002171#line 312 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002172 { // Packed array type?
Reid Spencerf2d55322006-12-01 21:52:30 +00002173 (yyvsp[-3].String)->insert(0,"< ");
2174 *(yyvsp[-3].String) += " x " + *(yyvsp[-1].Type).newTy + " >";
Reid Spencere77e35e2006-12-01 20:26:20 +00002175 delete (yyvsp[-1].Type).newTy;
Reid Spencerf2d55322006-12-01 21:52:30 +00002176 (yyval.Type).newTy = (yyvsp[-3].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002177 (yyval.Type).oldTy = PackedTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002178 ;}
2179 break;
2180
2181 case 92:
Reid Spencerf2d55322006-12-01 21:52:30 +00002182#line 319 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002183 { // Structure type?
2184 (yyvsp[-1].String)->insert(0, "{ ");
2185 *(yyvsp[-1].String) += " }";
2186 (yyval.Type).newTy = (yyvsp[-1].String);
2187 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002188 ;}
2189 break;
2190
2191 case 93:
Reid Spencerf2d55322006-12-01 21:52:30 +00002192#line 325 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002193 { // Empty structure type?
2194 (yyval.Type).newTy = new std::string("{ }");
2195 (yyval.Type).oldTy = StructTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002196 ;}
2197 break;
2198
2199 case 94:
Reid Spencerf2d55322006-12-01 21:52:30 +00002200#line 329 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002201 { // Pointer type?
2202 *(yyvsp[-1].Type).newTy += '*';
2203 (yyvsp[-1].Type).oldTy = PointerTy;
2204 (yyval.Type) = (yyvsp[-1].Type);
Reid Spencere7c3c602006-11-30 06:36:44 +00002205 ;}
2206 break;
2207
2208 case 95:
Reid Spencerf2d55322006-12-01 21:52:30 +00002209#line 339 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002210 {
2211 (yyval.String) = (yyvsp[0].Type).newTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002212 ;}
2213 break;
2214
2215 case 96:
Reid Spencerf2d55322006-12-01 21:52:30 +00002216#line 342 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002217 {
2218 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Type).newTy;
2219 delete (yyvsp[0].Type).newTy;
2220 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002221 ;}
2222 break;
2223
2224 case 98:
Reid Spencerf2d55322006-12-01 21:52:30 +00002225#line 351 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002226 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002227 *(yyvsp[-2].String) += ", ...";
2228 delete (yyvsp[0].String);
2229 (yyval.String) = (yyvsp[-2].String);
2230 ;}
2231 break;
2232
2233 case 99:
Reid Spencerf2d55322006-12-01 21:52:30 +00002234#line 356 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002235 {
2236 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002237 ;}
2238 break;
2239
2240 case 100:
Reid Spencerf2d55322006-12-01 21:52:30 +00002241#line 359 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002242 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002243 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002244 ;}
2245 break;
2246
2247 case 101:
Reid Spencerf2d55322006-12-01 21:52:30 +00002248#line 369 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002249 { // Nonempty unsized arr
2250 (yyval.Const).type = (yyvsp[-3].Type);
2251 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2252 *(yyval.Const).cnst += " [ " + *(yyvsp[-1].String) + " ]";
2253 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002254 ;}
2255 break;
2256
2257 case 102:
Reid Spencerf2d55322006-12-01 21:52:30 +00002258#line 375 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002259 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002260 (yyval.Const).type = (yyvsp[-2].Type);
2261 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2262 *(yyval.Const).cnst += "[ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002263 ;}
2264 break;
2265
2266 case 103:
Reid Spencerf2d55322006-12-01 21:52:30 +00002267#line 380 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002268 {
2269 (yyval.Const).type = (yyvsp[-2].Type);
2270 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2271 *(yyval.Const).cnst += " c" + *(yyvsp[0].String);
2272 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002273 ;}
2274 break;
2275
2276 case 104:
Reid Spencerf2d55322006-12-01 21:52:30 +00002277#line 386 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002278 { // Nonempty unsized arr
2279 (yyval.Const).type = (yyvsp[-3].Type);
2280 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2281 *(yyval.Const).cnst += " < " + *(yyvsp[-1].String) + " >";
2282 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002283 ;}
2284 break;
2285
2286 case 105:
Reid Spencerf2d55322006-12-01 21:52:30 +00002287#line 392 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002288 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002289 (yyval.Const).type = (yyvsp[-3].Type);
2290 (yyval.Const).cnst = new std::string(*(yyvsp[-3].Type).newTy);
2291 *(yyval.Const).cnst += " { " + *(yyvsp[-1].String) + " }";
2292 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002293 ;}
2294 break;
2295
2296 case 106:
Reid Spencerf2d55322006-12-01 21:52:30 +00002297#line 398 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002298 {
2299 (yyval.Const).type = (yyvsp[-2].Type);
2300 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2301 *(yyval.Const).cnst += " [ ]";
Reid Spencere7c3c602006-11-30 06:36:44 +00002302 ;}
2303 break;
2304
2305 case 107:
Reid Spencerf2d55322006-12-01 21:52:30 +00002306#line 403 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002307 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002308 (yyval.Const).type = (yyvsp[-1].Type);
2309 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002310 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2311 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002312 ;}
2313 break;
2314
2315 case 108:
Reid Spencerf2d55322006-12-01 21:52:30 +00002316#line 409 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002317 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002318 (yyval.Const).type = (yyvsp[-1].Type);
2319 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002320 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2321 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002322 ;}
2323 break;
2324
2325 case 109:
Reid Spencerf2d55322006-12-01 21:52:30 +00002326#line 415 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002327 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002328 (yyval.Const).type = (yyvsp[-1].Type);
2329 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2330 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2331 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002332 ;}
2333 break;
2334
2335 case 110:
Reid Spencerf2d55322006-12-01 21:52:30 +00002336#line 421 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002337 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002338 (yyval.Const).type = (yyvsp[-1].Type);
2339 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2340 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2341 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002342 ;}
2343 break;
2344
2345 case 111:
Reid Spencerf2d55322006-12-01 21:52:30 +00002346#line 427 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002347 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002348 (yyval.Const).type = (yyvsp[-1].Type);
2349 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002350 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2351 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002352 ;}
2353 break;
2354
2355 case 112:
Reid Spencerf2d55322006-12-01 21:52:30 +00002356#line 433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002357 { // integral constants
2358 (yyval.Const).type = (yyvsp[-1].Type);
2359 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002360 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2361 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002362 ;}
2363 break;
2364
2365 case 113:
Reid Spencerf2d55322006-12-01 21:52:30 +00002366#line 439 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002367 { // integral constants
2368 (yyval.Const).type = (yyvsp[-1].Type);
2369 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002370 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2371 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002372 ;}
2373 break;
2374
2375 case 114:
Reid Spencerf2d55322006-12-01 21:52:30 +00002376#line 445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002377 { // Boolean constants
2378 (yyval.Const).type = (yyvsp[-1].Type);
2379 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002380 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2381 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002382 ;}
2383 break;
2384
2385 case 115:
Reid Spencerf2d55322006-12-01 21:52:30 +00002386#line 451 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002387 { // Boolean constants
2388 (yyval.Const).type = (yyvsp[-1].Type);
2389 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002390 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2391 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002392 ;}
2393 break;
2394
2395 case 116:
Reid Spencerf2d55322006-12-01 21:52:30 +00002396#line 457 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002397 { // Float & Double constants
2398 (yyval.Const).type = (yyvsp[-1].Type);
2399 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
Reid Spencerf2d55322006-12-01 21:52:30 +00002400 *(yyval.Const).cnst += " " + *(yyvsp[0].String);
2401 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002402 ;}
2403 break;
2404
2405 case 117:
Reid Spencerf2d55322006-12-01 21:52:30 +00002406#line 465 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002407 {
2408 // We must infer the cast opcode from the types of the operands.
2409 const char *opcode = getCastOpcode((yyvsp[-3].Const).type, (yyvsp[-1].Type));
2410 (yyval.String) = new std::string(opcode);
2411 *(yyval.String) += "(" + *(yyvsp[-3].Const).cnst + " " + *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + ")";
2412 delete (yyvsp[-5].String); (yyvsp[-3].Const).destroy(); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002413 ;}
2414 break;
2415
2416 case 118:
Reid Spencerf2d55322006-12-01 21:52:30 +00002417#line 472 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002418 {
2419 *(yyvsp[-4].String) += "(" + *(yyvsp[-2].Const).cnst + " " + *(yyvsp[-1].String) + ")";
2420 (yyval.String) = (yyvsp[-4].String);
2421 (yyvsp[-2].Const).destroy();
2422 delete (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002423 ;}
2424 break;
2425
2426 case 119:
Reid Spencerf2d55322006-12-01 21:52:30 +00002427#line 478 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002428 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002429 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2430 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2431 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002432 ;}
2433 break;
2434
2435 case 120:
Reid Spencerf2d55322006-12-01 21:52:30 +00002436#line 483 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002437 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002438 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2439 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2440 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002441 ;}
2442 break;
2443
Reid Spencer16244f42006-12-01 21:10:07 +00002444 case 121:
Reid Spencerf2d55322006-12-01 21:52:30 +00002445#line 488 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002446 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002447 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2448 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2449 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002450 ;}
2451 break;
2452
Reid Spencer16244f42006-12-01 21:10:07 +00002453 case 122:
Reid Spencerf2d55322006-12-01 21:52:30 +00002454#line 493 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002455 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002456 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2457 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2458 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002459 ;}
2460 break;
2461
Reid Spencer16244f42006-12-01 21:10:07 +00002462 case 123:
Reid Spencerf2d55322006-12-01 21:52:30 +00002463#line 498 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002464 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002465 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2466 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2467 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002468 ;}
2469 break;
2470
Reid Spencer16244f42006-12-01 21:10:07 +00002471 case 124:
Reid Spencerf2d55322006-12-01 21:52:30 +00002472#line 503 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002473 {
Reid Spencer16244f42006-12-01 21:10:07 +00002474 *(yyvsp[-5].String) += "(" + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2475 (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2476 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002477 ;}
2478 break;
2479
Reid Spencer16244f42006-12-01 21:10:07 +00002480 case 125:
Reid Spencerf2d55322006-12-01 21:52:30 +00002481#line 508 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002482 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002483 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2484 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2485 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002486 ;}
2487 break;
2488
Reid Spencer16244f42006-12-01 21:10:07 +00002489 case 126:
Reid Spencerf2d55322006-12-01 21:52:30 +00002490#line 513 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002491 {
2492 *(yyvsp[-7].String) += "(" + *(yyvsp[-5].Const).cnst + "," + *(yyvsp[-3].Const).cnst + "," + *(yyvsp[-1].Const).cnst + ")";
2493 (yyvsp[-5].Const).destroy(); (yyvsp[-3].Const).destroy(); (yyvsp[-1].Const).destroy();
2494 (yyval.String) = (yyvsp[-7].String);
2495 ;}
2496 break;
2497
Reid Spencere7c3c602006-11-30 06:36:44 +00002498 case 127:
Reid Spencerf2d55322006-12-01 21:52:30 +00002499#line 523 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002500 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002501 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Const).cnst;
2502 (yyvsp[0].Const).destroy();
2503 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002504 ;}
2505 break;
2506
2507 case 128:
Reid Spencerf2d55322006-12-01 21:52:30 +00002508#line 528 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002509 { (yyval.String) = new std::string(*(yyvsp[0].Const).cnst); (yyvsp[0].Const).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002510 break;
2511
2512 case 131:
Reid Spencerf2d55322006-12-01 21:52:30 +00002513#line 543 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002514 {
2515;}
2516 break;
2517
Reid Spencere77e35e2006-12-01 20:26:20 +00002518 case 132:
Reid Spencerf2d55322006-12-01 21:52:30 +00002519#line 548 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002520 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002521 (yyval.String) = 0;
2522 ;}
2523 break;
2524
2525 case 133:
Reid Spencerf2d55322006-12-01 21:52:30 +00002526#line 551 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002527 {
2528 *O << *(yyvsp[0].String) << "\n";
2529 delete (yyvsp[0].String);
2530 (yyval.String) = 0;
2531 ;}
2532 break;
2533
2534 case 134:
Reid Spencerf2d55322006-12-01 21:52:30 +00002535#line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002536 {
2537 *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
Reid Spencerd154b572006-12-01 20:36:40 +00002538 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002539 ;}
2540 break;
2541
2542 case 135:
Reid Spencerf2d55322006-12-01 21:52:30 +00002543#line 560 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002544 {
Reid Spencerd154b572006-12-01 20:36:40 +00002545 *O << "implementation\n";
2546 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002547 ;}
2548 break;
2549
Reid Spencere77e35e2006-12-01 20:26:20 +00002550 case 137:
Reid Spencerf2d55322006-12-01 21:52:30 +00002551#line 567 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002552 {
2553 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2554 // delete $2; delete $3; $4.destroy();
2555 (yyval.String) = 0;
2556 ;}
2557 break;
2558
2559 case 138:
Reid Spencerf2d55322006-12-01 21:52:30 +00002560#line 572 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002561 { // Function prototypes can be in const pool
2562 *O << *(yyvsp[0].String) << "\n";
2563 delete (yyvsp[0].String);
2564 (yyval.String) = 0;
2565 ;}
2566 break;
2567
Reid Spencere7c3c602006-11-30 06:36:44 +00002568 case 139:
Reid Spencerf2d55322006-12-01 21:52:30 +00002569#line 577 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002570 { // Asm blocks can be in the const pool
2571 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2572 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2573 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002574 ;}
2575 break;
2576
2577 case 140:
Reid Spencerf2d55322006-12-01 21:52:30 +00002578#line 582 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002579 {
2580 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " "
2581 << *(yyvsp[0].String) << "\n";
2582 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String);
2583 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002584 ;}
2585 break;
2586
2587 case 141:
Reid Spencerf2d55322006-12-01 21:52:30 +00002588#line 588 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002589 {
2590 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2591 << " " << *(yyvsp[0].String) << "\n";
2592 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2593 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002594 ;}
2595 break;
2596
2597 case 142:
Reid Spencerf2d55322006-12-01 21:52:30 +00002598#line 594 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002599 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002600 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2601 << " " << *(yyvsp[0].String) << "\n";
2602 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2603 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002604 ;}
2605 break;
2606
2607 case 143:
Reid Spencerf2d55322006-12-01 21:52:30 +00002608#line 600 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002609 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002610 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2611 << " " << *(yyvsp[0].String) << "\n";
2612 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2613 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002614 ;}
2615 break;
2616
2617 case 144:
Reid Spencerf2d55322006-12-01 21:52:30 +00002618#line 606 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002619 {
2620 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2621 delete (yyvsp[-1].String); delete (yyvsp[0].String);
2622 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002623 ;}
2624 break;
2625
2626 case 145:
Reid Spencerf2d55322006-12-01 21:52:30 +00002627#line 611 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002628 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002629 *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
2630 delete (yyvsp[-2].String); delete (yyvsp[0].String);
2631 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002632 ;}
2633 break;
2634
2635 case 146:
Reid Spencerf2d55322006-12-01 21:52:30 +00002636#line 616 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002637 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002638 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002639 ;}
2640 break;
2641
Reid Spencere77e35e2006-12-01 20:26:20 +00002642 case 150:
Reid Spencerf2d55322006-12-01 21:52:30 +00002643#line 626 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002644 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002645 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2646 delete (yyvsp[0].String);
2647 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002648 ;}
2649 break;
2650
Reid Spencere77e35e2006-12-01 20:26:20 +00002651 case 151:
Reid Spencerf2d55322006-12-01 21:52:30 +00002652#line 631 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002653 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002654 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2655 if (*(yyvsp[0].String) == "64")
Reid Spencere77e35e2006-12-01 20:26:20 +00002656 SizeOfPointer = 64;
Reid Spencerf2d55322006-12-01 21:52:30 +00002657 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00002658 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002659 ;}
2660 break;
2661
2662 case 152:
Reid Spencerf2d55322006-12-01 21:52:30 +00002663#line 638 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002664 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002665 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2666 delete (yyvsp[0].String);
2667 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002668 ;}
2669 break;
2670
Reid Spencer16244f42006-12-01 21:10:07 +00002671 case 153:
Reid Spencerf2d55322006-12-01 21:52:30 +00002672#line 643 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencer16244f42006-12-01 21:10:07 +00002673 {
2674 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2675 delete (yyvsp[0].String);
2676 (yyval.String) = (yyvsp[-2].String);
2677 ;}
2678 break;
2679
Reid Spencere7c3c602006-11-30 06:36:44 +00002680 case 154:
Reid Spencerf2d55322006-12-01 21:52:30 +00002681#line 650 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002682 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002683 (yyvsp[-1].String)->insert(0, "[ ");
2684 *(yyvsp[-1].String) += " ]";
2685 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002686 ;}
2687 break;
2688
2689 case 155:
Reid Spencerf2d55322006-12-01 21:52:30 +00002690#line 657 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002691 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002692 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2693 delete (yyvsp[0].String);
2694 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002695 ;}
2696 break;
2697
2698 case 157:
Reid Spencerf2d55322006-12-01 21:52:30 +00002699#line 663 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002700 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002701 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002702 ;}
2703 break;
2704
Reid Spencere77e35e2006-12-01 20:26:20 +00002705 case 161:
Reid Spencerf2d55322006-12-01 21:52:30 +00002706#line 672 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002707 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002708 break;
2709
Reid Spencere77e35e2006-12-01 20:26:20 +00002710 case 162:
Reid Spencerf2d55322006-12-01 21:52:30 +00002711#line 674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002712 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002713 (yyval.String) = (yyvsp[-1].Type).newTy;
2714 if (!(yyvsp[0].String)->empty())
2715 *(yyval.String) += " " + *(yyvsp[0].String);
2716 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002717;}
2718 break;
2719
Reid Spencere77e35e2006-12-01 20:26:20 +00002720 case 163:
Reid Spencerf2d55322006-12-01 21:52:30 +00002721#line 681 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002722 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002723 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2724 delete (yyvsp[0].String);
2725 ;}
2726 break;
2727
2728 case 164:
Reid Spencerf2d55322006-12-01 21:52:30 +00002729#line 685 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002730 {
2731 (yyval.String) = (yyvsp[0].String);
2732 ;}
2733 break;
2734
2735 case 165:
Reid Spencerf2d55322006-12-01 21:52:30 +00002736#line 689 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002737 {
2738 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002739 ;}
2740 break;
2741
2742 case 166:
Reid Spencerf2d55322006-12-01 21:52:30 +00002743#line 692 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002744 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002745 *(yyvsp[-2].String) += ", ...";
2746 (yyval.String) = (yyvsp[-2].String);
2747 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002748 ;}
2749 break;
2750
2751 case 167:
Reid Spencerf2d55322006-12-01 21:52:30 +00002752#line 697 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002753 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002754 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002755 ;}
2756 break;
2757
2758 case 168:
Reid Spencerf2d55322006-12-01 21:52:30 +00002759#line 700 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002760 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002761 break;
2762
2763 case 169:
Reid Spencerf2d55322006-12-01 21:52:30 +00002764#line 703 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002765 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002766 if (!(yyvsp[-7].String)->empty()) {
2767 *(yyvsp[-7].String) += " ";
2768 }
2769 *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")";
2770 if (!(yyvsp[-1].String)->empty()) {
2771 *(yyvsp[-7].String) += " " + *(yyvsp[-1].String);
2772 }
2773 if (!(yyvsp[0].String)->empty()) {
2774 *(yyvsp[-7].String) += " " + *(yyvsp[0].String);
2775 }
2776 (yyvsp[-6].Type).destroy();
2777 delete (yyvsp[-5].String);
2778 delete (yyvsp[-3].String);
2779 delete (yyvsp[-1].String);
2780 delete (yyvsp[0].String);
2781 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002782 ;}
2783 break;
2784
2785 case 170:
Reid Spencerf2d55322006-12-01 21:52:30 +00002786#line 722 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002787 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002788 (yyval.String) = new std::string("begin");
Reid Spencere7c3c602006-11-30 06:36:44 +00002789 ;}
2790 break;
2791
2792 case 171:
Reid Spencerf2d55322006-12-01 21:52:30 +00002793#line 725 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002794 {
2795 (yyval.String) = new std::string ("{");
Reid Spencere7c3c602006-11-30 06:36:44 +00002796 ;}
2797 break;
2798
2799 case 172:
Reid Spencerf2d55322006-12-01 21:52:30 +00002800#line 729 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002801 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002802 if (!(yyvsp[-2].String)->empty()) {
2803 *O << *(yyvsp[-2].String) << " ";
2804 }
2805 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2806 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2807 (yyval.String) = 0;
2808;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002809 break;
2810
2811 case 173:
Reid Spencerf2d55322006-12-01 21:52:30 +00002812#line 738 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002813 { (yyval.String) = new std::string("end"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002814 break;
2815
2816 case 174:
Reid Spencerf2d55322006-12-01 21:52:30 +00002817#line 739 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002818 { (yyval.String) = new std::string("}"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002819 break;
2820
2821 case 175:
Reid Spencerf2d55322006-12-01 21:52:30 +00002822#line 741 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002823 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002824 if ((yyvsp[-1].String))
2825 *O << *(yyvsp[-1].String);
2826 *O << '\n' << *(yyvsp[0].String) << "\n";
2827 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002828;}
2829 break;
2830
Reid Spencere77e35e2006-12-01 20:26:20 +00002831 case 176:
Reid Spencerf2d55322006-12-01 21:52:30 +00002832#line 749 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002833 { (yyval.String) = new std::string(); ;}
2834 break;
2835
2836 case 179:
Reid Spencerf2d55322006-12-01 21:52:30 +00002837#line 755 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002838 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002839 if (!(yyvsp[-1].String)->empty())
2840 *(yyvsp[-2].String) += " " + *(yyvsp[-1].String);
2841 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
2842 delete (yyvsp[-1].String);
2843 delete (yyvsp[0].String);
2844 (yyval.String) = (yyvsp[-2].String);
2845 ;}
2846 break;
2847
2848 case 180:
Reid Spencerf2d55322006-12-01 21:52:30 +00002849#line 768 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencerd154b572006-12-01 20:36:40 +00002850 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002851 break;
2852
Reid Spencer16244f42006-12-01 21:10:07 +00002853 case 190:
Reid Spencerf2d55322006-12-01 21:52:30 +00002854#line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002855 {
2856 (yyvsp[-1].String)->insert(0, "<");
2857 *(yyvsp[-1].String) += ">";
2858 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002859 ;}
2860 break;
2861
2862 case 192:
Reid Spencerf2d55322006-12-01 21:52:30 +00002863#line 780 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002864 {
2865 if (!(yyvsp[-3].String)->empty()) {
2866 *(yyvsp[-4].String) += " " + *(yyvsp[-3].String);
2867 }
2868 *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
2869 delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String);
2870 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002871 ;}
2872 break;
2873
Reid Spencere77e35e2006-12-01 20:26:20 +00002874 case 197:
Reid Spencerf2d55322006-12-01 21:52:30 +00002875#line 798 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002876 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002877 (yyval.Value).type = (yyvsp[-1].Type);
2878 (yyval.Value).val = new std::string(*(yyvsp[-1].Type).newTy + " ");
2879 *(yyval.Value).val += *(yyvsp[0].String);
2880 delete (yyvsp[0].String);
2881 ;}
2882 break;
2883
2884 case 198:
Reid Spencerf2d55322006-12-01 21:52:30 +00002885#line 805 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002886 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002887 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002888 ;}
2889 break;
2890
2891 case 199:
Reid Spencerf2d55322006-12-01 21:52:30 +00002892#line 808 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002893 { // Do not allow functions with 0 basic blocks
Reid Spencerf2d55322006-12-01 21:52:30 +00002894 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002895 ;}
2896 break;
2897
Reid Spencere77e35e2006-12-01 20:26:20 +00002898 case 200:
Reid Spencerf2d55322006-12-01 21:52:30 +00002899#line 816 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002900 {
Reid Spencerf2d55322006-12-01 21:52:30 +00002901 (yyval.String) = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +00002902 ;}
2903 break;
2904
2905 case 201:
Reid Spencerf2d55322006-12-01 21:52:30 +00002906#line 820 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002907 {
2908 *O << " " << *(yyvsp[0].String) << "\n";
2909 delete (yyvsp[0].String);
2910 (yyval.String) = 0;
2911 ;}
2912 break;
2913
2914 case 202:
Reid Spencerf2d55322006-12-01 21:52:30 +00002915#line 825 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002916 {
2917 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002918 ;}
2919 break;
2920
2921 case 203:
Reid Spencerf2d55322006-12-01 21:52:30 +00002922#line 828 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002923 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002924 *O << *(yyvsp[0].String) << "\n";
2925 delete (yyvsp[0].String);
2926 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002927 ;}
2928 break;
2929
2930 case 204:
Reid Spencerf2d55322006-12-01 21:52:30 +00002931#line 834 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002932 { // Return with a result...
2933 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n";
2934 delete (yyvsp[-1].String); (yyvsp[0].Value).destroy();
2935 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002936 ;}
2937 break;
2938
2939 case 205:
Reid Spencerf2d55322006-12-01 21:52:30 +00002940#line 839 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002941 { // Return with no result...
2942 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2943 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
2944 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002945 ;}
2946 break;
2947
2948 case 206:
Reid Spencerf2d55322006-12-01 21:52:30 +00002949#line 844 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002950 { // Unconditional Branch...
2951 *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
2952 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2953 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002954 ;}
2955 break;
2956
2957 case 207:
Reid Spencerf2d55322006-12-01 21:52:30 +00002958#line 849 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002959 {
2960 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", "
2961 << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << ", " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
2962 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String);
2963 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2964 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002965 ;}
2966 break;
2967
2968 case 208:
Reid Spencerf2d55322006-12-01 21:52:30 +00002969#line 856 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002970 {
2971 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", " << *(yyvsp[-4].Type).newTy
2972 << " " << *(yyvsp[-3].String) << " [" << *(yyvsp[-1].String) << " ]\n";
2973 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
2974 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002975 ;}
2976 break;
2977
2978 case 209:
Reid Spencerf2d55322006-12-01 21:52:30 +00002979#line 862 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00002980 {
2981 *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].String) << ", "
2982 << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].String) << "[]\n";
2983 delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); delete (yyvsp[-5].String); (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String);
2984 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002985 ;}
2986 break;
2987
2988 case 210:
Reid Spencerf2d55322006-12-01 21:52:30 +00002989#line 869 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002990 {
Reid Spencer16244f42006-12-01 21:10:07 +00002991 *O << " ";
2992 if (!(yyvsp[-13].String)->empty())
2993 *O << *(yyvsp[-13].String);
2994 *O << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].String) << " ("
Reid Spencere77e35e2006-12-01 20:26:20 +00002995 << *(yyvsp[-7].String) << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << " "
2996 << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
Reid Spencer16244f42006-12-01 21:10:07 +00002997 delete (yyvsp[-13].String); delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); delete (yyvsp[-9].String); delete (yyvsp[-7].String);
2998 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy();
2999 delete (yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003000 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003001 ;}
3002 break;
3003
3004 case 211:
Reid Spencerf2d55322006-12-01 21:52:30 +00003005#line 881 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003006 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003007 *O << " " << *(yyvsp[0].String) << "\n";
3008 delete (yyvsp[0].String);
3009 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003010 ;}
3011 break;
3012
3013 case 212:
Reid Spencerf2d55322006-12-01 21:52:30 +00003014#line 886 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003015 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003016 *O << " " << *(yyvsp[0].String) << "\n";
3017 delete (yyvsp[0].String);
3018 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003019 ;}
3020 break;
3021
3022 case 213:
Reid Spencerf2d55322006-12-01 21:52:30 +00003023#line 892 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003024 {
Reid Spencer16244f42006-12-01 21:10:07 +00003025 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
Reid Spencere77e35e2006-12-01 20:26:20 +00003026 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3027 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003028 ;}
3029 break;
3030
3031 case 214:
Reid Spencerf2d55322006-12-01 21:52:30 +00003032#line 897 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003033 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003034 (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " );
3035 *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3036 (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3037 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003038 ;}
3039 break;
3040
3041 case 215:
Reid Spencerf2d55322006-12-01 21:52:30 +00003042#line 905 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003043 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003044 *(yyvsp[-1].String) += *(yyvsp[0].String);
3045 delete (yyvsp[0].String);
3046 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003047 ;}
3048 break;
3049
3050 case 216:
Reid Spencerf2d55322006-12-01 21:52:30 +00003051#line 912 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003052 { // Used for PHI nodes
3053 (yyvsp[-3].String)->insert(0, *(yyvsp[-5].Type).newTy + "[");
3054 *(yyvsp[-3].String) += "," + *(yyvsp[-1].String) + "]";
3055 (yyvsp[-5].Type).destroy(); delete (yyvsp[-1].String);
3056 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003057 ;}
3058 break;
3059
3060 case 217:
Reid Spencerf2d55322006-12-01 21:52:30 +00003061#line 918 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003062 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003063 *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].String) + "," + *(yyvsp[-1].String) + "]";
3064 delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3065 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003066 ;}
3067 break;
3068
3069 case 218:
Reid Spencerf2d55322006-12-01 21:52:30 +00003070#line 926 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003071 { (yyval.String) = new std::string(*(yyvsp[0].Value).val); (yyvsp[0].Value).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003072 break;
3073
3074 case 219:
Reid Spencerf2d55322006-12-01 21:52:30 +00003075#line 927 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003076 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003077 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Value).val;
3078 (yyvsp[0].Value).destroy();
3079 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003080 ;}
3081 break;
3082
3083 case 221:
Reid Spencerf2d55322006-12-01 21:52:30 +00003084#line 936 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003085 { (yyval.String) = new std::string(); ;}
3086 break;
3087
3088 case 222:
Reid Spencerf2d55322006-12-01 21:52:30 +00003089#line 940 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003090 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003091 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3092 delete (yyvsp[0].String);
3093 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003094 ;}
3095 break;
3096
Reid Spencere77e35e2006-12-01 20:26:20 +00003097 case 224:
Reid Spencerf2d55322006-12-01 21:52:30 +00003098#line 948 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003099 {
3100 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3101 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3102 (yyval.String) = (yyvsp[-4].String);
3103 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003104 break;
3105
Reid Spencere77e35e2006-12-01 20:26:20 +00003106 case 225:
Reid Spencerf2d55322006-12-01 21:52:30 +00003107#line 953 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003108 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003109 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3110 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3111 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003112 ;}
3113 break;
3114
3115 case 226:
Reid Spencerf2d55322006-12-01 21:52:30 +00003116#line 958 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003117 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003118 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3119 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3120 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003121 ;}
3122 break;
3123
3124 case 227:
Reid Spencerf2d55322006-12-01 21:52:30 +00003125#line 963 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003126 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003127 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3128 (yyvsp[0].Value).destroy();
3129 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003130 ;}
3131 break;
3132
3133 case 228:
Reid Spencerf2d55322006-12-01 21:52:30 +00003134#line 968 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003135 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003136 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3137 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3138 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003139 ;}
3140 break;
3141
3142 case 229:
Reid Spencerf2d55322006-12-01 21:52:30 +00003143#line 973 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003144 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003145 const char *opcode = getCastOpcode((yyvsp[-2].Value).type, (yyvsp[0].Type));
3146 (yyval.String) = new std::string(opcode);
3147 *(yyval.String) += *(yyvsp[-2].Value).val + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].Type).newTy;
3148 delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy();
3149 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00003150 ;}
3151 break;
3152
3153 case 230:
Reid Spencerf2d55322006-12-01 21:52:30 +00003154#line 980 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003155 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003156 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3157 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3158 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003159 ;}
3160 break;
3161
3162 case 231:
Reid Spencerf2d55322006-12-01 21:52:30 +00003163#line 985 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003164 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003165 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy;
3166 (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy();
3167 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003168 ;}
3169 break;
3170
3171 case 232:
Reid Spencerf2d55322006-12-01 21:52:30 +00003172#line 990 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003173 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003174 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3175 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3176 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003177 ;}
3178 break;
3179
3180 case 233:
Reid Spencerf2d55322006-12-01 21:52:30 +00003181#line 995 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003182 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003183 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3184 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3185 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003186 ;}
3187 break;
3188
3189 case 234:
Reid Spencerf2d55322006-12-01 21:52:30 +00003190#line 1000 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003191 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003192 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3193 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3194 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003195 ;}
3196 break;
3197
3198 case 235:
Reid Spencerf2d55322006-12-01 21:52:30 +00003199#line 1005 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003200 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003201 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3202 delete (yyvsp[0].String);
3203 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003204 ;}
3205 break;
3206
3207 case 236:
Reid Spencerf2d55322006-12-01 21:52:30 +00003208#line 1010 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003209 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003210 if (!(yyvsp[-5].String)->empty())
3211 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String);
3212 if (!(yyvsp[-6].String)->empty())
3213 *(yyvsp[-6].String) += " ";
3214 *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + "(" + *(yyvsp[-1].String) + ")";
3215 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3216 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003217 ;}
3218 break;
3219
3220 case 238:
Reid Spencerf2d55322006-12-01 21:52:30 +00003221#line 1024 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003222 {
3223 (yyvsp[0].String)->insert(0, ", ");
3224 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003225 ;}
3226 break;
3227
Reid Spencere77e35e2006-12-01 20:26:20 +00003228 case 239:
Reid Spencerf2d55322006-12-01 21:52:30 +00003229#line 1028 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003230 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003231 break;
3232
3233 case 241:
Reid Spencerf2d55322006-12-01 21:52:30 +00003234#line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003235 { (yyval.String) = new std::string(); ;}
3236 break;
3237
3238 case 242:
Reid Spencerf2d55322006-12-01 21:52:30 +00003239#line 1036 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003240 {
3241 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3242 if (!(yyvsp[0].String)->empty())
3243 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3244 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3245 (yyval.String) = (yyvsp[-2].String);
3246 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003247 break;
3248
3249 case 243:
Reid Spencerf2d55322006-12-01 21:52:30 +00003250#line 1043 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere77e35e2006-12-01 20:26:20 +00003251 {
3252 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3253 if (!(yyvsp[0].String)->empty())
3254 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3255 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3256 (yyval.String) = (yyvsp[-5].String);
3257 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003258 break;
3259
3260 case 244:
Reid Spencerf2d55322006-12-01 21:52:30 +00003261#line 1050 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003262 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003263 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3264 if (!(yyvsp[0].String)->empty())
3265 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3266 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3267 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003268 ;}
3269 break;
3270
3271 case 245:
Reid Spencerf2d55322006-12-01 21:52:30 +00003272#line 1057 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003273 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003274 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3275 if (!(yyvsp[0].String)->empty())
3276 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3277 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3278 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003279 ;}
3280 break;
3281
3282 case 246:
Reid Spencerf2d55322006-12-01 21:52:30 +00003283#line 1064 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003284 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003285 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3286 (yyvsp[0].Value).destroy();
3287 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003288 ;}
3289 break;
3290
3291 case 247:
Reid Spencerf2d55322006-12-01 21:52:30 +00003292#line 1069 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003293 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003294 if (!(yyvsp[-3].String)->empty())
3295 *(yyvsp[-3].String) += " ";
3296 *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3297 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3298 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003299 ;}
3300 break;
3301
3302 case 248:
Reid Spencerf2d55322006-12-01 21:52:30 +00003303#line 1076 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003304 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003305 if (!(yyvsp[-5].String)->empty())
3306 *(yyvsp[-5].String) += " ";
3307 *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3308 delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3309 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003310 ;}
3311 break;
3312
3313 case 249:
Reid Spencerf2d55322006-12-01 21:52:30 +00003314#line 1083 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003315 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003316 *(yyvsp[-3].String) += *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].String);
3317 (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3318 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003319 ;}
3320 break;
3321
3322
3323 default: break;
3324 }
3325
3326/* Line 1126 of yacc.c. */
Reid Spencerf2d55322006-12-01 21:52:30 +00003327#line 3328 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +00003328
3329 yyvsp -= yylen;
3330 yyssp -= yylen;
3331
3332
3333 YY_STACK_PRINT (yyss, yyssp);
3334
3335 *++yyvsp = yyval;
3336
3337
3338 /* Now `shift' the result of the reduction. Determine what state
3339 that goes to, based on the state we popped back to and the rule
3340 number reduced by. */
3341
3342 yyn = yyr1[yyn];
3343
3344 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3345 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3346 yystate = yytable[yystate];
3347 else
3348 yystate = yydefgoto[yyn - YYNTOKENS];
3349
3350 goto yynewstate;
3351
3352
3353/*------------------------------------.
3354| yyerrlab -- here on detecting error |
3355`------------------------------------*/
3356yyerrlab:
3357 /* If not already recovering from an error, report this error. */
3358 if (!yyerrstatus)
3359 {
3360 ++yynerrs;
3361#if YYERROR_VERBOSE
3362 yyn = yypact[yystate];
3363
3364 if (YYPACT_NINF < yyn && yyn < YYLAST)
3365 {
3366 int yytype = YYTRANSLATE (yychar);
3367 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3368 YYSIZE_T yysize = yysize0;
3369 YYSIZE_T yysize1;
3370 int yysize_overflow = 0;
3371 char *yymsg = 0;
3372# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
3373 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3374 int yyx;
3375
3376#if 0
3377 /* This is so xgettext sees the translatable formats that are
3378 constructed on the fly. */
3379 YY_("syntax error, unexpected %s");
3380 YY_("syntax error, unexpected %s, expecting %s");
3381 YY_("syntax error, unexpected %s, expecting %s or %s");
3382 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3383 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3384#endif
3385 char *yyfmt;
3386 char const *yyf;
3387 static char const yyunexpected[] = "syntax error, unexpected %s";
3388 static char const yyexpecting[] = ", expecting %s";
3389 static char const yyor[] = " or %s";
3390 char yyformat[sizeof yyunexpected
3391 + sizeof yyexpecting - 1
3392 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3393 * (sizeof yyor - 1))];
3394 char const *yyprefix = yyexpecting;
3395
3396 /* Start YYX at -YYN if negative to avoid negative indexes in
3397 YYCHECK. */
3398 int yyxbegin = yyn < 0 ? -yyn : 0;
3399
3400 /* Stay within bounds of both yycheck and yytname. */
3401 int yychecklim = YYLAST - yyn;
3402 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3403 int yycount = 1;
3404
3405 yyarg[0] = yytname[yytype];
3406 yyfmt = yystpcpy (yyformat, yyunexpected);
3407
3408 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3409 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3410 {
3411 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3412 {
3413 yycount = 1;
3414 yysize = yysize0;
3415 yyformat[sizeof yyunexpected - 1] = '\0';
3416 break;
3417 }
3418 yyarg[yycount++] = yytname[yyx];
3419 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3420 yysize_overflow |= yysize1 < yysize;
3421 yysize = yysize1;
3422 yyfmt = yystpcpy (yyfmt, yyprefix);
3423 yyprefix = yyor;
3424 }
3425
3426 yyf = YY_(yyformat);
3427 yysize1 = yysize + yystrlen (yyf);
3428 yysize_overflow |= yysize1 < yysize;
3429 yysize = yysize1;
3430
3431 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
3432 yymsg = (char *) YYSTACK_ALLOC (yysize);
3433 if (yymsg)
3434 {
3435 /* Avoid sprintf, as that infringes on the user's name space.
3436 Don't have undefined behavior even if the translation
3437 produced a string with the wrong number of "%s"s. */
3438 char *yyp = yymsg;
3439 int yyi = 0;
3440 while ((*yyp = *yyf))
3441 {
3442 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3443 {
3444 yyp += yytnamerr (yyp, yyarg[yyi++]);
3445 yyf += 2;
3446 }
3447 else
3448 {
3449 yyp++;
3450 yyf++;
3451 }
3452 }
3453 yyerror (yymsg);
3454 YYSTACK_FREE (yymsg);
3455 }
3456 else
3457 {
3458 yyerror (YY_("syntax error"));
3459 goto yyexhaustedlab;
3460 }
3461 }
3462 else
3463#endif /* YYERROR_VERBOSE */
3464 yyerror (YY_("syntax error"));
3465 }
3466
3467
3468
3469 if (yyerrstatus == 3)
3470 {
3471 /* If just tried and failed to reuse look-ahead token after an
3472 error, discard it. */
3473
3474 if (yychar <= YYEOF)
3475 {
3476 /* Return failure if at end of input. */
3477 if (yychar == YYEOF)
3478 YYABORT;
3479 }
3480 else
3481 {
3482 yydestruct ("Error: discarding", yytoken, &yylval);
3483 yychar = YYEMPTY;
3484 }
3485 }
3486
3487 /* Else will try to reuse look-ahead token after shifting the error
3488 token. */
3489 goto yyerrlab1;
3490
3491
3492/*---------------------------------------------------.
3493| yyerrorlab -- error raised explicitly by YYERROR. |
3494`---------------------------------------------------*/
3495yyerrorlab:
3496
3497 /* Pacify compilers like GCC when the user code never invokes
3498 YYERROR and the label yyerrorlab therefore never appears in user
3499 code. */
3500 if (0)
3501 goto yyerrorlab;
3502
3503yyvsp -= yylen;
3504 yyssp -= yylen;
3505 yystate = *yyssp;
3506 goto yyerrlab1;
3507
3508
3509/*-------------------------------------------------------------.
3510| yyerrlab1 -- common code for both syntax error and YYERROR. |
3511`-------------------------------------------------------------*/
3512yyerrlab1:
3513 yyerrstatus = 3; /* Each real token shifted decrements this. */
3514
3515 for (;;)
3516 {
3517 yyn = yypact[yystate];
3518 if (yyn != YYPACT_NINF)
3519 {
3520 yyn += YYTERROR;
3521 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3522 {
3523 yyn = yytable[yyn];
3524 if (0 < yyn)
3525 break;
3526 }
3527 }
3528
3529 /* Pop the current state because it cannot handle the error token. */
3530 if (yyssp == yyss)
3531 YYABORT;
3532
3533
3534 yydestruct ("Error: popping", yystos[yystate], yyvsp);
3535 YYPOPSTACK;
3536 yystate = *yyssp;
3537 YY_STACK_PRINT (yyss, yyssp);
3538 }
3539
3540 if (yyn == YYFINAL)
3541 YYACCEPT;
3542
3543 *++yyvsp = yylval;
3544
3545
3546 /* Shift the error token. */
3547 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3548
3549 yystate = yyn;
3550 goto yynewstate;
3551
3552
3553/*-------------------------------------.
3554| yyacceptlab -- YYACCEPT comes here. |
3555`-------------------------------------*/
3556yyacceptlab:
3557 yyresult = 0;
3558 goto yyreturn;
3559
3560/*-----------------------------------.
3561| yyabortlab -- YYABORT comes here. |
3562`-----------------------------------*/
3563yyabortlab:
3564 yyresult = 1;
3565 goto yyreturn;
3566
3567#ifndef yyoverflow
3568/*-------------------------------------------------.
3569| yyexhaustedlab -- memory exhaustion comes here. |
3570`-------------------------------------------------*/
3571yyexhaustedlab:
3572 yyerror (YY_("memory exhausted"));
3573 yyresult = 2;
3574 /* Fall through. */
3575#endif
3576
3577yyreturn:
3578 if (yychar != YYEOF && yychar != YYEMPTY)
3579 yydestruct ("Cleanup: discarding lookahead",
3580 yytoken, &yylval);
3581 while (yyssp != yyss)
3582 {
3583 yydestruct ("Cleanup: popping",
3584 yystos[*yyssp], yyvsp);
3585 YYPOPSTACK;
3586 }
3587#ifndef yyoverflow
3588 if (yyss != yyssa)
3589 YYSTACK_FREE (yyss);
3590#endif
3591 return yyresult;
3592}
3593
3594
Reid Spencerf2d55322006-12-01 21:52:30 +00003595#line 1089 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003596
3597
3598int yyerror(const char *ErrorMsg) {
3599 std::string where
3600 = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
3601 + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
3602 std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
3603 if (yychar == YYEMPTY || yychar == 0)
3604 errMsg += "end-of-file.";
3605 else
3606 errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
3607 std::cerr << errMsg << '\n';
3608 exit(1);
3609}
3610