- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 13 Feb 2009 14:03:38 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/parser/analyzer In directory hutz:/tmp/cvs-serv5722/org/w3c/css/parser/analyzer Modified Files: CssParser.java CssParser.jj Log Message: Imports are now printed in the output Namespace handling, they are now printed in the output, next step is to add them to the context to be checked when a definition using them matches. Index: CssParser.java =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- CssParser.java 12 Feb 2009 21:26:35 -0000 1.51 +++ CssParser.java 13 Feb 2009 14:03:36 -0000 1.52 @@ -174,7 +174,18 @@ * @param url The style sheet where this import statement appears. * @param file the file name in the import */ - public abstract void handleImport(URL url, String file, AtRuleMedia media); + public abstract void handleImport(URL url, String file, + boolean is_url, AtRuleMedia media); + + /** + * Call by the namespace declaration statement. + * + * @param url The style sheet where this namespace statement appears. + * @param file the file/url name in the namespace declaration + */ + public abstract void handleNamespaceDeclaration(URL url, String prefix, + String file, + boolean is_url); /** * Call by the at-rule statement. @@ -619,7 +630,12 @@ } final public void namespaceDeclaration() throws ParseException { - Token n=null; + Token n=null; + Token v=null; + boolean is_url; /* for formatting */ + String nsname; + String prefix = null; + CssValue val; jj_consume_token(NAMESPACE_SYM); label_10: while (true) { @@ -636,6 +652,7 @@ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case IDENT: n = jj_consume_token(IDENT); + prefix = convertIdent(n.image); label_11: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -655,10 +672,20 @@ } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STRING: - jj_consume_token(STRING); + v = jj_consume_token(STRING); + is_url = false; + nsname = v.image.substring(1, n.image.length() -1); break; case URL: - jj_consume_token(URL); + v = jj_consume_token(URL); + is_url = true; + val = new CssURL(); + ((CssURL) val).set(v.image, ac, url); + nsname = (String) val.get(); + if ((nsname.charAt(0) == '"') + || (nsname.charAt(0) == '\'')) { + nsname = nsname.substring(1, nsname.length()-1); + } break; default: jj_la1[16] = jj_gen; @@ -693,8 +720,10 @@ if (!ac.getCssVersion().equals("css3")) { addError(new InvalidParamException("at-rule", "@namespace", ac), n.toString()); - } - if (n != null) { + } else { + if (v != null) { + handleNamespaceDeclaration(getURL(), prefix, nsname, is_url); + } } } @@ -708,6 +737,7 @@ AtRuleMedia media = new AtRuleMedia(); CssValue val; String importFile; + boolean is_url = false; try { jj_consume_token(IMPORT_SYM); label_14: @@ -726,6 +756,7 @@ case STRING: n = jj_consume_token(STRING); importFile = n.image.substring(1, n.image.length() -1); + is_url = false; break; case URL: n = jj_consume_token(URL); @@ -736,6 +767,7 @@ || (importFile.charAt(0) == '\'')) { importFile = importFile.substring(1, importFile.length()-1); } + is_url = true; break; default: jj_la1[20] = jj_gen; @@ -800,7 +832,7 @@ } jj_consume_token(S); } - handleImport(getURL(), importFile, media); + handleImport(getURL(), importFile, is_url, media); } catch (ParseException e) { addError(e, skipStatement()); } @@ -3573,14 +3605,6 @@ finally { jj_save(0, xla); } } - final private boolean jj_3_1() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_83()) jj_scanpos = xsp; - if (jj_scan_token(98)) return true; - return false; - } - final private boolean jj_3R_83() { Token xsp; xsp = jj_scanpos; @@ -3591,6 +3615,14 @@ return false; } + final private boolean jj_3_1() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_83()) jj_scanpos = xsp; + if (jj_scan_token(98)) return true; + return false; + } + public CssParserTokenManager token_source; SimpleCharStream jj_input_stream; public Token token, jj_nt; Index: CssParser.jj =================================================================== RCS file: /sources/public/2002/css-validator/org/w3c/css/parser/analyzer/CssParser.jj,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- CssParser.jj 12 Feb 2009 21:26:35 -0000 1.51 +++ CssParser.jj 13 Feb 2009 14:03:36 -0000 1.52 @@ -193,7 +193,18 @@ * @param url The style sheet where this import statement appears. * @param file the file name in the import */ - public abstract void handleImport(URL url, String file, AtRuleMedia media); + public abstract void handleImport(URL url, String file, + boolean is_url, AtRuleMedia media); + + /** + * Call by the namespace declaration statement. + * + * @param url The style sheet where this namespace statement appears. + * @param file the file/url name in the namespace declaration + */ + public abstract void handleNamespaceDeclaration(URL url, String prefix, + String file, + boolean is_url); /** * Call by the at-rule statement. @@ -693,12 +704,37 @@ } void namespaceDeclaration() : -{ Token n=null;} +{ + Token n=null; + Token v=null; + boolean is_url; /* for formatting */ + String nsname; + String prefix = null; + CssValue val; +} { // FIXME add namespaces in context to match when a definition happens ( <NAMESPACE_SYM> ( <S> )* - ( n=<IDENT> ( <S> )* )? ( <STRING> | <URL> ) + ( n=<IDENT> { + prefix = convertIdent(n.image); + } + ( <S> )* )? + ( v=<STRING> { + is_url = false; + nsname = v.image.substring(1, n.image.length() -1); + } + | v=<URL> { + is_url = true; + val = new CssURL(); + ((CssURL) val).set(v.image, ac, url); + nsname = (String) val.get(); + if ((nsname.charAt(0) == '"') + || (nsname.charAt(0) == '\'')) { + nsname = nsname.substring(1, nsname.length()-1); + } + } + ) ( <S> )* <SEMICOLON> ( <S> )* @@ -706,8 +742,10 @@ if (!ac.getCssVersion().equals("css3")) { addError(new InvalidParamException("at-rule", "@namespace", ac), n.toString()); - } - if (n != null) { + } else { + if (v != null) { + handleNamespaceDeclaration(getURL(), prefix, nsname, is_url); + } } } } @@ -721,12 +759,14 @@ AtRuleMedia media = new AtRuleMedia(); CssValue val; String importFile; + boolean is_url = false; } { try { <IMPORT_SYM> ( <S> )* ( n=<STRING> { importFile = n.image.substring(1, n.image.length() -1); + is_url = false; } | n=<URL> { val = new CssURL(); @@ -736,6 +776,7 @@ || (importFile.charAt(0) == '\'')) { importFile = importFile.substring(1, importFile.length()-1); } + is_url = true; } ) ( <S> )* @@ -744,7 +785,7 @@ )* )? <SEMICOLON> ( <S> )* { - handleImport(getURL(), importFile, media); + handleImport(getURL(), importFile, is_url, media); } } catch (ParseException e) { addError(e, skipStatement());
Received on Friday, 13 February 2009 14:03:47 UTC