[Lldb-commits] [lldb] [lldb][ObjC][NFCI] Replace StringLexer with llvm::StringRef (PR #172466)
Felipe de Azevedo Piovezan via lldb-commits
lldb-commits at lists.llvm.org
Wed Dec 17 02:08:28 PST 2025
================
@@ -35,31 +51,33 @@ AppleObjCTypeEncodingParser::AppleObjCTypeEncodingParser(
runtime.GetProcess()->GetTarget().GetArchitecture().GetTriple());
}
-std::string AppleObjCTypeEncodingParser::ReadStructName(StringLexer &type) {
+std::string AppleObjCTypeEncodingParser::ReadStructName(llvm::StringRef &type) {
StreamString buffer;
- while (type.HasAtLeast(1) && type.Peek() != '=')
- buffer.Printf("%c", type.Next());
+ while (!type.empty() && type.front() != '=')
+ buffer.Printf("%c", popChar(type));
+
return std::string(buffer.GetString());
}
std::optional<std::string>
-AppleObjCTypeEncodingParser::ReadQuotedString(StringLexer &type) {
- if (!type.HasAtLeast(1))
+AppleObjCTypeEncodingParser::ReadQuotedString(llvm::StringRef &type) {
+ if (type.empty())
return std::nullopt;
StreamString buffer;
- while (type.Peek() != '"') {
- buffer.Printf("%c", type.Next());
- if (!type.HasAtLeast(1))
+ while (type.front() != '"') {
+ buffer.Printf("%c", popChar(type));
+
+ if (type.empty())
return std::nullopt;
}
return std::string(buffer.GetString());
}
-uint32_t AppleObjCTypeEncodingParser::ReadNumber(StringLexer &type) {
+uint32_t AppleObjCTypeEncodingParser::ReadNumber(llvm::StringRef &type) {
uint32_t total = 0;
- while (type.HasAtLeast(1) && isdigit(type.Peek()))
- total = 10 * total + (type.Next() - '0');
+ while (!type.empty() && isdigit(type.front()))
+ total = 10 * total + (popChar(type) - '0');
----------------
felipepiovezan wrote:
FYI:
```
bool StringRef::consumeInteger (unsigned Radix, T &Result)
Parse the current string as an integer of the specified radix.
If Radix is specified as zero, this does radix autosensing using extended C rules: 0 is octal, 0x is hex, 0b is binary.
If the string does not begin with a number of the specified radix, this returns true to signify the error. The string is considered erroneous if empty or if it overflows T. The portion of the string representing the discovered numeric value is removed from the beginning of the string.
Definition at line [501](https://llvm.org/doxygen/StringRef_8h_source.html#l00501) of file [StringRef.h](https://llvm.org/doxygen/StringRef_8h_source.html).
```
https://github.com/llvm/llvm-project/pull/172466
More information about the lldb-commits
mailing list