Skip to content

Commit b34cc71

Browse files
committed
move math function under one. TODO, different validation based on the kind of function
1 parent c106784 commit b34cc71

File tree

6 files changed

+46
-873
lines changed

6 files changed

+46
-873
lines changed

org/w3c/css/parser/analyzer/CssParser.jj

Lines changed: 22 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ import org.w3c.css.values.CssAttr;
6565
import org.w3c.css.values.CssBracket;
6666
import org.w3c.css.values.CssCalc;
6767
import org.w3c.css.values.CssCheckableValue;
68-
import org.w3c.css.values.CssClamp;
6968
import org.w3c.css.values.CssColor;
7069
import org.w3c.css.values.CssComparator;
7170
import org.w3c.css.values.CssExpression;
@@ -76,8 +75,7 @@ import org.w3c.css.values.CssHashIdent;
7675
import org.w3c.css.values.CssIdent;
7776
import org.w3c.css.values.CssImage;
7877
import org.w3c.css.values.CssLength;
79-
import org.w3c.css.values.CssMax;
80-
import org.w3c.css.values.CssMin;
78+
import org.w3c.css.values.CssMathFunction;
8179
import org.w3c.css.values.CssNumber;
8280
import org.w3c.css.values.CssOperator;
8381
import org.w3c.css.values.CssPercentage;
@@ -776,8 +774,8 @@ TOKEN [IGNORE_CASE] :
776774
| <FUNCTIONNTHLASTOFTYPE : "nth-last-of-type(" >
777775
| <FUNCTIONNOT : "not(" >
778776
| <FUNCTIONCALC : "calc(" | "-moz-calc(" | "-webkit-calc(" >
779-
| <FUNCTIONMIN : "min(" >
780-
| <FUNCTIONMAX : "max(" >
777+
| <FUNCTIONMATHN : "min(" | "max(" | "hypot(" >
778+
| <FUNCTIONMATH1 : "sin(" | "cos(" | "tan(" | "asin(" | "acos(" | "atan(" | "sqrt(" | "log(" | "exp(" | "sign(" >
781779
| <FUNCTIONCLAMP : "clamp(" >
782780
| <FUNCTIONATTR : "attr(" >
783781
| <FUNCTIONVAR : "var(" >
@@ -3169,8 +3167,7 @@ void term(CssExpression exp) :
31693167
)
31703168
)
31713169
| ( func=mathcalc() { setValue(func, exp, operator, null, FUNCTIONCALC); }
3172-
| func=mathmax() { setValue(func, exp, operator, null, FUNCTION); }
3173-
| func=mathmin() { setValue(func, exp, operator, null, FUNCTION); }
3170+
| func=mathfunction() { setValue(func, exp, operator, null, FUNCTION); }
31743171
| func=mathclamp() { setValue(func, exp, operator, null, FUNCTION); }
31753172
| func=attr() { setValue(func, exp, operator, null, FUNCTION); }
31763173
| func=functionvar() { setValue(func, exp, operator, null, FUNCTIONVAR); }
@@ -3263,8 +3260,7 @@ void mediaterm(CssExpression exp) :
32633260
}
32643261
| ( func=function() { setValue(func, exp, operator, null, FUNCTION); }
32653262
| func=mathcalc() { setValue(func, exp, operator, null, FUNCTIONCALC); }
3266-
| func=mathmax() { setValue(func, exp, operator, null, FUNCTION); }
3267-
| func=mathmin() { setValue(func, exp, operator, null, FUNCTION); }
3263+
| func=mathfunction() { setValue(func, exp, operator, null, FUNCTION); }
32683264
| func=mathclamp() { setValue(func, exp, operator, null, FUNCTION); }
32693265
) ) ( <S> )* )
32703266
| (( n=<STRING> { setValue(new CssString(), exp, operator, n, STRING); }
@@ -3303,41 +3299,19 @@ void mediaterm(CssExpression exp) :
33033299
) ( <S> )* )
33043300
}
33053301

3306-
CssCheckableValue mathmin() :
3302+
CssCheckableValue mathfunction() :
33073303
{
33083304
CssCheckableValue v;
3309-
CssMin c;
3305+
CssMathFunction c;
33103306
Token n;
33113307
}
33123308
{
3313-
( n=<FUNCTIONMIN> ( <S> )* v=mathsum() {
3314-
if (v.getRawType() != CssTypes.CSS_MIN) {
3315-
c = new CssMin(v);
3316-
} else {
3317-
c = (CssMin) v;
3318-
}
3319-
}
3320-
( <S> )* ( <COMMA> ( <S> )* v=mathsum() {
3321-
c.addValue(v);
3322-
} ( <S> )* )* <RPAREN> ) {
3323-
c.validate();
3324-
return c;
3325-
}
3326-
}
3327-
3328-
CssCheckableValue mathmax() :
3329-
{
3330-
CssCheckableValue v;
3331-
CssMax c;
3332-
Token n;
3333-
}
3334-
{
3335-
( n=<FUNCTIONMAX> ( <S> )* v=mathsum() {
3336-
if (v.getRawType() != CssTypes.CSS_MAX) {
3337-
c = new CssMax(v);
3338-
} else {
3339-
c = (CssMax) v;
3340-
}
3309+
( n=<FUNCTIONMATHN> ( <S> )* v=mathsum() {
3310+
// if (v.getRawType() != CssTypes.CSS_MATH_FUNCTION) {
3311+
c = new CssMathFunction(ac, n.image, v);
3312+
// } else {
3313+
// c = (CssMathFunction) v;
3314+
// }
33413315
}
33423316
( <S> )* ( <COMMA> ( <S> )* v=mathsum() {
33433317
c.addValue(v);
@@ -3350,13 +3324,16 @@ CssCheckableValue mathmax() :
33503324
CssCheckableValue mathclamp() :
33513325
{
33523326
CssCheckableValue v1, v2, v3;
3353-
CssClamp c;
3354-
Token n;
3327+
CssMathFunction c;
3328+
Token n;
33553329
}
33563330
{
33573331
( n=<FUNCTIONCLAMP> ( <S> )* v1=mathsum() ( <S> )* <COMMA> ( <S> )* v2=mathsum() ( <S> )*
33583332
<COMMA> ( <S> )* v3=mathsum() ( <S> )* <RPAREN> ) {
3359-
c = new CssClamp(ac, v1, v2, v3);
3333+
c = new CssMathFunction(ac, n.image);
3334+
c.addValue(v1);
3335+
c.addValue(v2);
3336+
c.addValue(v3);
33603337
c.validate();
33613338
return c;
33623339
}
@@ -3558,8 +3535,7 @@ char operator = ' ';
35583535
)
35593536
| ( <LPAREN> ( <S> )* v=mathsum() ( <S> )* <RPAREN> ) { ((CssCalc) v).setParenthesis(); }
35603537
| v=mathcalc()
3561-
| v=mathmax()
3562-
| v=mathmin()
3538+
| v=mathfunction()
35633539
| v=mathclamp()
35643540
| v=attr()
35653541
| v=functionvar()
@@ -3867,8 +3843,8 @@ String skip_to_matching_paren() {
38673843
case FUNCTIONNTHLASTOFTYPE:
38683844
case FUNCTIONNOT:
38693845
case FUNCTIONCALC:
3870-
case FUNCTIONMIN:
3871-
case FUNCTIONMAX:
3846+
case FUNCTIONMATHN:
3847+
case FUNCTIONMATH1:
38723848
case FUNCTIONCLAMP:
38733849
case FUNCTIONATTR:
38743850
case FUNCTIONVAR:

0 commit comments

Comments
 (0)