mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-09 17:44:56 +09: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
Notes:
sideshowbarker
2024-07-17 20:16:15 +09:00
Author: https://github.com/IdanHo
Commit: d49d2c7ec4
Pull-request: https://github.com/SerenityOS/serenity/pull/12120
Reviewed-by: https://github.com/alimpfard ✅
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