Cleanup table a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121250 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2010-12-08 13:03:15 +00:00
parent 275bf63115
commit dd2b6cbb62

View File

@ -412,29 +412,43 @@ tgtok::TokKind TGLexer::LexBracket() {
/// LexExclaim - Lex '!' and '![a-zA-Z]+'. /// LexExclaim - Lex '!' and '![a-zA-Z]+'.
tgtok::TokKind TGLexer::LexExclaim() { tgtok::TokKind TGLexer::LexExclaim() {
if (!isalpha(*CurPtr)) if (!isalpha(*CurPtr))
return ReturnError(CurPtr-1, "Invalid \"!operator\""); return ReturnError(CurPtr - 1, "Invalid \"!operator\"");
const char *Start = CurPtr++; const char *Start = CurPtr++;
while (isalpha(*CurPtr)) while (isalpha(*CurPtr))
++CurPtr; ++CurPtr;
// Check to see which operator this is. // Check to see which operator this is.
unsigned Len = CurPtr-Start; switch (CurPtr - Start) {
default:
if (Len == 3 && !memcmp(Start, "con", 3)) return tgtok::XConcat; break;
if (Len == 3 && !memcmp(Start, "sra", 3)) return tgtok::XSRA; case 2:
if (Len == 3 && !memcmp(Start, "srl", 3)) return tgtok::XSRL; if (!memcmp(Start, "eq", 2)) return tgtok::XEq;
if (Len == 3 && !memcmp(Start, "shl", 3)) return tgtok::XSHL; if (!memcmp(Start, "if", 2)) return tgtok::XIf;
if (Len == 2 && !memcmp(Start, "eq", 2)) return tgtok::XEq; break;
if (Len == 9 && !memcmp(Start, "strconcat", 9)) return tgtok::XStrConcat; case 3:
if (Len == 5 && !memcmp(Start, "subst", 5)) return tgtok::XSubst; if (!memcmp(Start, "car", 3)) return tgtok::XCar;
if (Len == 7 && !memcmp(Start, "foreach", 7)) return tgtok::XForEach; if (!memcmp(Start, "cdr", 3)) return tgtok::XCdr;
if (Len == 4 && !memcmp(Start, "cast", 4)) return tgtok::XCast; if (!memcmp(Start, "con", 3)) return tgtok::XConcat;
if (Len == 3 && !memcmp(Start, "car", 3)) return tgtok::XCar; if (!memcmp(Start, "shl", 3)) return tgtok::XSHL;
if (Len == 3 && !memcmp(Start, "cdr", 3)) return tgtok::XCdr; if (!memcmp(Start, "sra", 3)) return tgtok::XSRA;
if (Len == 4 && !memcmp(Start, "null", 4)) return tgtok::XNull; if (!memcmp(Start, "srl", 3)) return tgtok::XSRL;
if (Len == 2 && !memcmp(Start, "if", 2)) return tgtok::XIf; break;
case 4:
if (!memcmp(Start, "cast", 4)) return tgtok::XCast;
if (!memcmp(Start, "null", 4)) return tgtok::XNull;
break;
case 5:
if (!memcmp(Start, "subst", 5)) return tgtok::XSubst;
break;
case 7:
if (!memcmp(Start, "foreach", 7)) return tgtok::XForEach;
break;
case 9:
if (!memcmp(Start, "strconcat", 9)) return tgtok::XStrConcat;
break;
}
return ReturnError(Start-1, "Unknown operator"); return ReturnError(Start - 1, "Unknown operator");
} }