/* FPConstant - A Floating point constant.
TODO: Expand lexer to support 10e50 FP constant notation */
-FPConstant [0-9]+[.][0-9]*
+FPConstant -?[0-9]+[.][0-9]*
%%
declare { return DECLARE; }
global { return GLOBAL; }
constant { return CONSTANT; }
+const { return CONST; }
uninitialized { return UNINIT; }
implementation { return IMPLEMENTATION; }
\.\.\. { return DOTDOTDOT; }
string { return STRING; }
+null { return NULL_TOK; }
+to { return TO; }
+except { return EXCEPT; }
void { llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
bool { llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
mul { RET_TOK(BinaryOpVal, Mul, MUL); }
div { RET_TOK(BinaryOpVal, Div, DIV); }
rem { RET_TOK(BinaryOpVal, Rem, REM); }
+and { RET_TOK(BinaryOpVal, And, AND); }
+or { RET_TOK(BinaryOpVal, Or , OR ); }
+xor { RET_TOK(BinaryOpVal, Xor, XOR); }
setne { RET_TOK(BinaryOpVal, SetNE, SETNE); }
seteq { RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
setlt { RET_TOK(BinaryOpVal, SetLT, SETLT); }
setle { RET_TOK(BinaryOpVal, SetLE, SETLE); }
setge { RET_TOK(BinaryOpVal, SetGE, SETGE); }
-to { return TO; }
phi { RET_TOK(OtherOpVal, PHINode, PHI); }
call { RET_TOK(OtherOpVal, Call, CALL); }
cast { RET_TOK(OtherOpVal, Cast, CAST); }
ret { RET_TOK(TermOpVal, Ret, RET); }
br { RET_TOK(TermOpVal, Br, BR); }
switch { RET_TOK(TermOpVal, Switch, SWITCH); }
+invoke { RET_TOK(TermOpVal, Invoke, INVOKE); }
malloc { RET_TOK(MemOpVal, Malloc, MALLOC); }