/* A Bison parser, made by GNU Bison 2.1.  */

/* Skeleton parser for Yacc-like parsing with Bison,
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ESINT64VAL = 258,
     EUINT64VAL = 259,
     LOCALVAL_ID = 260,
     GLOBALVAL_ID = 261,
     FPVAL = 262,
     VOID = 263,
     INTTYPE = 264,
     FLOAT = 265,
     DOUBLE = 266,
     LABEL = 267,
     TYPE = 268,
     LOCALVAR = 269,
     GLOBALVAR = 270,
     LABELSTR = 271,
     STRINGCONSTANT = 272,
     ATSTRINGCONSTANT = 273,
     IMPLEMENTATION = 274,
     ZEROINITIALIZER = 275,
     TRUETOK = 276,
     FALSETOK = 277,
     BEGINTOK = 278,
     ENDTOK = 279,
     DECLARE = 280,
     DEFINE = 281,
     GLOBAL = 282,
     CONSTANT = 283,
     SECTION = 284,
     VOLATILE = 285,
     TO = 286,
     DOTDOTDOT = 287,
     NULL_TOK = 288,
     UNDEF = 289,
     INTERNAL = 290,
     LINKONCE = 291,
     WEAK = 292,
     APPENDING = 293,
     DLLIMPORT = 294,
     DLLEXPORT = 295,
     EXTERN_WEAK = 296,
     OPAQUE = 297,
     EXTERNAL = 298,
     TARGET = 299,
     TRIPLE = 300,
     ALIGN = 301,
     DEPLIBS = 302,
     CALL = 303,
     TAIL = 304,
     ASM_TOK = 305,
     MODULE = 306,
     SIDEEFFECT = 307,
     CC_TOK = 308,
     CCC_TOK = 309,
     CSRETCC_TOK = 310,
     FASTCC_TOK = 311,
     COLDCC_TOK = 312,
     X86_STDCALLCC_TOK = 313,
     X86_FASTCALLCC_TOK = 314,
     DATALAYOUT = 315,
     RET = 316,
     BR = 317,
     SWITCH = 318,
     INVOKE = 319,
     UNWIND = 320,
     UNREACHABLE = 321,
     ADD = 322,
     SUB = 323,
     MUL = 324,
     UDIV = 325,
     SDIV = 326,
     FDIV = 327,
     UREM = 328,
     SREM = 329,
     FREM = 330,
     AND = 331,
     OR = 332,
     XOR = 333,
     ICMP = 334,
     FCMP = 335,
     EQ = 336,
     NE = 337,
     SLT = 338,
     SGT = 339,
     SLE = 340,
     SGE = 341,
     ULT = 342,
     UGT = 343,
     ULE = 344,
     UGE = 345,
     OEQ = 346,
     ONE = 347,
     OLT = 348,
     OGT = 349,
     OLE = 350,
     OGE = 351,
     ORD = 352,
     UNO = 353,
     UEQ = 354,
     UNE = 355,
     MALLOC = 356,
     ALLOCA = 357,
     FREE = 358,
     LOAD = 359,
     STORE = 360,
     GETELEMENTPTR = 361,
     TRUNC = 362,
     ZEXT = 363,
     SEXT = 364,
     FPTRUNC = 365,
     FPEXT = 366,
     BITCAST = 367,
     UITOFP = 368,
     SITOFP = 369,
     FPTOUI = 370,
     FPTOSI = 371,
     INTTOPTR = 372,
     PTRTOINT = 373,
     PHI_TOK = 374,
     SELECT = 375,
     SHL = 376,
     LSHR = 377,
     ASHR = 378,
     VAARG = 379,
     EXTRACTELEMENT = 380,
     INSERTELEMENT = 381,
     SHUFFLEVECTOR = 382,
     NORETURN = 383,
     DEFAULT = 384,
     HIDDEN = 385
   };
#endif
/* Tokens.  */
#define ESINT64VAL 258
#define EUINT64VAL 259
#define LOCALVAL_ID 260
#define GLOBALVAL_ID 261
#define FPVAL 262
#define VOID 263
#define INTTYPE 264
#define FLOAT 265
#define DOUBLE 266
#define LABEL 267
#define TYPE 268
#define LOCALVAR 269
#define GLOBALVAR 270
#define LABELSTR 271
#define STRINGCONSTANT 272
#define ATSTRINGCONSTANT 273
#define IMPLEMENTATION 274
#define ZEROINITIALIZER 275
#define TRUETOK 276
#define FALSETOK 277
#define BEGINTOK 278
#define ENDTOK 279
#define DECLARE 280
#define DEFINE 281
#define GLOBAL 282
#define CONSTANT 283
#define SECTION 284
#define VOLATILE 285
#define TO 286
#define DOTDOTDOT 287
#define NULL_TOK 288
#define UNDEF 289
#define INTERNAL 290
#define LINKONCE 291
#define WEAK 292
#define APPENDING 293
#define DLLIMPORT 294
#define DLLEXPORT 295
#define EXTERN_WEAK 296
#define OPAQUE 297
#define EXTERNAL 298
#define TARGET 299
#define TRIPLE 300
#define ALIGN 301
#define DEPLIBS 302
#define CALL 303
#define TAIL 304
#define ASM_TOK 305
#define MODULE 306
#define SIDEEFFECT 307
#define CC_TOK 308
#define CCC_TOK 309
#define CSRETCC_TOK 310
#define FASTCC_TOK 311
#define COLDCC_TOK 312
#define X86_STDCALLCC_TOK 313
#define X86_FASTCALLCC_TOK 314
#define DATALAYOUT 315
#define RET 316
#define BR 317
#define SWITCH 318
#define INVOKE 319
#define UNWIND 320
#define UNREACHABLE 321
#define ADD 322
#define SUB 323
#define MUL 324
#define UDIV 325
#define SDIV 326
#define FDIV 327
#define UREM 328
#define SREM 329
#define FREM 330
#define AND 331
#define OR 332
#define XOR 333
#define ICMP 334
#define FCMP 335
#define EQ 336
#define NE 337
#define SLT 338
#define SGT 339
#define SLE 340
#define SGE 341
#define ULT 342
#define UGT 343
#define ULE 344
#define UGE 345
#define OEQ 346
#define ONE 347
#define OLT 348
#define OGT 349
#define OLE 350
#define OGE 351
#define ORD 352
#define UNO 353
#define UEQ 354
#define UNE 355
#define MALLOC 356
#define ALLOCA 357
#define FREE 358
#define LOAD 359
#define STORE 360
#define GETELEMENTPTR 361
#define TRUNC 362
#define ZEXT 363
#define SEXT 364
#define FPTRUNC 365
#define FPEXT 366
#define BITCAST 367
#define UITOFP 368
#define SITOFP 369
#define FPTOUI 370
#define FPTOSI 371
#define INTTOPTR 372
#define PTRTOINT 373
#define PHI_TOK 374
#define SELECT 375
#define SHL 376
#define LSHR 377
#define ASHR 378
#define VAARG 379
#define EXTRACTELEMENT 380
#define INSERTELEMENT 381
#define SHUFFLEVECTOR 382
#define NORETURN 383
#define DEFAULT 384
#define HIDDEN 385




