1313
1414#include " lldb/ValueObject/DILLexer.h"
1515#include " lldb/Utility/Status.h"
16- #include " lldb/ValueObject/DILParser.h"
1716#include " llvm/ADT/StringSwitch.h"
1817
1918namespace lldb_private ::dil {
@@ -30,14 +29,8 @@ llvm::StringRef Token::GetTokenName(Kind kind) {
3029 return " identifier" ;
3130 case Kind::l_paren:
3231 return " l_paren" ;
33- case Kind::l_square:
34- return " l_square" ;
35- case Kind::numeric_constant:
36- return " numeric_constant" ;
3732 case Kind::r_paren:
3833 return " r_paren" ;
39- case Kind::r_square:
40- return " r_square" ;
4134 case Token::star:
4235 return " star" ;
4336 }
@@ -64,18 +57,6 @@ static std::optional<llvm::StringRef> IsWord(llvm::StringRef expr,
6457 return candidate;
6558}
6659
67- static bool IsNumberBodyChar (char ch) { return IsDigit (ch) || IsLetter (ch); }
68-
69- static std::optional<llvm::StringRef> IsNumber (llvm::StringRef expr,
70- llvm::StringRef &remainder) {
71- if (IsDigit (remainder[0 ])) {
72- llvm::StringRef number = remainder.take_while (IsNumberBodyChar);
73- remainder = remainder.drop_front (number.size ());
74- return number;
75- }
76- return std::nullopt ;
77- }
78-
7960llvm::Expected<DILLexer> DILLexer::Create (llvm::StringRef expr) {
8061 std::vector<Token> tokens;
8162 llvm::StringRef remainder = expr;
@@ -100,26 +81,21 @@ llvm::Expected<Token> DILLexer::Lex(llvm::StringRef expr,
10081 return Token (Token::eof, " " , (uint32_t )expr.size ());
10182
10283 uint32_t position = cur_pos - expr.begin ();
103- std::optional<llvm::StringRef> maybe_number = IsNumber (expr, remainder);
104- if (maybe_number)
105- return Token (Token::numeric_constant, maybe_number->str (), position);
10684 std::optional<llvm::StringRef> maybe_word = IsWord (expr, remainder);
10785 if (maybe_word)
10886 return Token (Token::identifier, maybe_word->str (), position);
10987
11088 constexpr std::pair<Token::Kind, const char *> operators[] = {
111- {Token::amp, " &" }, {Token::coloncolon, " ::" }, {Token::l_paren, " (" },
112- {Token::l_square, " [" }, {Token::r_paren, " )" }, {Token::r_square, " ]" },
113- {Token::star, " *" },
89+ {Token::amp, " &" }, {Token::coloncolon, " ::" }, {Token::l_paren, " (" },
90+ {Token::r_paren, " )" }, {Token::star, " *" },
11491 };
11592 for (auto [kind, str] : operators) {
11693 if (remainder.consume_front (str))
11794 return Token (kind, str, position);
11895 }
11996
12097 // Unrecognized character(s) in string; unable to lex it.
121- return llvm::make_error<DILDiagnosticError>(expr, " unrecognized token" ,
122- position);
98+ return llvm::createStringError (" Unable to lex input string" );
12399}
124100
125101} // namespace lldb_private::dil
0 commit comments