Re: [css3-page] odd grammar for @page rules

On 12/06/2011 02:11 PM, L. David Baron wrote:
> The editor's draft at
> http://dev.w3.org/csswg/css3-page/#syntax-page-selector describes a
> grammar for @page rules that doesn't seem to match any of the other
> wording in the specification.  In particular, it has the following
> two productions:
>
>    # media :
>    #      MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* [ page | ruleset ]* '}' S*
>    #      ;
>    #
>    # page :
>    #      PAGE_SYM S* IDENT? S* pseudo_page? S*
>    #      '{' S* [ margin_box | ruleset ]? [ ';' S* [ margin_box | ruleset ]? ]* '}' S*
>    #      ;
>
> I believe every use of 'ruleset' in these two productions is
> incorrect, since http://www.w3.org/TR/CSS21/grammar.html defines it
> as:
>
>    # ruleset
>    #   : selector [ ',' S* selector ]*
>    #     '{' S* declaration? [ ';' S* declaration? ]* '}' S*
>    #   ;
>
> Nothing else in css3-page leads me to believe that selectors or a
> pair of braces are expected where the above productions have
> 'ruleset'.

Changed to

   page :
      PAGE_SYM S* IDENT? S* pseudo_page? S*
      '{' S* [ [ declaration ';' S* ] | margin_box ]* [ declaration ]? '}'  S*
      ;
   margin_box :
      margin_sym S* '{' S* declaration? [ ';' S* declaration? ]* '}' S*
      ;

Let me know if that's correct.

~fantasai

Received on Monday, 11 June 2012 23:23:24 UTC