mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:34:57 +00:00
AK: Add a consume_until(StringView) overload to GenericLexer
This allows us to skip a strlen call.
This commit is contained in:
parent
10b25d2a57
commit
d49d2c7ec4
3 changed files with 18 additions and 1 deletions
|
@ -84,6 +84,22 @@ StringView GenericLexer::consume_until(const char* stop)
|
|||
return m_input.substring_view(start, length);
|
||||
}
|
||||
|
||||
// Consume and return characters until the string `stop` is found
|
||||
// The `stop` string is ignored, as it is user-defined
|
||||
StringView GenericLexer::consume_until(StringView stop)
|
||||
{
|
||||
size_t start = m_index;
|
||||
while (!is_eof() && !next_is(stop))
|
||||
m_index++;
|
||||
size_t length = m_index - start;
|
||||
|
||||
ignore(stop.length());
|
||||
|
||||
if (length == 0)
|
||||
return {};
|
||||
return m_input.substring_view(start, length);
|
||||
}
|
||||
|
||||
/*
|
||||
* Consume a string surrounded by single or double quotes. The returned
|
||||
* StringView does not include the quotes. An escape character can be provided
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue