blob: 8b9d5ba49ced4cf94b4b687038755afcc5634ff3 [file] [log] [blame]
Dan Gohmanf4423b12008-04-19 00:24:39 +00001/* A Bison parser, made by GNU Bison 2.3. */
2
3/* Skeleton interface for Bison's Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23/* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
32
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
35
36/* Tokens. */
37#ifndef YYTOKENTYPE
38# define YYTOKENTYPE
39 /* Put the tokens into the symbol table, so that GDB and other debuggers
40 know about them. */
41 enum yytokentype {
42 ESINT64VAL = 258,
43 EUINT64VAL = 259,
44 ESAPINTVAL = 260,
45 EUAPINTVAL = 261,
46 LOCALVAL_ID = 262,
47 GLOBALVAL_ID = 263,
48 FPVAL = 264,
49 VOID = 265,
50 INTTYPE = 266,
51 FLOAT = 267,
52 DOUBLE = 268,
53 X86_FP80 = 269,
54 FP128 = 270,
55 PPC_FP128 = 271,
56 LABEL = 272,
57 TYPE = 273,
58 LOCALVAR = 274,
59 GLOBALVAR = 275,
60 LABELSTR = 276,
61 STRINGCONSTANT = 277,
62 ATSTRINGCONSTANT = 278,
63 PCTSTRINGCONSTANT = 279,
64 ZEROINITIALIZER = 280,
65 TRUETOK = 281,
66 FALSETOK = 282,
67 BEGINTOK = 283,
68 ENDTOK = 284,
69 DECLARE = 285,
70 DEFINE = 286,
71 GLOBAL = 287,
72 CONSTANT = 288,
73 SECTION = 289,
74 ALIAS = 290,
75 VOLATILE = 291,
76 THREAD_LOCAL = 292,
77 TO = 293,
78 DOTDOTDOT = 294,
79 NULL_TOK = 295,
80 UNDEF = 296,
81 INTERNAL = 297,
82 LINKONCE = 298,
83 WEAK = 299,
84 APPENDING = 300,
85 DLLIMPORT = 301,
86 DLLEXPORT = 302,
87 EXTERN_WEAK = 303,
Dale Johannesenc7071cc2008-05-14 20:13:36 +000088 COMMON = 304,
89 OPAQUE = 305,
90 EXTERNAL = 306,
91 TARGET = 307,
92 TRIPLE = 308,
93 ALIGN = 309,
94 ADDRSPACE = 310,
95 DEPLIBS = 311,
96 CALL = 312,
97 TAIL = 313,
98 ASM_TOK = 314,
99 MODULE = 315,
100 SIDEEFFECT = 316,
101 CC_TOK = 317,
102 CCC_TOK = 318,
103 FASTCC_TOK = 319,
104 COLDCC_TOK = 320,
105 X86_STDCALLCC_TOK = 321,
106 X86_FASTCALLCC_TOK = 322,
107 DATALAYOUT = 323,
108 RET = 324,
109 BR = 325,
110 SWITCH = 326,
111 INVOKE = 327,
112 UNWIND = 328,
113 UNREACHABLE = 329,
114 ADD = 330,
115 SUB = 331,
116 MUL = 332,
117 UDIV = 333,
118 SDIV = 334,
119 FDIV = 335,
120 UREM = 336,
121 SREM = 337,
122 FREM = 338,
123 AND = 339,
124 OR = 340,
125 XOR = 341,
126 SHL = 342,
127 LSHR = 343,
128 ASHR = 344,
129 ICMP = 345,
130 FCMP = 346,
131 VICMP = 347,
132 VFCMP = 348,
133 EQ = 349,
134 NE = 350,
135 SLT = 351,
136 SGT = 352,
137 SLE = 353,
138 SGE = 354,
139 ULT = 355,
140 UGT = 356,
141 ULE = 357,
142 UGE = 358,
143 OEQ = 359,
144 ONE = 360,
145 OLT = 361,
146 OGT = 362,
147 OLE = 363,
148 OGE = 364,
149 ORD = 365,
150 UNO = 366,
151 UEQ = 367,
152 UNE = 368,
153 MALLOC = 369,
154 ALLOCA = 370,
155 FREE = 371,
156 LOAD = 372,
157 STORE = 373,
158 GETELEMENTPTR = 374,
159 TRUNC = 375,
160 ZEXT = 376,
161 SEXT = 377,
162 FPTRUNC = 378,
163 FPEXT = 379,
164 BITCAST = 380,
165 UITOFP = 381,
166 SITOFP = 382,
167 FPTOUI = 383,
168 FPTOSI = 384,
169 INTTOPTR = 385,
170 PTRTOINT = 386,
171 PHI_TOK = 387,
172 SELECT = 388,
173 VAARG = 389,
174 EXTRACTELEMENT = 390,
175 INSERTELEMENT = 391,
176 SHUFFLEVECTOR = 392,
177 GETRESULT = 393,
Dan Gohmane4977cf2008-05-23 01:55:30 +0000178 EXTRACTVALUE = 394,
179 INSERTVALUE = 395,
180 SIGNEXT = 396,
181 ZEROEXT = 397,
182 NORETURN = 398,
183 INREG = 399,
184 SRET = 400,
185 NOUNWIND = 401,
186 NOALIAS = 402,
187 BYVAL = 403,
188 NEST = 404,
189 READNONE = 405,
190 READONLY = 406,
191 GC = 407,
192 DEFAULT = 408,
193 HIDDEN = 409,
194 PROTECTED = 410
Dan Gohmanf4423b12008-04-19 00:24:39 +0000195 };
196#endif
197/* Tokens. */
198#define ESINT64VAL 258
199#define EUINT64VAL 259
200#define ESAPINTVAL 260
201#define EUAPINTVAL 261
202#define LOCALVAL_ID 262
203#define GLOBALVAL_ID 263
204#define FPVAL 264
205#define VOID 265
206#define INTTYPE 266
207#define FLOAT 267
208#define DOUBLE 268
209#define X86_FP80 269
210#define FP128 270
211#define PPC_FP128 271
212#define LABEL 272
213#define TYPE 273
214#define LOCALVAR 274
215#define GLOBALVAR 275
216#define LABELSTR 276
217#define STRINGCONSTANT 277
218#define ATSTRINGCONSTANT 278
219#define PCTSTRINGCONSTANT 279
220#define ZEROINITIALIZER 280
221#define TRUETOK 281
222#define FALSETOK 282
223#define BEGINTOK 283
224#define ENDTOK 284
225#define DECLARE 285
226#define DEFINE 286
227#define GLOBAL 287
228#define CONSTANT 288
229#define SECTION 289
230#define ALIAS 290
231#define VOLATILE 291
232#define THREAD_LOCAL 292
233#define TO 293
234#define DOTDOTDOT 294
235#define NULL_TOK 295
236#define UNDEF 296
237#define INTERNAL 297
238#define LINKONCE 298
239#define WEAK 299
240#define APPENDING 300
241#define DLLIMPORT 301
242#define DLLEXPORT 302
243#define EXTERN_WEAK 303
Dale Johannesenc7071cc2008-05-14 20:13:36 +0000244#define COMMON 304
245#define OPAQUE 305
246#define EXTERNAL 306
247#define TARGET 307
248#define TRIPLE 308
249#define ALIGN 309
250#define ADDRSPACE 310
251#define DEPLIBS 311
252#define CALL 312
253#define TAIL 313
254#define ASM_TOK 314
255#define MODULE 315
256#define SIDEEFFECT 316
257#define CC_TOK 317
258#define CCC_TOK 318
259#define FASTCC_TOK 319
260#define COLDCC_TOK 320
261#define X86_STDCALLCC_TOK 321
262#define X86_FASTCALLCC_TOK 322
263#define DATALAYOUT 323
264#define RET 324
265#define BR 325
266#define SWITCH 326
267#define INVOKE 327
268#define UNWIND 328
269#define UNREACHABLE 329
270#define ADD 330
271#define SUB 331
272#define MUL 332
273#define UDIV 333
274#define SDIV 334
275#define FDIV 335
276#define UREM 336
277#define SREM 337
278#define FREM 338
279#define AND 339
280#define OR 340
281#define XOR 341
282#define SHL 342
283#define LSHR 343
284#define ASHR 344
285#define ICMP 345
286#define FCMP 346
287#define VICMP 347
288#define VFCMP 348
289#define EQ 349
290#define NE 350
291#define SLT 351
292#define SGT 352
293#define SLE 353
294#define SGE 354
295#define ULT 355
296#define UGT 356
297#define ULE 357
298#define UGE 358
299#define OEQ 359
300#define ONE 360
301#define OLT 361
302#define OGT 362
303#define OLE 363
304#define OGE 364
305#define ORD 365
306#define UNO 366
307#define UEQ 367
308#define UNE 368
309#define MALLOC 369
310#define ALLOCA 370
311#define FREE 371
312#define LOAD 372
313#define STORE 373
314#define GETELEMENTPTR 374
315#define TRUNC 375
316#define ZEXT 376
317#define SEXT 377
318#define FPTRUNC 378
319#define FPEXT 379
320#define BITCAST 380
321#define UITOFP 381
322#define SITOFP 382
323#define FPTOUI 383
324#define FPTOSI 384
325#define INTTOPTR 385
326#define PTRTOINT 386
327#define PHI_TOK 387
328#define SELECT 388
329#define VAARG 389
330#define EXTRACTELEMENT 390
331#define INSERTELEMENT 391
332#define SHUFFLEVECTOR 392
333#define GETRESULT 393
Dan Gohmane4977cf2008-05-23 01:55:30 +0000334#define EXTRACTVALUE 394
335#define INSERTVALUE 395
336#define SIGNEXT 396
337#define ZEROEXT 397
338#define NORETURN 398
339#define INREG 399
340#define SRET 400
341#define NOUNWIND 401
342#define NOALIAS 402
343#define BYVAL 403
344#define NEST 404
345#define READNONE 405
346#define READONLY 406
347#define GC 407
348#define DEFAULT 408
349#define HIDDEN 409
350#define PROTECTED 410
Dan Gohmanf4423b12008-04-19 00:24:39 +0000351
352
353
354
355#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
356typedef union YYSTYPE
Nate Begeman5bc1ea02008-07-29 15:49:41 +0000357#line 967 "/llvm/lib/AsmParser/llvmAsmParser.y"
Dan Gohmanf4423b12008-04-19 00:24:39 +0000358{
Reid Spencer68a24bd2005-08-27 18:50:39 +0000359 llvm::Module *ModuleVal;
360 llvm::Function *FunctionVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000361 llvm::BasicBlock *BasicBlockVal;
362 llvm::TerminatorInst *TermInstVal;
363 llvm::Instruction *InstVal;
Reid Spencera132e042006-12-03 05:46:11 +0000364 llvm::Constant *ConstVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000365
Reid Spencera132e042006-12-03 05:46:11 +0000366 const llvm::Type *PrimType;
Reid Spencer14310612006-12-31 05:40:51 +0000367 std::list<llvm::PATypeHolder> *TypeList;
Reid Spencera132e042006-12-03 05:46:11 +0000368 llvm::PATypeHolder *TypeVal;
369 llvm::Value *ValueVal;
Reid Spencera132e042006-12-03 05:46:11 +0000370 std::vector<llvm::Value*> *ValueList;
Dan Gohman81a0c0b2008-05-31 00:58:22 +0000371 std::vector<unsigned> *ConstantList;
Reid Spencer14310612006-12-31 05:40:51 +0000372 llvm::ArgListType *ArgList;
373 llvm::TypeWithAttrs TypeWithAttrs;
374 llvm::TypeWithAttrsList *TypeWithAttrsList;
Dale Johanneseneb57ea72007-11-05 21:20:28 +0000375 llvm::ParamList *ParamList;
Reid Spencer14310612006-12-31 05:40:51 +0000376
Reid Spencer68a24bd2005-08-27 18:50:39 +0000377 // Represent the RHS of PHI node
Reid Spencera132e042006-12-03 05:46:11 +0000378 std::list<std::pair<llvm::Value*,
379 llvm::BasicBlock*> > *PHIList;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000380 std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
Reid Spencera132e042006-12-03 05:46:11 +0000381 std::vector<llvm::Constant*> *ConstVector;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000382
383 llvm::GlobalValue::LinkageTypes Linkage;
Anton Korobeynikov178a3522007-01-12 19:22:51 +0000384 llvm::GlobalValue::VisibilityTypes Visibility;
Dale Johannesen222ebf72008-02-19 21:40:51 +0000385 llvm::ParameterAttributes ParamAttrs;
Reid Spencer38c91a92007-02-28 02:24:54 +0000386 llvm::APInt *APIntVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000387 int64_t SInt64Val;
388 uint64_t UInt64Val;
389 int SIntVal;
390 unsigned UIntVal;
Dale Johannesen43421b32007-09-06 18:13:44 +0000391 llvm::APFloat *FPVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000392 bool BoolVal;
393
Reid Spencer0a8a16b2007-05-22 18:52:55 +0000394 std::string *StrVal; // This memory must be deleted
395 llvm::ValID ValIDVal;
Reid Spencer68a24bd2005-08-27 18:50:39 +0000396
Reid Spencera132e042006-12-03 05:46:11 +0000397 llvm::Instruction::BinaryOps BinaryOpVal;
398 llvm::Instruction::TermOps TermOpVal;
399 llvm::Instruction::MemoryOps MemOpVal;
400 llvm::Instruction::CastOps CastOpVal;
401 llvm::Instruction::OtherOps OtherOpVal;
Reid Spencera132e042006-12-03 05:46:11 +0000402 llvm::ICmpInst::Predicate IPredicate;
403 llvm::FCmpInst::Predicate FPredicate;
Dan Gohmanf4423b12008-04-19 00:24:39 +0000404}
Dan Gohman180c1692008-06-23 18:43:26 +0000405/* Line 1529 of yacc.c. */
Dan Gohman81a0c0b2008-05-31 00:58:22 +0000406#line 407 "llvmAsmParser.tab.h"
Dan Gohmanf4423b12008-04-19 00:24:39 +0000407 YYSTYPE;
408# define yystype YYSTYPE /* obsolescent; will be withdrawn */
409# define YYSTYPE_IS_DECLARED 1
410# define YYSTYPE_IS_TRIVIAL 1
411#endif
Reid Spencer68a24bd2005-08-27 18:50:39 +0000412
413extern YYSTYPE llvmAsmlval;
Dan Gohmanf4423b12008-04-19 00:24:39 +0000414