1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 20:28:11 +00:00

LibWeb: Return SelectorParsingResult from all selector parsing functions

This will allow us to know why a selector failed to parse, in situations
where that matters. (Like, when a selector includes vendor prefixes...)
This commit is contained in:
Sam Atkins 2021-09-12 17:42:11 +01:00 committed by Andreas Kling
parent e30b702c6c
commit 83cd2eef8f
2 changed files with 44 additions and 46 deletions

View file

@ -100,6 +100,11 @@ public:
RefPtr<StyleValue> parse_as_css_value(PropertyID);
private:
enum class SelectorParsingResult {
Done,
SyntaxError,
};
template<typename T>
NonnullRefPtr<CSSStyleSheet> parse_a_stylesheet(TokenStream<T>&);
template<typename T>
@ -117,13 +122,13 @@ private:
template<typename T>
Vector<Vector<StyleComponentValueRule>> parse_a_comma_separated_list_of_component_values(TokenStream<T>&);
template<typename T>
Optional<SelectorList> parse_a_selector(TokenStream<T>&);
Result<SelectorList, SelectorParsingResult> parse_a_selector(TokenStream<T>&);
template<typename T>
Optional<SelectorList> parse_a_relative_selector(TokenStream<T>&);
Result<SelectorList, SelectorParsingResult> parse_a_relative_selector(TokenStream<T>&);
template<typename T>
Optional<SelectorList> parse_a_selector_list(TokenStream<T>&);
Result<SelectorList, SelectorParsingResult> parse_a_selector_list(TokenStream<T>&);
template<typename T>
Optional<SelectorList> parse_a_relative_selector_list(TokenStream<T>&);
Result<SelectorList, SelectorParsingResult> parse_a_relative_selector_list(TokenStream<T>&);
Optional<Selector::SimpleSelector::ANPlusBPattern> parse_a_n_plus_b_pattern(TokenStream<StyleComponentValueRule>&);
@ -206,12 +211,7 @@ private:
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&);
enum class SelectorParsingResult {
Done,
SyntaxError,
};
RefPtr<Selector> parse_complex_selector(TokenStream<StyleComponentValueRule>&, bool allow_starting_combinator);
Result<NonnullRefPtr<Selector>, SelectorParsingResult> parse_complex_selector(TokenStream<StyleComponentValueRule>&, bool allow_starting_combinator);
Result<Selector::CompoundSelector, SelectorParsingResult> parse_compound_selector(TokenStream<StyleComponentValueRule>&);
Optional<Selector::Combinator> parse_selector_combinator(TokenStream<StyleComponentValueRule>&);
Result<Selector::SimpleSelector, SelectorParsingResult> parse_simple_selector(TokenStream<StyleComponentValueRule>&);