Section 7.1 or CSS Test Suite puzzled me again

Hi folks,

CSS1 [section 7.1] says

<quote>
   A declaration-block starts with a left curly brace ({) and ends with
   the matching right curly brace (}). In between there is a list of zero
   or more declarations, separated by semicolons (;).
   
   A declaration consists of a property, a colon (:) and a value. Around
   each of these there may be whitespace. A property is an identifier, as
   defined earlier. Any character may occur in the value, but parentheses
   (()), brackets ([]), braces ({}), single quotes (') and double quotes
   (") must come in matching pairs. Parentheses, brackets, and braces may
   be nested. Inside the quotes, characters are parsed as a string.
</quote>

The test suite does: [sec71.htm] (white space collapsed by me)

  P.twentytwo { @threedee {rotation-code: '}';} color: green; }

So this is the declaration block: 

  { @threedee {rotation-code: '}';} color: green; }

Declarations are separated by semicolons: So this is the only
declaration:

             ,------------------.---  And there is nothing said about
            |                   |     "block" values.
            v                   v
  @threedee {rotation-code: '}';} color: green
                               ^
                               this semicolons is inside braces and
                               thus does not count.

The property is separated by a colon from the value, so we have:

 property = @threedee {rotation-code: '}';} color
    value = green

And now? How am I supposed to code the parser to read something like
this [faked internal representation]

 (invalid-grabage "@threedee {rotation-code: '}';}")
 (assignment "color" "green")

The only thing I see in CSS1 this might be based upon is "A property
is an identifier". But for me '@threedee {rotation-code: '}';} color'
is simply an invalid property.

So who is right?

Regards,
    Gilbert.

Received on Thursday, 7 January 1999 13:06:45 UTC