Commit e379550e authored by Xiaocheng Hu's avatar Xiaocheng Hu Committed by Commit Bot

Rename CSS CalcParser to MathFunctionParser

As CSS comparison function implementation is done, this patch is part of
the cleanup work that finishes the TODOs left behind.

Bug: 825895
Change-Id: Ibd03d10591fdc1923ab34908126521eda27fa444
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1831993
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701535}
parent 549850f6
...@@ -186,14 +186,13 @@ CSSParserTokenRange ConsumeFunction(CSSParserTokenRange& range) { ...@@ -186,14 +186,13 @@ CSSParserTokenRange ConsumeFunction(CSSParserTokenRange& range) {
} }
// TODO(rwlbuis): consider pulling in the parsing logic from // TODO(rwlbuis): consider pulling in the parsing logic from
// CSSCalculationValue.cpp. // css_math_expression_node.cc.
// TODO(xiaochengh): Rename to |MathFunctionParser|. class MathFunctionParser {
class CalcParser {
STACK_ALLOCATED(); STACK_ALLOCATED();
public: public:
explicit CalcParser(CSSParserTokenRange& range, explicit MathFunctionParser(CSSParserTokenRange& range,
ValueRange value_range = kValueRangeAll) ValueRange value_range = kValueRangeAll)
: source_range_(range), range_(range) { : source_range_(range), range_(range) {
const CSSParserToken& token = range.Peek(); const CSSParserToken& token = range.Peek();
if (token.FunctionId() == CSSValueID::kCalc || if (token.FunctionId() == CSSValueID::kCalc ||
...@@ -281,20 +280,20 @@ CSSPrimitiveValue* ConsumeInteger(CSSParserTokenRange& range, ...@@ -281,20 +280,20 @@ CSSPrimitiveValue* ConsumeInteger(CSSParserTokenRange& range,
range.ConsumeIncludingWhitespace().NumericValue(), range.ConsumeIncludingWhitespace().NumericValue(),
CSSPrimitiveValue::UnitType::kInteger); CSSPrimitiveValue::UnitType::kInteger);
} }
CalcParser calc_parser(range); MathFunctionParser math_parser(range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* math_value = math_parser.Value()) {
if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled() && !calculation->IsInt()) if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled() && !math_value->IsInt())
return nullptr; return nullptr;
if (calculation->Category() != kCalcNumber) if (math_value->Category() != kCalcNumber)
return nullptr; return nullptr;
double value = calculation->GetDoubleValue(); double double_value = math_value->GetDoubleValue();
if (value < minimum_value) if (double_value < minimum_value)
return nullptr; return nullptr;
if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled()) if (!RuntimeEnabledFeatures::CSSCalcAsIntEnabled())
return calc_parser.ConsumeNumber(); return math_parser.ConsumeNumber();
if (calculation->IsInt()) if (math_value->IsInt())
return calc_parser.ConsumeNumber(); return math_parser.ConsumeNumber();
return calc_parser.ConsumeRoundedInt(); return math_parser.ConsumeRoundedInt();
} }
return nullptr; return nullptr;
} }
...@@ -314,11 +313,11 @@ CSSPrimitiveValue* ConsumeIntegerOrNumberCalc(CSSParserTokenRange& range) { ...@@ -314,11 +313,11 @@ CSSPrimitiveValue* ConsumeIntegerOrNumberCalc(CSSParserTokenRange& range) {
range = int_range; range = int_range;
return value; return value;
} }
CalcParser calc_parser(range); MathFunctionParser math_parser(range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
if (calculation->Category() != kCalcNumber) if (calculation->Category() != kCalcNumber)
return nullptr; return nullptr;
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
} }
return nullptr; return nullptr;
} }
...@@ -332,8 +331,8 @@ bool ConsumeNumberRaw(CSSParserTokenRange& range, double& result) { ...@@ -332,8 +331,8 @@ bool ConsumeNumberRaw(CSSParserTokenRange& range, double& result) {
result = range.ConsumeIncludingWhitespace().NumericValue(); result = range.ConsumeIncludingWhitespace().NumericValue();
return true; return true;
} }
CalcParser calc_parser(range, kValueRangeAll); MathFunctionParser math_parser(range, kValueRangeAll);
return calc_parser.ConsumeNumberRaw(result); return math_parser.ConsumeNumberRaw(result);
} }
// TODO(timloh): Work out if this can just call consumeNumberRaw // TODO(timloh): Work out if this can just call consumeNumberRaw
...@@ -346,14 +345,14 @@ CSSPrimitiveValue* ConsumeNumber(CSSParserTokenRange& range, ...@@ -346,14 +345,14 @@ CSSPrimitiveValue* ConsumeNumber(CSSParserTokenRange& range,
return CSSNumericLiteralValue::Create( return CSSNumericLiteralValue::Create(
range.ConsumeIncludingWhitespace().NumericValue(), token.GetUnitType()); range.ConsumeIncludingWhitespace().NumericValue(), token.GetUnitType());
} }
CalcParser calc_parser(range, kValueRangeAll); MathFunctionParser math_parser(range, kValueRangeAll);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
// TODO(rwlbuis) Calcs should not be subject to parse time range checks. // TODO(rwlbuis) Calcs should not be subject to parse time range checks.
// spec: https://drafts.csswg.org/css-values-3/#calc-range // spec: https://drafts.csswg.org/css-values-3/#calc-range
if (calculation->Category() != kCalcNumber || if (calculation->Category() != kCalcNumber ||
(value_range == kValueRangeNonNegative && calculation->IsNegative())) (value_range == kValueRangeNonNegative && calculation->IsNegative()))
return nullptr; return nullptr;
return calc_parser.ConsumeNumber(); return math_parser.ConsumeNumber();
} }
return nullptr; return nullptr;
} }
...@@ -416,9 +415,9 @@ CSSPrimitiveValue* ConsumeLength(CSSParserTokenRange& range, ...@@ -416,9 +415,9 @@ CSSPrimitiveValue* ConsumeLength(CSSParserTokenRange& range,
} }
if (css_parser_mode == kSVGAttributeMode) if (css_parser_mode == kSVGAttributeMode)
return nullptr; return nullptr;
CalcParser calc_parser(range, value_range); MathFunctionParser math_parser(range, value_range);
if (calc_parser.Value() && calc_parser.Value()->Category() == kCalcLength) if (math_parser.Value() && math_parser.Value()->Category() == kCalcLength)
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
return nullptr; return nullptr;
} }
...@@ -432,10 +431,10 @@ CSSPrimitiveValue* ConsumePercent(CSSParserTokenRange& range, ...@@ -432,10 +431,10 @@ CSSPrimitiveValue* ConsumePercent(CSSParserTokenRange& range,
range.ConsumeIncludingWhitespace().NumericValue(), range.ConsumeIncludingWhitespace().NumericValue(),
CSSPrimitiveValue::UnitType::kPercentage); CSSPrimitiveValue::UnitType::kPercentage);
} }
CalcParser calc_parser(range, value_range); MathFunctionParser math_parser(range, value_range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
if (calculation->Category() == kCalcPercent) if (calculation->Category() == kCalcPercent)
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
} }
return nullptr; return nullptr;
} }
...@@ -476,10 +475,10 @@ CSSPrimitiveValue* ConsumeLengthOrPercent(CSSParserTokenRange& range, ...@@ -476,10 +475,10 @@ CSSPrimitiveValue* ConsumeLengthOrPercent(CSSParserTokenRange& range,
return ConsumeLength(range, css_parser_mode, value_range, unitless); return ConsumeLength(range, css_parser_mode, value_range, unitless);
if (token.GetType() == kPercentageToken) if (token.GetType() == kPercentageToken)
return ConsumePercent(range, value_range); return ConsumePercent(range, value_range);
CalcParser calc_parser(range, value_range); MathFunctionParser math_parser(range, value_range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
if (CanConsumeCalcValue(calculation->Category(), css_parser_mode)) if (CanConsumeCalcValue(calculation->Category(), css_parser_mode))
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
} }
return nullptr; return nullptr;
} }
...@@ -558,11 +557,11 @@ CSSPrimitiveValue* ConsumeAngle( ...@@ -558,11 +557,11 @@ CSSPrimitiveValue* ConsumeAngle(
return CSSNumericLiteralValue::Create( return CSSNumericLiteralValue::Create(
0, CSSPrimitiveValue::UnitType::kDegrees); 0, CSSPrimitiveValue::UnitType::kDegrees);
} }
CalcParser calc_parser(range, kValueRangeAll); MathFunctionParser math_parser(range, kValueRangeAll);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
if (calculation->Category() != kCalcAngle) if (calculation->Category() != kCalcAngle)
return nullptr; return nullptr;
if (CSSMathFunctionValue* result = calc_parser.ConsumeValue()) { if (CSSMathFunctionValue* result = math_parser.ConsumeValue()) {
if (result->ComputeDegrees() < minimum_value) { if (result->ComputeDegrees() < minimum_value) {
return CSSNumericLiteralValue::Create( return CSSNumericLiteralValue::Create(
minimum_value, CSSPrimitiveValue::UnitType::kDegrees); minimum_value, CSSPrimitiveValue::UnitType::kDegrees);
...@@ -600,10 +599,10 @@ CSSPrimitiveValue* ConsumeTime(CSSParserTokenRange& range, ...@@ -600,10 +599,10 @@ CSSPrimitiveValue* ConsumeTime(CSSParserTokenRange& range,
token.GetUnitType()); token.GetUnitType());
return nullptr; return nullptr;
} }
CalcParser calc_parser(range, value_range); MathFunctionParser math_parser(range, value_range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
if (calculation->Category() == kCalcTime) if (calculation->Category() == kCalcTime)
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
} }
return nullptr; return nullptr;
} }
...@@ -1327,12 +1326,12 @@ static CSSPrimitiveValue* ConsumeGradientAngleOrPercent( ...@@ -1327,12 +1326,12 @@ static CSSPrimitiveValue* ConsumeGradientAngleOrPercent(
} }
if (token.GetType() == kPercentageToken) if (token.GetType() == kPercentageToken)
return ConsumePercent(range, value_range); return ConsumePercent(range, value_range);
CalcParser calc_parser(range, value_range); MathFunctionParser math_parser(range, value_range);
if (const CSSMathFunctionValue* calculation = calc_parser.Value()) { if (const CSSMathFunctionValue* calculation = math_parser.Value()) {
CalculationCategory category = calculation->Category(); CalculationCategory category = calculation->Category();
// TODO(fs): Add and support kCalcPercentAngle? // TODO(fs): Add and support kCalcPercentAngle?
if (category == kCalcAngle || category == kCalcPercent) if (category == kCalcAngle || category == kCalcPercent)
return calc_parser.ConsumeValue(); return math_parser.ConsumeValue();
} }
return nullptr; return nullptr;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment