diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp index 545ee4cfbd..b0736ae489 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp @@ -309,6 +309,30 @@ U32Triplet Tokenizer::peek_triplet() const return values; } +U32Twin Tokenizer::start_of_input_stream_twin() +{ + U32Twin twin; + // FIXME: Reconsuming just to read the current code point again is weird. + reconsume_current_input_code_point(); + twin.first = next_code_point(); + twin.second = peek_code_point(); + + return twin; +} + +U32Triplet Tokenizer::start_of_input_stream_triplet() +{ + U32Triplet triplet; + // FIXME: Reconsuming just to read the current code point again is weird. + reconsume_current_input_code_point(); + triplet.first = next_code_point(); + auto next_two = peek_twin(); + triplet.second = next_two.first; + triplet.third = next_two.second; + + return triplet; +} + Token Tokenizer::create_new_token(Token::Type type) { Token token = {}; diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h index 1e60df0a7c..2d54d1ea8e 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h @@ -79,6 +79,9 @@ private: [[nodiscard]] U32Twin peek_twin() const; [[nodiscard]] U32Triplet peek_triplet() const; + [[nodiscard]] U32Twin start_of_input_stream_twin(); + [[nodiscard]] U32Triplet start_of_input_stream_triplet(); + [[nodiscard]] static Token create_new_token(Token::Type); [[nodiscard]] static Token create_value_token(Token::Type, String value); [[nodiscard]] static Token create_value_token(Token::Type, u32 value);