AsmParser support for immediate constant aggregate values.
[oota-llvm.git] / lib / AsmParser / llvmAsmParser.h.cvs
1 /* 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,
88      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,
178      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
195    };
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
244 #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
334 #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
351
352
353
354
355 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
356 typedef union YYSTYPE
357 #line 953 "/Users/gohman/LLVM/llvm/lib/AsmParser/llvmAsmParser.y"
358 {
359   llvm::Module                           *ModuleVal;
360   llvm::Function                         *FunctionVal;
361   llvm::BasicBlock                       *BasicBlockVal;
362   llvm::TerminatorInst                   *TermInstVal;
363   llvm::Instruction                      *InstVal;
364   llvm::Constant                         *ConstVal;
365
366   const llvm::Type                       *PrimType;
367   std::list<llvm::PATypeHolder>          *TypeList;
368   llvm::PATypeHolder                     *TypeVal;
369   llvm::Value                            *ValueVal;
370   std::vector<llvm::Value*>              *ValueList;
371   std::vector<unsigned>                  *ConstantList;
372   llvm::ArgListType                      *ArgList;
373   llvm::TypeWithAttrs                     TypeWithAttrs;
374   llvm::TypeWithAttrsList                *TypeWithAttrsList;
375   llvm::ParamList                        *ParamList;
376
377   // Represent the RHS of PHI node
378   std::list<std::pair<llvm::Value*,
379                       llvm::BasicBlock*> > *PHIList;
380   std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
381   std::vector<llvm::Constant*>           *ConstVector;
382
383   llvm::GlobalValue::LinkageTypes         Linkage;
384   llvm::GlobalValue::VisibilityTypes      Visibility;
385   llvm::ParameterAttributes         ParamAttrs;
386   llvm::APInt                       *APIntVal;
387   int64_t                           SInt64Val;
388   uint64_t                          UInt64Val;
389   int                               SIntVal;
390   unsigned                          UIntVal;
391   llvm::APFloat                    *FPVal;
392   bool                              BoolVal;
393
394   std::string                      *StrVal;   // This memory must be deleted
395   llvm::ValID                       ValIDVal;
396
397   llvm::Instruction::BinaryOps      BinaryOpVal;
398   llvm::Instruction::TermOps        TermOpVal;
399   llvm::Instruction::MemoryOps      MemOpVal;
400   llvm::Instruction::CastOps        CastOpVal;
401   llvm::Instruction::OtherOps       OtherOpVal;
402   llvm::ICmpInst::Predicate         IPredicate;
403   llvm::FCmpInst::Predicate         FPredicate;
404 }
405 /* Line 1489 of yacc.c.  */
406 #line 407 "llvmAsmParser.tab.h"
407         YYSTYPE;
408 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
409 # define YYSTYPE_IS_DECLARED 1
410 # define YYSTYPE_IS_TRIVIAL 1
411 #endif
412
413 extern YYSTYPE llvmAsmlval;
414