- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 12 Feb 2009 10:32:54 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer
In directory hutz:/tmp/cvs-serv630/org/w3c/css/parser/analyzer
Modified Files:
CssParser.java CssParser.jj CssParserTokenManager.java
Log Message:
Pseudo Elements and Pseudo Classes are now distinct, and pseudo-elements
are displayed as they should.
General Siblig connectos (CSS3) handled properly.
Index: CssParserTokenManager.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParserTokenManager.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- CssParserTokenManager.java 11 Feb 2009 21:45:35 -0000 1.29
+++ CssParserTokenManager.java 12 Feb 2009 10:32:52 -0000 1.30
@@ -37,11 +37,12 @@
import org.w3c.css.util.Util;
import org.w3c.css.util.Messages;
import org.w3c.css.css.StyleSheetCom;
-import org.w3c.css.selectors.AdjacentSelector;
+import org.w3c.css.selectors.AdjacentSiblingSelector;
import org.w3c.css.selectors.AttributeSelector;
import org.w3c.css.selectors.ChildSelector;
import org.w3c.css.selectors.ClassSelector;
import org.w3c.css.selectors.DescendantSelector;
+import org.w3c.css.selectors.GeneralSiblingSelector;
import org.w3c.css.selectors.IdSelector;
import org.w3c.css.selectors.TypeSelector;
import org.w3c.css.selectors.UniversalSelector;
Index: CssParser.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- CssParser.java 11 Feb 2009 23:15:02 -0000 1.49
+++ CssParser.java 12 Feb 2009 10:32:51 -0000 1.50
@@ -40,11 +40,12 @@
import org.w3c.css.util.Messages;
import org.w3c.css.css.StyleSheetCom;
-import org.w3c.css.selectors.AdjacentSelector;
+import org.w3c.css.selectors.AdjacentSiblingSelector;
import org.w3c.css.selectors.AttributeSelector;
import org.w3c.css.selectors.ChildSelector;
import org.w3c.css.selectors.ClassSelector;
import org.w3c.css.selectors.DescendantSelector;
+import org.w3c.css.selectors.GeneralSiblingSelector;
import org.w3c.css.selectors.IdSelector;
import org.w3c.css.selectors.TypeSelector;
import org.w3c.css.selectors.UniversalSelector;
@@ -1829,11 +1830,14 @@
}
switch(comb) {
case '+':
- current.addAdjacent(new AdjacentSelector());
+ current.addAdjacentSibling(new AdjacentSiblingSelector());
break;
case '>':
current.addChild(new ChildSelector());
break;
+ case '~':
+ current.addGeneralSibling(new GeneralSiblingSelector());
+ break;
default:
current.addDescendant(new DescendantSelector());
}
@@ -2386,18 +2390,18 @@
case PSEUDOCLASS_SYM:
jj_consume_token(PSEUDOCLASS_SYM);
n = jj_consume_token(IDENT);
- try {
- if (ac.getCssVersion().equals("css3")) {
- s.addPseudo(convertIdent(n.image).toLowerCase());
- } else {
- {if (true) throw new InvalidParamException("pseudo-element", ":" + convertIdent(n.image).toLowerCase() ,
- ac.getCssVersion() ,ac);}
- }
- } catch(InvalidParamException e) {
- //e.printStackTrace();
- removeThisRule();
- ac.getFrame().addError(new CssError(e));
+ try {
+ if (ac.getCssVersion().equals("css3")) {
+ s.addPseudoElement(convertIdent(n.image).toLowerCase());
+ } else {
+ {if (true) throw new InvalidParamException("pseudo-element", "::" + convertIdent(n.image).toLowerCase() ,
+ ac.getCssVersion() ,ac);}
}
+ } catch(InvalidParamException e) {
+ //e.printStackTrace();
+ removeThisRule();
+ ac.getFrame().addError(new CssError(e));
+ }
break;
case COLON:
jj_consume_token(COLON);
@@ -2405,11 +2409,11 @@
case IDENT:
n = jj_consume_token(IDENT);
try {
- s.addPseudo(convertIdent(n.image).toLowerCase());
+ s.addPseudoClass(convertIdent(n.image).toLowerCase());
} catch(InvalidParamException e) {
- //e.printStackTrace();
- removeThisRule();
- ac.getFrame().addError(new CssError(e));
+ //e.printStackTrace();
+ removeThisRule();
+ ac.getFrame().addError(new CssError(e));
}
break;
case FUNCTIONLANG:
@@ -3028,19 +3032,17 @@
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case HASHIDENT:
n = jj_consume_token(HASHIDENT);
- n.image = Util.strip(n.image);
- setValue(new org.w3c.css.values.CssColor(), exp, ' ', n, HASH);
break;
case HASH:
n = jj_consume_token(HASH);
- n.image = Util.strip(n.image);
- setValue(new org.w3c.css.values.CssColor(), exp, ' ', n, HASH);
break;
default:
jj_la1[112] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
+ n.image = Util.strip(n.image);
+ setValue(new org.w3c.css.values.CssColor(), exp, ' ', n, HASH);
}
String skipStatement() throws ParseException {
Index: CssParser.jj
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.jj,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- CssParser.jj 11 Feb 2009 23:14:46 -0000 1.49
+++ CssParser.jj 12 Feb 2009 10:32:52 -0000 1.50
@@ -59,11 +59,12 @@
import org.w3c.css.util.Messages;
import org.w3c.css.css.StyleSheetCom;
-import org.w3c.css.selectors.AdjacentSelector;
+import org.w3c.css.selectors.AdjacentSiblingSelector;
import org.w3c.css.selectors.AttributeSelector;
import org.w3c.css.selectors.ChildSelector;
import org.w3c.css.selectors.ClassSelector;
import org.w3c.css.selectors.DescendantSelector;
+import org.w3c.css.selectors.GeneralSiblingSelector;
import org.w3c.css.selectors.IdSelector;
import org.w3c.css.selectors.TypeSelector;
import org.w3c.css.selectors.UniversalSelector;
@@ -1282,11 +1283,14 @@
}
switch(comb) {
case '+':
- current.addAdjacent(new AdjacentSelector());
+ current.addAdjacentSibling(new AdjacentSiblingSelector());
break;
case '>':
current.addChild(new ChildSelector());
break;
+ case '~':
+ current.addGeneralSibling(new GeneralSiblingSelector());
+ break;
default:
current.addDescendant(new DescendantSelector());
}
@@ -1572,33 +1576,33 @@
CssSelectors param = null;
}
{
- <PSEUDOCLASS_SYM> ( ( n=<IDENT>
- {
- try {
- if (ac.getCssVersion().equals("css3")) {
- s.addPseudo(convertIdent(n.image).toLowerCase());
- } else {
- throw new InvalidParamException("pseudo-element", ":" + convertIdent(n.image).toLowerCase() ,
- ac.getCssVersion() ,ac);
- }
- } catch(InvalidParamException e) {
- //e.printStackTrace();
- removeThisRule();
- ac.getFrame().addError(new CssError(e));
+ <PSEUDOCLASS_SYM> ( ( n=<IDENT>
+ {
+ try {
+ if (ac.getCssVersion().equals("css3")) {
+ s.addPseudoElement(convertIdent(n.image).toLowerCase());
+ } else {
+ throw new InvalidParamException("pseudo-element", "::" + convertIdent(n.image).toLowerCase() ,
+ ac.getCssVersion() ,ac);
}
- } ) )
+ } catch(InvalidParamException e) {
+ //e.printStackTrace();
+ removeThisRule();
+ ac.getFrame().addError(new CssError(e));
+ }
+ } ) )
|
- <COLON> ( ( n=<IDENT>
- {
+ <COLON> ( ( n=<IDENT>
+ {
try {
- s.addPseudo(convertIdent(n.image).toLowerCase());
+ s.addPseudoClass(convertIdent(n.image).toLowerCase());
} catch(InvalidParamException e) {
- //e.printStackTrace();
- removeThisRule();
- ac.getFrame().addError(new CssError(e));
+ //e.printStackTrace();
+ removeThisRule();
+ ac.getFrame().addError(new CssError(e));
}
- } )
- // FXIXME rewrite to make :lang( use a special case
+ } )
+ // FXIXME rewrite to make :lang( use a special case
| ( ( n=<FUNCTIONLANG> ( <S> )* (language=<NUMBER> | language=<IDENT> | language=<STRING> ) ) {
try {
s.setPseudoFun(convertStringIndex(n.image, 0,
@@ -1926,14 +1930,10 @@
{Token n;
}
{
- n=<HASHIDENT> {
+ ( n=<HASHIDENT> | n=<HASH> ) {
n.image = Util.strip(n.image);
setValue(new org.w3c.css.values.CssColor(), exp, ' ', n, HASH);
- }
- |n=<HASH> {
- n.image = Util.strip(n.image);
- setValue(new org.w3c.css.values.CssColor(), exp, ' ', n, HASH);
- }
+ }
}
/*
Received on Thursday, 12 February 2009 10:33:03 UTC