From 95c49f2ac4ab9fd852a403ec24f2f4d38f8b66c0 Mon Sep 17 00:00:00 2001 From: Robin Linden Date: Tue, 21 Jan 2025 21:43:46 +0100 Subject: [PATCH] css2: Support tokenizing cdo tokens --- css2/tokenizer.cpp | 9 +++++++++ css2/tokenizer_test.cpp | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/css2/tokenizer.cpp b/css2/tokenizer.cpp index 6999557f..2b2b7ada 100644 --- a/css2/tokenizer.cpp +++ b/css2/tokenizer.cpp @@ -165,6 +165,15 @@ void Tokenizer::run() { case ';': emit(SemiColonToken{}); continue; + case '<': + if (peek_input(0) == '!' && peek_input(1) == '-' && peek_input(2) == '-') { + emit(CdoToken{}); + pos_ += 3; + continue; + } + + emit(DelimToken{'<'}); + continue; case '[': emit(OpenSquareToken{}); continue; diff --git a/css2/tokenizer_test.cpp b/css2/tokenizer_test.cpp index 4b7b9704..464333f9 100644 --- a/css2/tokenizer_test.cpp +++ b/css2/tokenizer_test.cpp @@ -508,6 +508,18 @@ int main() { expect_token(output, IdentToken{"lol"}); }); + s.add_test("<: delim", [](etest::IActions &a) { + auto output = run_tokenizer(a, "