From 86811683b071415c47668781ab5fd7241f85ea55 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Sun, 6 Dec 2020 17:03:29 +0330 Subject: [PATCH] LibRegex: Remove Lexer::slice_back() and just use StringViews --- Libraries/LibRegex/RegexLexer.h | 2 -- Libraries/LibRegex/RegexParser.cpp | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Libraries/LibRegex/RegexLexer.h b/Libraries/LibRegex/RegexLexer.h index 7a54dea091e..959fa50c33f 100644 --- a/Libraries/LibRegex/RegexLexer.h +++ b/Libraries/LibRegex/RegexLexer.h @@ -94,8 +94,6 @@ public: bool try_skip(char); char skip(); - StringView slice_back(size_t offset) const { return m_source.substring_view(m_position - offset - 1, offset); } - private: ALWAYS_INLINE char peek(size_t offset = 0) const; ALWAYS_INLINE void consume(); diff --git a/Libraries/LibRegex/RegexParser.cpp b/Libraries/LibRegex/RegexParser.cpp index aa22be74b23..ca86012f537 100644 --- a/Libraries/LibRegex/RegexParser.cpp +++ b/Libraries/LibRegex/RegexParser.cpp @@ -803,6 +803,7 @@ Optional ECMA262Parser::read_digits(ECMA262Parser::ReadDigitsInitialZe int count = 0; size_t offset = 0; + auto start_token = m_parser_state.current_token; while (match(TokenType::Char)) { auto c = m_parser_state.current_token.value(); if (follow_policy == ReadDigitFollowPolicy::DisallowDigit) { @@ -826,7 +827,7 @@ Optional ECMA262Parser::read_digits(ECMA262Parser::ReadDigitsInitialZe ++count; } - auto str = m_parser_state.lexer.slice_back(offset); + StringView str { start_token.value().characters_without_null_termination(), offset }; if (hex) return AK::StringUtils::convert_to_uint_from_hex(str); @@ -1371,6 +1372,7 @@ StringView ECMA262Parser::read_capture_group_specifier(bool take_starting_angle_ if (take_starting_angle_bracket && !consume("<")) return {}; + auto start_token = m_parser_state.current_token; size_t offset = 0; while (match(TokenType::Char)) { auto c = m_parser_state.current_token.value(); @@ -1379,7 +1381,7 @@ StringView ECMA262Parser::read_capture_group_specifier(bool take_starting_angle_ offset += consume().value().length(); } - auto name = m_parser_state.lexer.slice_back(offset); + StringView name { start_token.value().characters_without_null_termination(), offset }; if (!consume(">") || name.is_empty()) set_error(Error::InvalidNameForCaptureGroup);