#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 885 "/proj/llvm/llvm-1/lib/AsmParser/llvmAsmParser.y"
typedef union YYSTYPE {
  llvm::Module                           *ModuleVal;
  llvm::Function                         *FunctionVal;
  llvm::BasicBlock                       *BasicBlockVal;
  llvm::TerminatorInst                   *TermInstVal;
  llvm::Instruction                      *InstVal;
  llvm::Constant                         *ConstVal;

  const llvm::Type                       *PrimType;
  std::list<llvm::PATypeHolder>          *TypeList;
  llvm::PATypeHolder                     *TypeVal;
  llvm::Value                            *ValueVal;
  std::vector<llvm::Value*>              *ValueList;
  llvm::ArgListType                      *ArgList;
  llvm::TypeWithAttrs                     TypeWithAttrs;
  llvm::TypeWithAttrsList                *TypeWithAttrsList;
  llvm::ValueRefList                     *ValueRefList;

  // Represent the RHS of PHI node
  std::list<std::pair<llvm::Value*,
                      llvm::BasicBlock*> > *PHIList;
  std::vector<std::pair<llvm::Constant*, llvm::BasicBlock*> > *JumpTable;
  std::vector<llvm::Constant*>           *ConstVector;

  llvm::GlobalValue::LinkageTypes         Linkage;
  llvm::GlobalValue::VisibilityTypes      Visibility;
  llvm::FunctionType::ParameterAttributes ParamAttrs;
  int64_t                           SInt64Val;
  uint64_t                          UInt64Val;
  int                               SIntVal;
  unsigned                          UIntVal;
  double                            FPVal;
  bool                              BoolVal;

  char                             *StrVal;   // This memory is strdup'd!
  llvm::ValID                       ValIDVal; // strdup'd memory maybe!

  llvm::Instruction::BinaryOps      BinaryOpVal;
  llvm::Instruction::TermOps        TermOpVal;
  llvm::Instruction::MemoryOps      MemOpVal;
  llvm::Instruction::CastOps        CastOpVal;
  llvm::Instruction::OtherOps       OtherOpVal;
  llvm::ICmpInst::Predicate         IPredicate;
  llvm::FCmpInst::Predicate         FPredicate;
} YYSTYPE;
/* Line 1447 of yacc.c.  */
#line 344 "llvmAsmParser.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif

extern YYSTYPE llvmAsmlval;



