Re: CSS parser recovery

On Fri, 13 Dec 2002, Tantek Çelik wrote:
> 
> It is a misconception that you must match random braces everywhere when
> parsing CSS.  See CSS1 section 7.1 for precise specifics on when "blocks"
> (as defined in 7.1, {...} ) may appear.

CSS1 7.1 (emphasis mine):

# A block starts with a left curly brace ({) and ends with the
# matching right curly brace (}). In between there may be any
# characters, except that parentheses (()), brackets ([]) and braces
# ({}) always occur in matching pairs and may be nested. Single (')
# and double quotes (") also occur in matching pairs, and characters
# between them are parsed as a string (see the tokenizer in appendix B
# for a definition of string).
#
# ...
#
# A declaration-block starts with a left curly brace ({) and ends with
# the MATCHING right curly brace (}).

The spec doesn't explicitly give an example with a block before a
colon, but I see no justification in the spec for ignoring the rules
given above on the left hand side of a declaration.

-- 
Ian Hickson                                      )\._.,--....,'``.    fL
"meow"                                          /,   _.. \   _\  ;`._ ,.
http://index.hixie.ch/                         `._.-(,_..'--(,_..'`-.;.'

Received on Saturday, 14 December 2002 02:17:36 UTC