Regenerate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37294 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2007-05-22 19:08:16 +00:00
parent 8ecdbf2d5f
commit e2aa96140e
2 changed files with 185 additions and 167 deletions

View File

@ -983,15 +983,22 @@ static double HexToFP(const char *Buffer) {
// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
// appropriate character.
char *UnEscapeLexed(char *Buffer) {
char *UnEscapeLexed(char *Buffer, char* EndBuffer) {
char *BOut = Buffer;
for (char *BIn = Buffer; *BIn; ) {
if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
*BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
BIn[3] = Tmp; // Restore character
BIn += 3; // Skip over handled chars
++BOut;
if (BIn[0] == '\\') {
if (BIn < EndBuffer-1 && BIn[1] == '\\') {
*BOut++ = '\\'; // Two \ becomes one
BIn += 2;
} else if (BIn < EndBuffer-2 && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
*BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
BIn[3] = Tmp; // Restore character
BIn += 3; // Skip over handled chars
++BOut;
} else {
*BOut++ = *BIn++;
}
} else {
*BOut++ = *BIn++;
}
@ -1020,7 +1027,7 @@ using namespace llvm;
/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
* it to deal with 64 bit numbers.
*/
#line 1024 "Lexer.cpp"
#line 1031 "Lexer.cpp"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@ -1171,10 +1178,10 @@ YY_DECL
register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act;
#line 173 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 180 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 1178 "Lexer.cpp"
#line 1185 "Lexer.cpp"
if ( yy_init )
{
@ -1267,272 +1274,272 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
#line 175 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 182 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ /* Ignore comments for now */ }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 177 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 184 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return BEGINTOK; }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 178 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 185 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ENDTOK; }
YY_BREAK
case 4:
YY_RULE_SETUP
#line 179 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 186 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TRUETOK; }
YY_BREAK
case 5:
YY_RULE_SETUP
#line 180 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 187 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return FALSETOK; }
YY_BREAK
case 6:
YY_RULE_SETUP
#line 181 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 188 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DECLARE; }
YY_BREAK
case 7:
YY_RULE_SETUP
#line 182 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 189 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DEFINE; }
YY_BREAK
case 8:
YY_RULE_SETUP
#line 183 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return GLOBAL; }
YY_BREAK
case 9:
YY_RULE_SETUP
#line 184 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CONSTANT; }
YY_BREAK
case 10:
YY_RULE_SETUP
#line 185 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return INTERNAL; }
YY_BREAK
case 11:
YY_RULE_SETUP
#line 186 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return LINKONCE; }
YY_BREAK
case 12:
YY_RULE_SETUP
#line 187 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return WEAK; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 188 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return APPENDING; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 189 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DLLIMPORT; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 190 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DLLEXPORT; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return HIDDEN; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 192 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return PROTECTED; }
YY_BREAK
case 18:
YY_RULE_SETUP
#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EXTERN_WEAK; }
YY_BREAK
case 19:
YY_RULE_SETUP
#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EXTERNAL; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return THREAD_LOCAL; }
YY_BREAK
case 21:
YY_RULE_SETUP
#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ZEROINITIALIZER; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DOTDOTDOT; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNDEF; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NULL_TOK; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TO; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TAIL; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TARGET; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TRIPLE; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DEPLIBS; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return DATALAYOUT; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return VOLATILE; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ALIGN; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SECTION; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ALIAS; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return MODULE; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ASM_TOK; }
YY_BREAK
case 37:
YY_RULE_SETUP
#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SIDEEFFECT; }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CC_TOK; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return CCC_TOK; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return FASTCC_TOK; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return COLDCC_TOK; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return X86_STDCALLCC_TOK; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return X86_FASTCALLCC_TOK; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return INREG; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SRET; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NOUNWIND; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NORETURN; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::VoidTy, VOID); }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 227 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 234 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::FloatTy, FLOAT); }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::DoubleTy,DOUBLE);}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TY(Type::LabelTy, LABEL); }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 237 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return TYPE; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OPAQUE; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 239 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ uint64_t NumBits = atoull(yytext+1);
if (NumBits < IntegerType::MIN_INT_BITS ||
NumBits > IntegerType::MAX_INT_BITS)
@ -1543,347 +1550,347 @@ YY_RULE_SETUP
YY_BREAK
case 55:
YY_RULE_SETUP
#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 247 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Add, ADD); }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 248 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Sub, SUB); }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 249 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Mul, MUL); }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 250 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 251 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 245 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 246 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, URem, UREM); }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 247 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, SRem, SREM); }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 248 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, FRem, FREM); }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 249 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Shl, SHL); }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 250 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, LShr, LSHR); }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 251 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, AShr, ASHR); }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, And, AND); }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Or , OR ); }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(BinaryOpVal, Xor, XOR); }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ICmp, ICMP); }
YY_BREAK
case 71:
YY_RULE_SETUP
#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, FCmp, FCMP); }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return EQ; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return NE; }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SLT; }
YY_BREAK
case 75:
YY_RULE_SETUP
#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SGT; }
YY_BREAK
case 76:
YY_RULE_SETUP
#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SLE; }
YY_BREAK
case 77:
YY_RULE_SETUP
#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return SGE; }
YY_BREAK
case 78:
YY_RULE_SETUP
#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ULT; }
YY_BREAK
case 79:
YY_RULE_SETUP
#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UGT; }
YY_BREAK
case 80:
YY_RULE_SETUP
#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ULE; }
YY_BREAK
case 81:
YY_RULE_SETUP
#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UGE; }
YY_BREAK
case 82:
YY_RULE_SETUP
#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OEQ; }
YY_BREAK
case 83:
YY_RULE_SETUP
#line 269 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ONE; }
YY_BREAK
case 84:
YY_RULE_SETUP
#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OLT; }
YY_BREAK
case 85:
YY_RULE_SETUP
#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OGT; }
YY_BREAK
case 86:
YY_RULE_SETUP
#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OLE; }
YY_BREAK
case 87:
YY_RULE_SETUP
#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return OGE; }
YY_BREAK
case 88:
YY_RULE_SETUP
#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return ORD; }
YY_BREAK
case 89:
YY_RULE_SETUP
#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNO; }
YY_BREAK
case 90:
YY_RULE_SETUP
#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UEQ; }
YY_BREAK
case 91:
YY_RULE_SETUP
#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return UNE; }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
YY_BREAK
case 93:
YY_RULE_SETUP
#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, Call, CALL); }
YY_BREAK
case 94:
YY_RULE_SETUP
#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, Trunc, TRUNC); }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, ZExt, ZEXT); }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, SExt, SEXT); }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPExt, FPEXT); }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 290 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(CastOpVal, BitCast, BITCAST); }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, Select, SELECT); }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, VAArg , VAARG); }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Ret, RET); }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Br, BR); }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Switch, SWITCH); }
YY_BREAK
case 111:
YY_RULE_SETUP
#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Invoke, INVOKE); }
YY_BREAK
case 112:
YY_RULE_SETUP
#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Unwind, UNWIND); }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Malloc, MALLOC); }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Free, FREE); }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 312 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Load, LOAD); }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 313 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, Store, STORE); }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 316 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 317 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 321 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
llvmAsmlval.StrVal = new std::string(yytext+1); // Skip %
return LOCALVAR;
@ -1891,7 +1898,7 @@ YY_RULE_SETUP
YY_BREAK
case 124:
YY_RULE_SETUP
#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 325 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
llvmAsmlval.StrVal = new std::string(yytext+1); // Skip @
return GLOBALVAR;
@ -1899,7 +1906,7 @@ YY_RULE_SETUP
YY_BREAK
case 125:
YY_RULE_SETUP
#line 322 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 329 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
yytext[yyleng-1] = 0; // nuke colon
llvmAsmlval.StrVal = new std::string(yytext);
@ -1908,10 +1915,10 @@ YY_RULE_SETUP
YY_BREAK
case 126:
YY_RULE_SETUP
#line 327 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 334 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
yytext[yyleng-2] = 0; // nuke colon, end quote
const char* EndChar = UnEscapeLexed(yytext+1);
const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+1, EndChar - yytext - 1);
return LABELSTR;
@ -1919,9 +1926,9 @@ YY_RULE_SETUP
YY_BREAK
case 127:
YY_RULE_SETUP
#line 335 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 342 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+1);
const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+1, EndChar - yytext - 1);
return STRINGCONSTANT;
@ -1929,10 +1936,11 @@ YY_RULE_SETUP
YY_BREAK
case 128:
YY_RULE_SETUP
#line 341 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 348 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+2);
const char* EndChar =
UnEscapeLexed(yytext+2, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+2, EndChar - yytext - 2);
return ATSTRINGCONSTANT;
@ -1940,10 +1948,11 @@ YY_RULE_SETUP
YY_BREAK
case 129:
YY_RULE_SETUP
#line 348 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 356 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+2);
const char* EndChar =
UnEscapeLexed(yytext+2, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+2, EndChar - yytext - 2);
return PCTSTRINGCONSTANT;
@ -1951,7 +1960,7 @@ YY_RULE_SETUP
YY_BREAK
case 130:
YY_RULE_SETUP
#line 355 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 364 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint32_t numBits = ((yyleng * 64) / 19) + 1;
APInt Tmp(numBits, yytext, yyleng, 10);
@ -1969,7 +1978,7 @@ YY_RULE_SETUP
YY_BREAK
case 131:
YY_RULE_SETUP
#line 369 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 378 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint32_t numBits = (((yyleng-1) * 64) / 19) + 2;
APInt Tmp(numBits, yytext, yyleng, 10);
@ -1987,7 +1996,7 @@ YY_RULE_SETUP
YY_BREAK
case 132:
YY_RULE_SETUP
#line 384 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 393 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ int len = yyleng - 3;
uint32_t bits = len * 4;
APInt Tmp(bits, yytext+3, len, 16);
@ -2008,7 +2017,7 @@ YY_RULE_SETUP
YY_BREAK
case 133:
YY_RULE_SETUP
#line 402 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 411 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
if ((unsigned)Val != Val)
@ -2019,7 +2028,7 @@ YY_RULE_SETUP
YY_BREAK
case 134:
YY_RULE_SETUP
#line 409 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 418 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
if ((unsigned)Val != Val)
@ -2030,16 +2039,16 @@ YY_RULE_SETUP
YY_BREAK
case 135:
YY_RULE_SETUP
#line 417 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 426 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 418 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 427 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 420 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 429 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{
/* Make sure to free the internal buffers for flex when we are
* done reading our input!
@ -2050,20 +2059,20 @@ case YY_STATE_EOF(INITIAL):
YY_BREAK
case 137:
YY_RULE_SETUP
#line 428 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 437 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 429 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 438 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
{ return yytext[0]; }
YY_BREAK
case 139:
YY_RULE_SETUP
#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 440 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 2067 "Lexer.cpp"
#line 2076 "Lexer.cpp"
case YY_END_OF_BUFFER:
{
@ -2941,5 +2950,5 @@ int main()
return 0;
}
#endif
#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
#line 440 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"

View File

@ -102,15 +102,22 @@ static double HexToFP(const char *Buffer) {
// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
// appropriate character.
char *UnEscapeLexed(char *Buffer) {
char *UnEscapeLexed(char *Buffer, char* EndBuffer) {
char *BOut = Buffer;
for (char *BIn = Buffer; *BIn; ) {
if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
*BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
BIn[3] = Tmp; // Restore character
BIn += 3; // Skip over handled chars
++BOut;
if (BIn[0] == '\\') {
if (BIn < EndBuffer-1 && BIn[1] == '\\') {
*BOut++ = '\\'; // Two \ becomes one
BIn += 2;
} else if (BIn < EndBuffer-2 && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
char Tmp = BIn[3]; BIn[3] = 0; // Terminate string
*BOut = (char)strtol(BIn+1, 0, 16); // Convert to number
BIn[3] = Tmp; // Restore character
BIn += 3; // Skip over handled chars
++BOut;
} else {
*BOut++ = *BIn++;
}
} else {
*BOut++ = *BIn++;
}
@ -326,28 +333,30 @@ shufflevector { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
}
{QuoteLabel} {
yytext[yyleng-2] = 0; // nuke colon, end quote
const char* EndChar = UnEscapeLexed(yytext+1);
const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+1, EndChar - yytext - 1);
return LABELSTR;
}
{StringConstant} { yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+1);
const char* EndChar = UnEscapeLexed(yytext+1, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+1, EndChar - yytext - 1);
return STRINGCONSTANT;
}
{AtStringConstant} {
yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+2);
const char* EndChar =
UnEscapeLexed(yytext+2, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+2, EndChar - yytext - 2);
return ATSTRINGCONSTANT;
}
{PctStringConstant} {
yytext[yyleng-1] = 0; // nuke end quote
const char* EndChar = UnEscapeLexed(yytext+2);
const char* EndChar =
UnEscapeLexed(yytext+2, yytext+yyleng);
llvmAsmlval.StrVal =
new std::string(yytext+2, EndChar - yytext - 2);
return PCTSTRINGCONSTANT;