- From: Yves Lafon <ylafon@w3.org>
- Date: Mon, 17 Mar 2008 10:04:32 -0400 (EDT)
- To: Benjamin Hawkes-Lewis <bhawkeslewis@googlemail.com>
- Cc: www-validator-css@w3.org
On Sat, 15 Mar 2008, Benjamin Hawkes-Lewis wrote: > Yves Lafon wrote: >> The tool is consistent... but it depends on the error case. Lexical errors >> are handled with a skip to matching brace, > > That doesn't appear to be true. > > p { color:red; color:; color:green } > > includes a lexical error since "color:;" cannot be parsed as "property ':' S* > expr prio?" from: > > http://www.w3.org/TR/CSS21/grammar.html#scanner > > The validator calls it a "parse error". > > If what you were saying were true, the validator would skip to the matching > brace, but instead it reports color: green; as valid CSS information. > >> Clearly, "skip to matching brace" is useful to recover, but not in line >> with the error recovery scheme of the CSS21 spec. > > I can see the utility of having no error recovery and I can see the utility > of having the error recovery mandated by the spec. I'm hazy on the merits of > having a second, undocumented form of error recovery that differs from the > spec. It renders the report of "valid CSS information" deceptive. I dug a bit more in the code, and found the culprit. while skipStatement was correctly skipping {} blocks, it was not the case for skipAfterExpression (responsible for errors happening when parsing right hand side of <prop> : <value>. Now fixed and in place at: http://qa-dev.w3.org:8001/css-validator/ Note that it is not in sync completely with the error recovery rules defined by CSS21 (like on EOF) -- Baroula que barouleras, au tiéu toujou t'entourneras. ~~Yves
Received on Monday, 17 March 2008 14:05:06 UTC