Skip to content

Commit a930558

Browse files
committed
move 8b4c826 to the parser where it belongs
1 parent 8b4c826 commit a930558

File tree

3 files changed

+100
-153
lines changed

3 files changed

+100
-153
lines changed

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

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8561,6 +8561,7 @@ final public boolean prio() throws ParseException {
85618561
final public CssValue function() throws ParseException {Token n,p = null,q = null;
85628562
CssExpression exp = new CssExpression();
85638563
CssColor color = new CssColor();
8564+
CssImage img;
85648565
n = jj_consume_token(FUNCTION);
85658566
label_221:
85668567
while (true) {
@@ -8626,85 +8627,86 @@ final public boolean prio() throws ParseException {
86268627
}
86278628
jj_consume_token(RPAREN);
86288629
String funcname = n.image.toLowerCase();
8629-
if (funcname.equals("rgb(")) {
8630+
switch(funcname) {
8631+
case "rgb(":
86308632
color.setRGBColor(ac, exp);
86318633
{if ("" != null) return color;}
8632-
} else if (funcname.equals("rgba(")) {
8634+
case "rgba(":
86338635
color.setRGBAColor(ac, exp);
86348636
{if ("" != null) return color;}
8635-
} else if (funcname.equals("hsl(")) {
8637+
case "hsl(":
86368638
color.setHSLColor(ac, exp);
86378639
{if ("" != null) return color;}
8638-
} else if (funcname.equals("hsla(")) {
8640+
case "hsla(":
86398641
color.setHSLAColor(ac, exp);
86408642
{if ("" != null) return color;}
8641-
} else if (funcname.equals("hwb(")) {
8643+
case "hwb(":
86428644
color.setHWBColor(ac, exp);
86438645
{if ("" != null) return color;}
8644-
} else if (funcname.equals("lab(")) {
8646+
case "lab(":
86458647
color.setLABColor(ac, exp);
86468648
{if ("" != null) return color;}
8647-
} else if (funcname.equals("lch(")) {
8649+
case "lch(":
86488650
color.setLCHColor(ac, exp);
86498651
{if ("" != null) return color;}
8650-
} else if (funcname.equals("oklab(")) {
8652+
case "oklab(":
86518653
color.setOKLABColor(ac, exp);
86528654
{if ("" != null) return color;}
8653-
} else if (funcname.equals("oklch(")) {
8655+
case "oklch(":
86548656
color.setOKLCHColor(ac, exp);
86558657
{if ("" != null) return color;}
8656-
} else if (funcname.equals("device-cmyk(")) {
8658+
case "device-cmyk(":
86578659
color.setDeviceCMYKColor(ac, exp);
86588660
{if ("" != null) return color;}
8659-
} else if (funcname.equals("light-dark(")) {
8661+
case "light-dark(":
86608662
color.setLightDark(ac, exp);
86618663
{if ("" != null) return color;}
8662-
} else if (funcname.equals("color-mix(")) {
8664+
case "color-mix(":
86638665
color.setColorMix(ac, exp);
86648666
{if ("" != null) return color;}
8665-
} else if (funcname.equals("image(")) {
8666-
CssImage img = new CssImage();
8667-
img.setImageList(exp, ac);
8668-
{if ("" != null) return img;}
8669-
} else if (funcname.equals("linear-gradient(")) {
8670-
CssImage img = new CssImage();
8667+
case "image(":
8668+
img = new CssImage();
8669+
img.setImageList(exp, ac);
8670+
{if ("" != null) return img;}
8671+
case "linear-gradient(":
8672+
img = new CssImage();
86718673
img.setLinearGradient(exp, ac);
86728674
{if ("" != null) return img;}
8673-
} else if (funcname.equals("repeating-linear-gradient(")) {
8674-
CssImage img = new CssImage();
8675+
case "repeating-linear-gradient(":
8676+
img = new CssImage();
86758677
img.setRepeatingLinearGradient(exp, ac);
86768678
{if ("" != null) return img;}
8677-
} else if (funcname.equals("radial-gradient(")) {
8678-
CssImage img = new CssImage();
8679+
case "radial-gradient(":
8680+
img = new CssImage();
86798681
img.setRadialGradient(exp, ac);
86808682
{if ("" != null) return img;}
8681-
} else if (funcname.equals("repeating-radial-gradient(")) {
8682-
CssImage img = new CssImage();
8683+
case "repeating-radial-gradient(":
8684+
img = new CssImage();
86838685
img.setRepeatingRadialGradient(exp, ac);
86848686
{if ("" != null) return img;}
8685-
} else if (funcname.equals("conic-gradient(")) {
8686-
CssImage img = new CssImage();
8687+
case "conic-gradient(":
8688+
img = new CssImage();
86878689
img.setConicGradient(exp, ac);
86888690
{if ("" != null) return img;}
8689-
} else if (funcname.equals("repeating-conic-gradient(")) {
8690-
CssImage img = new CssImage();
8691+
case "repeating-conic-gradient(":
8692+
img = new CssImage();
86918693
img.setRepeatingConicGradient(exp, ac);
86928694
{if ("" != null) return img;}
8693-
} else if (funcname.equals("atsc-rgba(")) {
8694-
if (getAtRule().toString().equals("@media atsc-tv")) {
8695-
color.setATSCRGBAColor(ac, exp);
8696-
{if ("" != null) return color;}
8697-
} else {
8698-
addError(new InvalidParamException("onlyATSC", "", ac),
8695+
case "atsc-rgba(":
8696+
if (getAtRule().toString().equals("@media atsc-tv")) {
8697+
color.setATSCRGBAColor(ac, exp);
8698+
{if ("" != null) return color;}
8699+
} else {
8700+
addError(new InvalidParamException("onlyATSC", "", ac),
86998701
getAtRule().toString());
8700-
{if ("" != null) return null;}
8701-
}
8702-
} else {
8703-
CssFunction f = new CssFunction();
8704-
f.set(n.image.substring(0, n.image.length() - 1), exp);
8705-
if (funcname.charAt(0) == '-') {
8706-
exp.markVendorExtension();
8707-
}
8702+
{if ("" != null) return null;}
8703+
}
8704+
default:
8705+
CssFunction f = new CssFunction();
8706+
f.set(n.image.substring(0, n.image.length() - 1), exp);
8707+
if (funcname.charAt(0) == '-') {
8708+
exp.markVendorExtension();
8709+
}
87088710
{if ("" != null) return f;}
87098711
}
87108712
} else {

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

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -3693,90 +3693,92 @@ CssValue function() :
36933693
{Token n,p = null,q = null;
36943694
CssExpression exp = new CssExpression();
36953695
CssColor color = new CssColor();
3696+
CssImage img;
36963697
}
36973698
{
36983699
n=<FUNCTION> ( <S> )* ( LOOKAHEAD(2) ( exp=expr() )?
36993700
")" {
37003701
String funcname = n.image.toLowerCase();
3701-
if (funcname.equals("rgb(")) {
3702-
color.setRGBColor(ac, exp);
3703-
return color;
3704-
} else if (funcname.equals("rgba(")) {
3705-
color.setRGBAColor(ac, exp);
3706-
return color;
3707-
} else if (funcname.equals("hsl(")) {
3708-
color.setHSLColor(ac, exp);
3709-
return color;
3710-
} else if (funcname.equals("hsla(")) {
3711-
color.setHSLAColor(ac, exp);
3712-
return color;
3713-
} else if (funcname.equals("hwb(")) {
3702+
switch(funcname) {
3703+
case "rgb(":
3704+
color.setRGBColor(ac, exp);
3705+
return color;
3706+
case "rgba(":
3707+
color.setRGBAColor(ac, exp);
3708+
return color;
3709+
case "hsl(":
3710+
color.setHSLColor(ac, exp);
3711+
return color;
3712+
case "hsla(":
3713+
color.setHSLAColor(ac, exp);
3714+
return color;
3715+
case "hwb(":
37143716
color.setHWBColor(ac, exp);
37153717
return color;
3716-
} else if (funcname.equals("lab(")) {
3718+
case "lab(":
37173719
color.setLABColor(ac, exp);
37183720
return color;
3719-
} else if (funcname.equals("lch(")) {
3721+
case "lch(":
37203722
color.setLCHColor(ac, exp);
37213723
return color;
3722-
} else if (funcname.equals("oklab(")) {
3724+
case "oklab(":
37233725
color.setOKLABColor(ac, exp);
37243726
return color;
3725-
} else if (funcname.equals("oklch(")) {
3727+
case "oklch(":
37263728
color.setOKLCHColor(ac, exp);
37273729
return color;
3728-
} else if (funcname.equals("device-cmyk(")) {
3730+
case "device-cmyk(":
37293731
color.setDeviceCMYKColor(ac, exp);
37303732
return color;
3731-
} else if (funcname.equals("light-dark(")) {
3732-
color.setLightDark(ac, exp);
3733-
return color;
3734-
} else if (funcname.equals("color-mix(")) {
3735-
color.setColorMix(ac, exp);
3736-
return color;
3737-
} else if (funcname.equals("image(")) {
3738-
CssImage img = new CssImage();
3739-
img.setImageList(exp, ac);
3740-
return img;
3741-
} else if (funcname.equals("linear-gradient(")) {
3742-
CssImage img = new CssImage();
3733+
case "light-dark(":
3734+
color.setLightDark(ac, exp);
3735+
return color;
3736+
case "color-mix(":
3737+
color.setColorMix(ac, exp);
3738+
return color;
3739+
case "image(":
3740+
img = new CssImage();
3741+
img.setImageList(exp, ac);
3742+
return img;
3743+
case "linear-gradient(":
3744+
img = new CssImage();
37433745
img.setLinearGradient(exp, ac);
37443746
return img;
3745-
} else if (funcname.equals("repeating-linear-gradient(")) {
3746-
CssImage img = new CssImage();
3747+
case "repeating-linear-gradient(":
3748+
img = new CssImage();
37473749
img.setRepeatingLinearGradient(exp, ac);
37483750
return img;
3749-
} else if (funcname.equals("radial-gradient(")) {
3750-
CssImage img = new CssImage();
3751+
case "radial-gradient(":
3752+
img = new CssImage();
37513753
img.setRadialGradient(exp, ac);
37523754
return img;
3753-
} else if (funcname.equals("repeating-radial-gradient(")) {
3754-
CssImage img = new CssImage();
3755+
case "repeating-radial-gradient(":
3756+
img = new CssImage();
37553757
img.setRepeatingRadialGradient(exp, ac);
37563758
return img;
3757-
} else if (funcname.equals("conic-gradient(")) {
3758-
CssImage img = new CssImage();
3759+
case "conic-gradient(":
3760+
img = new CssImage();
37593761
img.setConicGradient(exp, ac);
37603762
return img;
3761-
} else if (funcname.equals("repeating-conic-gradient(")) {
3762-
CssImage img = new CssImage();
3763+
case "repeating-conic-gradient(":
3764+
img = new CssImage();
37633765
img.setRepeatingConicGradient(exp, ac);
37643766
return img;
3765-
} else if (funcname.equals("atsc-rgba(")) {
3766-
if (getAtRule().toString().equals("@media atsc-tv")) {
3767-
color.setATSCRGBAColor(ac, exp);
3768-
return color;
3769-
} else {
3770-
addError(new InvalidParamException("onlyATSC", "", ac),
3767+
case "atsc-rgba(":
3768+
if (getAtRule().toString().equals("@media atsc-tv")) {
3769+
color.setATSCRGBAColor(ac, exp);
3770+
return color;
3771+
} else {
3772+
addError(new InvalidParamException("onlyATSC", "", ac),
37713773
getAtRule().toString());
3772-
return null;
3773-
}
3774-
} else {
3775-
CssFunction f = new CssFunction();
3776-
f.set(n.image.substring(0, n.image.length() - 1), exp);
3777-
if (funcname.charAt(0) == '-') {
3778-
exp.markVendorExtension();
3779-
}
3774+
return null;
3775+
}
3776+
default:
3777+
CssFunction f = new CssFunction();
3778+
f.set(n.image.substring(0, n.image.length() - 1), exp);
3779+
if (funcname.charAt(0) == '-') {
3780+
exp.markVendorExtension();
3781+
}
37803782
return f;
37813783
}
37823784
} | p=ident() <EQ> q=<NUMBER> ")" ) {

org/w3c/css/values/CssColor.java

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -487,63 +487,6 @@ private void __setRGBAColor(ApplContext ac, CssExpression exp, RGBA rgba)
487487
}
488488
}
489489

490-
/**
491-
* parse a color function based on its name.
492-
* @param ac
493-
* @param exp
494-
* @param function_name
495-
* @return a CssColor instance or null
496-
* @throws InvalidParamException
497-
*/
498-
public static CssColor parseColorFunction(ApplContext ac, CssExpression exp, String function_name)
499-
throws InvalidParamException {
500-
if (function_name != null) {
501-
CssColor color = new CssColor();
502-
switch (function_name) {
503-
case "rgb(":
504-
color.setRGBColor(ac, exp);
505-
break;
506-
case "rgba(":
507-
color.setRGBAColor(ac, exp);
508-
break;
509-
case "hsl(":
510-
color.setHSLColor(ac, exp);
511-
break;
512-
case "hsla(":
513-
color.setHSLAColor(ac, exp);
514-
break;
515-
case "hwb(":
516-
color.setHWBColor(ac, exp);
517-
break;
518-
case "lab(":
519-
color.setLABColor(ac, exp);
520-
break;
521-
case "lch(":
522-
color.setLCHColor(ac, exp);
523-
break;
524-
case "oklab(":
525-
color.setOKLABColor(ac, exp);
526-
break;
527-
case "oklch(":
528-
color.setOKLCHColor(ac, exp);
529-
break;
530-
case "device-cmyk(":
531-
color.setDeviceCMYKColor(ac, exp);
532-
break;
533-
case "light-dark(":
534-
color.setLightDark(ac, exp);
535-
break;
536-
case "color-mix(":
537-
color.setColorMix(ac, exp);
538-
break;
539-
default:
540-
throw new InvalidParamException("invalid-color", ac);
541-
}
542-
return color;
543-
}
544-
return null;
545-
}
546-
547490
public void setHWBColor(ApplContext ac, CssExpression exp)
548491
throws InvalidParamException {
549492
hwb = HWB.parseHWBColor(ac, exp, this);

0 commit comments

Comments
 (0)