@@ -5,27 +5,23 @@ grammar CSSGrammar {
5
5
6
6
token TOP { ^ <import >* <css >* $ || <.panic : "CSS parsing failed" > };
7
7
token css { <ruleset > | <media > | <page > };
8
- # rule ruleset { <selector> ** ',' '{' <declaration> ** ';' '}' };
9
- rule ruleset { <selector > [ ',' <selector > ]* <declarations > }
10
- rule declarations { '{' <declaration > [ ';' <declaration > ]* '}' }
11
- # token selector { <simple_selector> ** <combinator> ] };
12
- token selector { <simple_selector > [ <combinator > <simple_selector > ]* };
8
+ rule ruleset { <selector > +% ',' <declarations > }
9
+ rule declarations { '{' <declaration > +%% ';' '}' }
10
+ rule selector { <simple_selector > +% <combinator >? };
13
11
token simple_selector { <element_name > [ <hcap > ]* | <hcap >+ };
14
12
token hcap { '#' | <class > | <attrib > | <pseudo > };
15
13
token class { '.' <cssident > };
16
14
token element_name { <cssident > | '*' };
17
15
token attrib { '[' <cssident > [ [ '=' | <INCLUDES > | <DASHMATCH > ] [ <cssident > | <string > ] ]? ']' };
18
16
token pseudo { ':' [ <cssident > | <FUNCTION > <cssident >? ')' ] };
19
- token combinator { '+' | '>' | '' };
17
+ rule combinator { '+' | '>' | '' };
20
18
21
- token declaration { <property > ':' <expr > <prio >? | '' };
19
+ rule declaration { <property > ':' <expr > <prio >? };
22
20
token property { <cssident > };
23
21
token prio { <important_sym > };
24
- # token expr { <term> ** <operator> }
25
- token expr { <term > [ <operator > <term > ]* };
22
+ token expr { <term > +% <operator > };
26
23
token cssident { '-' ? <namestart ><namechar >* };
27
24
rule term { <unary_operator >?
28
-
29
25
[ <number > | <percentage > | <length > | <ems > | <exs > | <angle > | <time > | <freq > ]
30
26
| <string > | <cssident > | <uri > | <hexcolor > | <function >
31
27
};
0 commit comments