forked from OSchip/llvm-project
Use this new fangled StringSwitch technology.
llvm-svn: 121273
This commit is contained in:
parent
dae32fd206
commit
55bc7187ac
|
@ -12,10 +12,11 @@
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "TGLexer.h"
|
#include "TGLexer.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
|
||||||
#include "llvm/Support/SourceMgr.h"
|
#include "llvm/Support/SourceMgr.h"
|
||||||
#include "llvm/Support/MemoryBuffer.h"
|
#include "llvm/Support/MemoryBuffer.h"
|
||||||
#include "llvm/Config/config.h"
|
#include "llvm/Config/config.h"
|
||||||
|
#include "llvm/ADT/StringSwitch.h"
|
||||||
|
#include "llvm/ADT/Twine.h"
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
@ -419,36 +420,23 @@ tgtok::TokKind TGLexer::LexExclaim() {
|
||||||
++CurPtr;
|
++CurPtr;
|
||||||
|
|
||||||
// Check to see which operator this is.
|
// Check to see which operator this is.
|
||||||
switch (CurPtr - Start) {
|
tgtok::TokKind Kind =
|
||||||
default:
|
StringSwitch<tgtok::TokKind>(StringRef(Start, CurPtr - Start))
|
||||||
break;
|
.Case("eq", tgtok::XEq)
|
||||||
case 2:
|
.Case("if", tgtok::XIf)
|
||||||
if (!memcmp(Start, "eq", 2)) return tgtok::XEq;
|
.Case("car", tgtok::XCar)
|
||||||
if (!memcmp(Start, "if", 2)) return tgtok::XIf;
|
.Case("cdr", tgtok::XCdr)
|
||||||
break;
|
.Case("con", tgtok::XConcat)
|
||||||
case 3:
|
.Case("shl", tgtok::XSHL)
|
||||||
if (!memcmp(Start, "car", 3)) return tgtok::XCar;
|
.Case("sra", tgtok::XSRA)
|
||||||
if (!memcmp(Start, "cdr", 3)) return tgtok::XCdr;
|
.Case("srl", tgtok::XSRL)
|
||||||
if (!memcmp(Start, "con", 3)) return tgtok::XConcat;
|
.Case("cast", tgtok::XCast)
|
||||||
if (!memcmp(Start, "shl", 3)) return tgtok::XSHL;
|
.Case("null", tgtok::XNull)
|
||||||
if (!memcmp(Start, "sra", 3)) return tgtok::XSRA;
|
.Case("subst", tgtok::XSubst)
|
||||||
if (!memcmp(Start, "srl", 3)) return tgtok::XSRL;
|
.Case("foreach", tgtok::XForEach)
|
||||||
break;
|
.Case("strconcat", tgtok::XStrConcat)
|
||||||
case 4:
|
.Default(tgtok::Error);
|
||||||
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 Kind != tgtok::Error ? Kind : ReturnError(Start-1, "Unknown operator");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue