@@ -176,19 +176,24 @@ <h3>Parsing</h3>
176176 NT ( 'Style rule' ) , NT ( 'At-rule' ) , NT ( 'WHITESPACE' ) , NT ( 'CDO' ) , NT ( 'CDC' ) ) ) ) ) ;
177177
178178add ( 'Style rule' , Diagram (
179+ NT ( 'Style rule prelude' ) ,
180+ NT ( '{' ) , NT ( 'Declaration/at-rule list' ) , NT ( '}' ) ) ) ;
181+
182+ add ( 'Style rule prelude' , Diagram (
179183 Optional ( Sequence (
180184 NT ( 'Component value, except AT-KEYWORD or {} block' ) ,
181- ZeroOrMore ( NT ( 'Component value, except {} block' ) ) ) ) , // selector
182- NT ( '{' ) , NT ( 'Declaration/at-rule list' ) , NT ( '}' ) ) ) ;
185+ ZeroOrMore ( NT ( 'Component value, except {} block' ) ) ) ) ) ) ;
183186
184187add ( 'At-rule' , Diagram (
185- NT ( 'AT-KEYWORD' ) ,
186- ZeroOrMore ( NT ( 'Component value, except SEMICOLON or {} block' ) ) ,
188+ NT ( 'AT-KEYWORD' ) , NT ( 'At-rule prelude' ) ,
187189 Choice ( 0 ,
188190 Sequence ( NT ( '{' ) , NT ( 'Declaration/at-rule list' ) , NT ( '}' ) ) ,
189191 Sequence ( NT ( '{' ) , NT ( 'Rule list' ) , NT ( '}' ) ) ,
190192 NT ( 'SEMICOLON' ) ) ) ) ;
191193
194+ add ( 'At-rule prelude' , Diagram (
195+ ZeroOrMore ( NT ( 'Component value, except SEMICOLON or {} block' ) ) ) ) ;
196+
192197add ( 'Rule list' , Diagram (
193198 ZeroOrMore ( Choice ( 0 , NT ( 'Style rule' ) , NT ( 'At-rule' ) , NT ( 'WHITESPACE' ) ) ) ) ) ;
194199
@@ -206,10 +211,15 @@ <h3>Parsing</h3>
206211
207212add ( 'Declaration' , Diagram (
208213 NT ( 'IDENT' ) , NT ( 'WS*' ) , NT ( 'COLON' ) , NT ( 'WS*' ) ,
209- ZeroOrMore ( NT ( 'Component value, except SEMICOLON or DELIM(!)' ) ) ,
210- Optional ( Sequence (
211- // XXX Mention ASCII case-insensitivity?
212- NT ( 'DELIM(!)' ) , NT ( 'WS*' ) , NT ( 'IDENT(important)' ) ) ) ) ) ;
214+ NT ( 'Declaration value' ) ,
215+ Optional ( NT ( '!important' ) ) ) ) ;
216+
217+ add ( 'Declaration value' , Diagram (
218+ ZeroOrMore ( NT ( 'Component value, except SEMICOLON or DELIM(!)' ) ) ) ) ;
219+
220+ add ( '!important' , Diagram (
221+ NT ( 'DELIM(!)' ) , NT ( 'WS*' ) ,
222+ NT ( 'IDENT(ASCII case-insensitive match for "important")' ) ) ) ;
213223
214224add ( 'Component value' , Diagram ( Choice ( 0 ,
215225 NT ( "IDENT" ) ,
0 commit comments