- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Sat, 26 Jan 2008 23:39:15 -0800
- To: Justin Rogers <justrog@microsoft.com>
- CC: "www-style@w3.org" <www-style@w3.org>
Justin Rogers wrote: > An at-block is defined as an @ symbol followed by a valid identifier. > When you see an at-rule you don’t know, you eat until you see a > semi-colon or your process the next block whichever comes first. That is > definitely clear. It would then mean for a parser/tokenizer > implementation something like the following: > > @import == (known symbol TOK_ATIMPORT) > > @foo == (unknown but valid TOK_ATWELLFORMED) > > @ == (hum, something is wrong, no valid character TOK_UNKNOWN perhaps) > > @1 == (another bad one, this is kind of like @{name}, could be > TOK_UNKNOWN followed by some series of additional tokens which are > semantically invalid during the error recovery). > > The rules for recovering in a style sheet when you have an unknown token > are to eat the next block. This means if you had the following CSS: > > @1; > > DIV { color: green; } > > Then you would expect the DIV rule to get thrown out. However, if you > treat @1 like an actual at rule, then you could technically start your > reparse at the semi-colon. Browsers again disagree with FireFox/Opera > eating the entire declaration while Safari is perfectly happy going into > at rule error recovery instead. Recorded as CSS2.1 Issue 32: http://csswg.inkedblade.net/spec/css2.1#issue-32 I'll be waiting for Bert and dbaron's takes on this and issue 31 before suggesting them for the telecon agenda. ~fantasai
Received on Sunday, 27 January 2008 07:39:30 UTC