Re: [css3-syntax] `}` in selector mode with three ore more open rules

Le 29/01/2013 00:19, Tab Atkins Jr. a écrit :
> I couldn't figure out what I was trying to do with it.  Since the
> behavior in the spec is clearly nonsensical, and I can't figure out
> what I was trying to do, I can't fix it, and so I've just removed it.

At-rule-prelude mode has something similar.


> The other clause didn't make any sense either, so I've fixed it up to
> do the right thing - when you see a top-level } in a selector, it just
> throws away the style rule being constructed, switches to the parent
> rule's mode, and reprocesses the }.

This makes sense for a selector in a rule-filled at-rule, but for a 
top-level selector I think you get an infinite loop. Reprocess the } 
which falls in "anything else" in top-level mode which leads you back to 
selector mode on the same token.

In a top-level selector I think you just want to append the } token to 
the selector and leave to the selector parser to declare it invalid.

I think you can also get rid of the Next-block error mode and 
Next-block-or-statement error mode.

Also, EOF in selector or at-rule prelude mode should be a parse error + 
discard the current rule rather than finish parsing.

-- 
Simon Sapin

Received on Tuesday, 29 January 2013 00:00:47 UTC