mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 07:17:35 +00:00
LibWeb: Combine the two sets of calc() operator enums
This commit is contained in:
parent
ce0a516e59
commit
b818d952d1
3 changed files with 35 additions and 42 deletions
|
@ -4188,7 +4188,7 @@ OwnPtr<CalculatedStyleValue::CalcProductPartWithOperator> Parser::parse_calc_pro
|
||||||
{
|
{
|
||||||
// Note: The default value is not used or passed around.
|
// Note: The default value is not used or passed around.
|
||||||
auto product_with_operator = make<CalculatedStyleValue::CalcProductPartWithOperator>(
|
auto product_with_operator = make<CalculatedStyleValue::CalcProductPartWithOperator>(
|
||||||
CalculatedStyleValue::CalcProductPartWithOperator::Multiply,
|
CalculatedStyleValue::ProductOperation::Multiply,
|
||||||
CalculatedStyleValue::CalcNumberValue(0));
|
CalculatedStyleValue::CalcNumberValue(0));
|
||||||
|
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
|
@ -4201,7 +4201,7 @@ OwnPtr<CalculatedStyleValue::CalcProductPartWithOperator> Parser::parse_calc_pro
|
||||||
if (op == "*"sv) {
|
if (op == "*"sv) {
|
||||||
tokens.next_token();
|
tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
product_with_operator->op = CalculatedStyleValue::CalcProductPartWithOperator::Multiply;
|
product_with_operator->op = CalculatedStyleValue::ProductOperation::Multiply;
|
||||||
auto parsed_calc_value = parse_calc_value(tokens);
|
auto parsed_calc_value = parse_calc_value(tokens);
|
||||||
if (!parsed_calc_value.has_value())
|
if (!parsed_calc_value.has_value())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -4210,7 +4210,7 @@ OwnPtr<CalculatedStyleValue::CalcProductPartWithOperator> Parser::parse_calc_pro
|
||||||
} else if (op == "/"sv) {
|
} else if (op == "/"sv) {
|
||||||
tokens.next_token();
|
tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
product_with_operator->op = CalculatedStyleValue::CalcProductPartWithOperator::Divide;
|
product_with_operator->op = CalculatedStyleValue::ProductOperation::Divide;
|
||||||
auto parsed_calc_number_value = parse_calc_number_value(tokens);
|
auto parsed_calc_number_value = parse_calc_number_value(tokens);
|
||||||
if (!parsed_calc_number_value.has_value())
|
if (!parsed_calc_number_value.has_value())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -4226,7 +4226,7 @@ OwnPtr<CalculatedStyleValue::CalcNumberProductPartWithOperator> Parser::parse_ca
|
||||||
{
|
{
|
||||||
// Note: The default value is not used or passed around.
|
// Note: The default value is not used or passed around.
|
||||||
auto number_product_with_operator = make<CalculatedStyleValue::CalcNumberProductPartWithOperator>(
|
auto number_product_with_operator = make<CalculatedStyleValue::CalcNumberProductPartWithOperator>(
|
||||||
CalculatedStyleValue::CalcNumberProductPartWithOperator::Multiply,
|
CalculatedStyleValue::ProductOperation::Multiply,
|
||||||
CalculatedStyleValue::CalcNumberValue(0));
|
CalculatedStyleValue::CalcNumberValue(0));
|
||||||
|
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
|
@ -4239,11 +4239,11 @@ OwnPtr<CalculatedStyleValue::CalcNumberProductPartWithOperator> Parser::parse_ca
|
||||||
if (op == "*"sv) {
|
if (op == "*"sv) {
|
||||||
tokens.next_token();
|
tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
number_product_with_operator->op = CalculatedStyleValue::CalcNumberProductPartWithOperator::Multiply;
|
number_product_with_operator->op = CalculatedStyleValue::ProductOperation::Multiply;
|
||||||
} else if (op == "/"sv) {
|
} else if (op == "/"sv) {
|
||||||
tokens.next_token();
|
tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
number_product_with_operator->op = CalculatedStyleValue::CalcNumberProductPartWithOperator::Divide;
|
number_product_with_operator->op = CalculatedStyleValue::ProductOperation::Divide;
|
||||||
} else {
|
} else {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -4287,12 +4287,12 @@ OwnPtr<CalculatedStyleValue::CalcNumberSumPartWithOperator> Parser::parse_calc_n
|
||||||
auto& token = tokens.next_token();
|
auto& token = tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
|
|
||||||
CalculatedStyleValue::CalcNumberSumPartWithOperator::Operation op;
|
CalculatedStyleValue::SumOperation op;
|
||||||
auto delim = token.token().delim();
|
auto delim = token.token().delim();
|
||||||
if (delim == "+"sv)
|
if (delim == "+"sv)
|
||||||
op = CalculatedStyleValue::CalcNumberSumPartWithOperator::Operation::Add;
|
op = CalculatedStyleValue::SumOperation::Add;
|
||||||
else if (delim == "-"sv)
|
else if (delim == "-"sv)
|
||||||
op = CalculatedStyleValue::CalcNumberSumPartWithOperator::Operation::Subtract;
|
op = CalculatedStyleValue::SumOperation::Subtract;
|
||||||
else
|
else
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
@ -4373,12 +4373,12 @@ OwnPtr<CalculatedStyleValue::CalcSumPartWithOperator> Parser::parse_calc_sum_par
|
||||||
auto& token = tokens.next_token();
|
auto& token = tokens.next_token();
|
||||||
tokens.skip_whitespace();
|
tokens.skip_whitespace();
|
||||||
|
|
||||||
CalculatedStyleValue::CalcSumPartWithOperator::Operation op;
|
CalculatedStyleValue::SumOperation op;
|
||||||
auto delim = token.token().delim();
|
auto delim = token.token().delim();
|
||||||
if (delim == "+"sv)
|
if (delim == "+"sv)
|
||||||
op = CalculatedStyleValue::CalcSumPartWithOperator::Operation::Add;
|
op = CalculatedStyleValue::SumOperation::Add;
|
||||||
else if (delim == "-"sv)
|
else if (delim == "-"sv)
|
||||||
op = CalculatedStyleValue::CalcSumPartWithOperator::Operation::Subtract;
|
op = CalculatedStyleValue::SumOperation::Subtract;
|
||||||
else
|
else
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
|
|
@ -309,9 +309,9 @@ static float resolve_calc_number_product(NonnullOwnPtr<CalculatedStyleValue::Cal
|
||||||
|
|
||||||
for (auto& additional_number_value : calc_number_product->zero_or_more_additional_calc_number_values) {
|
for (auto& additional_number_value : calc_number_product->zero_or_more_additional_calc_number_values) {
|
||||||
auto additional_value = resolve_calc_number_value(additional_number_value.value);
|
auto additional_value = resolve_calc_number_value(additional_number_value.value);
|
||||||
if (additional_number_value.op == CalculatedStyleValue::CalcNumberProductPartWithOperator::Multiply)
|
if (additional_number_value.op == CalculatedStyleValue::ProductOperation::Multiply)
|
||||||
value *= additional_value;
|
value *= additional_value;
|
||||||
else if (additional_number_value.op == CalculatedStyleValue::CalcNumberProductPartWithOperator::Divide)
|
else if (additional_number_value.op == CalculatedStyleValue::ProductOperation::Divide)
|
||||||
value /= additional_value;
|
value /= additional_value;
|
||||||
else
|
else
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
|
@ -326,9 +326,9 @@ static float resolve_calc_number_sum(NonnullOwnPtr<CalculatedStyleValue::CalcNum
|
||||||
|
|
||||||
for (auto& additional_product : calc_number_sum->zero_or_more_additional_calc_number_products) {
|
for (auto& additional_product : calc_number_sum->zero_or_more_additional_calc_number_products) {
|
||||||
auto additional_value = resolve_calc_number_product(additional_product.calc_number_product);
|
auto additional_value = resolve_calc_number_product(additional_product.calc_number_product);
|
||||||
if (additional_product.op == CSS::CalculatedStyleValue::CalcNumberSumPartWithOperator::Add)
|
if (additional_product.op == CSS::CalculatedStyleValue::SumOperation::Add)
|
||||||
value += additional_value;
|
value += additional_value;
|
||||||
else if (additional_product.op == CSS::CalculatedStyleValue::CalcNumberSumPartWithOperator::Subtract)
|
else if (additional_product.op == CSS::CalculatedStyleValue::SumOperation::Subtract)
|
||||||
value -= additional_value;
|
value -= additional_value;
|
||||||
else
|
else
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
|
@ -353,13 +353,13 @@ static float resolve_calc_product(NonnullOwnPtr<CalculatedStyleValue::CalcProduc
|
||||||
for (auto& additional_value : calc_product->zero_or_more_additional_calc_values) {
|
for (auto& additional_value : calc_product->zero_or_more_additional_calc_values) {
|
||||||
additional_value.value.visit(
|
additional_value.value.visit(
|
||||||
[&](CalculatedStyleValue::CalcValue const& calc_value) {
|
[&](CalculatedStyleValue::CalcValue const& calc_value) {
|
||||||
if (additional_value.op != CalculatedStyleValue::CalcProductPartWithOperator::Multiply)
|
if (additional_value.op != CalculatedStyleValue::ProductOperation::Multiply)
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
auto resolved_value = resolve_calc_value(calc_value, layout_node);
|
auto resolved_value = resolve_calc_value(calc_value, layout_node);
|
||||||
value *= resolved_value;
|
value *= resolved_value;
|
||||||
},
|
},
|
||||||
[&](CalculatedStyleValue::CalcNumberValue const& calc_number_value) {
|
[&](CalculatedStyleValue::CalcNumberValue const& calc_number_value) {
|
||||||
if (additional_value.op != CalculatedStyleValue::CalcProductPartWithOperator::Divide)
|
if (additional_value.op != CalculatedStyleValue::ProductOperation::Divide)
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
auto resolved_calc_number_value = resolve_calc_number_value(calc_number_value);
|
auto resolved_calc_number_value = resolve_calc_number_value(calc_number_value);
|
||||||
value /= resolved_calc_number_value;
|
value /= resolved_calc_number_value;
|
||||||
|
@ -375,9 +375,9 @@ static float resolve_calc_sum(NonnullOwnPtr<CalculatedStyleValue::CalcSum> const
|
||||||
|
|
||||||
for (auto& additional_product : calc_sum->zero_or_more_additional_calc_products) {
|
for (auto& additional_product : calc_sum->zero_or_more_additional_calc_products) {
|
||||||
auto additional_value = resolve_calc_product(additional_product.calc_product, layout_node);
|
auto additional_value = resolve_calc_product(additional_product.calc_product, layout_node);
|
||||||
if (additional_product.op == CalculatedStyleValue::CalcSumPartWithOperator::Operation::Add)
|
if (additional_product.op == CalculatedStyleValue::SumOperation::Add)
|
||||||
value += additional_value;
|
value += additional_value;
|
||||||
else if (additional_product.op == CalculatedStyleValue::CalcSumPartWithOperator::Operation::Subtract)
|
else if (additional_product.op == CalculatedStyleValue::SumOperation::Subtract)
|
||||||
value -= additional_value;
|
value -= additional_value;
|
||||||
else
|
else
|
||||||
VERIFY_NOT_REACHED();
|
VERIFY_NOT_REACHED();
|
||||||
|
|
|
@ -666,6 +666,15 @@ public:
|
||||||
using CalcNumberValue = Variant<float, NonnullOwnPtr<CalcNumberSum>>;
|
using CalcNumberValue = Variant<float, NonnullOwnPtr<CalcNumberSum>>;
|
||||||
using CalcValue = Variant<float, CSS::Length, NonnullOwnPtr<CalcSum>>;
|
using CalcValue = Variant<float, CSS::Length, NonnullOwnPtr<CalcSum>>;
|
||||||
|
|
||||||
|
enum class SumOperation {
|
||||||
|
Add,
|
||||||
|
Subtract,
|
||||||
|
};
|
||||||
|
enum class ProductOperation {
|
||||||
|
Multiply,
|
||||||
|
Divide,
|
||||||
|
};
|
||||||
|
|
||||||
// This represents that: https://www.w3.org/TR/css-values-3/#calc-syntax
|
// This represents that: https://www.w3.org/TR/css-values-3/#calc-syntax
|
||||||
struct CalcSum {
|
struct CalcSum {
|
||||||
CalcSum(NonnullOwnPtr<CalcProduct> first_calc_product, NonnullOwnPtrVector<CalcSumPartWithOperator> additional)
|
CalcSum(NonnullOwnPtr<CalcProduct> first_calc_product, NonnullOwnPtrVector<CalcSumPartWithOperator> additional)
|
||||||
|
@ -691,24 +700,16 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CalcSumPartWithOperator {
|
struct CalcSumPartWithOperator {
|
||||||
enum Operation {
|
CalcSumPartWithOperator(SumOperation op, NonnullOwnPtr<CalcProduct> calc_product)
|
||||||
Add,
|
|
||||||
Subtract,
|
|
||||||
};
|
|
||||||
|
|
||||||
CalcSumPartWithOperator(Operation op, NonnullOwnPtr<CalcProduct> calc_product)
|
|
||||||
: op(op)
|
: op(op)
|
||||||
, calc_product(move(calc_product)) {};
|
, calc_product(move(calc_product)) {};
|
||||||
|
|
||||||
Operation op;
|
SumOperation op;
|
||||||
NonnullOwnPtr<CalcProduct> calc_product;
|
NonnullOwnPtr<CalcProduct> calc_product;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CalcProductPartWithOperator {
|
struct CalcProductPartWithOperator {
|
||||||
enum {
|
ProductOperation op;
|
||||||
Multiply,
|
|
||||||
Divide,
|
|
||||||
} op;
|
|
||||||
Variant<CalcValue, CalcNumberValue> value;
|
Variant<CalcValue, CalcNumberValue> value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -718,24 +719,16 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CalcNumberProductPartWithOperator {
|
struct CalcNumberProductPartWithOperator {
|
||||||
enum {
|
ProductOperation op;
|
||||||
Multiply,
|
|
||||||
Divide,
|
|
||||||
} op;
|
|
||||||
CalcNumberValue value;
|
CalcNumberValue value;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CalcNumberSumPartWithOperator {
|
struct CalcNumberSumPartWithOperator {
|
||||||
enum Operation {
|
CalcNumberSumPartWithOperator(SumOperation op, NonnullOwnPtr<CalcNumberProduct> calc_number_product)
|
||||||
Add,
|
|
||||||
Subtract,
|
|
||||||
};
|
|
||||||
|
|
||||||
CalcNumberSumPartWithOperator(Operation op, NonnullOwnPtr<CalcNumberProduct> calc_number_product)
|
|
||||||
: op(op)
|
: op(op)
|
||||||
, calc_number_product(move(calc_number_product)) {};
|
, calc_number_product(move(calc_number_product)) {};
|
||||||
|
|
||||||
Operation op;
|
SumOperation op;
|
||||||
NonnullOwnPtr<CalcNumberProduct> calc_number_product;
|
NonnullOwnPtr<CalcNumberProduct> calc_number_product;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue