11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
22<html lang="en">
3- <!-- $Id: grammar.src,v 2.57 2009-01-21 15:34 :27 bbos Exp $ -->
3+ <!-- $Id: grammar.src,v 2.58 2009-04-09 17:10 :27 bbos Exp $ -->
44<HEAD>
55<TITLE>Grammar of CSS 2.1</TITLE>
66</HEAD>
@@ -41,8 +41,8 @@ used:</P>
4141<pre>
4242stylesheet
4343 : [ CHARSET_SYM STRING ';' ]?
44- [S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
45- [ [ ruleset | media | page ] [S|CDO|CDC]* ]*
44+ [S|CDO|CDC]* [ import [ [CDO|CDC] [ S|CDO|CDC] ]* ]*
45+ [ [ ruleset | media | page ] [ [CDO|CDC] [ S|CDO|CDC] ]* ]*
4646 ;
4747import
4848 : IMPORT_SYM S*
@@ -55,14 +55,14 @@ medium
5555 : IDENT S*
5656 ;
5757page
58- : PAGE_SYM S* pseudo_page? S*
59- LBRACE S* declaration [ ';' S* declaration ]* '}' S*
58+ : PAGE_SYM S* pseudo_page?
59+ LBRACE S* declaration? [ ';' S* declaration? ]* '}' S*
6060 ;
6161pseudo_page
62- : ':' IDENT
62+ : ':' IDENT S*
6363 ;
6464operator
65- : '/' S* | COMMA S* | /* empty */
65+ : '/' S* | COMMA S*
6666 ;
6767combinator
6868 : PLUS S*
@@ -77,7 +77,7 @@ property
7777 ;
7878ruleset
7979 : selector [ COMMA S* selector ]*
80- LBRACE S* declaration [ ';' S* declaration ]* '}' S*
80+ LBRACE S* declaration? [ ';' S* declaration? ]* '}' S*
8181 ;
8282<span class="index-inst" title="selector">selector</span>
8383 : simple_selector [ combinator simple_selector ]*
@@ -97,17 +97,16 @@ attrib
9797 [ IDENT | STRING ] S* ]? ']'
9898 ;
9999pseudo
100- : ':' [ IDENT | FUNCTION S* IDENT? S* ')' ]
100+ : ':' [ IDENT | FUNCTION S* [ IDENT S*]? ')' ]
101101 ;
102102declaration
103103 : property ':' S* expr prio?
104- | /* empty */
105104 ;
106105prio
107106 : IMPORTANT_SYM S*
108107 ;
109108expr
110- : term [ operator term ]*
109+ : term [ operator? term ]*
111110 ;
112111term
113112 : unary_operator?
@@ -174,13 +173,15 @@ G g|\\0{0,4}(47|67)(\r\n|[ \t\r\n\f])?|\\g
174173H h|\\0{0,4}(48|68)(\r\n|[ \t\r\n\f])?|\\h
175174I i|\\0{0,4}(49|69)(\r\n|[ \t\r\n\f])?|\\i
176175K k|\\0{0,4}(4b|6b)(\r\n|[ \t\r\n\f])?|\\k
176+ L l|\\0{0,4}(4c|6c)(\r\n|[ \t\r\n\f])?|\\l
177177M m|\\0{0,4}(4d|6d)(\r\n|[ \t\r\n\f])?|\\m
178178N n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n
179179O o|\\0{0,4}(4f|6f)(\r\n|[ \t\r\n\f])?|\\o
180180P p|\\0{0,4}(50|70)(\r\n|[ \t\r\n\f])?|\\p
181181R r|\\0{0,4}(52|72)(\r\n|[ \t\r\n\f])?|\\r
182182S s|\\0{0,4}(53|73)(\r\n|[ \t\r\n\f])?|\\s
183183T t|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t
184+ U u|\\0{0,4}(55|75)(\r\n|[ \t\r\n\f])?|\\u
184185X x|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\x
185186Z z|\\0{0,4}(5a|7a)(\r\n|[ \t\r\n\f])?|\\z
186187
0 commit comments