1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:07:35 +00:00

LibWeb: Add direct StyleComponentValueRule constructors

Rather than passing a ComponentType, and then manually modifying the
data fields, we now create them initialized.

The constructor that takes a Token is intentionally left implicit,
so that we can automatically convert when using the TokenStream later.
This commit is contained in:
Sam Atkins 2021-07-03 14:54:19 +01:00 committed by Andreas Kling
parent 82d12b170a
commit 8671d79ba4
3 changed files with 22 additions and 20 deletions

View file

@ -559,21 +559,13 @@ StyleComponentValueRule Parser::consume_a_component_value()
{
auto token = next_token();
if (token.is_open_curly() || token.is_open_square() || token.is_open_paren()) {
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Block);
component.m_block = consume_a_simple_block();
return component;
}
if (token.is_open_curly() || token.is_open_square() || token.is_open_paren())
return StyleComponentValueRule(consume_a_simple_block());
if (token.is_function()) {
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Function);
component.m_function = consume_a_function();
return component;
}
if (token.is_function())
return StyleComponentValueRule(consume_a_function());
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token);
component.m_token = token;
return component;
return StyleComponentValueRule(token);
}
NonnullRefPtr<StyleBlockRule> Parser::consume_a_simple_block()
@ -722,10 +714,7 @@ Vector<DeclarationOrAtRule> Parser::consume_a_list_of_declarations()
if (token.is_ident()) {
Vector<StyleComponentValueRule> temp;
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token);
component.m_token = token;
temp.append(component);
temp.append(StyleComponentValueRule(token));
for (;;) {
auto peek = peek_token();