mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:47:34 +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:
parent
82d12b170a
commit
8671d79ba4
3 changed files with 22 additions and 20 deletions
|
@ -559,21 +559,13 @@ StyleComponentValueRule Parser::consume_a_component_value()
|
||||||
{
|
{
|
||||||
auto token = next_token();
|
auto token = next_token();
|
||||||
|
|
||||||
if (token.is_open_curly() || token.is_open_square() || token.is_open_paren()) {
|
if (token.is_open_curly() || token.is_open_square() || token.is_open_paren())
|
||||||
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Block);
|
return StyleComponentValueRule(consume_a_simple_block());
|
||||||
component.m_block = consume_a_simple_block();
|
|
||||||
return component;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (token.is_function()) {
|
if (token.is_function())
|
||||||
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Function);
|
return StyleComponentValueRule(consume_a_function());
|
||||||
component.m_function = consume_a_function();
|
|
||||||
return component;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token);
|
return StyleComponentValueRule(token);
|
||||||
component.m_token = token;
|
|
||||||
return component;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NonnullRefPtr<StyleBlockRule> Parser::consume_a_simple_block()
|
NonnullRefPtr<StyleBlockRule> Parser::consume_a_simple_block()
|
||||||
|
@ -722,10 +714,7 @@ Vector<DeclarationOrAtRule> Parser::consume_a_list_of_declarations()
|
||||||
|
|
||||||
if (token.is_ident()) {
|
if (token.is_ident()) {
|
||||||
Vector<StyleComponentValueRule> temp;
|
Vector<StyleComponentValueRule> temp;
|
||||||
|
temp.append(StyleComponentValueRule(token));
|
||||||
auto component = StyleComponentValueRule(StyleComponentValueRule::ComponentType::Token);
|
|
||||||
component.m_token = token;
|
|
||||||
temp.append(component);
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
auto peek = peek_token();
|
auto peek = peek_token();
|
||||||
|
|
|
@ -26,7 +26,9 @@ public:
|
||||||
Block
|
Block
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit StyleComponentValueRule(ComponentType);
|
StyleComponentValueRule(Token);
|
||||||
|
explicit StyleComponentValueRule(NonnullRefPtr<StyleFunctionRule>);
|
||||||
|
explicit StyleComponentValueRule(NonnullRefPtr<StyleBlockRule>);
|
||||||
~StyleComponentValueRule();
|
~StyleComponentValueRule();
|
||||||
|
|
||||||
bool is_block() const { return m_type == ComponentType::Block; }
|
bool is_block() const { return m_type == ComponentType::Block; }
|
||||||
|
|
|
@ -35,8 +35,19 @@ StyleRule::~StyleRule() { }
|
||||||
StyleBlockRule::StyleBlockRule() { }
|
StyleBlockRule::StyleBlockRule() { }
|
||||||
StyleBlockRule::~StyleBlockRule() { }
|
StyleBlockRule::~StyleBlockRule() { }
|
||||||
|
|
||||||
StyleComponentValueRule::StyleComponentValueRule(ComponentType type)
|
StyleComponentValueRule::StyleComponentValueRule(Token token)
|
||||||
: m_type(type)
|
: m_type(StyleComponentValueRule::ComponentType::Token)
|
||||||
|
, m_token(token)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
StyleComponentValueRule::StyleComponentValueRule(NonnullRefPtr<StyleFunctionRule> function)
|
||||||
|
: m_type(StyleComponentValueRule::ComponentType::Function)
|
||||||
|
, m_function(function)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
StyleComponentValueRule::StyleComponentValueRule(NonnullRefPtr<StyleBlockRule> block)
|
||||||
|
: m_type(StyleComponentValueRule::ComponentType::Block)
|
||||||
|
, m_block(block)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
StyleComponentValueRule::~StyleComponentValueRule() { }
|
StyleComponentValueRule::~StyleComponentValueRule() { }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue