diff options
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MILexer.h')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.h | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.h b/llvm/lib/CodeGen/MIRParser/MILexer.h index 79bcb7fce01..752344ed050 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.h +++ b/llvm/lib/CodeGen/MIRParser/MILexer.h @@ -94,26 +94,19 @@ struct MIToken { private: TokenKind Kind; - unsigned StringOffset; - bool HasStringValue; StringRef Range; - std::string StringValue; + StringRef StringValue; + std::string StringValueStorage; APSInt IntVal; public: - MIToken(TokenKind Kind, StringRef Range, unsigned StringOffset = 0) - : Kind(Kind), StringOffset(StringOffset), HasStringValue(false), - Range(Range) {} + MIToken() : Kind(Error) {} - MIToken(TokenKind Kind, StringRef Range, std::string StringValue, - unsigned StringOffset = 0) - : Kind(Kind), StringOffset(StringOffset), HasStringValue(true), - Range(Range), StringValue(std::move(StringValue)) {} + MIToken &reset(TokenKind Kind, StringRef Range); - MIToken(TokenKind Kind, StringRef Range, const APSInt &IntVal, - unsigned StringOffset = 0) - : Kind(Kind), StringOffset(StringOffset), HasStringValue(false), - Range(Range), IntVal(IntVal) {} + MIToken &setStringValue(StringRef StrVal); + MIToken &setOwnedStringValue(std::string StrVal); + MIToken &setIntegerValue(APSInt IntVal); TokenKind kind() const { return Kind; } @@ -141,17 +134,10 @@ public: StringRef::iterator location() const { return Range.begin(); } - /// Return the token's raw string value. - /// - /// If the string value is quoted, this method returns that quoted string as - /// it is, without unescaping the string value. - StringRef rawStringValue() const { return Range.drop_front(StringOffset); } + StringRef range() const { return Range; } /// Return the token's string value. - StringRef stringValue() const { - return HasStringValue ? StringRef(StringValue) - : Range.drop_front(StringOffset); - } + StringRef stringValue() const { return StringValue; } const APSInt &integerValue() const { return IntVal; } |