- From: L. David Baron <dbaron@dbaron.org>
- Date: Thu, 19 Oct 2006 23:31:19 -0700
- To: www-style@w3.org
- Message-ID: <20061020063119.GA10346@ridley.dbaron.org>
On Thursday 2006-10-19 22:31 -0600, Rainer Ahlfors wrote:
> The last bullet under 4.2 (Rules for handling parsing errors) reads:
> ------------------------------------------------------------------------
> -------
> Unexpected end of string.
> User agents must close strings upon reaching the end of a line, but then
> drop the construct (declaration or rule) in which the string was found.
> For example:
>
> p {
> color: green;
> font-family: 'Courier New Times
> color: red;
> color: green;
> }
>
> ...would be treated the same as:
>
> p { color: green; color: green; }
>
> ...because the second declaration (from 'font-family' to the semicolon
> after 'color: red') is invalid and is dropped.
> ------------------------------------------------------------------------
> -------
>
> There appears to be a clear conflict between the statement "upon
> reaching the end of a line" and the subsequent example with explanation
> "the second declaration (from 'font-family' to the semicolon after
> 'color: red')." In other words -- is this rule meant to actually mean
> "end of a line" or should it instead be taken to mean "end of a line or
> declaration block, whichever comes first" instead?
I see no conflict. The example rule contains three declarations:
(1)
color: green;
(2)
font-family: 'Courier New Times
color: red;
(3)
color: green;
The second declaration has an unclosed string. The unclosed string
ends at the end of the line. This means this second declaration
consists of the following tokens:
IDENT: font-family
DELIM: :
S
INVALID: 'Courier New Times
S
IDENT: color
DELIM: :
S
IDENT: red
;
Because this declaration has an unclosed string (tokenized as
INVALID), it is dropped without any further parsing of its structure.
-David
--
L. David Baron <URL: http://dbaron.org/ >
Technical Lead, Layout & CSS, Mozilla Corporation
Received on Friday, 20 October 2006 06:31:42 UTC