blob: 920f38b8461198df4406b3c5454c170cc68828d8 [file] [log] [blame]
Reid Spencere7c3c602006-11-30 06:36:44 +00001/* A Bison parser, made by GNU Bison 2.1. */
2
3/* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA. */
20
21/* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26/* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29/* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36/* Identify Bison output. */
37#define YYBISON 1
38
39/* Bison version. */
40#define YYBISON_VERSION "2.1"
41
42/* Skeleton name. */
43#define YYSKELETON_NAME "yacc.c"
44
45/* Pure parsers. */
46#define YYPURE 0
47
48/* Using locations. */
49#define YYLSP_NEEDED 0
50
51/* Substitute the variable and function names. */
52#define yyparse Upgradeparse
53#define yylex Upgradelex
54#define yyerror Upgradeerror
55#define yylval Upgradelval
56#define yychar Upgradechar
57#define yydebug Upgradedebug
58#define yynerrs Upgradenerrs
59
60
61/* Tokens. */
62#ifndef YYTOKENTYPE
63# define YYTOKENTYPE
64 /* Put the tokens into the symbol table, so that GDB and other debuggers
65 know about them. */
66 enum yytokentype {
67 ESINT64VAL = 258,
68 EUINT64VAL = 259,
69 SINTVAL = 260,
70 UINTVAL = 261,
71 FPVAL = 262,
Reid Spencere77e35e2006-12-01 20:26:20 +000072 TRUETOK = 263,
73 FALSETOK = 264,
74 NULL_TOK = 265,
75 UNDEF = 266,
76 ZEROINITIALIZER = 267,
77 VOID = 268,
78 BOOL = 269,
79 SBYTE = 270,
80 UBYTE = 271,
81 SHORT = 272,
82 USHORT = 273,
83 INT = 274,
84 UINT = 275,
85 LONG = 276,
86 ULONG = 277,
87 FLOAT = 278,
88 DOUBLE = 279,
89 LABEL = 280,
90 OPAQUE = 281,
91 TYPE = 282,
92 VAR_ID = 283,
93 LABELSTR = 284,
94 STRINGCONSTANT = 285,
95 IMPLEMENTATION = 286,
96 BEGINTOK = 287,
97 ENDTOK = 288,
98 DECLARE = 289,
99 GLOBAL = 290,
100 CONSTANT = 291,
101 SECTION = 292,
102 VOLATILE = 293,
103 TO = 294,
104 DOTDOTDOT = 295,
105 CONST = 296,
106 INTERNAL = 297,
107 LINKONCE = 298,
108 WEAK = 299,
Reid Spencere7c3c602006-11-30 06:36:44 +0000109 DLLIMPORT = 300,
110 DLLEXPORT = 301,
111 EXTERN_WEAK = 302,
Reid Spencere77e35e2006-12-01 20:26:20 +0000112 APPENDING = 303,
Reid Spencere7c3c602006-11-30 06:36:44 +0000113 NOT = 304,
114 EXTERNAL = 305,
115 TARGET = 306,
116 TRIPLE = 307,
117 ENDIAN = 308,
118 POINTERSIZE = 309,
119 LITTLE = 310,
120 BIG = 311,
121 ALIGN = 312,
122 DEPLIBS = 313,
123 CALL = 314,
124 TAIL = 315,
125 ASM_TOK = 316,
126 MODULE = 317,
127 SIDEEFFECT = 318,
128 CC_TOK = 319,
129 CCC_TOK = 320,
130 CSRETCC_TOK = 321,
131 FASTCC_TOK = 322,
132 COLDCC_TOK = 323,
133 X86_STDCALLCC_TOK = 324,
134 X86_FASTCALLCC_TOK = 325,
135 DATALAYOUT = 326,
136 RET = 327,
137 BR = 328,
138 SWITCH = 329,
139 INVOKE = 330,
140 UNWIND = 331,
141 UNREACHABLE = 332,
142 ADD = 333,
143 SUB = 334,
144 MUL = 335,
145 UDIV = 336,
146 SDIV = 337,
147 FDIV = 338,
148 UREM = 339,
149 SREM = 340,
150 FREM = 341,
151 AND = 342,
152 OR = 343,
153 XOR = 344,
154 SETLE = 345,
155 SETGE = 346,
156 SETLT = 347,
157 SETGT = 348,
158 SETEQ = 349,
159 SETNE = 350,
160 MALLOC = 351,
161 ALLOCA = 352,
162 FREE = 353,
163 LOAD = 354,
164 STORE = 355,
165 GETELEMENTPTR = 356,
Reid Spencere77e35e2006-12-01 20:26:20 +0000166 PHI_TOK = 357,
167 SELECT = 358,
168 SHL = 359,
169 LSHR = 360,
170 ASHR = 361,
171 VAARG = 362,
172 EXTRACTELEMENT = 363,
173 INSERTELEMENT = 364,
174 SHUFFLEVECTOR = 365,
175 CAST = 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000176 };
177#endif
178/* Tokens. */
179#define ESINT64VAL 258
180#define EUINT64VAL 259
181#define SINTVAL 260
182#define UINTVAL 261
183#define FPVAL 262
Reid Spencere77e35e2006-12-01 20:26:20 +0000184#define TRUETOK 263
185#define FALSETOK 264
186#define NULL_TOK 265
187#define UNDEF 266
188#define ZEROINITIALIZER 267
189#define VOID 268
190#define BOOL 269
191#define SBYTE 270
192#define UBYTE 271
193#define SHORT 272
194#define USHORT 273
195#define INT 274
196#define UINT 275
197#define LONG 276
198#define ULONG 277
199#define FLOAT 278
200#define DOUBLE 279
201#define LABEL 280
202#define OPAQUE 281
203#define TYPE 282
204#define VAR_ID 283
205#define LABELSTR 284
206#define STRINGCONSTANT 285
207#define IMPLEMENTATION 286
208#define BEGINTOK 287
209#define ENDTOK 288
210#define DECLARE 289
211#define GLOBAL 290
212#define CONSTANT 291
213#define SECTION 292
214#define VOLATILE 293
215#define TO 294
216#define DOTDOTDOT 295
217#define CONST 296
218#define INTERNAL 297
219#define LINKONCE 298
220#define WEAK 299
Reid Spencere7c3c602006-11-30 06:36:44 +0000221#define DLLIMPORT 300
222#define DLLEXPORT 301
223#define EXTERN_WEAK 302
Reid Spencere77e35e2006-12-01 20:26:20 +0000224#define APPENDING 303
Reid Spencere7c3c602006-11-30 06:36:44 +0000225#define NOT 304
226#define EXTERNAL 305
227#define TARGET 306
228#define TRIPLE 307
229#define ENDIAN 308
230#define POINTERSIZE 309
231#define LITTLE 310
232#define BIG 311
233#define ALIGN 312
234#define DEPLIBS 313
235#define CALL 314
236#define TAIL 315
237#define ASM_TOK 316
238#define MODULE 317
239#define SIDEEFFECT 318
240#define CC_TOK 319
241#define CCC_TOK 320
242#define CSRETCC_TOK 321
243#define FASTCC_TOK 322
244#define COLDCC_TOK 323
245#define X86_STDCALLCC_TOK 324
246#define X86_FASTCALLCC_TOK 325
247#define DATALAYOUT 326
248#define RET 327
249#define BR 328
250#define SWITCH 329
251#define INVOKE 330
252#define UNWIND 331
253#define UNREACHABLE 332
254#define ADD 333
255#define SUB 334
256#define MUL 335
257#define UDIV 336
258#define SDIV 337
259#define FDIV 338
260#define UREM 339
261#define SREM 340
262#define FREM 341
263#define AND 342
264#define OR 343
265#define XOR 344
266#define SETLE 345
267#define SETGE 346
268#define SETLT 347
269#define SETGT 348
270#define SETEQ 349
271#define SETNE 350
272#define MALLOC 351
273#define ALLOCA 352
274#define FREE 353
275#define LOAD 354
276#define STORE 355
277#define GETELEMENTPTR 356
Reid Spencere77e35e2006-12-01 20:26:20 +0000278#define PHI_TOK 357
279#define SELECT 358
280#define SHL 359
281#define LSHR 360
282#define ASHR 361
283#define VAARG 362
284#define EXTRACTELEMENT 363
285#define INSERTELEMENT 364
286#define SHUFFLEVECTOR 365
287#define CAST 366
Reid Spencere7c3c602006-11-30 06:36:44 +0000288
289
290
291
292/* Copy the first part of user declarations. */
293#line 14 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
294
Reid Spencere7c3c602006-11-30 06:36:44 +0000295#include "ParserInternals.h"
296#include <llvm/ADT/StringExtras.h>
Reid Spencere7c3c602006-11-30 06:36:44 +0000297#include <algorithm>
298#include <list>
299#include <utility>
300#include <iostream>
301
Reid Spencere77e35e2006-12-01 20:26:20 +0000302#define YYERROR_VERBOSE 1
Reid Spencer96839be2006-11-30 16:50:26 +0000303#define YYINCLUDED_STDLIB_H
Reid Spencere77e35e2006-12-01 20:26:20 +0000304#define YYDEBUG 1
Reid Spencere7c3c602006-11-30 06:36:44 +0000305
306int yylex(); // declaration" of xxx warnings.
307int yyparse();
Reid Spencere77e35e2006-12-01 20:26:20 +0000308extern int yydebug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000309
310static std::string CurFilename;
Reid Spencere7c3c602006-11-30 06:36:44 +0000311static std::ostream *O = 0;
Reid Spencer96839be2006-11-30 16:50:26 +0000312std::istream* LexInput = 0;
Reid Spencere77e35e2006-12-01 20:26:20 +0000313unsigned SizeOfPointer = 32;
Reid Spencer96839be2006-11-30 16:50:26 +0000314
315void UpgradeAssembly(const std::string &infile, std::istream& in,
Reid Spencere77e35e2006-12-01 20:26:20 +0000316 std::ostream &out, bool debug)
Reid Spencere7c3c602006-11-30 06:36:44 +0000317{
318 Upgradelineno = 1;
319 CurFilename = infile;
Reid Spencer96839be2006-11-30 16:50:26 +0000320 LexInput = &in;
Reid Spencere77e35e2006-12-01 20:26:20 +0000321 yydebug = debug;
Reid Spencere7c3c602006-11-30 06:36:44 +0000322 O = &out;
323
324 if (yyparse()) {
325 std::cerr << "Parse failed.\n";
326 exit(1);
327 }
328}
329
Reid Spencere77e35e2006-12-01 20:26:20 +0000330const char* getCastOpcode(TypeInfo& SrcTy, TypeInfo&DstTy) {
331 unsigned SrcBits = SrcTy.getBitWidth();
332 unsigned DstBits = DstTy.getBitWidth();
333 const char* opcode = "bitcast";
334 // Run through the possibilities ...
335 if (DstTy.isIntegral()) { // Casting to integral
336 if (SrcTy.isIntegral()) { // Casting from integral
337 if (DstBits < SrcBits)
338 opcode = "trunc";
339 else if (DstBits > SrcBits) { // its an extension
340 if (SrcTy.isSigned())
341 opcode ="sext"; // signed -> SEXT
342 else
343 opcode = "zext"; // unsigned -> ZEXT
344 } else {
345 opcode = "bitcast"; // Same size, No-op cast
346 }
347 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
348 if (DstTy.isSigned())
349 opcode = "fptosi"; // FP -> sint
350 else
351 opcode = "fptoui"; // FP -> uint
352 } else if (SrcTy.isPacked()) {
353 assert(DstBits == SrcTy.getBitWidth() &&
354 "Casting packed to integer of different width");
355 opcode = "bitcast"; // same size, no-op cast
356 } else {
357 assert(SrcTy.isPointer() &&
358 "Casting from a value that is not first-class type");
359 opcode = "ptrtoint"; // ptr -> int
360 }
361 } else if (DstTy.isFloatingPoint()) { // Casting to floating pt
362 if (SrcTy.isIntegral()) { // Casting from integral
363 if (SrcTy.isSigned())
364 opcode = "sitofp"; // sint -> FP
365 else
366 opcode = "uitofp"; // uint -> FP
367 } else if (SrcTy.isFloatingPoint()) { // Casting from floating pt
368 if (DstBits < SrcBits) {
369 opcode = "fptrunc"; // FP -> smaller FP
370 } else if (DstBits > SrcBits) {
371 opcode = "fpext"; // FP -> larger FP
372 } else {
373 opcode ="bitcast"; // same size, no-op cast
374 }
375 } else if (SrcTy.isPacked()) {
376 assert(DstBits == SrcTy.getBitWidth() &&
377 "Casting packed to floating point of different width");
378 opcode = "bitcast"; // same size, no-op cast
379 } else {
380 assert(0 && "Casting pointer or non-first class to float");
381 }
382 } else if (DstTy.isPacked()) {
383 if (SrcTy.isPacked()) {
384 assert(DstTy.getBitWidth() == SrcTy.getBitWidth() &&
385 "Casting packed to packed of different widths");
386 opcode = "bitcast"; // packed -> packed
387 } else if (DstTy.getBitWidth() == SrcBits) {
388 opcode = "bitcast"; // float/int -> packed
389 } else {
390 assert(!"Illegal cast to packed (wrong type or size)");
391 }
392 } else if (DstTy.isPointer()) {
393 if (SrcTy.isPointer()) {
394 opcode = "bitcast"; // ptr -> ptr
395 } else if (SrcTy.isIntegral()) {
396 opcode = "inttoptr"; // int -> ptr
397 } else {
398 assert(!"Casting pointer to other than pointer or int");
399 }
400 } else {
401 assert(!"Casting to type that is not first-class");
402 }
403 return opcode;
404}
405
Reid Spencere7c3c602006-11-30 06:36:44 +0000406
407
408/* Enabling traces. */
409#ifndef YYDEBUG
410# define YYDEBUG 0
411#endif
412
413/* Enabling verbose error messages. */
414#ifdef YYERROR_VERBOSE
415# undef YYERROR_VERBOSE
416# define YYERROR_VERBOSE 1
417#else
418# define YYERROR_VERBOSE 0
419#endif
420
421/* Enabling the token table. */
422#ifndef YYTOKEN_TABLE
423# define YYTOKEN_TABLE 0
424#endif
425
426#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
Reid Spencere77e35e2006-12-01 20:26:20 +0000427#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
428typedef union YYSTYPE {
429 std::string* String;
430 TypeInfo Type;
431 ValueInfo Value;
432 ConstInfo Const;
433} YYSTYPE;
434/* Line 196 of yacc.c. */
435#line 436 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000436# define yystype YYSTYPE /* obsolescent; will be withdrawn */
437# define YYSTYPE_IS_DECLARED 1
438# define YYSTYPE_IS_TRIVIAL 1
439#endif
440
441
442
443/* Copy the second part of user declarations. */
444
445
446/* Line 219 of yacc.c. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000447#line 448 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +0000448
449#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
450# define YYSIZE_T __SIZE_TYPE__
451#endif
452#if ! defined (YYSIZE_T) && defined (size_t)
453# define YYSIZE_T size_t
454#endif
455#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
456# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
457# define YYSIZE_T size_t
458#endif
459#if ! defined (YYSIZE_T)
460# define YYSIZE_T unsigned int
461#endif
462
463#ifndef YY_
464# if YYENABLE_NLS
465# if ENABLE_NLS
466# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
467# define YY_(msgid) dgettext ("bison-runtime", msgid)
468# endif
469# endif
470# ifndef YY_
471# define YY_(msgid) msgid
472# endif
473#endif
474
475#if ! defined (yyoverflow) || YYERROR_VERBOSE
476
477/* The parser invokes alloca or malloc; define the necessary symbols. */
478
479# ifdef YYSTACK_USE_ALLOCA
480# if YYSTACK_USE_ALLOCA
481# ifdef __GNUC__
482# define YYSTACK_ALLOC __builtin_alloca
483# else
484# define YYSTACK_ALLOC alloca
485# if defined (__STDC__) || defined (__cplusplus)
486# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487# define YYINCLUDED_STDLIB_H
488# endif
489# endif
490# endif
491# endif
492
493# ifdef YYSTACK_ALLOC
494 /* Pacify GCC's `empty if-body' warning. */
495# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
496# ifndef YYSTACK_ALLOC_MAXIMUM
497 /* The OS might guarantee only one guard page at the bottom of the stack,
498 and a page size can be as small as 4096 bytes. So we cannot safely
499 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
500 to allow for a few compiler-allocated temporary stack slots. */
501# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
502# endif
503# else
504# define YYSTACK_ALLOC YYMALLOC
505# define YYSTACK_FREE YYFREE
506# ifndef YYSTACK_ALLOC_MAXIMUM
507# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
508# endif
509# ifdef __cplusplus
510extern "C" {
511# endif
512# ifndef YYMALLOC
513# define YYMALLOC malloc
514# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
515 && (defined (__STDC__) || defined (__cplusplus)))
516void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
517# endif
518# endif
519# ifndef YYFREE
520# define YYFREE free
521# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
522 && (defined (__STDC__) || defined (__cplusplus)))
523void free (void *); /* INFRINGES ON USER NAME SPACE */
524# endif
525# endif
526# ifdef __cplusplus
527}
528# endif
529# endif
530#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
531
532
533#if (! defined (yyoverflow) \
534 && (! defined (__cplusplus) \
535 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
536
537/* A type that is properly aligned for any stack member. */
538union yyalloc
539{
540 short int yyss;
541 YYSTYPE yyvs;
542 };
543
544/* The size of the maximum gap between one aligned stack and the next. */
545# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
546
547/* The size of an array large to enough to hold all stacks, each with
548 N elements. */
549# define YYSTACK_BYTES(N) \
550 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
551 + YYSTACK_GAP_MAXIMUM)
552
553/* Copy COUNT objects from FROM to TO. The source and destination do
554 not overlap. */
555# ifndef YYCOPY
556# if defined (__GNUC__) && 1 < __GNUC__
557# define YYCOPY(To, From, Count) \
558 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
559# else
560# define YYCOPY(To, From, Count) \
561 do \
562 { \
563 YYSIZE_T yyi; \
564 for (yyi = 0; yyi < (Count); yyi++) \
565 (To)[yyi] = (From)[yyi]; \
566 } \
567 while (0)
568# endif
569# endif
570
571/* Relocate STACK from its old location to the new one. The
572 local variables YYSIZE and YYSTACKSIZE give the old and new number of
573 elements in the stack, and YYPTR gives the new location of the
574 stack. Advance YYPTR to a properly aligned location for the next
575 stack. */
576# define YYSTACK_RELOCATE(Stack) \
577 do \
578 { \
579 YYSIZE_T yynewbytes; \
580 YYCOPY (&yyptr->Stack, Stack, yysize); \
581 Stack = &yyptr->Stack; \
582 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
583 yyptr += yynewbytes / sizeof (*yyptr); \
584 } \
585 while (0)
586
587#endif
588
589#if defined (__STDC__) || defined (__cplusplus)
590 typedef signed char yysigned_char;
591#else
592 typedef short int yysigned_char;
593#endif
594
595/* YYFINAL -- State number of the termination state. */
596#define YYFINAL 4
597/* YYLAST -- Last index in YYTABLE. */
Reid Spencere77e35e2006-12-01 20:26:20 +0000598#define YYLAST 1193
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,
683 572, 576, 579, 580, 582, 585, 588, 592, 602, 612,
684 621, 635, 637, 639, 646, 652, 655, 662, 670, 672,
685 676, 678, 679, 682, 684, 690, 696, 702, 705, 710,
686 715, 722, 727, 732, 739, 746, 749, 757, 759, 762,
687 763, 765, 766, 770, 777, 781, 788, 791, 796, 803
Reid Spencere7c3c602006-11-30 06:36:44 +0000688};
689
690/* YYRHS -- A `-1'-separated list of the rules' RHS. */
691static const short int yyrhs[] =
692{
Reid Spencere77e35e2006-12-01 20:26:20 +0000693 157, 0, -1, 5, -1, 6, -1, 3, -1, 4,
Reid Spencere7c3c602006-11-30 06:36:44 +0000694 -1, 78, -1, 79, -1, 80, -1, 81, -1, 82,
695 -1, 83, -1, 84, -1, 85, -1, 86, -1, 87,
696 -1, 88, -1, 89, -1, 90, -1, 91, -1, 92,
Reid Spencere77e35e2006-12-01 20:26:20 +0000697 -1, 93, -1, 94, -1, 95, -1, 104, -1, 105,
698 -1, 106, -1, 21, -1, 19, -1, 17, -1, 15,
699 -1, 22, -1, 20, -1, 18, -1, 16, -1, 133,
700 -1, 134, -1, 23, -1, 24, -1, 165, 112, -1,
701 -1, 42, -1, 43, -1, 44, -1, 48, -1, 45,
702 -1, 46, -1, 47, -1, -1, 65, -1, 66, -1,
703 67, -1, 68, -1, 69, -1, 70, -1, 64, 4,
704 -1, -1, -1, 57, 4, -1, -1, 113, 57, 4,
705 -1, 37, 30, -1, -1, 142, -1, -1, 113, 145,
706 144, -1, 142, -1, 57, 4, -1, 148, -1, 13,
707 -1, 150, -1, 13, -1, 150, -1, 14, -1, 15,
708 -1, 16, -1, 17, -1, 18, -1, 19, -1, 20,
709 -1, 21, -1, 22, -1, 23, -1, 24, -1, 25,
710 -1, 26, -1, 149, -1, 179, -1, 114, 4, -1,
711 147, 115, 152, 116, -1, 117, 4, 118, 150, 119,
712 -1, 120, 4, 118, 150, 121, -1, 122, 151, 123,
713 -1, 122, 123, -1, 150, 124, -1, 150, -1, 151,
714 113, 150, -1, 151, -1, 151, 113, 40, -1, 40,
715 -1, -1, 148, 117, 155, 119, -1, 148, 117, 119,
716 -1, 148, 125, 30, -1, 148, 120, 155, 121, -1,
717 148, 122, 155, 123, -1, 148, 122, 123, -1, 148,
718 10, -1, 148, 11, -1, 148, 179, -1, 148, 154,
719 -1, 148, 12, -1, 133, 128, -1, 134, 4, -1,
720 14, 8, -1, 14, 9, -1, 136, 7, -1, 111,
721 115, 153, 39, 148, 116, -1, 101, 115, 153, 193,
722 116, -1, 103, 115, 153, 113, 153, 113, 153, 116,
723 -1, 129, 115, 153, 113, 153, 116, -1, 130, 115,
724 153, 113, 153, 116, -1, 131, 115, 153, 113, 153,
725 116, -1, 132, 115, 153, 113, 153, 116, -1, 108,
726 115, 153, 113, 153, 116, -1, 109, 115, 153, 113,
727 153, 113, 153, 116, -1, 110, 115, 153, 113, 153,
728 113, 153, 116, -1, 155, 113, 153, -1, 153, -1,
729 35, -1, 36, -1, 158, -1, 158, 174, -1, 158,
730 176, -1, 158, 62, 61, 160, -1, 158, 31, -1,
731 159, -1, 159, 137, 27, 146, -1, 159, 176, -1,
732 159, 62, 61, 160, -1, 159, 137, 138, 156, 153,
733 144, -1, 159, 137, 50, 156, 148, 144, -1, 159,
734 137, 45, 156, 148, 144, -1, 159, 137, 47, 156,
735 148, 144, -1, 159, 51, 162, -1, 159, 58, 112,
736 163, -1, -1, 30, -1, 56, -1, 55, -1, 53,
737 112, 161, -1, 54, 112, 4, -1, 52, 112, 30,
738 -1, 71, 112, 30, -1, 117, 164, 119, -1, 164,
739 113, 30, -1, 30, -1, -1, 28, -1, 30, -1,
740 165, -1, -1, 148, 166, -1, 168, 113, 167, -1,
741 167, -1, 168, -1, 168, 113, 40, -1, 40, -1,
742 -1, 139, 146, 165, 115, 169, 116, 143, 140, -1,
743 32, -1, 122, -1, 138, 170, 171, -1, 33, -1,
744 123, -1, 172, 182, 173, -1, -1, 45, -1, 47,
745 -1, 34, 175, 170, -1, -1, 63, -1, 3, -1,
746 4, -1, 7, -1, 8, -1, 9, -1, 10, -1,
747 11, -1, 12, -1, 120, 155, 121, -1, 154, -1,
748 61, 177, 30, 113, 30, -1, 127, -1, 165, -1,
749 179, -1, 178, -1, 148, 180, -1, 182, 183, -1,
750 183, -1, 184, 137, 185, -1, 184, 187, -1, -1,
751 29, -1, 72, 181, -1, 72, 13, -1, 73, 25,
752 180, -1, 73, 14, 180, 113, 25, 180, 113, 25,
753 180, -1, 74, 135, 180, 113, 25, 180, 117, 186,
754 119, -1, 74, 135, 180, 113, 25, 180, 117, 119,
755 -1, 75, 139, 146, 180, 115, 190, 116, 39, 25,
756 180, 76, 25, 180, -1, 76, -1, 77, -1, 186,
757 135, 178, 113, 25, 180, -1, 135, 178, 113, 25,
758 180, -1, 137, 192, -1, 148, 117, 180, 113, 180,
759 119, -1, 188, 113, 117, 180, 113, 180, 119, -1,
760 181, -1, 189, 113, 181, -1, 189, -1, -1, 60,
761 59, -1, 59, -1, 129, 148, 180, 113, 180, -1,
762 130, 148, 180, 113, 180, -1, 131, 148, 180, 113,
763 180, -1, 49, 181, -1, 132, 181, 113, 181, -1,
764 111, 181, 39, 148, -1, 103, 181, 113, 181, 113,
765 181, -1, 107, 181, 113, 148, -1, 108, 181, 113,
766 181, -1, 109, 181, 113, 181, 113, 181, -1, 110,
767 181, 113, 181, 113, 181, -1, 102, 188, -1, 191,
768 139, 146, 180, 115, 190, 116, -1, 195, -1, 113,
769 189, -1, -1, 38, -1, -1, 96, 148, 141, -1,
770 96, 148, 113, 20, 180, 141, -1, 97, 148, 141,
771 -1, 97, 148, 113, 20, 180, 141, -1, 98, 181,
772 -1, 194, 99, 148, 180, -1, 194, 100, 181, 113,
773 148, 180, -1, 101, 148, 180, 193, -1
Reid Spencere7c3c602006-11-30 06:36:44 +0000774};
775
776/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
777static const unsigned short int yyrline[] =
778{
Reid Spencere77e35e2006-12-01 20:26:20 +0000779 0, 189, 189, 189, 190, 190, 194, 194, 194, 194,
780 194, 194, 194, 194, 194, 195, 195, 195, 196, 196,
781 196, 196, 196, 196, 197, 197, 197, 201, 201, 201,
782 201, 202, 202, 202, 202, 203, 203, 204, 204, 207,
783 211, 216, 216, 216, 216, 216, 216, 217, 218, 221,
784 221, 221, 221, 221, 222, 222, 223, 228, 229, 232,
785 233, 241, 247, 248, 251, 252, 261, 262, 275, 275,
786 276, 276, 277, 281, 281, 281, 281, 281, 281, 281,
787 282, 282, 282, 282, 282, 283, 283, 283, 288, 293,
788 299, 306, 313, 319, 323, 333, 336, 344, 345, 350,
789 353, 363, 369, 374, 380, 386, 392, 397, 403, 409,
790 415, 421, 427, 433, 439, 445, 451, 459, 466, 472,
791 477, 482, 487, 492, 497, 502, 507, 517, 522, 527,
792 527, 537, 542, 545, 550, 553, 556, 560, 565, 570,
793 575, 581, 587, 593, 599, 604, 609, 614, 616, 616,
794 619, 624, 631, 636, 643, 650, 655, 656, 664, 664,
795 665, 665, 667, 674, 678, 682, 685, 690, 693, 697,
796 717, 720, 724, 733, 734, 736, 744, 745, 746, 750,
797 763, 765, 769, 770, 771, 772, 773, 774, 775, 776,
798 777, 782, 783, 792, 792, 795, 795, 801, 808, 810,
799 817, 821, 826, 829, 835, 840, 845, 850, 857, 863,
800 869, 878, 883, 889, 894, 902, 909, 915, 923, 924,
801 932, 933, 937, 942, 945, 950, 955, 960, 965, 970,
802 977, 982, 987, 992, 997, 1002, 1007, 1016, 1021, 1025,
803 1029, 1030, 1033, 1040, 1047, 1054, 1061, 1066, 1073, 1080
Reid Spencere7c3c602006-11-30 06:36:44 +0000804};
805#endif
806
807#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
808/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
809 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
810static const char *const yytname[] =
811{
812 "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL",
Reid Spencere77e35e2006-12-01 20:26:20 +0000813 "UINTVAL", "FPVAL", "TRUETOK", "FALSETOK", "NULL_TOK", "UNDEF",
814 "ZEROINITIALIZER", "VOID", "BOOL", "SBYTE", "UBYTE", "SHORT", "USHORT",
815 "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", "LABEL", "OPAQUE",
816 "TYPE", "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
817 "BEGINTOK", "ENDTOK", "DECLARE", "GLOBAL", "CONSTANT", "SECTION",
818 "VOLATILE", "TO", "DOTDOTDOT", "CONST", "INTERNAL", "LINKONCE", "WEAK",
819 "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "APPENDING", "NOT", "EXTERNAL",
820 "TARGET", "TRIPLE", "ENDIAN", "POINTERSIZE", "LITTLE", "BIG", "ALIGN",
821 "DEPLIBS", "CALL", "TAIL", "ASM_TOK", "MODULE", "SIDEEFFECT", "CC_TOK",
822 "CCC_TOK", "CSRETCC_TOK", "FASTCC_TOK", "COLDCC_TOK",
823 "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT", "RET", "BR",
824 "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB", "MUL", "UDIV",
825 "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR", "XOR", "SETLE",
826 "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC", "ALLOCA", "FREE",
827 "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "SELECT", "SHL", "LSHR",
Reid Spencere7c3c602006-11-30 06:36:44 +0000828 "ASHR", "VAARG", "EXTRACTELEMENT", "INSERTELEMENT", "SHUFFLEVECTOR",
829 "CAST", "'='", "','", "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'",
Reid Spencere77e35e2006-12-01 20:26:20 +0000830 "'>'", "'{'", "'}'", "'*'", "'c'", "$accept", "IntVal", "EInt64Val",
831 "ArithmeticOps", "LogicalOps", "SetCondOps", "ShiftOps", "SIntType",
832 "UIntType", "IntType", "FPType", "OptAssign", "OptLinkage",
Reid Spencere7c3c602006-11-30 06:36:44 +0000833 "OptCallingConv", "OptAlign", "OptCAlign", "SectionString", "OptSection",
834 "GlobalVarAttributes", "GlobalVarAttribute", "TypesV", "UpRTypesV",
835 "Types", "PrimType", "UpRTypes", "TypeListI", "ArgTypeListI", "ConstVal",
836 "ConstExpr", "ConstVector", "GlobalType", "Module", "DefinitionList",
837 "ConstPool", "AsmBlock", "BigOrLittle", "TargetDefinition",
838 "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
839 "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
840 "END", "Function", "FnDeclareLinkage", "FunctionProto", "OptSideEffect",
841 "ConstValueRef", "SymbolicValueRef", "ValueRef", "ResolvedVal",
842 "BasicBlockList", "BasicBlock", "InstructionList", "BBTerminatorInst",
843 "JumpTable", "Inst", "PHIList", "ValueRefList", "ValueRefListE",
844 "OptTailCall", "InstVal", "IndexList", "OptVolatile", "MemoryInst", 0
845};
846#endif
847
848# ifdef YYPRINT
849/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
850 token YYLEX-NUM. */
851static const unsigned short int yytoknum[] =
852{
853 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
854 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
855 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
856 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
857 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
858 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
859 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
860 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
861 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
862 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
863 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
Reid Spencere77e35e2006-12-01 20:26:20 +0000864 365, 366, 61, 44, 92, 40, 41, 91, 120, 93,
865 60, 62, 123, 125, 42, 99
Reid Spencere7c3c602006-11-30 06:36:44 +0000866};
867# endif
868
869/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
870static const unsigned char yyr1[] =
871{
Reid Spencere77e35e2006-12-01 20:26:20 +0000872 0, 126, 127, 127, 128, 128, 129, 129, 129, 129,
873 129, 129, 129, 129, 129, 130, 130, 130, 131, 131,
874 131, 131, 131, 131, 132, 132, 132, 133, 133, 133,
875 133, 134, 134, 134, 134, 135, 135, 136, 136, 137,
876 137, 138, 138, 138, 138, 138, 138, 138, 138, 139,
877 139, 139, 139, 139, 139, 139, 139, 140, 140, 141,
878 141, 142, 143, 143, 144, 144, 145, 145, 146, 146,
879 147, 147, 148, 149, 149, 149, 149, 149, 149, 149,
880 149, 149, 149, 149, 149, 150, 150, 150, 150, 150,
881 150, 150, 150, 150, 150, 151, 151, 152, 152, 152,
882 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
883 153, 153, 153, 153, 153, 153, 153, 154, 154, 154,
884 154, 154, 154, 154, 154, 154, 154, 155, 155, 156,
885 156, 157, 158, 158, 158, 158, 158, 159, 159, 159,
886 159, 159, 159, 159, 159, 159, 159, 160, 161, 161,
887 162, 162, 162, 162, 163, 164, 164, 164, 165, 165,
888 166, 166, 167, 168, 168, 169, 169, 169, 169, 170,
889 171, 171, 172, 173, 173, 174, 175, 175, 175, 176,
890 177, 177, 178, 178, 178, 178, 178, 178, 178, 178,
891 178, 178, 178, 179, 179, 180, 180, 181, 182, 182,
892 183, 184, 184, 184, 185, 185, 185, 185, 185, 185,
893 185, 185, 185, 186, 186, 187, 188, 188, 189, 189,
894 190, 190, 191, 191, 192, 192, 192, 192, 192, 192,
895 192, 192, 192, 192, 192, 192, 192, 192, 193, 193,
896 194, 194, 195, 195, 195, 195, 195, 195, 195, 195
Reid Spencere7c3c602006-11-30 06:36:44 +0000897};
898
899/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
900static const unsigned char yyr2[] =
901{
902 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000905 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
906 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
907 1, 1, 1, 1, 1, 2, 0, 0, 2, 0,
908 3, 2, 0, 1, 0, 3, 1, 2, 1, 1,
Reid Spencere7c3c602006-11-30 06:36:44 +0000909 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Reid Spencere77e35e2006-12-01 20:26:20 +0000910 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
911 5, 5, 3, 2, 2, 1, 3, 1, 3, 1,
912 0, 4, 3, 3, 4, 4, 3, 2, 2, 2,
913 2, 2, 2, 2, 2, 2, 2, 6, 5, 8,
914 6, 6, 6, 6, 6, 8, 8, 3, 1, 1,
915 1, 1, 2, 2, 4, 2, 1, 4, 2, 4,
916 6, 6, 6, 6, 3, 4, 0, 1, 1, 1,
917 3, 3, 3, 3, 3, 3, 1, 0, 1, 1,
918 1, 0, 2, 3, 1, 1, 3, 1, 0, 8,
919 1, 1, 3, 1, 1, 3, 0, 1, 1, 3,
920 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
921 3, 1, 5, 1, 1, 1, 1, 2, 2, 1,
922 3, 2, 0, 1, 2, 2, 3, 9, 9, 8,
923 13, 1, 1, 6, 5, 2, 6, 7, 1, 3,
924 1, 0, 2, 1, 5, 5, 5, 2, 4, 4,
925 6, 4, 4, 6, 6, 2, 7, 1, 2, 0,
926 1, 0, 3, 6, 3, 6, 2, 4, 6, 4
Reid Spencere7c3c602006-11-30 06:36:44 +0000927};
928
929/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
930 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
931 means the default is an error. */
932static const unsigned char yydefact[] =
933{
Reid Spencere77e35e2006-12-01 20:26:20 +0000934 146, 0, 48, 136, 1, 135, 176, 41, 42, 43,
935 45, 46, 47, 44, 0, 56, 202, 132, 133, 158,
936 159, 0, 0, 0, 48, 0, 138, 177, 178, 56,
937 0, 0, 49, 50, 51, 52, 53, 54, 0, 0,
938 203, 202, 199, 40, 0, 0, 0, 0, 144, 0,
939 0, 0, 0, 0, 0, 0, 39, 179, 147, 134,
940 55, 2, 3, 69, 73, 74, 75, 76, 77, 78,
941 79, 80, 81, 82, 83, 84, 85, 0, 0, 0,
942 0, 193, 0, 0, 68, 86, 72, 194, 87, 170,
943 171, 172, 173, 174, 175, 198, 241, 201, 0, 0,
944 0, 0, 157, 145, 139, 137, 129, 130, 0, 0,
945 0, 0, 88, 0, 0, 71, 93, 95, 0, 0,
946 100, 94, 240, 0, 223, 0, 0, 0, 0, 56,
947 211, 212, 6, 7, 8, 9, 10, 11, 12, 13,
948 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
949 0, 0, 0, 0, 0, 0, 24, 25, 26, 0,
950 0, 0, 0, 0, 0, 0, 0, 0, 200, 56,
951 215, 0, 237, 152, 149, 148, 150, 151, 153, 156,
952 0, 64, 64, 64, 73, 74, 75, 76, 77, 78,
953 79, 80, 81, 82, 83, 0, 0, 0, 0, 64,
954 0, 0, 0, 92, 168, 99, 97, 0, 0, 227,
955 222, 205, 204, 0, 0, 30, 34, 29, 33, 28,
956 32, 27, 31, 35, 36, 0, 0, 59, 59, 246,
957 0, 0, 235, 0, 0, 0, 0, 0, 0, 0,
958 0, 0, 0, 0, 0, 0, 0, 154, 0, 142,
959 143, 141, 114, 115, 4, 5, 112, 113, 116, 107,
960 108, 111, 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, 0, 0, 0, 0, 110, 109, 140, 70,
962 70, 96, 167, 161, 164, 165, 0, 0, 89, 182,
963 183, 184, 185, 186, 187, 188, 189, 180, 0, 191,
964 196, 195, 197, 0, 206, 0, 0, 0, 242, 0,
965 244, 239, 0, 0, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 155, 0, 0,
967 66, 64, 0, 0, 0, 0, 0, 0, 102, 128,
968 0, 0, 106, 0, 103, 0, 0, 0, 0, 90,
969 91, 160, 162, 0, 62, 98, 181, 0, 0, 0,
970 0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
971 231, 232, 0, 0, 229, 0, 0, 0, 228, 0,
972 247, 0, 61, 67, 65, 239, 0, 0, 0, 0,
973 0, 0, 101, 104, 105, 0, 0, 0, 0, 166,
974 163, 63, 57, 0, 190, 0, 0, 221, 59, 60,
975 59, 218, 238, 0, 0, 0, 0, 0, 224, 225,
976 226, 221, 0, 0, 0, 0, 0, 0, 0, 127,
977 0, 0, 0, 0, 0, 169, 0, 0, 0, 220,
978 0, 0, 243, 245, 0, 0, 0, 230, 233, 234,
979 0, 248, 118, 0, 0, 0, 0, 0, 0, 0,
980 0, 0, 58, 192, 0, 0, 0, 219, 216, 0,
981 236, 0, 124, 0, 0, 117, 120, 121, 122, 123,
982 0, 209, 0, 0, 0, 217, 0, 0, 0, 207,
983 0, 208, 0, 0, 119, 125, 126, 0, 0, 0,
984 0, 0, 0, 214, 0, 0, 213, 210
Reid Spencere7c3c602006-11-30 06:36:44 +0000985};
986
987/* YYDEFGOTO[NTERM-NUM]. */
988static const short int yydefgoto[] =
989{
Reid Spencere77e35e2006-12-01 20:26:20 +0000990 -1, 81, 256, 272, 273, 274, 275, 195, 196, 225,
991 197, 24, 15, 38, 435, 308, 330, 402, 249, 331,
992 82, 83, 198, 85, 86, 118, 207, 339, 299, 340,
993 108, 1, 2, 3, 59, 176, 48, 103, 180, 87,
994 352, 284, 285, 286, 39, 91, 16, 94, 17, 29,
995 18, 357, 300, 88, 302, 411, 41, 42, 43, 168,
996 483, 97, 232, 439, 440, 169, 170, 366, 171, 172
Reid Spencere7c3c602006-11-30 06:36:44 +0000997};
998
999/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1000 STATE-NUM. */
Reid Spencere77e35e2006-12-01 20:26:20 +00001001#define YYPACT_NINF -403
Reid Spencere7c3c602006-11-30 06:36:44 +00001002static const short int yypact[] =
1003{
Reid Spencere77e35e2006-12-01 20:26:20 +00001004 -403, 26, 210, 114, -403, -403, 106, -403, -403, -403,
1005 -403, -403, -403, -403, -49, 201, 53, -403, -403, -403,
1006 -403, 15, -5, 59, 31, 42, -403, -403, -403, 201,
1007 113, 167, -403, -403, -403, -403, -403, -403, 920, 11,
1008 -403, 9, -403, 140, 72, 74, 79, 85, -403, 87,
1009 113, 920, 104, 104, 104, 104, -403, -403, -403, -403,
1010 -403, -403, -403, 94, -403, -403, -403, -403, -403, -403,
1011 -403, -403, -403, -403, -403, -403, -403, 226, 227, 229,
1012 408, -403, 140, 120, -403, -403, -59, -403, -403, -403,
1013 -403, -403, -403, -403, -403, -403, 1082, -403, 204, 119,
1014 232, 213, 215, -403, -403, -403, -403, -403, 974, 974,
1015 974, 1002, -403, 128, 131, -403, -403, -59, -72, 135,
1016 78, -403, -403, 974, -403, 192, 1030, 41, 196, 201,
1017 -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
1018 -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
1019 974, 974, 974, 974, 974, 974, -403, -403, -403, 974,
1020 974, 974, 974, 974, 974, 974, 974, 974, -403, 201,
1021 -403, 81, -403, -403, -403, -403, -403, -403, -403, -403,
1022 50, 147, 147, 147, 169, 179, 257, 186, 258, 190,
1023 259, 216, 278, 277, 279, 219, 283, 281, 559, 147,
1024 974, 974, 974, -403, 446, -403, 176, 175, 684, -403,
1025 -403, 94, -403, 684, 684, -403, -403, -403, -403, -403,
1026 -403, -403, -403, -403, -403, 684, 920, 180, 181, -403,
1027 684, 182, 183, 184, 185, 191, 193, 194, 253, 684,
1028 684, 684, 195, 920, 974, 974, 265, -403, 2, -403,
1029 -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
1030 -403, -403, 188, 197, 198, 199, 205, 206, 838, 1002,
1031 588, 275, 211, 217, 218, 220, -403, -403, -403, 28,
1032 -64, -59, -403, 140, -403, 221, 212, 864, -403, -403,
1033 -403, -403, -403, -403, -403, -403, -403, 246, 1002, -403,
1034 -403, -403, -403, 223, -403, 224, 684, 4, -403, 5,
1035 -403, 228, 684, 214, 974, 974, 974, 974, 974, 974,
1036 231, 234, 235, 974, 684, 684, 236, -403, 280, 307,
1037 -403, 147, 1002, 1002, 1002, 1002, 1002, 1002, -403, -403,
1038 54, 24, -403, -60, -403, 1002, 1002, 1002, 1002, -403,
1039 -403, -403, -403, 892, 293, -403, -403, 312, 25, 320,
1040 325, 237, 684, 347, 684, 974, -403, 240, 684, 241,
1041 -403, -403, 242, 247, -403, 684, 684, 684, -403, 249,
1042 -403, 974, -403, -403, -403, 228, 248, 254, 255, 260,
1043 323, 1002, -403, -403, -403, 261, 262, 263, 267, -403,
1044 -403, -403, 313, 268, -403, 684, 684, 974, 269, -403,
1045 269, -403, 271, 684, 272, 974, 974, 974, -403, -403,
1046 -403, 974, 684, 256, 1002, 1002, 1002, 1002, 974, -403,
1047 1002, 1002, 1002, 1002, 367, -403, 356, 274, 276, 271,
1048 273, 331, -403, -403, 974, 282, 684, -403, -403, -403,
1049 284, -403, -403, 286, 288, 292, 294, 296, 299, 300,
1050 304, 319, -403, -403, 369, 0, 358, -403, -403, 318,
1051 -403, 1002, -403, 1002, 1002, -403, -403, -403, -403, -403,
1052 684, -403, 730, 12, 370, -403, 326, 327, 328, -403,
1053 332, -403, 730, 684, -403, -403, -403, 416, 333, 372,
1054 684, 424, 425, -403, 684, 684, -403, -403
Reid Spencere7c3c602006-11-30 06:36:44 +00001055};
1056
1057/* YYPGOTO[NTERM-NUM]. */
1058static const short int yypgoto[] =
1059{
Reid Spencere77e35e2006-12-01 20:26:20 +00001060 -403, -403, -403, 357, 359, 361, 362, -127, -126, -378,
1061 -403, 411, 449, -120, -403, -223, 121, -403, -176, -403,
1062 -47, -403, -38, -403, -66, 363, -403, -108, 287, -234,
1063 56, -403, -403, -403, 427, -403, -403, -403, -403, 7,
1064 -403, 125, -403, -403, 450, -403, -403, -403, -403, -403,
1065 478, -403, -402, 34, 178, -115, -403, 441, -403, -403,
1066 -403, -403, -403, 122, 67, -403, -403, 107, -403, -403
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 Spencere77e35e2006-12-01 20:26:20 +00001076 84, 223, 224, 199, 105, 310, 250, 251, 209, 226,
1077 25, 212, 30, 84, 117, 215, 216, 217, 218, 219,
1078 220, 221, 222, 278, 362, 364, 4, 215, 216, 217,
1079 218, 219, 220, 221, 222, 341, 343, 229, 40, 328,
1080 233, 202, 92, 89, 234, 235, 236, 237, 238, 243,
1081 25, 203, 242, 391, 117, 213, -70, 350, 51, 329,
1082 121, 363, 363, 394, 358, 121, 214, 44, 45, 46,
1083 181, 182, 183, 7, 8, 9, 52, 11, 53, 13,
1084 490, 54, 40, 61, 62, 208, 47, 482, 208, 119,
1085 498, 115, 64, 65, 66, 67, 68, 69, 70, 71,
1086 72, 73, 74, 75, 76, 492, 19, 49, 20, 109,
1087 110, 111, 227, 228, 208, 230, 231, 208, 205, 481,
1088 50, 208, 208, 208, 208, 208, 239, 240, 241, 208,
1089 326, 491, 93, 90, 279, 280, 281, 391, 391, 106,
1090 107, -40, 19, 58, 20, 393, 404, 349, 6, -40,
1091 -40, 27, 121, 28, 56, 384, -40, -40, -40, -40,
1092 -40, -40, -40, 246, -40, 21, 283, 391, 19, 247,
1093 20, 60, 22, 392, 174, 175, 23, 252, 253, 306,
1094 244, 245, -30, -30, 98, 442, 99, 443, 84, -29,
1095 -29, 100, 77, -28, -28, 78, 324, 101, 79, 369,
1096 80, 371, 372, 373, 102, 84, 325, 208, 378, -71,
1097 -131, 215, 216, 217, 218, 219, 220, 221, 222, -27,
1098 -27, 281, 254, 255, 385, 386, 387, 388, 389, 390,
1099 112, 113, 277, 114, 173, 120, 177, 395, 396, 397,
1100 398, 5, 301, 178, 6, 179, 200, 301, 301, 201,
1101 204, 210, 7, 8, 9, 10, 11, 12, 13, 301,
1102 248, -34, -33, -32, 301, 31, 32, 33, 34, 35,
1103 36, 37, 14, 301, 301, 301, 208, 370, 208, 208,
1104 208, 374, -31, 429, -37, 208, -38, 257, 258, 287,
1105 351, 288, 319, 307, 309, 327, 313, 314, 315, 312,
1106 447, 448, 449, 332, 316, 344, 317, 318, 323, 356,
1107 382, 383, 333, 334, 335, 283, 453, 454, 455, 456,
1108 336, 337, 458, 459, 460, 461, 345, 208, 354, 467,
1109 328, 368, 346, 347, 353, 348, 359, 360, 223, 224,
1110 301, 365, 403, 422, 375, 405, 301, 376, 377, 381,
1111 406, 409, 407, 413, 415, 416, 223, 224, 301, 301,
1112 417, 424, 428, 486, 421, 487, 488, 425, 426, 208,
1113 434, 462, 452, 427, 430, 431, 432, 208, 208, 208,
1114 433, 436, 441, 208, 444, 446, 463, 464, 363, 466,
1115 457, 303, 304, 465, 480, 493, 301, 484, 301, 471,
1116 470, 468, 301, 305, 472, 473, 208, 474, 311, 301,
1117 301, 301, 475, 61, 62, 476, 477, 320, 321, 322,
1118 478, 115, 64, 65, 66, 67, 68, 69, 70, 71,
1119 72, 73, 74, 75, 76, 479, 19, 485, 20, 301,
1120 301, 500, 494, 495, 496, 497, 501, 301, 502, 504,
1121 505, 61, 62, 164, 96, 165, 301, 166, 167, 115,
1122 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
1123 74, 75, 76, 55, 19, 401, 20, 104, 400, 57,
1124 301, 26, 95, 206, 361, 276, 282, 412, 450, 0,
1125 367, 0, 423, 0, 0, 0, 0, 0, 0, 0,
1126 0, 0, 379, 380, 0, 0, 0, 0, 0, 0,
1127 0, 0, 0, 0, 301, 0, 0, 0, 0, 0,
1128 0, 0, 77, 0, 0, 78, 0, 301, 79, 0,
1129 80, 116, 0, 0, 301, 0, 0, 0, 301, 301,
1130 408, 0, 410, 0, 0, 0, 414, 0, 0, 0,
1131 0, 0, 0, 418, 419, 420, 0, 0, 0, 0,
1132 77, 0, 0, 78, 61, 62, 79, 0, 80, 259,
1133 260, 261, 0, 0, 0, 0, 0, 0, 0, 0,
1134 0, 0, 0, 437, 438, 0, 0, 19, 0, 20,
1135 0, 445, 0, 61, 62, 0, 0, 0, 0, 0,
1136 451, 115, 184, 185, 186, 187, 188, 189, 190, 191,
1137 192, 193, 194, 75, 76, 0, 19, 0, 20, 0,
1138 0, 0, 0, 0, 469, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 0, 0, 0, 132, 133, 134,
Reid Spencere7c3c602006-11-30 06:36:44 +00001140 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
Reid Spencere77e35e2006-12-01 20:26:20 +00001141 145, 146, 147, 148, 149, 0, 0, 0, 489, 0,
1142 262, 0, 263, 156, 157, 158, 0, 264, 265, 266,
1143 267, 499, 0, 0, 0, 0, 268, 0, 503, 269,
1144 0, 270, 506, 507, 271, 0, 0, 289, 290, 61,
1145 62, 291, 292, 293, 294, 295, 296, 0, 0, 0,
1146 0, 0, 77, 0, 0, 78, 0, 0, 79, 0,
1147 80, 342, 19, 0, 20, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 289, 290, 0, 0, 291, 292, 293,
1150 294, 295, 296, 0, 0, 297, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 0, 0, 132, 133, 134, 135, 136, 137, 138, 139,
1153 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1154 0, 0, 0, 0, 0, 262, 0, 263, 156, 157,
1155 158, 297, 264, 265, 266, 267, 0, 0, 0, 0,
1156 0, 0, 0, 0, 298, 0, 0, 0, 132, 133,
Reid Spencere7c3c602006-11-30 06:36:44 +00001157 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
Reid Spencere77e35e2006-12-01 20:26:20 +00001158 144, 145, 146, 147, 148, 149, 0, 0, 0, 0,
1159 0, 262, 0, 263, 156, 157, 158, 0, 264, 265,
1160 266, 267, 0, 61, 62, 0, 0, 0, 0, 0,
1161 298, 115, 184, 185, 186, 187, 188, 189, 190, 191,
1162 192, 193, 194, 75, 76, 0, 19, 0, 20, 61,
1163 62, 0, 0, 0, 0, 0, 0, 115, 64, 65,
1164 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1165 76, 0, 19, 0, 20, 0, 0, 61, 62, 0,
1166 0, 0, 0, 0, 355, 115, 64, 65, 66, 67,
1167 68, 69, 70, 71, 72, 73, 74, 75, 76, 0,
1168 19, 0, 20, 0, 0, 61, 62, 0, 0, 0,
1169 0, 0, 399, 63, 64, 65, 66, 67, 68, 69,
1170 70, 71, 72, 73, 74, 75, 76, 0, 19, 0,
1171 20, 0, 77, 0, 0, 78, 0, 338, 79, 0,
1172 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0, 77, 61,
1174 62, 78, 0, 0, 79, 0, 80, 115, 64, 65,
1175 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1176 76, 0, 19, 0, 20, 0, 77, 61, 62, 78,
1177 0, 0, 79, 0, 80, 115, 184, 185, 186, 187,
1178 188, 189, 190, 191, 192, 193, 194, 75, 76, 0,
1179 19, 0, 20, 0, 77, 61, 62, 78, 0, 0,
1180 79, 0, 80, 211, 64, 65, 66, 67, 68, 69,
1181 70, 71, 72, 73, 74, 75, 76, 0, 19, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001182 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencere77e35e2006-12-01 20:26:20 +00001184 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
1185 0, 78, 0, 0, 79, 0, 80, 0, 0, 0,
Reid Spencere7c3c602006-11-30 06:36:44 +00001186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Reid Spencere77e35e2006-12-01 20:26:20 +00001187 0, 0, 0, 0, 0, 0, 77, 0, 0, 78,
1188 122, 0, 79, 0, 80, 0, 0, 0, 0, 0,
1189 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 124, 125, 0, 77, 0, 0, 78, 0, 0,
1191 79, 0, 80, 0, 126, 127, 128, 129, 130, 131,
Reid Spencere7c3c602006-11-30 06:36:44 +00001192 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1193 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
Reid Spencere77e35e2006-12-01 20:26:20 +00001194 152, 0, 0, 153, 154, 155, 156, 157, 158, 159,
1195 160, 161, 162, 163
Reid Spencere7c3c602006-11-30 06:36:44 +00001196};
1197
1198static const short int yycheck[] =
1199{
Reid Spencere77e35e2006-12-01 20:26:20 +00001200 38, 128, 128, 111, 51, 228, 182, 183, 123, 129,
1201 3, 126, 61, 51, 80, 15, 16, 17, 18, 19,
1202 20, 21, 22, 199, 20, 20, 0, 15, 16, 17,
1203 18, 19, 20, 21, 22, 269, 270, 152, 29, 37,
1204 155, 113, 33, 32, 159, 160, 161, 162, 163, 169,
1205 43, 123, 167, 113, 120, 14, 115, 121, 27, 57,
1206 124, 57, 57, 123, 298, 124, 25, 52, 53, 54,
1207 108, 109, 110, 42, 43, 44, 45, 46, 47, 48,
1208 482, 50, 29, 5, 6, 123, 71, 465, 126, 82,
1209 492, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1210 22, 23, 24, 25, 26, 483, 28, 112, 30, 53,
1211 54, 55, 150, 151, 152, 153, 154, 155, 40, 119,
1212 61, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1213 245, 119, 123, 122, 200, 201, 202, 113, 113, 35,
1214 36, 27, 28, 30, 30, 121, 121, 119, 34, 35,
1215 36, 45, 124, 47, 112, 331, 42, 43, 44, 45,
1216 46, 47, 48, 113, 50, 51, 204, 113, 28, 119,
1217 30, 4, 58, 119, 55, 56, 62, 8, 9, 226,
1218 99, 100, 3, 4, 112, 408, 112, 410, 226, 3,
1219 4, 112, 114, 3, 4, 117, 243, 112, 120, 314,
1220 122, 316, 317, 318, 117, 243, 244, 245, 323, 115,
1221 0, 15, 16, 17, 18, 19, 20, 21, 22, 3,
1222 4, 287, 3, 4, 332, 333, 334, 335, 336, 337,
1223 4, 4, 198, 4, 30, 115, 4, 345, 346, 347,
1224 348, 31, 208, 30, 34, 30, 118, 213, 214, 118,
1225 115, 59, 42, 43, 44, 45, 46, 47, 48, 225,
1226 113, 4, 4, 4, 230, 64, 65, 66, 67, 68,
1227 69, 70, 62, 239, 240, 241, 314, 315, 316, 317,
1228 318, 319, 4, 391, 7, 323, 7, 4, 7, 113,
1229 283, 116, 39, 113, 113, 30, 113, 113, 113, 117,
1230 415, 416, 417, 115, 113, 30, 113, 113, 113, 63,
1231 30, 4, 115, 115, 115, 353, 424, 425, 426, 427,
1232 115, 115, 430, 431, 432, 433, 115, 365, 116, 444,
1233 37, 117, 115, 115, 113, 115, 113, 113, 465, 465,
1234 306, 113, 30, 381, 113, 25, 312, 113, 113, 113,
1235 25, 4, 115, 113, 113, 113, 483, 483, 324, 325,
1236 113, 113, 39, 471, 115, 473, 474, 113, 113, 407,
1237 57, 4, 116, 113, 113, 113, 113, 415, 416, 417,
1238 113, 113, 113, 421, 113, 113, 30, 113, 57, 116,
1239 428, 213, 214, 117, 25, 25, 362, 39, 364, 113,
1240 116, 119, 368, 225, 116, 113, 444, 113, 230, 375,
1241 376, 377, 116, 5, 6, 116, 116, 239, 240, 241,
1242 116, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1243 22, 23, 24, 25, 26, 116, 28, 119, 30, 405,
1244 406, 25, 116, 116, 116, 113, 113, 413, 76, 25,
1245 25, 5, 6, 96, 43, 96, 422, 96, 96, 13,
1246 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1247 24, 25, 26, 24, 28, 354, 30, 50, 353, 29,
1248 446, 3, 41, 120, 306, 198, 40, 365, 421, -1,
1249 312, -1, 385, -1, -1, -1, -1, -1, -1, -1,
1250 -1, -1, 324, 325, -1, -1, -1, -1, -1, -1,
1251 -1, -1, -1, -1, 480, -1, -1, -1, -1, -1,
1252 -1, -1, 114, -1, -1, 117, -1, 493, 120, -1,
1253 122, 123, -1, -1, 500, -1, -1, -1, 504, 505,
1254 362, -1, 364, -1, -1, -1, 368, -1, -1, -1,
1255 -1, -1, -1, 375, 376, 377, -1, -1, -1, -1,
1256 114, -1, -1, 117, 5, 6, 120, -1, 122, 10,
1257 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
1258 -1, -1, -1, 405, 406, -1, -1, 28, -1, 30,
1259 -1, 413, -1, 5, 6, -1, -1, -1, -1, -1,
1260 422, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1261 22, 23, 24, 25, 26, -1, 28, -1, 30, -1,
1262 -1, -1, -1, -1, 446, -1, -1, -1, -1, -1,
1263 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
1264 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1265 91, 92, 93, 94, 95, -1, -1, -1, 480, -1,
1266 101, -1, 103, 104, 105, 106, -1, 108, 109, 110,
1267 111, 493, -1, -1, -1, -1, 117, -1, 500, 120,
1268 -1, 122, 504, 505, 125, -1, -1, 3, 4, 5,
1269 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
1270 -1, -1, 114, -1, -1, 117, -1, -1, 120, -1,
1271 122, 123, 28, -1, 30, -1, -1, -1, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001273 -1, -1, -1, 3, 4, -1, -1, 7, 8, 9,
1274 10, 11, 12, -1, -1, 61, -1, -1, -1, -1,
1275 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1276 -1, -1, 78, 79, 80, 81, 82, 83, 84, 85,
1277 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1278 -1, -1, -1, -1, -1, 101, -1, 103, 104, 105,
1279 106, 61, 108, 109, 110, 111, -1, -1, -1, -1,
1280 -1, -1, -1, -1, 120, -1, -1, -1, 78, 79,
Reid Spencere7c3c602006-11-30 06:36:44 +00001281 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1282 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001283 -1, 101, -1, 103, 104, 105, 106, -1, 108, 109,
1284 110, 111, -1, 5, 6, -1, -1, -1, -1, -1,
1285 120, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1286 22, 23, 24, 25, 26, -1, 28, -1, 30, 5,
1287 6, -1, -1, -1, -1, -1, -1, 13, 14, 15,
1288 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1289 26, -1, 28, -1, 30, -1, -1, 5, 6, -1,
1290 -1, -1, -1, -1, 40, 13, 14, 15, 16, 17,
1291 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1292 28, -1, 30, -1, -1, 5, 6, -1, -1, -1,
1293 -1, -1, 40, 13, 14, 15, 16, 17, 18, 19,
1294 20, 21, 22, 23, 24, 25, 26, -1, 28, -1,
1295 30, -1, 114, -1, -1, 117, -1, 119, 120, -1,
1296 122, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1297 -1, -1, -1, -1, -1, -1, -1, -1, 114, 5,
1298 6, 117, -1, -1, 120, -1, 122, 13, 14, 15,
1299 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1300 26, -1, 28, -1, 30, -1, 114, 5, 6, 117,
1301 -1, -1, 120, -1, 122, 13, 14, 15, 16, 17,
1302 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1303 28, -1, 30, -1, 114, 5, 6, 117, -1, -1,
1304 120, -1, 122, 13, 14, 15, 16, 17, 18, 19,
1305 20, 21, 22, 23, 24, 25, 26, -1, 28, -1,
1306 30, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001308 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1,
1309 -1, 117, -1, -1, 120, -1, 122, -1, -1, -1,
Reid Spencere7c3c602006-11-30 06:36:44 +00001310 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Reid Spencere77e35e2006-12-01 20:26:20 +00001311 -1, -1, -1, -1, -1, -1, 114, -1, -1, 117,
1312 38, -1, 120, -1, 122, -1, -1, -1, -1, -1,
1313 -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
1314 -1, 59, 60, -1, 114, -1, -1, 117, -1, -1,
1315 120, -1, 122, -1, 72, 73, 74, 75, 76, 77,
1316 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1317 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1318 98, -1, -1, 101, 102, 103, 104, 105, 106, 107,
1319 108, 109, 110, 111
Reid Spencere7c3c602006-11-30 06:36:44 +00001320};
1321
1322/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1323 symbol of state STATE-NUM. */
1324static const unsigned char yystos[] =
1325{
Reid Spencere77e35e2006-12-01 20:26:20 +00001326 0, 157, 158, 159, 0, 31, 34, 42, 43, 44,
1327 45, 46, 47, 48, 62, 138, 172, 174, 176, 28,
1328 30, 51, 58, 62, 137, 165, 176, 45, 47, 175,
1329 61, 64, 65, 66, 67, 68, 69, 70, 139, 170,
1330 29, 182, 183, 184, 52, 53, 54, 71, 162, 112,
1331 61, 27, 45, 47, 50, 138, 112, 170, 30, 160,
1332 4, 5, 6, 13, 14, 15, 16, 17, 18, 19,
1333 20, 21, 22, 23, 24, 25, 26, 114, 117, 120,
1334 122, 127, 146, 147, 148, 149, 150, 165, 179, 32,
1335 122, 171, 33, 123, 173, 183, 137, 187, 112, 112,
1336 112, 112, 117, 163, 160, 146, 35, 36, 156, 156,
1337 156, 156, 4, 4, 4, 13, 123, 150, 151, 165,
1338 115, 124, 38, 49, 59, 60, 72, 73, 74, 75,
1339 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1340 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1341 96, 97, 98, 101, 102, 103, 104, 105, 106, 107,
1342 108, 109, 110, 111, 129, 130, 131, 132, 185, 191,
1343 192, 194, 195, 30, 55, 56, 161, 4, 30, 30,
1344 164, 148, 148, 148, 14, 15, 16, 17, 18, 19,
1345 20, 21, 22, 23, 24, 133, 134, 136, 148, 153,
1346 118, 118, 113, 123, 115, 40, 151, 152, 148, 181,
1347 59, 13, 181, 14, 25, 15, 16, 17, 18, 19,
1348 20, 21, 22, 133, 134, 135, 139, 148, 148, 181,
1349 148, 148, 188, 181, 181, 181, 181, 181, 181, 148,
1350 148, 148, 181, 139, 99, 100, 113, 119, 113, 144,
1351 144, 144, 8, 9, 3, 4, 128, 4, 7, 10,
1352 11, 12, 101, 103, 108, 109, 110, 111, 117, 120,
1353 122, 125, 129, 130, 131, 132, 154, 179, 144, 150,
1354 150, 150, 40, 148, 167, 168, 169, 113, 116, 3,
1355 4, 7, 8, 9, 10, 11, 12, 61, 120, 154,
1356 178, 179, 180, 180, 180, 180, 146, 113, 141, 113,
1357 141, 180, 117, 113, 113, 113, 113, 113, 113, 39,
1358 180, 180, 180, 113, 146, 148, 181, 30, 37, 57,
1359 142, 145, 115, 115, 115, 115, 115, 115, 119, 153,
1360 155, 155, 123, 155, 30, 115, 115, 115, 115, 119,
1361 121, 165, 166, 113, 116, 40, 63, 177, 155, 113,
1362 113, 180, 20, 57, 20, 113, 193, 180, 117, 181,
1363 148, 181, 181, 181, 148, 113, 113, 113, 181, 180,
1364 180, 113, 30, 4, 144, 153, 153, 153, 153, 153,
1365 153, 113, 119, 121, 123, 153, 153, 153, 153, 40,
1366 167, 142, 143, 30, 121, 25, 25, 115, 180, 4,
1367 180, 181, 189, 113, 180, 113, 113, 113, 180, 180,
1368 180, 115, 148, 193, 113, 113, 113, 113, 39, 153,
1369 113, 113, 113, 113, 57, 140, 113, 180, 180, 189,
1370 190, 113, 141, 141, 113, 180, 113, 181, 181, 181,
1371 190, 180, 116, 153, 153, 153, 153, 148, 153, 153,
1372 153, 153, 4, 30, 113, 117, 116, 181, 119, 180,
1373 116, 113, 116, 113, 113, 116, 116, 116, 116, 116,
1374 25, 119, 135, 186, 39, 119, 153, 153, 153, 180,
1375 178, 119, 135, 25, 116, 116, 116, 113, 178, 180,
1376 25, 113, 76, 180, 25, 25, 180, 180
Reid Spencere7c3c602006-11-30 06:36:44 +00001377};
1378
1379#define yyerrok (yyerrstatus = 0)
1380#define yyclearin (yychar = YYEMPTY)
1381#define YYEMPTY (-2)
1382#define YYEOF 0
1383
1384#define YYACCEPT goto yyacceptlab
1385#define YYABORT goto yyabortlab
1386#define YYERROR goto yyerrorlab
1387
1388
1389/* Like YYERROR except do call yyerror. This remains here temporarily
1390 to ease the transition to the new meaning of YYERROR, for GCC.
1391 Once GCC version 2 has supplanted version 1, this can go. */
1392
1393#define YYFAIL goto yyerrlab
1394
1395#define YYRECOVERING() (!!yyerrstatus)
1396
1397#define YYBACKUP(Token, Value) \
1398do \
1399 if (yychar == YYEMPTY && yylen == 1) \
1400 { \
1401 yychar = (Token); \
1402 yylval = (Value); \
1403 yytoken = YYTRANSLATE (yychar); \
1404 YYPOPSTACK; \
1405 goto yybackup; \
1406 } \
1407 else \
1408 { \
1409 yyerror (YY_("syntax error: cannot back up")); \
1410 YYERROR; \
1411 } \
1412while (0)
1413
1414
1415#define YYTERROR 1
1416#define YYERRCODE 256
1417
1418
1419/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1420 If N is 0, then set CURRENT to the empty location which ends
1421 the previous symbol: RHS[0] (always defined). */
1422
1423#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1424#ifndef YYLLOC_DEFAULT
1425# define YYLLOC_DEFAULT(Current, Rhs, N) \
1426 do \
1427 if (N) \
1428 { \
1429 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1430 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1431 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1432 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1433 } \
1434 else \
1435 { \
1436 (Current).first_line = (Current).last_line = \
1437 YYRHSLOC (Rhs, 0).last_line; \
1438 (Current).first_column = (Current).last_column = \
1439 YYRHSLOC (Rhs, 0).last_column; \
1440 } \
1441 while (0)
1442#endif
1443
1444
1445/* YY_LOCATION_PRINT -- Print the location on the stream.
1446 This macro was not mandated originally: define only if we know
1447 we won't break user code: when these are the locations we know. */
1448
1449#ifndef YY_LOCATION_PRINT
1450# if YYLTYPE_IS_TRIVIAL
1451# define YY_LOCATION_PRINT(File, Loc) \
1452 fprintf (File, "%d.%d-%d.%d", \
1453 (Loc).first_line, (Loc).first_column, \
1454 (Loc).last_line, (Loc).last_column)
1455# else
1456# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1457# endif
1458#endif
1459
1460
1461/* YYLEX -- calling `yylex' with the right arguments. */
1462
1463#ifdef YYLEX_PARAM
1464# define YYLEX yylex (YYLEX_PARAM)
1465#else
1466# define YYLEX yylex ()
1467#endif
1468
1469/* Enable debugging if requested. */
1470#if YYDEBUG
1471
1472# ifndef YYFPRINTF
1473# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1474# define YYFPRINTF fprintf
1475# endif
1476
1477# define YYDPRINTF(Args) \
1478do { \
1479 if (yydebug) \
1480 YYFPRINTF Args; \
1481} while (0)
1482
1483# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1484do { \
1485 if (yydebug) \
1486 { \
1487 YYFPRINTF (stderr, "%s ", Title); \
1488 yysymprint (stderr, \
1489 Type, Value); \
1490 YYFPRINTF (stderr, "\n"); \
1491 } \
1492} while (0)
1493
1494/*------------------------------------------------------------------.
1495| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1496| TOP (included). |
1497`------------------------------------------------------------------*/
1498
1499#if defined (__STDC__) || defined (__cplusplus)
1500static void
1501yy_stack_print (short int *bottom, short int *top)
1502#else
1503static void
1504yy_stack_print (bottom, top)
1505 short int *bottom;
1506 short int *top;
1507#endif
1508{
1509 YYFPRINTF (stderr, "Stack now");
1510 for (/* Nothing. */; bottom <= top; ++bottom)
1511 YYFPRINTF (stderr, " %d", *bottom);
1512 YYFPRINTF (stderr, "\n");
1513}
1514
1515# define YY_STACK_PRINT(Bottom, Top) \
1516do { \
1517 if (yydebug) \
1518 yy_stack_print ((Bottom), (Top)); \
1519} while (0)
1520
1521
1522/*------------------------------------------------.
1523| Report that the YYRULE is going to be reduced. |
1524`------------------------------------------------*/
1525
1526#if defined (__STDC__) || defined (__cplusplus)
1527static void
1528yy_reduce_print (int yyrule)
1529#else
1530static void
1531yy_reduce_print (yyrule)
1532 int yyrule;
1533#endif
1534{
1535 int yyi;
1536 unsigned long int yylno = yyrline[yyrule];
1537 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1538 yyrule - 1, yylno);
1539 /* Print the symbols being reduced, and their result. */
1540 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1541 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1542 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1543}
1544
1545# define YY_REDUCE_PRINT(Rule) \
1546do { \
1547 if (yydebug) \
1548 yy_reduce_print (Rule); \
1549} while (0)
1550
1551/* Nonzero means print parse trace. It is left uninitialized so that
1552 multiple parsers can coexist. */
1553int yydebug;
1554#else /* !YYDEBUG */
1555# define YYDPRINTF(Args)
1556# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1557# define YY_STACK_PRINT(Bottom, Top)
1558# define YY_REDUCE_PRINT(Rule)
1559#endif /* !YYDEBUG */
1560
1561
1562/* YYINITDEPTH -- initial size of the parser's stacks. */
1563#ifndef YYINITDEPTH
1564# define YYINITDEPTH 200
1565#endif
1566
1567/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1568 if the built-in stack extension method is used).
1569
1570 Do not make this value too large; the results are undefined if
1571 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1572 evaluated with infinite-precision integer arithmetic. */
1573
1574#ifndef YYMAXDEPTH
1575# define YYMAXDEPTH 10000
1576#endif
1577
1578
1579
1580#if YYERROR_VERBOSE
1581
1582# ifndef yystrlen
1583# if defined (__GLIBC__) && defined (_STRING_H)
1584# define yystrlen strlen
1585# else
1586/* Return the length of YYSTR. */
1587static YYSIZE_T
1588# if defined (__STDC__) || defined (__cplusplus)
1589yystrlen (const char *yystr)
1590# else
1591yystrlen (yystr)
1592 const char *yystr;
1593# endif
1594{
1595 const char *yys = yystr;
1596
1597 while (*yys++ != '\0')
1598 continue;
1599
1600 return yys - yystr - 1;
1601}
1602# endif
1603# endif
1604
1605# ifndef yystpcpy
1606# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1607# define yystpcpy stpcpy
1608# else
1609/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1610 YYDEST. */
1611static char *
1612# if defined (__STDC__) || defined (__cplusplus)
1613yystpcpy (char *yydest, const char *yysrc)
1614# else
1615yystpcpy (yydest, yysrc)
1616 char *yydest;
1617 const char *yysrc;
1618# endif
1619{
1620 char *yyd = yydest;
1621 const char *yys = yysrc;
1622
1623 while ((*yyd++ = *yys++) != '\0')
1624 continue;
1625
1626 return yyd - 1;
1627}
1628# endif
1629# endif
1630
1631# ifndef yytnamerr
1632/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1633 quotes and backslashes, so that it's suitable for yyerror. The
1634 heuristic is that double-quoting is unnecessary unless the string
1635 contains an apostrophe, a comma, or backslash (other than
1636 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1637 null, do not copy; instead, return the length of what the result
1638 would have been. */
1639static YYSIZE_T
1640yytnamerr (char *yyres, const char *yystr)
1641{
1642 if (*yystr == '"')
1643 {
1644 size_t yyn = 0;
1645 char const *yyp = yystr;
1646
1647 for (;;)
1648 switch (*++yyp)
1649 {
1650 case '\'':
1651 case ',':
1652 goto do_not_strip_quotes;
1653
1654 case '\\':
1655 if (*++yyp != '\\')
1656 goto do_not_strip_quotes;
1657 /* Fall through. */
1658 default:
1659 if (yyres)
1660 yyres[yyn] = *yyp;
1661 yyn++;
1662 break;
1663
1664 case '"':
1665 if (yyres)
1666 yyres[yyn] = '\0';
1667 return yyn;
1668 }
1669 do_not_strip_quotes: ;
1670 }
1671
1672 if (! yyres)
1673 return yystrlen (yystr);
1674
1675 return yystpcpy (yyres, yystr) - yyres;
1676}
1677# endif
1678
1679#endif /* YYERROR_VERBOSE */
1680
1681
1682
1683#if YYDEBUG
1684/*--------------------------------.
1685| Print this symbol on YYOUTPUT. |
1686`--------------------------------*/
1687
1688#if defined (__STDC__) || defined (__cplusplus)
1689static void
1690yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1691#else
1692static void
1693yysymprint (yyoutput, yytype, yyvaluep)
1694 FILE *yyoutput;
1695 int yytype;
1696 YYSTYPE *yyvaluep;
1697#endif
1698{
1699 /* Pacify ``unused variable'' warnings. */
1700 (void) yyvaluep;
1701
1702 if (yytype < YYNTOKENS)
1703 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1704 else
1705 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1706
1707
1708# ifdef YYPRINT
1709 if (yytype < YYNTOKENS)
1710 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1711# endif
1712 switch (yytype)
1713 {
1714 default:
1715 break;
1716 }
1717 YYFPRINTF (yyoutput, ")");
1718}
1719
1720#endif /* ! YYDEBUG */
1721/*-----------------------------------------------.
1722| Release the memory associated to this symbol. |
1723`-----------------------------------------------*/
1724
1725#if defined (__STDC__) || defined (__cplusplus)
1726static void
1727yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1728#else
1729static void
1730yydestruct (yymsg, yytype, yyvaluep)
1731 const char *yymsg;
1732 int yytype;
1733 YYSTYPE *yyvaluep;
1734#endif
1735{
1736 /* Pacify ``unused variable'' warnings. */
1737 (void) yyvaluep;
1738
1739 if (!yymsg)
1740 yymsg = "Deleting";
1741 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1742
1743 switch (yytype)
1744 {
1745
1746 default:
1747 break;
1748 }
1749}
1750
1751
1752/* Prevent warnings from -Wmissing-prototypes. */
1753
1754#ifdef YYPARSE_PARAM
1755# if defined (__STDC__) || defined (__cplusplus)
1756int yyparse (void *YYPARSE_PARAM);
1757# else
1758int yyparse ();
1759# endif
1760#else /* ! YYPARSE_PARAM */
1761#if defined (__STDC__) || defined (__cplusplus)
1762int yyparse (void);
1763#else
1764int yyparse ();
1765#endif
1766#endif /* ! YYPARSE_PARAM */
1767
1768
1769
1770/* The look-ahead symbol. */
1771int yychar;
1772
1773/* The semantic value of the look-ahead symbol. */
1774YYSTYPE yylval;
1775
1776/* Number of syntax errors so far. */
1777int yynerrs;
1778
1779
1780
1781/*----------.
1782| yyparse. |
1783`----------*/
1784
1785#ifdef YYPARSE_PARAM
1786# if defined (__STDC__) || defined (__cplusplus)
1787int yyparse (void *YYPARSE_PARAM)
1788# else
1789int yyparse (YYPARSE_PARAM)
1790 void *YYPARSE_PARAM;
1791# endif
1792#else /* ! YYPARSE_PARAM */
1793#if defined (__STDC__) || defined (__cplusplus)
1794int
1795yyparse (void)
1796#else
1797int
1798yyparse ()
1799
1800#endif
1801#endif
1802{
1803
1804 int yystate;
1805 int yyn;
1806 int yyresult;
1807 /* Number of tokens to shift before error messages enabled. */
1808 int yyerrstatus;
1809 /* Look-ahead token as an internal (translated) token number. */
1810 int yytoken = 0;
1811
1812 /* Three stacks and their tools:
1813 `yyss': related to states,
1814 `yyvs': related to semantic values,
1815 `yyls': related to locations.
1816
1817 Refer to the stacks thru separate pointers, to allow yyoverflow
1818 to reallocate them elsewhere. */
1819
1820 /* The state stack. */
1821 short int yyssa[YYINITDEPTH];
1822 short int *yyss = yyssa;
1823 short int *yyssp;
1824
1825 /* The semantic value stack. */
1826 YYSTYPE yyvsa[YYINITDEPTH];
1827 YYSTYPE *yyvs = yyvsa;
1828 YYSTYPE *yyvsp;
1829
1830
1831
1832#define YYPOPSTACK (yyvsp--, yyssp--)
1833
1834 YYSIZE_T yystacksize = YYINITDEPTH;
1835
1836 /* The variables used to return semantic value and location from the
1837 action routines. */
1838 YYSTYPE yyval;
1839
1840
1841 /* When reducing, the number of symbols on the RHS of the reduced
1842 rule. */
1843 int yylen;
1844
1845 YYDPRINTF ((stderr, "Starting parse\n"));
1846
1847 yystate = 0;
1848 yyerrstatus = 0;
1849 yynerrs = 0;
1850 yychar = YYEMPTY; /* Cause a token to be read. */
1851
1852 /* Initialize stack pointers.
1853 Waste one element of value and location stack
1854 so that they stay on the same level as the state stack.
1855 The wasted elements are never initialized. */
1856
1857 yyssp = yyss;
1858 yyvsp = yyvs;
1859
1860 goto yysetstate;
1861
1862/*------------------------------------------------------------.
1863| yynewstate -- Push a new state, which is found in yystate. |
1864`------------------------------------------------------------*/
1865 yynewstate:
1866 /* In all cases, when you get here, the value and location stacks
1867 have just been pushed. so pushing a state here evens the stacks.
1868 */
1869 yyssp++;
1870
1871 yysetstate:
1872 *yyssp = yystate;
1873
1874 if (yyss + yystacksize - 1 <= yyssp)
1875 {
1876 /* Get the current used size of the three stacks, in elements. */
1877 YYSIZE_T yysize = yyssp - yyss + 1;
1878
1879#ifdef yyoverflow
1880 {
1881 /* Give user a chance to reallocate the stack. Use copies of
1882 these so that the &'s don't force the real ones into
1883 memory. */
1884 YYSTYPE *yyvs1 = yyvs;
1885 short int *yyss1 = yyss;
1886
1887
1888 /* Each stack pointer address is followed by the size of the
1889 data in use in that stack, in bytes. This used to be a
1890 conditional around just the two extra args, but that might
1891 be undefined if yyoverflow is a macro. */
1892 yyoverflow (YY_("memory exhausted"),
1893 &yyss1, yysize * sizeof (*yyssp),
1894 &yyvs1, yysize * sizeof (*yyvsp),
1895
1896 &yystacksize);
1897
1898 yyss = yyss1;
1899 yyvs = yyvs1;
1900 }
1901#else /* no yyoverflow */
1902# ifndef YYSTACK_RELOCATE
1903 goto yyexhaustedlab;
1904# else
1905 /* Extend the stack our own way. */
1906 if (YYMAXDEPTH <= yystacksize)
1907 goto yyexhaustedlab;
1908 yystacksize *= 2;
1909 if (YYMAXDEPTH < yystacksize)
1910 yystacksize = YYMAXDEPTH;
1911
1912 {
1913 short int *yyss1 = yyss;
1914 union yyalloc *yyptr =
1915 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1916 if (! yyptr)
1917 goto yyexhaustedlab;
1918 YYSTACK_RELOCATE (yyss);
1919 YYSTACK_RELOCATE (yyvs);
1920
1921# undef YYSTACK_RELOCATE
1922 if (yyss1 != yyssa)
1923 YYSTACK_FREE (yyss1);
1924 }
1925# endif
1926#endif /* no yyoverflow */
1927
1928 yyssp = yyss + yysize - 1;
1929 yyvsp = yyvs + yysize - 1;
1930
1931
1932 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1933 (unsigned long int) yystacksize));
1934
1935 if (yyss + yystacksize - 1 <= yyssp)
1936 YYABORT;
1937 }
1938
1939 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1940
1941 goto yybackup;
1942
1943/*-----------.
1944| yybackup. |
1945`-----------*/
1946yybackup:
1947
1948/* Do appropriate processing given the current state. */
1949/* Read a look-ahead token if we need one and don't already have one. */
1950/* yyresume: */
1951
1952 /* First try to decide what to do without reference to look-ahead token. */
1953
1954 yyn = yypact[yystate];
1955 if (yyn == YYPACT_NINF)
1956 goto yydefault;
1957
1958 /* Not known => get a look-ahead token if don't already have one. */
1959
1960 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1961 if (yychar == YYEMPTY)
1962 {
1963 YYDPRINTF ((stderr, "Reading a token: "));
1964 yychar = YYLEX;
1965 }
1966
1967 if (yychar <= YYEOF)
1968 {
1969 yychar = yytoken = YYEOF;
1970 YYDPRINTF ((stderr, "Now at end of input.\n"));
1971 }
1972 else
1973 {
1974 yytoken = YYTRANSLATE (yychar);
1975 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1976 }
1977
1978 /* If the proper action on seeing token YYTOKEN is to reduce or to
1979 detect an error, take that action. */
1980 yyn += yytoken;
1981 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1982 goto yydefault;
1983 yyn = yytable[yyn];
1984 if (yyn <= 0)
1985 {
1986 if (yyn == 0 || yyn == YYTABLE_NINF)
1987 goto yyerrlab;
1988 yyn = -yyn;
1989 goto yyreduce;
1990 }
1991
1992 if (yyn == YYFINAL)
1993 YYACCEPT;
1994
1995 /* Shift the look-ahead token. */
1996 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1997
1998 /* Discard the token being shifted unless it is eof. */
1999 if (yychar != YYEOF)
2000 yychar = YYEMPTY;
2001
2002 *++yyvsp = yylval;
2003
2004
2005 /* Count tokens shifted since error; after three, turn off error
2006 status. */
2007 if (yyerrstatus)
2008 yyerrstatus--;
2009
2010 yystate = yyn;
2011 goto yynewstate;
2012
2013
2014/*-----------------------------------------------------------.
2015| yydefault -- do the default action for the current state. |
2016`-----------------------------------------------------------*/
2017yydefault:
2018 yyn = yydefact[yystate];
2019 if (yyn == 0)
2020 goto yyerrlab;
2021 goto yyreduce;
2022
2023
2024/*-----------------------------.
2025| yyreduce -- Do a reduction. |
2026`-----------------------------*/
2027yyreduce:
2028 /* yyn is the number of a rule to reduce with. */
2029 yylen = yyr2[yyn];
2030
2031 /* If YYLEN is nonzero, implement the default value of the action:
2032 `$$ = $1'.
2033
2034 Otherwise, the following line sets YYVAL to garbage.
2035 This behavior is undocumented and Bison
2036 users should not rely upon it. Assigning to YYVAL
2037 unconditionally makes the parser a bit smaller, and it avoids a
2038 GCC warning that YYVAL may be used uninitialized. */
2039 yyval = yyvsp[1-yylen];
2040
2041
2042 YY_REDUCE_PRINT (yyn);
2043 switch (yyn)
2044 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002045 case 39:
2046#line 207 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002047 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002048 *(yyvsp[-1].String) += " = ";
2049 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002050 ;}
2051 break;
2052
Reid Spencere77e35e2006-12-01 20:26:20 +00002053 case 40:
2054#line 211 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002055 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002056 (yyval.String) = new std::string("");
Reid Spencere7c3c602006-11-30 06:36:44 +00002057 ;}
2058 break;
2059
Reid Spencere77e35e2006-12-01 20:26:20 +00002060 case 48:
2061#line 218 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2062 { (yyval.String) = new std::string(""); ;}
2063 break;
2064
2065 case 56:
2066#line 223 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2067 { (yyval.String) = new std::string(""); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002068 break;
2069
2070 case 57:
Reid Spencere77e35e2006-12-01 20:26:20 +00002071#line 228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2072 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002073 break;
2074
2075 case 58:
Reid Spencere77e35e2006-12-01 20:26:20 +00002076#line 229 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2077 { *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst; delete (yyvsp[0].Const).cnst; (yyval.String) = (yyvsp[-1].String); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002078 break;
2079
2080 case 59:
Reid Spencere77e35e2006-12-01 20:26:20 +00002081#line 232 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2082 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002083 break;
2084
2085 case 60:
Reid Spencere77e35e2006-12-01 20:26:20 +00002086#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2087 {
2088 (yyvsp[-1].String)->insert(0, ", ");
2089 *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2090 delete (yyvsp[0].Const).cnst;
2091 (yyval.String) = (yyvsp[-1].String);
2092 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002093 break;
2094
2095 case 61:
Reid Spencere77e35e2006-12-01 20:26:20 +00002096#line 241 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002097 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002098 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2099 delete (yyvsp[0].String);
2100 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002101 ;}
2102 break;
2103
2104 case 62:
Reid Spencere77e35e2006-12-01 20:26:20 +00002105#line 247 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2106 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002107 break;
2108
Reid Spencere77e35e2006-12-01 20:26:20 +00002109 case 64:
2110#line 251 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2111 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002112 break;
2113
2114 case 65:
Reid Spencere77e35e2006-12-01 20:26:20 +00002115#line 252 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002116 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002117 (yyvsp[-1].String)->insert(0, ", ");
2118 if (!(yyvsp[0].String)->empty())
2119 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
2120 delete (yyvsp[0].String);
2121 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002122 ;}
2123 break;
2124
Reid Spencere77e35e2006-12-01 20:26:20 +00002125 case 67:
2126#line 262 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002127 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002128 *(yyvsp[-1].String) += " " + *(yyvsp[0].Const).cnst;
2129 delete (yyvsp[0].Const).cnst;
2130 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002131 ;}
2132 break;
2133
Reid Spencere77e35e2006-12-01 20:26:20 +00002134 case 87:
2135#line 283 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2136 {
2137 (yyval.Type).newTy = (yyvsp[0].String); ;}
2138 break;
2139
2140 case 88:
2141#line 288 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2142 { // Type UpReference
2143 (yyvsp[0].Const).cnst->insert(0, "\\");
2144 (yyval.Type).newTy = (yyvsp[0].Const).cnst;
2145 (yyval.Type).oldTy = OpaqueTy;
2146 ;}
2147 break;
2148
2149 case 89:
2150#line 293 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2151 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002160#line 299 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2161 { // Sized array type?
2162 (yyvsp[-3].Const).cnst->insert(0,"[ ");
2163 *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " ]";
2164 delete (yyvsp[-1].Type).newTy;
2165 (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2166 (yyval.Type).oldTy = ArrayTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002167 ;}
2168 break;
2169
2170 case 91:
Reid Spencere77e35e2006-12-01 20:26:20 +00002171#line 306 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2172 { // Packed array type?
2173 (yyvsp[-3].Const).cnst->insert(0,"< ");
2174 *(yyvsp[-3].Const).cnst += " x " + *(yyvsp[-1].Type).newTy + " >";
2175 delete (yyvsp[-1].Type).newTy;
2176 (yyval.Type).newTy = (yyvsp[-3].Const).cnst;
2177 (yyval.Type).oldTy = PackedTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002178 ;}
2179 break;
2180
2181 case 92:
Reid Spencere77e35e2006-12-01 20:26:20 +00002182#line 313 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2183 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002192#line 319 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2193 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002200#line 323 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2201 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002209#line 333 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2210 {
2211 (yyval.String) = (yyvsp[0].Type).newTy;
Reid Spencere7c3c602006-11-30 06:36:44 +00002212 ;}
2213 break;
2214
2215 case 96:
Reid Spencere77e35e2006-12-01 20:26:20 +00002216#line 336 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2217 {
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 Spencere77e35e2006-12-01 20:26:20 +00002225#line 345 "/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:
2234#line 350 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2235 {
2236 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002237 ;}
2238 break;
2239
2240 case 100:
Reid Spencere77e35e2006-12-01 20:26:20 +00002241#line 353 "/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 Spencere77e35e2006-12-01 20:26:20 +00002248#line 363 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2249 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002258#line 369 "/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 Spencere77e35e2006-12-01 20:26:20 +00002267#line 374 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2268 {
2269 (yyval.Const).type = (yyvsp[-2].Type);
2270 (yyval.Const).cnst = new std::string(*(yyvsp[-2].Type).newTy);
2271 *(yyval.Const).cnst += " c" + *(yyvsp[0].String);
2272 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002273 ;}
2274 break;
2275
2276 case 104:
Reid Spencere77e35e2006-12-01 20:26:20 +00002277#line 380 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2278 { // 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 Spencere77e35e2006-12-01 20:26:20 +00002287#line 386 "/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 Spencere77e35e2006-12-01 20:26:20 +00002297#line 392 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2298 {
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 Spencere77e35e2006-12-01 20:26:20 +00002306#line 397 "/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);
2310 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2311 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002312 ;}
2313 break;
2314
2315 case 108:
Reid Spencere77e35e2006-12-01 20:26:20 +00002316#line 403 "/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);
2320 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2321 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002322 ;}
2323 break;
2324
2325 case 109:
Reid Spencere77e35e2006-12-01 20:26:20 +00002326#line 409 "/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 Spencere77e35e2006-12-01 20:26:20 +00002336#line 415 "/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 Spencere77e35e2006-12-01 20:26:20 +00002346#line 421 "/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);
2350 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2351 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002352 ;}
2353 break;
2354
2355 case 112:
Reid Spencere77e35e2006-12-01 20:26:20 +00002356#line 427 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2357 { // integral constants
2358 (yyval.Const).type = (yyvsp[-1].Type);
2359 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2360 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2361 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002362 ;}
2363 break;
2364
2365 case 113:
Reid Spencere77e35e2006-12-01 20:26:20 +00002366#line 433 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2367 { // integral constants
2368 (yyval.Const).type = (yyvsp[-1].Type);
2369 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2370 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2371 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002372 ;}
2373 break;
2374
2375 case 114:
Reid Spencere77e35e2006-12-01 20:26:20 +00002376#line 439 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2377 { // Boolean constants
2378 (yyval.Const).type = (yyvsp[-1].Type);
2379 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2380 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2381 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002382 ;}
2383 break;
2384
2385 case 115:
Reid Spencere77e35e2006-12-01 20:26:20 +00002386#line 445 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2387 { // Boolean constants
2388 (yyval.Const).type = (yyvsp[-1].Type);
2389 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2390 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2391 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002392 ;}
2393 break;
2394
2395 case 116:
Reid Spencere77e35e2006-12-01 20:26:20 +00002396#line 451 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2397 { // Float & Double constants
2398 (yyval.Const).type = (yyvsp[-1].Type);
2399 (yyval.Const).cnst = new std::string(*(yyvsp[-1].Type).newTy);
2400 *(yyval.Const).cnst += " " + *(yyvsp[0].Const).cnst;
2401 (yyvsp[0].Const).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00002402 ;}
2403 break;
2404
2405 case 117:
Reid Spencere77e35e2006-12-01 20:26:20 +00002406#line 459 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2407 {
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 Spencere77e35e2006-12-01 20:26:20 +00002417#line 466 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2418 {
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 Spencere77e35e2006-12-01 20:26:20 +00002427#line 472 "/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 Spencere77e35e2006-12-01 20:26:20 +00002436#line 477 "/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
2444 case 121:
Reid Spencere77e35e2006-12-01 20:26:20 +00002445#line 482 "/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
2453 case 122:
Reid Spencere77e35e2006-12-01 20:26:20 +00002454#line 487 "/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
2462 case 123:
Reid Spencere77e35e2006-12-01 20:26:20 +00002463#line 492 "/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
2471 case 124:
Reid Spencere77e35e2006-12-01 20:26:20 +00002472#line 497 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002473 {
Reid Spencere77e35e2006-12-01 20:26:20 +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
2480 case 125:
Reid Spencere77e35e2006-12-01 20:26:20 +00002481#line 502 "/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
2489 case 126:
Reid Spencere77e35e2006-12-01 20:26:20 +00002490#line 507 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002491 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002492 *(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);
Reid Spencere7c3c602006-11-30 06:36:44 +00002495 ;}
2496 break;
2497
2498 case 127:
Reid Spencere77e35e2006-12-01 20:26:20 +00002499#line 517 "/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 Spencere77e35e2006-12-01 20:26:20 +00002508#line 522 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2509 { (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 Spencere77e35e2006-12-01 20:26:20 +00002513#line 537 "/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:
2519#line 542 "/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:
2526#line 545 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2527 {
2528 *O << *(yyvsp[0].String) << "\n";
2529 delete (yyvsp[0].String);
2530 (yyval.String) = 0;
2531 ;}
2532 break;
2533
2534 case 134:
2535#line 550 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2536 {
2537 *O << "module asm " << " " << *(yyvsp[0].String) << "\n";
Reid Spencere7c3c602006-11-30 06:36:44 +00002538 ;}
2539 break;
2540
2541 case 135:
Reid Spencere77e35e2006-12-01 20:26:20 +00002542#line 553 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002543 {
2544 *O << "implementation\n";
2545 ;}
2546 break;
2547
Reid Spencere77e35e2006-12-01 20:26:20 +00002548 case 136:
2549#line 556 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002550 {
2551 ;}
2552 break;
2553
Reid Spencere77e35e2006-12-01 20:26:20 +00002554 case 137:
2555#line 560 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2556 {
2557 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2558 // delete $2; delete $3; $4.destroy();
2559 (yyval.String) = 0;
2560 ;}
2561 break;
2562
2563 case 138:
2564#line 565 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2565 { // Function prototypes can be in const pool
2566 *O << *(yyvsp[0].String) << "\n";
2567 delete (yyvsp[0].String);
2568 (yyval.String) = 0;
2569 ;}
2570 break;
2571
Reid Spencere7c3c602006-11-30 06:36:44 +00002572 case 139:
Reid Spencere77e35e2006-12-01 20:26:20 +00002573#line 570 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2574 { // Asm blocks can be in the const pool
2575 *O << *(yyvsp[-2].String) << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2576 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2577 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002578 ;}
2579 break;
2580
2581 case 140:
Reid Spencere77e35e2006-12-01 20:26:20 +00002582#line 575 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2583 {
2584 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Const).cnst << " "
2585 << *(yyvsp[0].String) << "\n";
2586 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Const).destroy(); delete (yyvsp[0].String);
2587 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002588 ;}
2589 break;
2590
2591 case 141:
Reid Spencere77e35e2006-12-01 20:26:20 +00002592#line 581 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2593 {
2594 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2595 << " " << *(yyvsp[0].String) << "\n";
2596 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2597 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002598 ;}
2599 break;
2600
2601 case 142:
Reid Spencere77e35e2006-12-01 20:26:20 +00002602#line 587 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002603 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002604 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2605 << " " << *(yyvsp[0].String) << "\n";
2606 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2607 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002608 ;}
2609 break;
2610
2611 case 143:
Reid Spencere77e35e2006-12-01 20:26:20 +00002612#line 593 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002613 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002614 *O << *(yyvsp[-4].String) << " " << *(yyvsp[-3].String) << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy
2615 << " " << *(yyvsp[0].String) << "\n";
2616 delete (yyvsp[-4].String); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
2617 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002618 ;}
2619 break;
2620
2621 case 144:
Reid Spencere77e35e2006-12-01 20:26:20 +00002622#line 599 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2623 {
2624 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2625 delete (yyvsp[-1].String); delete (yyvsp[0].String);
2626 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002627 ;}
2628 break;
2629
2630 case 145:
Reid Spencere77e35e2006-12-01 20:26:20 +00002631#line 604 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002632 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002633 *O << *(yyvsp[-2].String) << " = " << *(yyvsp[0].String) << "\n";
2634 delete (yyvsp[-2].String); delete (yyvsp[0].String);
2635 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002636 ;}
2637 break;
2638
2639 case 146:
Reid Spencere77e35e2006-12-01 20:26:20 +00002640#line 609 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002641 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002642 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002643 ;}
2644 break;
2645
Reid Spencere77e35e2006-12-01 20:26:20 +00002646 case 150:
2647#line 619 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002648 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002649 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2650 delete (yyvsp[0].String);
2651 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002652 ;}
2653 break;
2654
Reid Spencere77e35e2006-12-01 20:26:20 +00002655 case 151:
2656#line 624 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2657 {
2658 *(yyvsp[-2].String) += " = " + *(yyvsp[0].Const).cnst;
2659 if (*(yyvsp[0].Const).cnst == "64")
2660 SizeOfPointer = 64;
2661 (yyvsp[0].Const).destroy();
2662 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002663 ;}
2664 break;
2665
2666 case 152:
Reid Spencere77e35e2006-12-01 20:26:20 +00002667#line 631 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002668 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002669 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2670 delete (yyvsp[0].String);
2671 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002672 ;}
2673 break;
2674
2675 case 153:
Reid Spencere77e35e2006-12-01 20:26:20 +00002676#line 636 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002677 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002678 *(yyvsp[-2].String) += " = " + *(yyvsp[0].String);
2679 delete (yyvsp[0].String);
2680 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002681 ;}
2682 break;
2683
2684 case 154:
Reid Spencere77e35e2006-12-01 20:26:20 +00002685#line 643 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002686 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002687 (yyvsp[-1].String)->insert(0, "[ ");
2688 *(yyvsp[-1].String) += " ]";
2689 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002690 ;}
2691 break;
2692
2693 case 155:
Reid Spencere77e35e2006-12-01 20:26:20 +00002694#line 650 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002695 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002696 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2697 delete (yyvsp[0].String);
2698 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002699 ;}
2700 break;
2701
2702 case 157:
Reid Spencere77e35e2006-12-01 20:26:20 +00002703#line 656 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002704 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002705 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002706 ;}
2707 break;
2708
Reid Spencere77e35e2006-12-01 20:26:20 +00002709 case 161:
2710#line 665 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2711 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002712 break;
2713
Reid Spencere77e35e2006-12-01 20:26:20 +00002714 case 162:
2715#line 667 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002716 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002717 (yyval.String) = (yyvsp[-1].Type).newTy;
2718 if (!(yyvsp[0].String)->empty())
2719 *(yyval.String) += " " + *(yyvsp[0].String);
2720 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002721;}
2722 break;
2723
Reid Spencere77e35e2006-12-01 20:26:20 +00002724 case 163:
2725#line 674 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002726 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002727 *(yyvsp[-2].String) += ", " + *(yyvsp[0].String);
2728 delete (yyvsp[0].String);
2729 ;}
2730 break;
2731
2732 case 164:
2733#line 678 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2734 {
2735 (yyval.String) = (yyvsp[0].String);
2736 ;}
2737 break;
2738
2739 case 165:
2740#line 682 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2741 {
2742 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002743 ;}
2744 break;
2745
2746 case 166:
Reid Spencere77e35e2006-12-01 20:26:20 +00002747#line 685 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002748 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002749 *(yyvsp[-2].String) += ", ...";
2750 (yyval.String) = (yyvsp[-2].String);
2751 delete (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002752 ;}
2753 break;
2754
2755 case 167:
Reid Spencere77e35e2006-12-01 20:26:20 +00002756#line 690 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002757 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002758 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002759 ;}
2760 break;
2761
2762 case 168:
Reid Spencere77e35e2006-12-01 20:26:20 +00002763#line 693 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002764 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002765 (yyval.String) = new std::string();
Reid Spencere7c3c602006-11-30 06:36:44 +00002766 ;}
2767 break;
2768
2769 case 169:
Reid Spencere77e35e2006-12-01 20:26:20 +00002770#line 698 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002771 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002772 if (!(yyvsp[-7].String)->empty()) {
2773 *(yyvsp[-7].String) += " ";
2774 }
2775 *(yyvsp[-7].String) += *(yyvsp[-6].Type).newTy + " " + *(yyvsp[-5].String) + "(" + *(yyvsp[-3].String) + ")";
2776 if (!(yyvsp[-1].String)->empty()) {
2777 *(yyvsp[-7].String) += " " + *(yyvsp[-1].String);
2778 }
2779 if (!(yyvsp[0].String)->empty()) {
2780 *(yyvsp[-7].String) += " " + *(yyvsp[0].String);
2781 }
2782 (yyvsp[-6].Type).destroy();
2783 delete (yyvsp[-5].String);
2784 delete (yyvsp[-3].String);
2785 delete (yyvsp[-1].String);
2786 delete (yyvsp[0].String);
2787 (yyval.String) = (yyvsp[-7].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002788 ;}
2789 break;
2790
2791 case 170:
Reid Spencere77e35e2006-12-01 20:26:20 +00002792#line 717 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002793 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002794 (yyval.String) = new std::string("begin");
Reid Spencere7c3c602006-11-30 06:36:44 +00002795 ;}
2796 break;
2797
2798 case 171:
Reid Spencere77e35e2006-12-01 20:26:20 +00002799#line 720 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2800 {
2801 (yyval.String) = new std::string ("{");
Reid Spencere7c3c602006-11-30 06:36:44 +00002802 ;}
2803 break;
2804
2805 case 172:
Reid Spencere77e35e2006-12-01 20:26:20 +00002806#line 724 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002807 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002808 if (!(yyvsp[-2].String)->empty()) {
2809 *O << *(yyvsp[-2].String) << " ";
2810 }
2811 *O << *(yyvsp[-1].String) << " " << *(yyvsp[0].String) << "\n";
2812 delete (yyvsp[-2].String); delete (yyvsp[-1].String); delete (yyvsp[0].String);
2813 (yyval.String) = 0;
2814;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002815 break;
2816
2817 case 173:
Reid Spencere77e35e2006-12-01 20:26:20 +00002818#line 733 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2819 { (yyval.String) = new std::string("end"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002820 break;
2821
2822 case 174:
Reid Spencere77e35e2006-12-01 20:26:20 +00002823#line 734 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2824 { (yyval.String) = new std::string("}"); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002825 break;
2826
2827 case 175:
Reid Spencere77e35e2006-12-01 20:26:20 +00002828#line 736 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002829 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002830 if ((yyvsp[-1].String))
2831 *O << *(yyvsp[-1].String);
2832 *O << '\n' << *(yyvsp[0].String) << "\n";
2833 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002834;}
2835 break;
2836
Reid Spencere77e35e2006-12-01 20:26:20 +00002837 case 176:
2838#line 744 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2839 { (yyval.String) = new std::string(); ;}
2840 break;
2841
2842 case 179:
2843#line 750 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002844 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002845 if (!(yyvsp[-1].String)->empty())
2846 *(yyvsp[-2].String) += " " + *(yyvsp[-1].String);
2847 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
2848 delete (yyvsp[-1].String);
2849 delete (yyvsp[0].String);
2850 (yyval.String) = (yyvsp[-2].String);
2851 ;}
2852 break;
2853
2854 case 180:
2855#line 763 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2856 {
2857 ;}
2858 break;
2859
2860 case 181:
2861#line 765 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2862 {
Reid Spencere7c3c602006-11-30 06:36:44 +00002863 ;}
2864 break;
2865
2866 case 182:
Reid Spencere77e35e2006-12-01 20:26:20 +00002867#line 769 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2868 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00002869 break;
2870
2871 case 183:
Reid Spencere77e35e2006-12-01 20:26:20 +00002872#line 770 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2873 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2874 break;
2875
2876 case 184:
2877#line 771 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2878 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2879 break;
2880
2881 case 185:
2882#line 772 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2883 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2884 break;
2885
2886 case 186:
2887#line 773 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2888 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2889 break;
2890
2891 case 187:
2892#line 774 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2893 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2894 break;
2895
2896 case 188:
2897#line 775 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2898 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2899 break;
2900
2901 case 189:
2902#line 776 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2903 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2904 break;
2905
2906 case 190:
2907#line 777 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2908 {
2909 (yyvsp[-1].String)->insert(0, "<");
2910 *(yyvsp[-1].String) += ">";
2911 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002912 ;}
2913 break;
2914
2915 case 192:
Reid Spencere77e35e2006-12-01 20:26:20 +00002916#line 783 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2917 {
2918 if (!(yyvsp[-3].String)->empty()) {
2919 *(yyvsp[-4].String) += " " + *(yyvsp[-3].String);
2920 }
2921 *(yyvsp[-4].String) += " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
2922 delete (yyvsp[-3].String); delete (yyvsp[-2].String); delete (yyvsp[0].String);
2923 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00002924 ;}
2925 break;
2926
Reid Spencere77e35e2006-12-01 20:26:20 +00002927 case 193:
2928#line 792 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2929 { (yyval.String) = (yyvsp[0].Const).cnst; ;}
2930 break;
2931
2932 case 197:
2933#line 801 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002934 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002935 (yyval.Value).type = (yyvsp[-1].Type);
2936 (yyval.Value).val = new std::string(*(yyvsp[-1].Type).newTy + " ");
2937 *(yyval.Value).val += *(yyvsp[0].String);
2938 delete (yyvsp[0].String);
2939 ;}
2940 break;
2941
2942 case 198:
2943#line 808 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2944 {
Reid Spencere7c3c602006-11-30 06:36:44 +00002945 ;}
2946 break;
2947
2948 case 199:
Reid Spencere77e35e2006-12-01 20:26:20 +00002949#line 810 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002950 { // Do not allow functions with 0 basic blocks
2951 ;}
2952 break;
2953
Reid Spencere77e35e2006-12-01 20:26:20 +00002954 case 200:
2955#line 817 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002956 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002957 *O << *(yyvsp[-1].String) ;
2958 ;}
2959 break;
2960
2961 case 201:
2962#line 821 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2963 {
2964 *O << " " << *(yyvsp[0].String) << "\n";
2965 delete (yyvsp[0].String);
2966 (yyval.String) = 0;
2967 ;}
2968 break;
2969
2970 case 202:
2971#line 826 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2972 {
2973 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002974 ;}
2975 break;
2976
2977 case 203:
Reid Spencere77e35e2006-12-01 20:26:20 +00002978#line 829 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00002979 {
Reid Spencere77e35e2006-12-01 20:26:20 +00002980 *O << *(yyvsp[0].String) << "\n";
2981 delete (yyvsp[0].String);
2982 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002983 ;}
2984 break;
2985
2986 case 204:
Reid Spencere77e35e2006-12-01 20:26:20 +00002987#line 835 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2988 { // Return with a result...
2989 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Value).val << "\n";
2990 delete (yyvsp[-1].String); (yyvsp[0].Value).destroy();
2991 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00002992 ;}
2993 break;
2994
2995 case 205:
Reid Spencere77e35e2006-12-01 20:26:20 +00002996#line 840 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
2997 { // Return with no result...
2998 *O << " " << *(yyvsp[-1].String) << " " << *(yyvsp[0].Type).newTy << "\n";
2999 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
3000 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003001 ;}
3002 break;
3003
3004 case 206:
Reid Spencere77e35e2006-12-01 20:26:20 +00003005#line 845 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3006 { // Unconditional Branch...
3007 *O << " " << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3008 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3009 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003010 ;}
3011 break;
3012
3013 case 207:
Reid Spencere77e35e2006-12-01 20:26:20 +00003014#line 850 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3015 {
3016 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", "
3017 << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << ", " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3018 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String);
3019 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3020 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003021 ;}
3022 break;
3023
3024 case 208:
Reid Spencere77e35e2006-12-01 20:26:20 +00003025#line 857 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3026 {
3027 *O << " " << *(yyvsp[-8].String) << " " << *(yyvsp[-7].Type).newTy << " " << *(yyvsp[-6].String) << ", " << *(yyvsp[-4].Type).newTy
3028 << " " << *(yyvsp[-3].String) << " [" << *(yyvsp[-1].String) << " ]\n";
3029 delete (yyvsp[-8].String); (yyvsp[-7].Type).destroy(); delete (yyvsp[-6].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3030 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003031 ;}
3032 break;
3033
3034 case 209:
Reid Spencere77e35e2006-12-01 20:26:20 +00003035#line 863 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3036 {
3037 *O << " " << *(yyvsp[-7].String) << " " << *(yyvsp[-6].Type).newTy << " " << *(yyvsp[-5].String) << ", "
3038 << *(yyvsp[-3].Type).newTy << " " << *(yyvsp[-2].String) << "[]\n";
3039 delete (yyvsp[-7].String); (yyvsp[-6].Type).destroy(); delete (yyvsp[-5].String); (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String);
3040 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003041 ;}
3042 break;
3043
3044 case 210:
Reid Spencere77e35e2006-12-01 20:26:20 +00003045#line 870 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003046 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003047 *O << " " << *(yyvsp[-12].String) << " " << *(yyvsp[-11].String) << " " << *(yyvsp[-10].Type).newTy << " " << *(yyvsp[-9].String) << " ("
3048 << *(yyvsp[-7].String) << ") " << *(yyvsp[-5].String) << " " << *(yyvsp[-4].Type).newTy << " " << *(yyvsp[-3].String) << " "
3049 << *(yyvsp[-2].String) << " " << *(yyvsp[-1].Type).newTy << " " << *(yyvsp[0].String) << "\n";
3050 delete (yyvsp[-12].String); delete (yyvsp[-11].String); (yyvsp[-10].Type).destroy(); delete (yyvsp[-9].String); delete (yyvsp[-7].String); delete (yyvsp[-5].String);
3051 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3052 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003053 ;}
3054 break;
3055
3056 case 211:
Reid Spencere77e35e2006-12-01 20:26:20 +00003057#line 878 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003058 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003059 *O << " " << *(yyvsp[0].String) << "\n";
3060 delete (yyvsp[0].String);
3061 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003062 ;}
3063 break;
3064
3065 case 212:
Reid Spencere77e35e2006-12-01 20:26:20 +00003066#line 883 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003067 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003068 *O << " " << *(yyvsp[0].String) << "\n";
3069 delete (yyvsp[0].String);
3070 (yyval.String) = 0;
Reid Spencere7c3c602006-11-30 06:36:44 +00003071 ;}
3072 break;
3073
3074 case 213:
Reid Spencere77e35e2006-12-01 20:26:20 +00003075#line 889 "/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[-5].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3078 (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3079 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003080 ;}
3081 break;
3082
3083 case 214:
Reid Spencere77e35e2006-12-01 20:26:20 +00003084#line 894 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003085 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003086 (yyvsp[-3].String)->insert(0, *(yyvsp[-4].Type).newTy + " " );
3087 *(yyvsp[-3].String) += ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3088 (yyvsp[-4].Type).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3089 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003090 ;}
3091 break;
3092
3093 case 215:
Reid Spencere77e35e2006-12-01 20:26:20 +00003094#line 902 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003095 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003096 *(yyvsp[-1].String) += *(yyvsp[0].String);
3097 delete (yyvsp[0].String);
3098 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003099 ;}
3100 break;
3101
3102 case 216:
Reid Spencere77e35e2006-12-01 20:26:20 +00003103#line 909 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3104 { // Used for PHI nodes
3105 (yyvsp[-3].String)->insert(0, *(yyvsp[-5].Type).newTy + "[");
3106 *(yyvsp[-3].String) += "," + *(yyvsp[-1].String) + "]";
3107 (yyvsp[-5].Type).destroy(); delete (yyvsp[-1].String);
3108 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003109 ;}
3110 break;
3111
3112 case 217:
Reid Spencere77e35e2006-12-01 20:26:20 +00003113#line 915 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003114 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003115 *(yyvsp[-6].String) += ", [" + *(yyvsp[-3].String) + "," + *(yyvsp[-1].String) + "]";
3116 delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3117 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003118 ;}
3119 break;
3120
3121 case 218:
Reid Spencere77e35e2006-12-01 20:26:20 +00003122#line 923 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3123 { (yyval.String) = new std::string(*(yyvsp[0].Value).val); (yyvsp[0].Value).destroy(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003124 break;
3125
3126 case 219:
Reid Spencere77e35e2006-12-01 20:26:20 +00003127#line 924 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003128 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003129 *(yyvsp[-2].String) += ", " + *(yyvsp[0].Value).val;
3130 (yyvsp[0].Value).destroy();
3131 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003132 ;}
3133 break;
3134
3135 case 221:
Reid Spencere77e35e2006-12-01 20:26:20 +00003136#line 933 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3137 { (yyval.String) = new std::string(); ;}
3138 break;
3139
3140 case 222:
3141#line 937 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003142 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003143 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3144 delete (yyvsp[0].String);
3145 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003146 ;}
3147 break;
3148
Reid Spencere77e35e2006-12-01 20:26:20 +00003149 case 224:
3150#line 945 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3151 {
3152 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3153 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3154 (yyval.String) = (yyvsp[-4].String);
3155 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003156 break;
3157
Reid Spencere77e35e2006-12-01 20:26:20 +00003158 case 225:
3159#line 950 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003160 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003161 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3162 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3163 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003164 ;}
3165 break;
3166
3167 case 226:
Reid Spencere77e35e2006-12-01 20:26:20 +00003168#line 955 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003169 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003170 *(yyvsp[-4].String) += " " + *(yyvsp[-3].Type).newTy + " " + *(yyvsp[-2].String) + ", " + *(yyvsp[0].String);
3171 (yyvsp[-3].Type).destroy(); delete (yyvsp[-2].String); delete (yyvsp[0].String);
3172 (yyval.String) = (yyvsp[-4].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003173 ;}
3174 break;
3175
3176 case 227:
Reid Spencere77e35e2006-12-01 20:26:20 +00003177#line 960 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003178 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003179 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3180 (yyvsp[0].Value).destroy();
3181 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003182 ;}
3183 break;
3184
3185 case 228:
Reid Spencere77e35e2006-12-01 20:26:20 +00003186#line 965 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003187 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003188 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3189 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3190 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003191 ;}
3192 break;
3193
3194 case 229:
Reid Spencere77e35e2006-12-01 20:26:20 +00003195#line 970 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003196 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003197 const char *opcode = getCastOpcode((yyvsp[-2].Value).type, (yyvsp[0].Type));
3198 (yyval.String) = new std::string(opcode);
3199 *(yyval.String) += *(yyvsp[-2].Value).val + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].Type).newTy;
3200 delete (yyvsp[-3].String); (yyvsp[-2].Value).destroy();
3201 delete (yyvsp[-1].String); (yyvsp[0].Type).destroy();
Reid Spencere7c3c602006-11-30 06:36:44 +00003202 ;}
3203 break;
3204
3205 case 230:
Reid Spencere77e35e2006-12-01 20:26:20 +00003206#line 977 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003207 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003208 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3209 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3210 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003211 ;}
3212 break;
3213
3214 case 231:
Reid Spencere77e35e2006-12-01 20:26:20 +00003215#line 982 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003216 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003217 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Type).newTy;
3218 (yyvsp[-2].Value).destroy(); (yyvsp[0].Type).destroy();
3219 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003220 ;}
3221 break;
3222
3223 case 232:
Reid Spencere77e35e2006-12-01 20:26:20 +00003224#line 987 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003225 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003226 *(yyvsp[-3].String) += " " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3227 (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3228 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003229 ;}
3230 break;
3231
3232 case 233:
Reid Spencere77e35e2006-12-01 20:26:20 +00003233#line 992 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003234 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003235 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3236 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3237 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003238 ;}
3239 break;
3240
3241 case 234:
Reid Spencere77e35e2006-12-01 20:26:20 +00003242#line 997 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003243 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003244 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Value).val + ", " + *(yyvsp[-2].Value).val + ", " + *(yyvsp[0].Value).val;
3245 (yyvsp[-4].Value).destroy(); (yyvsp[-2].Value).destroy(); (yyvsp[0].Value).destroy();
3246 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003247 ;}
3248 break;
3249
3250 case 235:
Reid Spencere77e35e2006-12-01 20:26:20 +00003251#line 1002 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003252 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003253 *(yyvsp[-1].String) += " " + *(yyvsp[0].String);
3254 delete (yyvsp[0].String);
3255 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003256 ;}
3257 break;
3258
3259 case 236:
Reid Spencere77e35e2006-12-01 20:26:20 +00003260#line 1007 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003261 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003262 if (!(yyvsp[-5].String)->empty())
3263 *(yyvsp[-6].String) += " " + *(yyvsp[-5].String);
3264 if (!(yyvsp[-6].String)->empty())
3265 *(yyvsp[-6].String) += " ";
3266 *(yyvsp[-6].String) += *(yyvsp[-4].Type).newTy + " " + *(yyvsp[-3].String) + "(" + *(yyvsp[-1].String) + ")";
3267 delete (yyvsp[-5].String); (yyvsp[-4].Type).destroy(); delete (yyvsp[-3].String); delete (yyvsp[-1].String);
3268 (yyval.String) = (yyvsp[-6].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003269 ;}
3270 break;
3271
3272 case 238:
Reid Spencere77e35e2006-12-01 20:26:20 +00003273#line 1021 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3274 {
3275 (yyvsp[0].String)->insert(0, ", ");
3276 (yyval.String) = (yyvsp[0].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003277 ;}
3278 break;
3279
Reid Spencere77e35e2006-12-01 20:26:20 +00003280 case 239:
3281#line 1025 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3282 { (yyval.String) = new std::string(); ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003283 break;
3284
3285 case 241:
Reid Spencere77e35e2006-12-01 20:26:20 +00003286#line 1030 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3287 { (yyval.String) = new std::string(); ;}
3288 break;
3289
3290 case 242:
3291#line 1033 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3292 {
3293 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3294 if (!(yyvsp[0].String)->empty())
3295 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3296 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3297 (yyval.String) = (yyvsp[-2].String);
3298 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003299 break;
3300
3301 case 243:
Reid Spencere77e35e2006-12-01 20:26:20 +00003302#line 1040 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
3303 {
3304 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3305 if (!(yyvsp[0].String)->empty())
3306 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3307 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3308 (yyval.String) = (yyvsp[-5].String);
3309 ;}
Reid Spencere7c3c602006-11-30 06:36:44 +00003310 break;
3311
3312 case 244:
Reid Spencere77e35e2006-12-01 20:26:20 +00003313#line 1047 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003314 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003315 *(yyvsp[-2].String) += " " + *(yyvsp[-1].Type).newTy;
3316 if (!(yyvsp[0].String)->empty())
3317 *(yyvsp[-2].String) += " " + *(yyvsp[0].String);
3318 (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3319 (yyval.String) = (yyvsp[-2].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003320 ;}
3321 break;
3322
3323 case 245:
Reid Spencere77e35e2006-12-01 20:26:20 +00003324#line 1054 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003325 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003326 *(yyvsp[-5].String) += " " + *(yyvsp[-4].Type).newTy + ", " + *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String);
3327 if (!(yyvsp[0].String)->empty())
3328 *(yyvsp[-5].String) += " " + *(yyvsp[0].String);
3329 (yyvsp[-4].Type).destroy(); (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3330 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003331 ;}
3332 break;
3333
3334 case 246:
Reid Spencere77e35e2006-12-01 20:26:20 +00003335#line 1061 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003336 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003337 *(yyvsp[-1].String) += " " + *(yyvsp[0].Value).val;
3338 (yyvsp[0].Value).destroy();
3339 (yyval.String) = (yyvsp[-1].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003340 ;}
3341 break;
3342
3343 case 247:
Reid Spencere77e35e2006-12-01 20:26:20 +00003344#line 1066 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003345 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003346 if (!(yyvsp[-3].String)->empty())
3347 *(yyvsp[-3].String) += " ";
3348 *(yyvsp[-3].String) += *(yyvsp[-2].String) + " " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3349 delete (yyvsp[-2].String); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3350 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003351 ;}
3352 break;
3353
3354 case 248:
Reid Spencere77e35e2006-12-01 20:26:20 +00003355#line 1073 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003356 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003357 if (!(yyvsp[-5].String)->empty())
3358 *(yyvsp[-5].String) += " ";
3359 *(yyvsp[-5].String) += *(yyvsp[-4].String) + " " + *(yyvsp[-3].Value).val + ", " + *(yyvsp[-1].Type).newTy + " " + *(yyvsp[0].String);
3360 delete (yyvsp[-4].String); (yyvsp[-3].Value).destroy(); (yyvsp[-1].Type).destroy(); delete (yyvsp[0].String);
3361 (yyval.String) = (yyvsp[-5].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003362 ;}
3363 break;
3364
3365 case 249:
Reid Spencere77e35e2006-12-01 20:26:20 +00003366#line 1080 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003367 {
Reid Spencere77e35e2006-12-01 20:26:20 +00003368 *(yyvsp[-3].String) += *(yyvsp[-2].Type).newTy + " " + *(yyvsp[-1].String) + " " + *(yyvsp[0].String);
3369 (yyvsp[-2].Type).destroy(); delete (yyvsp[-1].String); delete (yyvsp[0].String);
3370 (yyval.String) = (yyvsp[-3].String);
Reid Spencere7c3c602006-11-30 06:36:44 +00003371 ;}
3372 break;
3373
3374
3375 default: break;
3376 }
3377
3378/* Line 1126 of yacc.c. */
Reid Spencere77e35e2006-12-01 20:26:20 +00003379#line 3380 "UpgradeParser.tab.c"
Reid Spencere7c3c602006-11-30 06:36:44 +00003380
3381 yyvsp -= yylen;
3382 yyssp -= yylen;
3383
3384
3385 YY_STACK_PRINT (yyss, yyssp);
3386
3387 *++yyvsp = yyval;
3388
3389
3390 /* Now `shift' the result of the reduction. Determine what state
3391 that goes to, based on the state we popped back to and the rule
3392 number reduced by. */
3393
3394 yyn = yyr1[yyn];
3395
3396 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3397 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3398 yystate = yytable[yystate];
3399 else
3400 yystate = yydefgoto[yyn - YYNTOKENS];
3401
3402 goto yynewstate;
3403
3404
3405/*------------------------------------.
3406| yyerrlab -- here on detecting error |
3407`------------------------------------*/
3408yyerrlab:
3409 /* If not already recovering from an error, report this error. */
3410 if (!yyerrstatus)
3411 {
3412 ++yynerrs;
3413#if YYERROR_VERBOSE
3414 yyn = yypact[yystate];
3415
3416 if (YYPACT_NINF < yyn && yyn < YYLAST)
3417 {
3418 int yytype = YYTRANSLATE (yychar);
3419 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3420 YYSIZE_T yysize = yysize0;
3421 YYSIZE_T yysize1;
3422 int yysize_overflow = 0;
3423 char *yymsg = 0;
3424# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
3425 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3426 int yyx;
3427
3428#if 0
3429 /* This is so xgettext sees the translatable formats that are
3430 constructed on the fly. */
3431 YY_("syntax error, unexpected %s");
3432 YY_("syntax error, unexpected %s, expecting %s");
3433 YY_("syntax error, unexpected %s, expecting %s or %s");
3434 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3435 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3436#endif
3437 char *yyfmt;
3438 char const *yyf;
3439 static char const yyunexpected[] = "syntax error, unexpected %s";
3440 static char const yyexpecting[] = ", expecting %s";
3441 static char const yyor[] = " or %s";
3442 char yyformat[sizeof yyunexpected
3443 + sizeof yyexpecting - 1
3444 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3445 * (sizeof yyor - 1))];
3446 char const *yyprefix = yyexpecting;
3447
3448 /* Start YYX at -YYN if negative to avoid negative indexes in
3449 YYCHECK. */
3450 int yyxbegin = yyn < 0 ? -yyn : 0;
3451
3452 /* Stay within bounds of both yycheck and yytname. */
3453 int yychecklim = YYLAST - yyn;
3454 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3455 int yycount = 1;
3456
3457 yyarg[0] = yytname[yytype];
3458 yyfmt = yystpcpy (yyformat, yyunexpected);
3459
3460 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3461 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3462 {
3463 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3464 {
3465 yycount = 1;
3466 yysize = yysize0;
3467 yyformat[sizeof yyunexpected - 1] = '\0';
3468 break;
3469 }
3470 yyarg[yycount++] = yytname[yyx];
3471 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3472 yysize_overflow |= yysize1 < yysize;
3473 yysize = yysize1;
3474 yyfmt = yystpcpy (yyfmt, yyprefix);
3475 yyprefix = yyor;
3476 }
3477
3478 yyf = YY_(yyformat);
3479 yysize1 = yysize + yystrlen (yyf);
3480 yysize_overflow |= yysize1 < yysize;
3481 yysize = yysize1;
3482
3483 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
3484 yymsg = (char *) YYSTACK_ALLOC (yysize);
3485 if (yymsg)
3486 {
3487 /* Avoid sprintf, as that infringes on the user's name space.
3488 Don't have undefined behavior even if the translation
3489 produced a string with the wrong number of "%s"s. */
3490 char *yyp = yymsg;
3491 int yyi = 0;
3492 while ((*yyp = *yyf))
3493 {
3494 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3495 {
3496 yyp += yytnamerr (yyp, yyarg[yyi++]);
3497 yyf += 2;
3498 }
3499 else
3500 {
3501 yyp++;
3502 yyf++;
3503 }
3504 }
3505 yyerror (yymsg);
3506 YYSTACK_FREE (yymsg);
3507 }
3508 else
3509 {
3510 yyerror (YY_("syntax error"));
3511 goto yyexhaustedlab;
3512 }
3513 }
3514 else
3515#endif /* YYERROR_VERBOSE */
3516 yyerror (YY_("syntax error"));
3517 }
3518
3519
3520
3521 if (yyerrstatus == 3)
3522 {
3523 /* If just tried and failed to reuse look-ahead token after an
3524 error, discard it. */
3525
3526 if (yychar <= YYEOF)
3527 {
3528 /* Return failure if at end of input. */
3529 if (yychar == YYEOF)
3530 YYABORT;
3531 }
3532 else
3533 {
3534 yydestruct ("Error: discarding", yytoken, &yylval);
3535 yychar = YYEMPTY;
3536 }
3537 }
3538
3539 /* Else will try to reuse look-ahead token after shifting the error
3540 token. */
3541 goto yyerrlab1;
3542
3543
3544/*---------------------------------------------------.
3545| yyerrorlab -- error raised explicitly by YYERROR. |
3546`---------------------------------------------------*/
3547yyerrorlab:
3548
3549 /* Pacify compilers like GCC when the user code never invokes
3550 YYERROR and the label yyerrorlab therefore never appears in user
3551 code. */
3552 if (0)
3553 goto yyerrorlab;
3554
3555yyvsp -= yylen;
3556 yyssp -= yylen;
3557 yystate = *yyssp;
3558 goto yyerrlab1;
3559
3560
3561/*-------------------------------------------------------------.
3562| yyerrlab1 -- common code for both syntax error and YYERROR. |
3563`-------------------------------------------------------------*/
3564yyerrlab1:
3565 yyerrstatus = 3; /* Each real token shifted decrements this. */
3566
3567 for (;;)
3568 {
3569 yyn = yypact[yystate];
3570 if (yyn != YYPACT_NINF)
3571 {
3572 yyn += YYTERROR;
3573 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3574 {
3575 yyn = yytable[yyn];
3576 if (0 < yyn)
3577 break;
3578 }
3579 }
3580
3581 /* Pop the current state because it cannot handle the error token. */
3582 if (yyssp == yyss)
3583 YYABORT;
3584
3585
3586 yydestruct ("Error: popping", yystos[yystate], yyvsp);
3587 YYPOPSTACK;
3588 yystate = *yyssp;
3589 YY_STACK_PRINT (yyss, yyssp);
3590 }
3591
3592 if (yyn == YYFINAL)
3593 YYACCEPT;
3594
3595 *++yyvsp = yylval;
3596
3597
3598 /* Shift the error token. */
3599 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3600
3601 yystate = yyn;
3602 goto yynewstate;
3603
3604
3605/*-------------------------------------.
3606| yyacceptlab -- YYACCEPT comes here. |
3607`-------------------------------------*/
3608yyacceptlab:
3609 yyresult = 0;
3610 goto yyreturn;
3611
3612/*-----------------------------------.
3613| yyabortlab -- YYABORT comes here. |
3614`-----------------------------------*/
3615yyabortlab:
3616 yyresult = 1;
3617 goto yyreturn;
3618
3619#ifndef yyoverflow
3620/*-------------------------------------------------.
3621| yyexhaustedlab -- memory exhaustion comes here. |
3622`-------------------------------------------------*/
3623yyexhaustedlab:
3624 yyerror (YY_("memory exhausted"));
3625 yyresult = 2;
3626 /* Fall through. */
3627#endif
3628
3629yyreturn:
3630 if (yychar != YYEOF && yychar != YYEMPTY)
3631 yydestruct ("Cleanup: discarding lookahead",
3632 yytoken, &yylval);
3633 while (yyssp != yyss)
3634 {
3635 yydestruct ("Cleanup: popping",
3636 yystos[*yyssp], yyvsp);
3637 YYPOPSTACK;
3638 }
3639#ifndef yyoverflow
3640 if (yyss != yyssa)
3641 YYSTACK_FREE (yyss);
3642#endif
3643 return yyresult;
3644}
3645
3646
Reid Spencere77e35e2006-12-01 20:26:20 +00003647#line 1086 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeParser.y"
Reid Spencere7c3c602006-11-30 06:36:44 +00003648
3649
3650int yyerror(const char *ErrorMsg) {
3651 std::string where
3652 = std::string((CurFilename == "-") ? std::string("<stdin>") : CurFilename)
3653 + ":" + llvm::utostr((unsigned) Upgradelineno) + ": ";
3654 std::string errMsg = std::string(ErrorMsg) + "\n" + where + " while reading ";
3655 if (yychar == YYEMPTY || yychar == 0)
3656 errMsg += "end-of-file.";
3657 else
3658 errMsg += "token: '" + std::string(Upgradetext, Upgradeleng) + "'";
3659 std::cerr << errMsg << '\n';
3660 exit(1);
3661}
3662