[css3-syntax] EOF and } in at-rule preludes and selectors

Hi,

A few edge cases:

* EOF in selector mode should be a parse error (a {} block is missing)
* EOF in at-rule prelude should be like ';'. A parse error for 
declarations-filled or rule-filled at-rules, but not for other at-rules:

data:text/html,<style>@import "data:text/css,body{background:green"

In the example above the @import rule is valid even though it ends with 
EOF rather than ';'

* '}' in either mode should be like EOF, but *only* if this is nested in 
a matching '{' block such as @media {
* An unpaired '}' in a top-level selector or at-rule prelude should be 
like ']'. It’s preserved token as far as Syntax is concerned, it’s only 
invalid in Selectors, MQ, etc.


Maybe this last distinction is what "If the stack of open rules has 
three or more items on it, …" was about?


-- 
Simon Sapin

Received on Tuesday, 29 January 2013 22:33:16 UTC