- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Sun, 02 Sep 2007 02:01:19 -0500
- To: fantasai <fantasai.lists@inkedblade.net>
- CC: www-style@w3.org
fantasai wrote: > The grammar defines the tokens > > CDO <!-- > CDC --> > > then it defines a style sheet as > > stylesheet : [ CDO | CDC | S | statement ]*; I seem to recall that this has come up in the past on this list and it was concluded that the grammar, as written, is wrong. The idea of allowing these at all is to allow CDO at the beginning of inline stylesheets (_not_ all stylesheets) and allow CDC at the end of inline stylesheets (again not all stylesheets). Has that decision been changed? Or am I recalling incorrectly? That all said, section 4.1.9 just says that CDO and CDC are allowed in a stylesheet production by the grammar (which is true). The grammar itself points to Appending G, which defines CSS 2.1. Note that this is slightly more restrictive, and in particular that according to this grammar the string body { color: red } <!-- comment --> body { color: blue } Does not actually match the stylesheet production. Indeed, for it to match the string "comment" would need to match one of the productions "ruleset", "media", and "page", and it doesn't match any of those. I'm not certain that it's ever been clearly concluded what to do with strings that do not match the stylesheet production. > This means '<!--' and '-->' are allowed anywhere between style rules > and @rules, so your style sheet should result in the following style > rules: > > 1. body { color: red } > 2. comment Sorry, but no. That doesn't follow from the only thing we can actually conclude about our string, which is that it doesn't match the "stylesheet" production of CSS2.1. > I think this would make a very good test for the test suite, btw. Once we figure out what the heck the right behavior is, absolutely. ;) -Boris
Received on Sunday, 2 September 2007 07:01:41 UTC