mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:57:44 +00:00
LibWeb: Rename CSS::Parser::SelectorParsingResult => ParsingResult
I'm going to use it for non-selector purposes too, so the name needed to change.
This commit is contained in:
parent
6c27e2938a
commit
00b84249d6
2 changed files with 49 additions and 49 deletions
|
@ -187,7 +187,7 @@ Optional<SelectorList> Parser::parse_as_selector()
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_selector(TokenStream<T>& tokens)
|
Result<SelectorList, Parser::ParsingResult> Parser::parse_a_selector(TokenStream<T>& tokens)
|
||||||
{
|
{
|
||||||
return parse_a_selector_list(tokens);
|
return parse_a_selector_list(tokens);
|
||||||
}
|
}
|
||||||
|
@ -202,13 +202,13 @@ Optional<SelectorList> Parser::parse_as_relative_selector()
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_relative_selector(TokenStream<T>& tokens)
|
Result<SelectorList, Parser::ParsingResult> Parser::parse_a_relative_selector(TokenStream<T>& tokens)
|
||||||
{
|
{
|
||||||
return parse_a_relative_selector_list(tokens);
|
return parse_a_relative_selector_list(tokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_selector_list(TokenStream<T>& tokens)
|
Result<SelectorList, Parser::ParsingResult> Parser::parse_a_selector_list(TokenStream<T>& tokens)
|
||||||
{
|
{
|
||||||
auto comma_separated_lists = parse_a_comma_separated_list_of_component_values(tokens);
|
auto comma_separated_lists = parse_a_comma_separated_list_of_component_values(tokens);
|
||||||
|
|
||||||
|
@ -222,13 +222,13 @@ Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_selector_lis
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectors.is_empty())
|
if (selectors.is_empty())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
return selectors;
|
return selectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_relative_selector_list(TokenStream<T>& tokens)
|
Result<SelectorList, Parser::ParsingResult> Parser::parse_a_relative_selector_list(TokenStream<T>& tokens)
|
||||||
{
|
{
|
||||||
auto comma_separated_lists = parse_a_comma_separated_list_of_component_values(tokens);
|
auto comma_separated_lists = parse_a_comma_separated_list_of_component_values(tokens);
|
||||||
|
|
||||||
|
@ -242,12 +242,12 @@ Result<SelectorList, Parser::SelectorParsingResult> Parser::parse_a_relative_sel
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectors.is_empty())
|
if (selectors.is_empty())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
return selectors;
|
return selectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<NonnullRefPtr<Selector>, Parser::SelectorParsingResult> Parser::parse_complex_selector(TokenStream<StyleComponentValueRule>& tokens, bool allow_starting_combinator)
|
Result<NonnullRefPtr<Selector>, Parser::ParsingResult> Parser::parse_complex_selector(TokenStream<StyleComponentValueRule>& tokens, bool allow_starting_combinator)
|
||||||
{
|
{
|
||||||
Vector<Selector::CompoundSelector> compound_selectors;
|
Vector<Selector::CompoundSelector> compound_selectors;
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ Result<NonnullRefPtr<Selector>, Parser::SelectorParsingResult> Parser::parse_com
|
||||||
return first_selector.error();
|
return first_selector.error();
|
||||||
if (!allow_starting_combinator) {
|
if (!allow_starting_combinator) {
|
||||||
if (first_selector.value().combinator != Selector::Combinator::Descendant)
|
if (first_selector.value().combinator != Selector::Combinator::Descendant)
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
first_selector.value().combinator = Selector::Combinator::None;
|
first_selector.value().combinator = Selector::Combinator::None;
|
||||||
}
|
}
|
||||||
compound_selectors.append(first_selector.value());
|
compound_selectors.append(first_selector.value());
|
||||||
|
@ -264,7 +264,7 @@ Result<NonnullRefPtr<Selector>, Parser::SelectorParsingResult> Parser::parse_com
|
||||||
while (tokens.has_next_token()) {
|
while (tokens.has_next_token()) {
|
||||||
auto compound_selector = parse_compound_selector(tokens);
|
auto compound_selector = parse_compound_selector(tokens);
|
||||||
if (compound_selector.is_error()) {
|
if (compound_selector.is_error()) {
|
||||||
if (compound_selector.error() == SelectorParsingResult::Done)
|
if (compound_selector.error() == ParsingResult::Done)
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
return compound_selector.error();
|
return compound_selector.error();
|
||||||
|
@ -273,12 +273,12 @@ Result<NonnullRefPtr<Selector>, Parser::SelectorParsingResult> Parser::parse_com
|
||||||
}
|
}
|
||||||
|
|
||||||
if (compound_selectors.is_empty())
|
if (compound_selectors.is_empty())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
return Selector::create(move(compound_selectors));
|
return Selector::create(move(compound_selectors));
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<Selector::CompoundSelector, Parser::SelectorParsingResult> Parser::parse_compound_selector(TokenStream<StyleComponentValueRule>& tokens)
|
Result<Selector::CompoundSelector, Parser::ParsingResult> Parser::parse_compound_selector(TokenStream<StyleComponentValueRule>& tokens)
|
||||||
{
|
{
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ Result<Selector::CompoundSelector, Parser::SelectorParsingResult> Parser::parse_
|
||||||
while (tokens.has_next_token()) {
|
while (tokens.has_next_token()) {
|
||||||
auto component = parse_simple_selector(tokens);
|
auto component = parse_simple_selector(tokens);
|
||||||
if (component.is_error()) {
|
if (component.is_error()) {
|
||||||
if (component.error() == SelectorParsingResult::Done)
|
if (component.error() == ParsingResult::Done)
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
return component.error();
|
return component.error();
|
||||||
|
@ -301,7 +301,7 @@ Result<Selector::CompoundSelector, Parser::SelectorParsingResult> Parser::parse_
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simple_selectors.is_empty())
|
if (simple_selectors.is_empty())
|
||||||
return SelectorParsingResult::Done;
|
return ParsingResult::Done;
|
||||||
|
|
||||||
return Selector::CompoundSelector { combinator, move(simple_selectors) };
|
return Selector::CompoundSelector { combinator, move(simple_selectors) };
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ Optional<Selector::Combinator> Parser::parse_selector_combinator(TokenStream<Sty
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_simple_selector(TokenStream<StyleComponentValueRule>& tokens)
|
Result<Selector::SimpleSelector, Parser::ParsingResult> Parser::parse_simple_selector(TokenStream<StyleComponentValueRule>& tokens)
|
||||||
{
|
{
|
||||||
auto peek_token_ends_selector = [&]() -> bool {
|
auto peek_token_ends_selector = [&]() -> bool {
|
||||||
auto& value = tokens.peek_token();
|
auto& value = tokens.peek_token();
|
||||||
|
@ -341,7 +341,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
};
|
};
|
||||||
|
|
||||||
if (peek_token_ends_selector())
|
if (peek_token_ends_selector())
|
||||||
return SelectorParsingResult::Done;
|
return ParsingResult::Done;
|
||||||
|
|
||||||
auto& first_value = tokens.next_token();
|
auto& first_value = tokens.next_token();
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
} else if (first_value.is(Token::Type::Hash)) {
|
} else if (first_value.is(Token::Type::Hash)) {
|
||||||
if (first_value.token().hash_type() != Token::HashType::Id) {
|
if (first_value.token().hash_type() != Token::HashType::Id) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Selector contains hash token that is not an id: {}", first_value.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Selector contains hash token that is not an id: {}", first_value.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
return Selector::SimpleSelector {
|
return Selector::SimpleSelector {
|
||||||
.type = Selector::SimpleSelector::Type::Id,
|
.type = Selector::SimpleSelector::Type::Id,
|
||||||
|
@ -362,12 +362,12 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
|
|
||||||
} else if (first_value.is(Token::Type::Delim) && first_value.token().delim() == "."sv) {
|
} else if (first_value.is(Token::Type::Delim) && first_value.token().delim() == "."sv) {
|
||||||
if (peek_token_ends_selector())
|
if (peek_token_ends_selector())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
auto& class_name_value = tokens.next_token();
|
auto& class_name_value = tokens.next_token();
|
||||||
if (!class_name_value.is(Token::Type::Ident)) {
|
if (!class_name_value.is(Token::Type::Ident)) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected an ident after '.', got: {}", class_name_value.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected an ident after '.', got: {}", class_name_value.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
return Selector::SimpleSelector {
|
return Selector::SimpleSelector {
|
||||||
.type = Selector::SimpleSelector::Type::Class,
|
.type = Selector::SimpleSelector::Type::Class,
|
||||||
|
@ -385,14 +385,14 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
|
|
||||||
if (attribute_parts.is_empty()) {
|
if (attribute_parts.is_empty()) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "CSS attribute selector is empty!");
|
dbgln_if(CSS_PARSER_DEBUG, "CSS attribute selector is empty!");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Handle namespace prefix for attribute name.
|
// FIXME: Handle namespace prefix for attribute name.
|
||||||
auto& attribute_part = attribute_parts.first();
|
auto& attribute_part = attribute_parts.first();
|
||||||
if (!attribute_part.is(Token::Type::Ident)) {
|
if (!attribute_part.is(Token::Type::Ident)) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected ident for attribute name, got: '{}'", attribute_part.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected ident for attribute name, got: '{}'", attribute_part.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
Selector::SimpleSelector simple_selector {
|
Selector::SimpleSelector simple_selector {
|
||||||
|
@ -415,7 +415,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
auto& delim_part = attribute_parts.at(attribute_index);
|
auto& delim_part = attribute_parts.at(attribute_index);
|
||||||
if (!delim_part.is(Token::Type::Delim)) {
|
if (!delim_part.is(Token::Type::Delim)) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected a delim for attribute comparison, got: '{}'", delim_part.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected a delim for attribute comparison, got: '{}'", delim_part.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delim_part.token().delim() == "="sv) {
|
if (delim_part.token().delim() == "="sv) {
|
||||||
|
@ -425,13 +425,13 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
attribute_index++;
|
attribute_index++;
|
||||||
if (attribute_index >= attribute_parts.size()) {
|
if (attribute_index >= attribute_parts.size()) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Attribute selector ended part way through a match type.");
|
dbgln_if(CSS_PARSER_DEBUG, "Attribute selector ended part way through a match type.");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto& delim_second_part = attribute_parts.at(attribute_index);
|
auto& delim_second_part = attribute_parts.at(attribute_index);
|
||||||
if (!(delim_second_part.is(Token::Type::Delim) && delim_second_part.token().delim() == "=")) {
|
if (!(delim_second_part.is(Token::Type::Delim) && delim_second_part.token().delim() == "=")) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected a double delim for attribute comparison, got: '{}{}'", delim_part.to_debug_string(), delim_second_part.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected a double delim for attribute comparison, got: '{}{}'", delim_part.to_debug_string(), delim_second_part.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delim_part.token().delim() == "~"sv) {
|
if (delim_part.token().delim() == "~"sv) {
|
||||||
|
@ -454,13 +454,13 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
|
|
||||||
if (attribute_index >= attribute_parts.size()) {
|
if (attribute_index >= attribute_parts.size()) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Attribute selector ended without a value to match.");
|
dbgln_if(CSS_PARSER_DEBUG, "Attribute selector ended without a value to match.");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto& value_part = attribute_parts.at(attribute_index);
|
auto& value_part = attribute_parts.at(attribute_index);
|
||||||
if (!value_part.is(Token::Type::Ident) && !value_part.is(Token::Type::String)) {
|
if (!value_part.is(Token::Type::Ident) && !value_part.is(Token::Type::String)) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected a string or ident for the value to match attribute against, got: '{}'", value_part.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected a string or ident for the value to match attribute against, got: '{}'", value_part.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
simple_selector.attribute.value = value_part.token().is(Token::Type::Ident) ? value_part.token().ident() : value_part.token().string();
|
simple_selector.attribute.value = value_part.token().is(Token::Type::Ident) ? value_part.token().ident() : value_part.token().string();
|
||||||
|
|
||||||
|
@ -469,14 +469,14 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
|
|
||||||
} else if (first_value.is(Token::Type::Colon)) {
|
} else if (first_value.is(Token::Type::Colon)) {
|
||||||
if (peek_token_ends_selector())
|
if (peek_token_ends_selector())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
bool is_pseudo = false;
|
bool is_pseudo = false;
|
||||||
if (tokens.peek_token().is(Token::Type::Colon)) {
|
if (tokens.peek_token().is(Token::Type::Colon)) {
|
||||||
is_pseudo = true;
|
is_pseudo = true;
|
||||||
tokens.next_token();
|
tokens.next_token();
|
||||||
if (peek_token_ends_selector())
|
if (peek_token_ends_selector())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_pseudo) {
|
if (is_pseudo) {
|
||||||
|
@ -487,12 +487,12 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
auto& name_token = tokens.next_token();
|
auto& name_token = tokens.next_token();
|
||||||
if (!name_token.is(Token::Type::Ident)) {
|
if (!name_token.is(Token::Type::Ident)) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Expected an ident for pseudo-element, got: '{}'", name_token.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Expected an ident for pseudo-element, got: '{}'", name_token.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto pseudo_name = name_token.token().ident();
|
auto pseudo_name = name_token.token().ident();
|
||||||
if (has_ignored_vendor_prefix(pseudo_name))
|
if (has_ignored_vendor_prefix(pseudo_name))
|
||||||
return SelectorParsingResult::IncludesIgnoredVendorPrefix;
|
return ParsingResult::IncludesIgnoredVendorPrefix;
|
||||||
|
|
||||||
if (pseudo_name.equals_ignoring_case("after")) {
|
if (pseudo_name.equals_ignoring_case("after")) {
|
||||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::After;
|
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::After;
|
||||||
|
@ -504,14 +504,14 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Unrecognized pseudo-element: '{}'", pseudo_name);
|
dbgln_if(CSS_PARSER_DEBUG, "Unrecognized pseudo-element: '{}'", pseudo_name);
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
return simple_selector;
|
return simple_selector;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peek_token_ends_selector())
|
if (peek_token_ends_selector())
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
|
|
||||||
auto& pseudo_class_token = tokens.next_token();
|
auto& pseudo_class_token = tokens.next_token();
|
||||||
Selector::SimpleSelector simple_selector {
|
Selector::SimpleSelector simple_selector {
|
||||||
|
@ -521,7 +521,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
if (pseudo_class_token.is(Token::Type::Ident)) {
|
if (pseudo_class_token.is(Token::Type::Ident)) {
|
||||||
auto pseudo_name = pseudo_class_token.token().ident();
|
auto pseudo_name = pseudo_class_token.token().ident();
|
||||||
if (has_ignored_vendor_prefix(pseudo_name))
|
if (has_ignored_vendor_prefix(pseudo_name))
|
||||||
return SelectorParsingResult::IncludesIgnoredVendorPrefix;
|
return ParsingResult::IncludesIgnoredVendorPrefix;
|
||||||
|
|
||||||
if (pseudo_name.equals_ignoring_case("active")) {
|
if (pseudo_name.equals_ignoring_case("active")) {
|
||||||
simple_selector.pseudo_class.type = Selector::SimpleSelector::PseudoClass::Type::Active;
|
simple_selector.pseudo_class.type = Selector::SimpleSelector::PseudoClass::Type::Active;
|
||||||
|
@ -572,7 +572,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
simple_selector.pseudo_element = Selector::SimpleSelector::PseudoElement::FirstLine;
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Unknown pseudo class: '{}'", pseudo_name);
|
dbgln_if(CSS_PARSER_DEBUG, "Unknown pseudo class: '{}'", pseudo_name);
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
return simple_selector;
|
return simple_selector;
|
||||||
|
@ -586,7 +586,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
auto not_selector = parse_a_selector(function_token_stream);
|
auto not_selector = parse_a_selector(function_token_stream);
|
||||||
if (not_selector.is_error()) {
|
if (not_selector.is_error()) {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Invalid selector in :not() clause");
|
dbgln_if(CSS_PARSER_DEBUG, "Invalid selector in :not() clause");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
simple_selector.pseudo_class.not_selector = not_selector.release_value();
|
simple_selector.pseudo_class.not_selector = not_selector.release_value();
|
||||||
} else if (pseudo_function.name().equals_ignoring_case("nth-child")) {
|
} else if (pseudo_function.name().equals_ignoring_case("nth-child")) {
|
||||||
|
@ -597,7 +597,7 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
simple_selector.pseudo_class.nth_child_pattern = nth_child_pattern.value();
|
simple_selector.pseudo_class.nth_child_pattern = nth_child_pattern.value();
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid nth-child format");
|
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid nth-child format");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
} else if (pseudo_function.name().equals_ignoring_case("nth-last-child")) {
|
} else if (pseudo_function.name().equals_ignoring_case("nth-last-child")) {
|
||||||
simple_selector.pseudo_class.type = Selector::SimpleSelector::PseudoClass::Type::NthLastChild;
|
simple_selector.pseudo_class.type = Selector::SimpleSelector::PseudoClass::Type::NthLastChild;
|
||||||
|
@ -607,18 +607,18 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
simple_selector.pseudo_class.nth_child_pattern = nth_child_pattern.value();
|
simple_selector.pseudo_class.nth_child_pattern = nth_child_pattern.value();
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid nth-child format");
|
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid nth-child format");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Unknown pseudo class: '{}'()", pseudo_function.name());
|
dbgln_if(CSS_PARSER_DEBUG, "Unknown pseudo class: '{}'()", pseudo_function.name());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
return simple_selector;
|
return simple_selector;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "Unexpected Block in pseudo-class name, expected a function or identifier. '{}'", pseudo_class_token.to_debug_string());
|
dbgln_if(CSS_PARSER_DEBUG, "Unexpected Block in pseudo-class name, expected a function or identifier. '{}'", pseudo_class_token.to_debug_string());
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -628,12 +628,12 @@ Result<Selector::SimpleSelector, Parser::SelectorParsingResult> Parser::parse_si
|
||||||
auto delim = first_value.token().delim();
|
auto delim = first_value.token().delim();
|
||||||
if ((delim == ">"sv) || (delim == "+"sv) || (delim == "~"sv) || (delim == "|"sv)) {
|
if ((delim == ">"sv) || (delim == "+"sv) || (delim == "~"sv) || (delim == "|"sv)) {
|
||||||
tokens.reconsume_current_input_token();
|
tokens.reconsume_current_input_token();
|
||||||
return SelectorParsingResult::Done;
|
return ParsingResult::Done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid simple selector!");
|
dbgln_if(CSS_PARSER_DEBUG, "!!! Invalid simple selector!");
|
||||||
return SelectorParsingResult::SyntaxError;
|
return ParsingResult::SyntaxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
NonnullRefPtrVector<StyleRule> Parser::consume_a_list_of_rules(bool top_level)
|
NonnullRefPtrVector<StyleRule> Parser::consume_a_list_of_rules(bool top_level)
|
||||||
|
@ -1232,7 +1232,7 @@ RefPtr<CSSRule> Parser::convert_to_rule(NonnullRefPtr<StyleRule> rule)
|
||||||
auto selectors = parse_a_selector(prelude_stream);
|
auto selectors = parse_a_selector(prelude_stream);
|
||||||
|
|
||||||
if (selectors.is_error()) {
|
if (selectors.is_error()) {
|
||||||
if (selectors.error() != SelectorParsingResult::IncludesIgnoredVendorPrefix) {
|
if (selectors.error() != ParsingResult::IncludesIgnoredVendorPrefix) {
|
||||||
dbgln("CSSParser: style rule selectors invalid; discarding.");
|
dbgln("CSSParser: style rule selectors invalid; discarding.");
|
||||||
prelude_stream.dump_all_tokens();
|
prelude_stream.dump_all_tokens();
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ public:
|
||||||
RefPtr<StyleValue> parse_as_css_value(PropertyID);
|
RefPtr<StyleValue> parse_as_css_value(PropertyID);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum class SelectorParsingResult {
|
enum class ParsingResult {
|
||||||
Done,
|
Done,
|
||||||
IncludesIgnoredVendorPrefix,
|
IncludesIgnoredVendorPrefix,
|
||||||
SyntaxError,
|
SyntaxError,
|
||||||
|
@ -123,13 +123,13 @@ private:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Vector<Vector<StyleComponentValueRule>> parse_a_comma_separated_list_of_component_values(TokenStream<T>&);
|
Vector<Vector<StyleComponentValueRule>> parse_a_comma_separated_list_of_component_values(TokenStream<T>&);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, SelectorParsingResult> parse_a_selector(TokenStream<T>&);
|
Result<SelectorList, ParsingResult> parse_a_selector(TokenStream<T>&);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, SelectorParsingResult> parse_a_relative_selector(TokenStream<T>&);
|
Result<SelectorList, ParsingResult> parse_a_relative_selector(TokenStream<T>&);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, SelectorParsingResult> parse_a_selector_list(TokenStream<T>&);
|
Result<SelectorList, ParsingResult> parse_a_selector_list(TokenStream<T>&);
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Result<SelectorList, SelectorParsingResult> parse_a_relative_selector_list(TokenStream<T>&);
|
Result<SelectorList, ParsingResult> parse_a_relative_selector_list(TokenStream<T>&);
|
||||||
|
|
||||||
Optional<Selector::SimpleSelector::ANPlusBPattern> parse_a_n_plus_b_pattern(TokenStream<StyleComponentValueRule>&);
|
Optional<Selector::SimpleSelector::ANPlusBPattern> parse_a_n_plus_b_pattern(TokenStream<StyleComponentValueRule>&);
|
||||||
|
|
||||||
|
@ -212,10 +212,10 @@ private:
|
||||||
static OwnPtr<CalculatedStyleValue::CalcNumberSumPartWithOperator> parse_calc_number_sum_part_with_operator(ParsingContext const&, TokenStream<StyleComponentValueRule>&);
|
static OwnPtr<CalculatedStyleValue::CalcNumberSumPartWithOperator> parse_calc_number_sum_part_with_operator(ParsingContext const&, TokenStream<StyleComponentValueRule>&);
|
||||||
static OwnPtr<CalculatedStyleValue::CalcSum> parse_calc_expression(ParsingContext const&, Vector<StyleComponentValueRule> const&);
|
static OwnPtr<CalculatedStyleValue::CalcSum> parse_calc_expression(ParsingContext const&, Vector<StyleComponentValueRule> const&);
|
||||||
|
|
||||||
Result<NonnullRefPtr<Selector>, SelectorParsingResult> parse_complex_selector(TokenStream<StyleComponentValueRule>&, bool allow_starting_combinator);
|
Result<NonnullRefPtr<Selector>, ParsingResult> parse_complex_selector(TokenStream<StyleComponentValueRule>&, bool allow_starting_combinator);
|
||||||
Result<Selector::CompoundSelector, SelectorParsingResult> parse_compound_selector(TokenStream<StyleComponentValueRule>&);
|
Result<Selector::CompoundSelector, ParsingResult> parse_compound_selector(TokenStream<StyleComponentValueRule>&);
|
||||||
Optional<Selector::Combinator> parse_selector_combinator(TokenStream<StyleComponentValueRule>&);
|
Optional<Selector::Combinator> parse_selector_combinator(TokenStream<StyleComponentValueRule>&);
|
||||||
Result<Selector::SimpleSelector, SelectorParsingResult> parse_simple_selector(TokenStream<StyleComponentValueRule>&);
|
Result<Selector::SimpleSelector, ParsingResult> parse_simple_selector(TokenStream<StyleComponentValueRule>&);
|
||||||
|
|
||||||
static bool has_ignored_vendor_prefix(StringView const&);
|
static bool has_ignored_vendor_prefix(StringView const&);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue