#include "llvm/Module.h"
#include <list>
#include "llvmAsmParser.h"
-#include <ctype.h>
-#include "Config/stdlib.h"
+#include <cctype>
+#include <cstdlib>
#define RET_TOK(type, Enum, sym) \
llvmAsmlval.type = Instruction::Enum; return sym
Label [-a-zA-Z$._0-9]+:
/* Quoted names can contain any character except " and \ */
-StringConstant \"[^\"]+\"
+StringConstant \"[^\"]*\"
/* [PN]Integer: match positive and negative literal integer values that
const { return CONST; }
internal { return INTERNAL; }
linkonce { return LINKONCE; }
+weak { return WEAK; }
appending { return APPENDING; }
uninitialized { return EXTERNAL; } /* Deprecated, turn into external */
external { return EXTERNAL; }
setle { RET_TOK(BinaryOpVal, SetLE, SETLE); }
setge { RET_TOK(BinaryOpVal, SetGE, SETGE); }
-phi { RET_TOK(OtherOpVal, PHINode, PHI); }
+phi { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
call { RET_TOK(OtherOpVal, Call, CALL); }
cast { RET_TOK(OtherOpVal, Cast, CAST); }
shl { RET_TOK(OtherOpVal, Shl, SHL); }
shr { RET_TOK(OtherOpVal, Shr, SHR); }
-va_arg { RET_TOK(OtherOpVal, VarArg, VA_ARG); }
+va_arg { return VA_ARG; /* FIXME: OBSOLETE */}
+vanext { RET_TOK(OtherOpVal, VANext, VANEXT); }
+vaarg { RET_TOK(OtherOpVal, VAArg , VAARG); }
ret { RET_TOK(TermOpVal, Ret, RET); }
br { RET_TOK(TermOpVal, Br, BR); }
switch { RET_TOK(TermOpVal, Switch, SWITCH); }
invoke { RET_TOK(TermOpVal, Invoke, INVOKE); }
+unwind { RET_TOK(TermOpVal, Unwind, UNWIND); }
malloc { RET_TOK(MemOpVal, Malloc, MALLOC); }