[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.cpp.cvs Lexer.l.cvs
Reid Spencer
reid at x10sys.com
Tue May 22 12:08:35 PDT 2007
Changes in directory llvm/lib/AsmParser:
Lexer.cpp.cvs updated: 1.46 -> 1.47
Lexer.l.cvs updated: 1.38 -> 1.39
---
Log message:
Regenerate.
---
Diffs of the changes: (+186 -168)
Lexer.cpp.cvs | 323 +++++++++++++++++++++++++++++-----------------------------
Lexer.l.cvs | 31 +++--
2 files changed, 186 insertions(+), 168 deletions(-)
Index: llvm/lib/AsmParser/Lexer.cpp.cvs
diff -u llvm/lib/AsmParser/Lexer.cpp.cvs:1.46 llvm/lib/AsmParser/Lexer.cpp.cvs:1.47
--- llvm/lib/AsmParser/Lexer.cpp.cvs:1.46 Tue May 22 13:52:55 2007
+++ llvm/lib/AsmParser/Lexer.cpp.cvs Tue May 22 14:08:16 2007
@@ -20,7 +20,7 @@
/* A lexical scanner generated by flex*/
/* Scanner skeleton version:
- * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.46 2007/05/22 18:52:55 reid Exp $
+ * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.47 2007/05/22 19:08:16 reid Exp $
*/
#define FLEX_SCANNER
@@ -983,15 +983,22 @@
// 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 @@
/* 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 @@
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 @@
{ /* 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_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_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_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_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_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_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_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_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_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_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_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_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_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 @@
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 @@
return 0;
}
#endif
-#line 431 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#line 440 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
Index: llvm/lib/AsmParser/Lexer.l.cvs
diff -u llvm/lib/AsmParser/Lexer.l.cvs:1.38 llvm/lib/AsmParser/Lexer.l.cvs:1.39
--- llvm/lib/AsmParser/Lexer.l.cvs:1.38 Tue May 22 13:52:55 2007
+++ llvm/lib/AsmParser/Lexer.l.cvs Tue May 22 14:08:16 2007
@@ -102,15 +102,22 @@
// 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 @@
}
{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;
More information about the llvm-commits
mailing list