W3C home > Mailing lists > Public > www-style@w3.org > September 2010

Re: [CSS21][CSS3] Grammar Error

From: Christoph Päper <christoph.paeper@crissov.de>
Date: Fri, 3 Sep 2010 12:07:27 +0200
Message-Id: <8BE016B8-AE4C-4D9E-BB05-D64B1025D0C3@crissov.de>
To: "www-style@w3.org list" <www-style@w3.org>
Mark:
> On Thu, Sep 2, 2010 at 1:32 PM, Jorrit Vermeiren <mercator+w3c@gmail.com> wrote:
>> On Thu, Sep 2, 2010 at 09:49, Mark <markjord@gmail.com> wrote:
>>> 
>>> ruleset
>>>  : selector [ ',' S* selector ]*
>>>    '{' S* declaration? [ ';' S* declaration? ]* '}' S*
>> 
>> selector
>>  : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
> 
> If I only have a simple_selector, how is it taken care of?

You only have only a ‘simple_selector’ if there’s no space betweeen it and the opening brace, otherwise you have ‘simple_selector S+’ as ‘selector’. There’s no problem, although I agree that ‘S*’ in front of the brace would look more intuitive, when you consider the space a divider and not part of the selector. I think you could then remove one question mark:

  ruleset
   : selector [ ',' S* selector ]*
     S* '{' S* declaration? [ ';' S* declaration? ]* '}' S*

  selector
   : simple_selector [ combinator selector | S+ [ combinator? selector ] ]?

Note that there’s also no explicit ‘S*’ in front of the closing brace or the semicolon, because most productions end with ‘S*’ anyhow.

PS: I believe grammars would become more human readable if phrases like 
      '{' S* declaration? [ ';' S* declaration? ]* '}'
    could be shortened to
      '{' [ [ ';' ]^ S* declaration? ]* '}'
    where ‘X^’ meant exactly one ‘X’, but no ‘X’ in the first instance of the parent group.
Received on Friday, 3 September 2010 10:08:02 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:31 GMT