- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 14 Sep 2011 16:31:52 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer In directory hutz:/tmp/cvs-serv24952/parser/analyzer Modified Files: CssParser.java CssParser.jj CssParserTokenManager.java Log Message: reworking profile/version check ot avoid doing too many string comparisons, and user defaulting Index: CssParserTokenManager.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParserTokenManager.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- CssParserTokenManager.java 9 Sep 2011 12:16:41 -0000 1.38 +++ CssParserTokenManager.java 14 Sep 2011 16:31:49 -0000 1.39 @@ -24,7 +24,6 @@ import org.w3c.css.values.CssResolution; import org.w3c.css.properties.css.CssProperty; import org.w3c.css.parser.Frame; -import org.w3c.css.util.ApplContext; import org.w3c.css.parser.CssError; import org.w3c.css.parser.CssSelectors; import org.w3c.css.parser.CssParseException; @@ -35,6 +34,9 @@ import org.w3c.css.parser.AtRulePreference; import org.w3c.css.parser.AtRulePhoneticAlphabet; import org.w3c.css.properties.svg.AtRuleColorProfile; [...5151 lines suppressed...] @@ -6087,8 +6105,8 @@ 0x2L, 0x0L, }; protected SimpleCharStream input_stream; -private final int[] jjrounds = new int[728]; -private final int[] jjstateSet = new int[1456]; +private final int[] jjrounds = new int[732]; +private final int[] jjstateSet = new int[1464]; protected char curChar; /** Constructor. */ public CssParserTokenManager(SimpleCharStream stream){ @@ -6115,7 +6133,7 @@ { int i; jjround = 0x80000001; - for (i = 728; i-- > 0;) + for (i = 732; i-- > 0;) jjrounds[i] = 0x80000000; } Index: CssParser.jj =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.jj,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- CssParser.jj 9 Sep 2011 12:16:41 -0000 1.74 +++ CssParser.jj 14 Sep 2011 16:31:49 -0000 1.75 @@ -46,7 +46,6 @@ import org.w3c.css.values.CssResolution; import org.w3c.css.properties.css.CssProperty; import org.w3c.css.parser.Frame; -import org.w3c.css.util.ApplContext; import org.w3c.css.parser.CssError; import org.w3c.css.parser.CssSelectors; import org.w3c.css.parser.CssParseException; @@ -57,6 +56,9 @@ import org.w3c.css.parser.AtRulePreference; import org.w3c.css.parser.AtRulePhoneticAlphabet; import org.w3c.css.properties.svg.AtRuleColorProfile; +import org.w3c.css.util.ApplContext; +import org.w3c.css.util.CssProfile; +import org.w3c.css.util.CssVersion; import org.w3c.css.util.InvalidParamException; import org.w3c.css.util.WarningParamException; import org.w3c.css.util.Util; @@ -322,7 +324,7 @@ char operator, Token n, int token) throws ParseException { if (n != null) { - if (ac.getCssVersion().equals("css1") && + if (ac.getCssVersion() == CssVersion.CSS1 && (n.image).equals("inherit")) { incompatible_error = true; } @@ -506,7 +508,7 @@ | <NUM> "px" > | < EMS : <NUM> "em" > | < EXS : <NUM> "ex" > - | < ANGLE : <NUM> ( "deg" | "grad" | "rad" ) > + | < ANGLE : <NUM> ( "deg" | "grad" | "rad" | "turn" ) > | < TIME : <NUM> ( "ms" | "s" ) > | < FREQ : <NUM> "Hz" | <NUM> "kHz" > | < RESOLUTION : <NUM> "dpi" | <NUM> "dpcm" > @@ -654,6 +656,7 @@ Token space2Token = null; Token semicolonToken = null; int nb_S = 0; + CssVersion version = ac.getCssVersion(); } { try { @@ -670,12 +673,13 @@ throw new ParseException( ac.getMsg().getString("parser.charset")); } - if ("css1".equals(ac.getCssVersion())) { + if (version == CssVersion.CSS1) { throw new ParseException(ac.getMsg().getString( "parser.charsetcss1")); } // stricter rule for CSS21 and soon for CSS3 - if ("css21".equals(ac.getCssVersion())) { + // if equal of above CSS21 + if (version.compareTo(CssVersion.CSS21) >= 0) { // single space before // case sensitive // no space before ; @@ -781,7 +785,8 @@ <SEMICOLON> ( <S> )* ) { - if (!ac.getCssVersion().equals("css3")) { + // If less than CSS 3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { addError(new InvalidParamException("at-rule", "@namespace", ac), (n==null)?"default":n.toString()); } else { @@ -844,6 +849,7 @@ setAtRule(newRule); Token n; CssProperty p = null; + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); } { try { @@ -866,23 +872,22 @@ ac.getFrame().addWarning("noothermedium", getAtRule().toString()); } - if (ac.getCssVersion().equals("css1")) { + if (isCss1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { - newAtRule(getAtRule()); + } else { + newAtRule(getAtRule()); } } <LBRACE> ( <S> )* ( ruleSet() )* <RBRACE> ( <S> )* { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { endOfAtRule(); } } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addError(e, skipStatement()); } } finally { @@ -939,6 +944,7 @@ AtRulePage newRule = new AtRulePage() ; setAtRule(newRule); s.setAtRule(getAtRule()); + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); } { try { @@ -953,11 +959,8 @@ } ) <RBRACE> ( <S> )* { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { newAtRule(getAtRule()); - } - - if (!ac.getCssVersion().equals("css1")) { addProperty(collectv); endOfRule(); endOfAtRule(); @@ -969,13 +972,13 @@ } } } catch (InvalidParamException ie) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { skipStatement(); removeThisAtRule(); ac.getFrame().addError(new CssError(ie)); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { removeThisAtRule(); addError(e, skipStatement()); } @@ -1034,24 +1037,24 @@ setAtRule(new AtRuleFontFace()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); } { try { <FONT_FACE_SYM> ( <S> )* { - if (ac.getCssVersion().equals("css1")) { + if (isCss1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { - newAtRule(getAtRule()); + } else { + newAtRule(getAtRule()); } } <LBRACE> ( <S> )* v=declarations() <RBRACE> ( <S> )* { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1063,7 +1066,7 @@ } } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addError(e, skipStatement()); } } finally { @@ -1078,24 +1081,27 @@ setAtRule(new AtRuleColorProfile()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + CssProfile profile = ac.getCssProfile(); + boolean isSVG = ((profile == CssProfile.SVG) || + (profile == CssProfile.SVGBASIC) || + (profile == CssProfile.SVGTINY)); } { try { <COLOR_PROFILE> ( <S> )* { - if (!ac.getCssVersion().equals("svg")) { + if (!isSVG) { skipStatement(); addError(new InvalidParamException("onlysvg", "", ac), getAtRule().toString()); - } - if (ac.getCssVersion().equals("svg")) { - newAtRule(getAtRule()); + } else { + newAtRule(getAtRule()); } } <LBRACE> ( <S> )* v=declarations() <RBRACE> ( <S> )* { - if (ac.getCssVersion().equals("svg")) { + if (isSVG) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1109,7 +1115,7 @@ } } catch (ParseException e) { - if (ac.getCssVersion().equals("svg")) { + if (isSVG) { addError(e, skipStatement()); } } finally { @@ -1125,24 +1131,24 @@ setAtRule(new AtRulePreference()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + boolean isCSS1 = (ac.getCssVersion() == CssVersion.CSS1); } { try { <PREF_SYM> ( <S> )* { - if (ac.getCssVersion().equals("css1")) { + if (isCSS1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { - newAtRule(getAtRule()); + } else { + newAtRule(getAtRule()); } } <LBRACE> ( <S> )* v=declarations() <RBRACE> ( <S> )* { - if (!ac.getCssVersion().equals("css1")) { + if (!isCSS1) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1156,7 +1162,7 @@ } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCSS1) { addError(e, skipStatement()); } } finally { @@ -1170,12 +1176,14 @@ AtRulePhoneticAlphabet alphabetrule = new AtRulePhoneticAlphabet(); setAtRule(alphabetrule); Token n; + CssVersion version = ac.getCssVersion(); } { try { <PHONETIC_ALPHABET_SYM> ( <S> )* n=<STRING> ( <S> )* ";" { - if (!ac.getCssVersion().equals("css3")) { + // FIXME comparison > CSS3 + if (version.compareTo(CssVersion.CSS3) < 0) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); @@ -1183,13 +1191,13 @@ alphabetrule.addAlphabet(convertIdent(n.image), ac); - if (!ac.getCssVersion().equals("css1") && !ac.getCssVersion().equals("css2")) { + if ((version != CssVersion.CSS1) && (version != CssVersion.CSS2)) { newAtRule(getAtRule()); } } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (version != CssVersion.CSS1) { addError(e, skipStatement()); } } finally { @@ -1329,10 +1337,8 @@ currentContext = null; } } catch (ParseException e) { - if (ac.getProfile() != null) { - if (!ac.getProfile().equals("mobile") && !context_set.isEmpty()) { + if ((ac.getCssProfile() != CssProfile.MOBILE) && !context_set.isEmpty()) { addError(e, skipStatement()); - } } } catch (TokenMgrError e) { addError(new ParseException(e.getMessage()), skipStatement()); @@ -1393,24 +1399,25 @@ try { current=simple_selector(null) ( - comb=combinator() { - if (ac.getProfile() != null) { - if (ac.getProfile().equals("mobile") || + comb=combinator() { + if ((ac.getCssProfile() == CssProfile.MOBILE) || getAtRule().toString().equals("@media atsc-tv") || - ac.getCssVersion().equals("css1")) { - if (comb == '+') + (ac.getCssVersion() == CssVersion.CSS1)) { + if (comb == '+') { throw new InvalidParamException("nocomb", "+", ac); - if (comb == '>') + } + if (comb == '>') { throw new InvalidParamException("nocomb", ">", ac); - } else if (ac.getProfile().equals("tv")) { - if (comb == '+') + } + } else if (ac.getCssProfile() == CssProfile.TV) { + if (comb == '+') { throw new InvalidParamException("nocomb", "+", ac); - } } - if (!ac.getCssVersion().equals("css3")) { + // FIXME should be >= css3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { if (comb == '~') { - throw new InvalidParamException("nocomb", "~", ac); + throw new InvalidParamException("nocomb", "~", ac); } } switch(comb) { @@ -1533,12 +1540,13 @@ // the class with the first digit escaped String cl = "."+hexEscapeFirst(n.image); - String profile = ac.getProfile(); - if(profile == null || profile.equals("") || profile.equals("none")) { - profile = ac.getCssVersion(); - } + CssVersion version = ac.getCssVersion(); +// String profile = ac.getProfile(); +// if(profile == null || profile.equals("") || profile.equals("none")) { +// profile = ac.getCssVersionString(); +// } - if(!profile.equals("css1")) { + if(version != CssVersion.CSS1) { StringBuilder sb = new StringBuilder(); ArrayList<String> param_err = new ArrayList<String>(2); param_err.add(n.image); @@ -1616,14 +1624,15 @@ ( LOOKAHEAD(2) (n=<IDENT> | n=<ANY>)? p="|" )? { // FIXME namespace, check versions of CSS in a better way. if (p != null) { - if (!ac.getCssVersion().equals("css3")) { + // FIXME should be > CSS3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { StringBuilder sb = new StringBuilder("namespace \""); if (n != null) sb.append(n.toString()); sb.append("\""); ac.getFrame().addError(new CssError(new InvalidParamException("notversion", "namespace", - ac.getCssVersion(), + ac.getCssVersionString(), ac))); removeThisRule(); } else if (n!=null) { @@ -1645,12 +1654,12 @@ s.addType(new TypeSelector(prefix, convertIdent(n.image))); } | <ANY> { - if (!ac.getCssVersion().equals("css1")) { + if (ac.getCssVersion() != CssVersion.CSS1) { // s.setElement(null); s.addUniversal(new UniversalSelector(prefix)); } else { ac.getFrame().addError(new CssError(new InvalidParamException("notversion", - "*", ac.getCssVersion(), ac))); + "*", ac.getCssVersionString(), ac))); } } ) @@ -1682,7 +1691,7 @@ ( <S> )* )? <RBRACKET> { - if ("css1".equals(ac.getCssVersion())) { + if (ac.getCssVersion() == CssVersion.CSS1) { StringBuilder reason; CssParseException cp; ParseException p; @@ -1786,12 +1795,13 @@ <PSEUDOELEMENT_SYM> ( ( n=<IDENT> { try { - if (ac.getCssVersion().equals("css3")) { + // should be >CSS3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) >= 0) { s.addPseudoElement(convertIdent(n.image).toLowerCase()); } else { throw new InvalidParamException("pseudo-element", "::" + convertIdent(n.image).toLowerCase() , - ac.getCssVersion() ,ac); + ac.getCssVersionString() ,ac); } } catch(InvalidParamException e) { // removeThisRule(); @@ -1844,13 +1854,11 @@ { n=<HASHIDENT> { n.image = n.image.substring(1); - if(Character.isDigit(n.image.charAt(0))) { - String profile = ac.getProfile(); - if(profile == null || profile.equals("") || profile.equals("none")) { - profile = ac.getCssVersion(); - } - - if(!profile.equals("css1")) { + if(Character.isDigit(n.image.charAt(0))) { + + CssVersion version = ac.getCssVersion(); + + if (version != CssVersion.CSS1) { // the id with the first digit escaped String cl = "\\" + Integer.toString(n.image.charAt(0), 16); cl += n.image.substring(1); @@ -2332,7 +2340,7 @@ int numValue = Character.digit(c, 16); int count = 1; if (maxCount == 0) { - maxCount = (ac.getCssVersion().equals("css1") ? + maxCount = ((ac.getCssVersion() == CssVersion.CSS1) ? 4 : 6); } while (index + 1 < len) { Index: CssParser.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.java,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- CssParser.java 9 Sep 2011 12:16:41 -0000 1.73 +++ CssParser.java 14 Sep 2011 16:31:49 -0000 1.74 @@ -26,7 +26,6 @@ import org.w3c.css.values.CssResolution; import org.w3c.css.properties.css.CssProperty; import org.w3c.css.parser.Frame; -import org.w3c.css.util.ApplContext; import org.w3c.css.parser.CssError; import org.w3c.css.parser.CssSelectors; import org.w3c.css.parser.CssParseException; @@ -37,6 +36,9 @@ import org.w3c.css.parser.AtRulePreference; import org.w3c.css.parser.AtRulePhoneticAlphabet; import org.w3c.css.properties.svg.AtRuleColorProfile; +import org.w3c.css.util.ApplContext; +import org.w3c.css.util.CssProfile; +import org.w3c.css.util.CssVersion; import org.w3c.css.util.InvalidParamException; import org.w3c.css.util.WarningParamException; import org.w3c.css.util.Util; @@ -302,7 +304,7 @@ char operator, Token n, int token) throws ParseException { if (n != null) { - if (ac.getCssVersion().equals("css1") && + if (ac.getCssVersion() == CssVersion.CSS1 && (n.image).equals("inherit")) { incompatible_error = true; } @@ -479,6 +481,7 @@ Token space2Token = null; Token semicolonToken = null; int nb_S = 0; + CssVersion version = ac.getCssVersion(); try { charsetToken = jj_consume_token(CHARSET_SYM); label_6: @@ -518,12 +521,13 @@ {if (true) throw new ParseException( ac.getMsg().getString("parser.charset"));} } - if ("css1".equals(ac.getCssVersion())) { + if (version == CssVersion.CSS1) { {if (true) throw new ParseException(ac.getMsg().getString( "parser.charsetcss1"));} } // stricter rule for CSS21 and soon for CSS3 - if ("css21".equals(ac.getCssVersion())) { + // if equal of above CSS21 + if (version.compareTo(CssVersion.CSS21) >= 0) { // single space before // case sensitive // no space before ; @@ -760,7 +764,8 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("css3")) { + // If less than CSS 3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { addError(new InvalidParamException("at-rule", "@namespace", ac), (n==null)?"default":n.toString()); } else { @@ -890,6 +895,7 @@ setAtRule(newRule); Token n; CssProperty p = null; + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); try { jj_consume_token(MEDIA_SYM); label_20: @@ -1011,12 +1017,11 @@ ac.getFrame().addWarning("noothermedium", getAtRule().toString()); } - if (ac.getCssVersion().equals("css1")) { + if (isCss1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { + } else { newAtRule(getAtRule()); } jj_consume_token(LBRACE); @@ -1074,11 +1079,11 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { endOfAtRule(); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addError(e, skipStatement()); } } finally { @@ -1164,6 +1169,7 @@ AtRulePage newRule = new AtRulePage() ; setAtRule(newRule); s.setAtRule(getAtRule()); + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); try { jj_consume_token(PAGE_SYM); label_34: @@ -1235,11 +1241,8 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { newAtRule(getAtRule()); - } - - if (!ac.getCssVersion().equals("css1")) { addProperty(collectv); endOfRule(); endOfAtRule(); @@ -1250,13 +1253,13 @@ handleRule(s, collectv); } } catch (InvalidParamException ie) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { skipStatement(); removeThisAtRule(); ac.getFrame().addError(new CssError(ie)); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { removeThisAtRule(); addError(e, skipStatement()); } @@ -1384,6 +1387,7 @@ setAtRule(new AtRuleFontFace()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + boolean isCss1 = (ac.getCssVersion() == CssVersion.CSS1); try { jj_consume_token(FONT_FACE_SYM); label_42: @@ -1398,12 +1402,11 @@ } jj_consume_token(S); } - if (ac.getCssVersion().equals("css1")) { + if (isCss1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { + } else { newAtRule(getAtRule()); } jj_consume_token(LBRACE); @@ -1433,7 +1436,7 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1444,7 +1447,7 @@ handleRule(s, v); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCss1) { addError(e, skipStatement()); } } finally { @@ -1458,6 +1461,10 @@ setAtRule(new AtRuleColorProfile()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + CssProfile profile = ac.getCssProfile(); + boolean isSVG = ((profile == CssProfile.SVG) || + (profile == CssProfile.SVGBASIC) || + (profile == CssProfile.SVGTINY)); try { jj_consume_token(COLOR_PROFILE); label_45: @@ -1472,12 +1479,11 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("svg")) { + if (!isSVG) { skipStatement(); addError(new InvalidParamException("onlysvg", "", ac), getAtRule().toString()); - } - if (ac.getCssVersion().equals("svg")) { + } else { newAtRule(getAtRule()); } jj_consume_token(LBRACE); @@ -1507,7 +1513,7 @@ } jj_consume_token(S); } - if (ac.getCssVersion().equals("svg")) { + if (isSVG) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1519,7 +1525,7 @@ handleRule(s, v); } } catch (ParseException e) { - if (ac.getCssVersion().equals("svg")) { + if (isSVG) { addError(e, skipStatement()); } } finally { @@ -1533,6 +1539,7 @@ setAtRule(new AtRulePreference()); CssSelectors s = new CssSelectors(ac); s.setAtRule(getAtRule()); + boolean isCSS1 = (ac.getCssVersion() == CssVersion.CSS1); try { jj_consume_token(PREF_SYM); label_48: @@ -1547,12 +1554,11 @@ } jj_consume_token(S); } - if (ac.getCssVersion().equals("css1")) { + if (isCSS1) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); - } - if (!ac.getCssVersion().equals("css1")) { + } else { newAtRule(getAtRule()); } jj_consume_token(LBRACE); @@ -1582,7 +1588,7 @@ } jj_consume_token(S); } - if (!ac.getCssVersion().equals("css1")) { + if (!isCSS1) { addProperty(v); endOfRule(); endOfAtRule(); @@ -1594,7 +1600,7 @@ handleRule(s, v); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (!isCSS1) { addError(e, skipStatement()); } } finally { @@ -1607,6 +1613,7 @@ AtRulePhoneticAlphabet alphabetrule = new AtRulePhoneticAlphabet(); setAtRule(alphabetrule); Token n; + CssVersion version = ac.getCssVersion(); try { jj_consume_token(PHONETIC_ALPHABET_SYM); label_51: @@ -1635,7 +1642,8 @@ jj_consume_token(S); } jj_consume_token(SEMICOLON); - if (!ac.getCssVersion().equals("css3")) { + // FIXME comparison > CSS3 + if (version.compareTo(CssVersion.CSS3) < 0) { skipStatement(); addError(new InvalidParamException("noatruleyet", "", ac), getAtRule().toString()); @@ -1643,11 +1651,11 @@ alphabetrule.addAlphabet(convertIdent(n.image), ac); - if (!ac.getCssVersion().equals("css1") && !ac.getCssVersion().equals("css2")) { + if ((version != CssVersion.CSS1) && (version != CssVersion.CSS2)) { newAtRule(getAtRule()); } } catch (ParseException e) { - if (!ac.getCssVersion().equals("css1")) { + if (version != CssVersion.CSS1) { addError(e, skipStatement()); } } finally { @@ -1916,10 +1924,8 @@ } currentContext = null; } catch (ParseException e) { - if (ac.getProfile() != null) { - if (!ac.getProfile().equals("mobile") && !context_set.isEmpty()) { + if ((ac.getCssProfile() != CssProfile.MOBILE) && !context_set.isEmpty()) { addError(e, skipStatement()); - } } } catch (TokenMgrError e) { addError(new ParseException(e.getMessage()), skipStatement()); @@ -2021,23 +2027,24 @@ break label_63; } comb = combinator(); - if (ac.getProfile() != null) { - if (ac.getProfile().equals("mobile") || + if ((ac.getCssProfile() == CssProfile.MOBILE) || getAtRule().toString().equals("@media atsc-tv") || - ac.getCssVersion().equals("css1")) { - if (comb == '+') + (ac.getCssVersion() == CssVersion.CSS1)) { + if (comb == '+') { {if (true) throw new InvalidParamException("nocomb", "+", ac);} - if (comb == '>') + } + if (comb == '>') { {if (true) throw new InvalidParamException("nocomb", ">", ac);} - } else if (ac.getProfile().equals("tv")) { - if (comb == '+') + } + } else if (ac.getCssProfile() == CssProfile.TV) { + if (comb == '+') { {if (true) throw new InvalidParamException("nocomb", "+", ac);} - } } - if (!ac.getCssVersion().equals("css3")) { + // FIXME should be >= css3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { if (comb == '~') { - {if (true) throw new InvalidParamException("nocomb", "~", ac);} + {if (true) throw new InvalidParamException("nocomb", "~", ac);} } } switch(comb) { @@ -2314,12 +2321,13 @@ // the class with the first digit escaped String cl = "."+hexEscapeFirst(n.image); - String profile = ac.getProfile(); - if(profile == null || profile.equals("") || profile.equals("none")) { - profile = ac.getCssVersion(); - } + CssVersion version = ac.getCssVersion(); +// String profile = ac.getProfile(); +// if(profile == null || profile.equals("") || profile.equals("none")) { +// profile = ac.getCssVersionString(); +// } - if(!profile.equals("css1")) { + if(version != CssVersion.CSS1) { StringBuilder sb = new StringBuilder(); ArrayList<String> param_err = new ArrayList<String>(2); param_err.add(n.image); @@ -2441,14 +2449,15 @@ } // FIXME namespace, check versions of CSS in a better way. if (p != null) { - if (!ac.getCssVersion().equals("css3")) { + // FIXME should be > CSS3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) < 0) { StringBuilder sb = new StringBuilder("namespace \u005c""); if (n != null) sb.append(n.toString()); sb.append("\u005c""); ac.getFrame().addError(new CssError(new InvalidParamException("notversion", "namespace", - ac.getCssVersion(), + ac.getCssVersionString(), ac))); removeThisRule(); } else if (n!=null) { @@ -2473,12 +2482,12 @@ break; case ANY: jj_consume_token(ANY); - if (!ac.getCssVersion().equals("css1")) { + if (ac.getCssVersion() != CssVersion.CSS1) { // s.setElement(null); s.addUniversal(new UniversalSelector(prefix)); } else { ac.getFrame().addError(new CssError(new InvalidParamException("notversion", - "*", ac.getCssVersion(), ac))); + "*", ac.getCssVersionString(), ac))); } break; default: @@ -2602,7 +2611,7 @@ ; } jj_consume_token(RBRACKET); - if ("css1".equals(ac.getCssVersion())) { + if (ac.getCssVersion() == CssVersion.CSS1) { StringBuilder reason; CssParseException cp; ParseException p; @@ -2748,12 +2757,13 @@ jj_consume_token(PSEUDOELEMENT_SYM); n = jj_consume_token(IDENT); try { - if (ac.getCssVersion().equals("css3")) { + // should be >CSS3 + if (ac.getCssVersion().compareTo(CssVersion.CSS3) >= 0) { s.addPseudoElement(convertIdent(n.image).toLowerCase()); } else { {if (true) throw new InvalidParamException("pseudo-element", "::" + convertIdent(n.image).toLowerCase() , - ac.getCssVersion() ,ac);} + ac.getCssVersionString() ,ac);} } } catch(InvalidParamException e) { // removeThisRule(); @@ -2882,12 +2892,10 @@ n = jj_consume_token(HASHIDENT); n.image = n.image.substring(1); if(Character.isDigit(n.image.charAt(0))) { - String profile = ac.getProfile(); - if(profile == null || profile.equals("") || profile.equals("none")) { - profile = ac.getCssVersion(); - } - if(!profile.equals("css1")) { + CssVersion version = ac.getCssVersion(); + + if (version != CssVersion.CSS1) { // the id with the first digit escaped String cl = "\u005c\u005c" + Integer.toString(n.image.charAt(0), 16); cl += n.image.substring(1); @@ -3625,7 +3633,7 @@ int numValue = Character.digit(c, 16); int count = 1; if (maxCount == 0) { - maxCount = (ac.getCssVersion().equals("css1") ? + maxCount = ((ac.getCssVersion() == CssVersion.CSS1) ? 4 : 6); } while (index + 1 < len) {
Received on Wednesday, 14 September 2011 16:32:07 UTC