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

LibWeb: Parse css math constants

This commit is contained in:
stelar7 2023-05-26 21:24:31 +02:00 committed by Sam Atkins
parent f8527e1cad
commit ba7af82c5c
3 changed files with 124 additions and 0 deletions

View file

@ -8209,6 +8209,33 @@ ErrorOr<OwnPtr<CalculationNode>> Parser::parse_a_calculation(Vector<ComponentVal
}
}
if (value.is(Token::Type::Ident)) {
if (value.token().ident().equals_ignoring_ascii_case("e"sv)) {
TRY(values.try_append({ TRY(ConstantCalculationNode::create(CalculationNode::ConstantType::E)) }));
continue;
}
if (value.token().ident().equals_ignoring_ascii_case("pi"sv)) {
TRY(values.try_append({ TRY(ConstantCalculationNode::create(CalculationNode::ConstantType::PI)) }));
continue;
}
if (value.token().ident().equals_ignoring_ascii_case("infinity"sv)) {
TRY(values.try_append({ TRY(ConstantCalculationNode::create(CalculationNode::ConstantType::Infinity)) }));
continue;
}
if (value.token().ident().equals_ignoring_ascii_case("-infinity"sv)) {
TRY(values.try_append({ TRY(ConstantCalculationNode::create(CalculationNode::ConstantType::MinusInfinity)) }));
continue;
}
if (value.token().ident().equals_ignoring_ascii_case("NaN"sv)) {
TRY(values.try_append({ TRY(ConstantCalculationNode::create(CalculationNode::ConstantType::NaN)) }));
continue;
}
}
if (value.is(Token::Type::Number)) {
TRY(values.try_append({ TRY(NumericCalculationNode::create(value.token().number())) }));
continue;