Errors in grammar of selectors WD

The pseudo production has not been updated:

pseudo
  : ':' [ IDENT | FUNCTION S* IDENT S* ')' ]
  ;

but :contains("hello") is ':' FUNCTION STRING ')'

and :nth-of-type(2) is ':' FUNCTION NUMBER ')'

So:

pseudo
  : ':' [ IDENT | FUNCTION S* [ IDENT | STRING | NUMBER ] S* ')' ]
  ;

, which means that the selectors tokeniser requires:

{num}                   {return NUMBER;}

[num previously wasn't being used, incidentally, but neither were:

h                       [0-9a-f]
url                     ([!#$%&*-~]|{nonascii}|{escape})*
w                       [ \t\r\n\f]*
range          
\?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))

(all of these, plus name, should be removed)

And:

combinator
  : '+' S* | '>' S* | /* empty */
  ;

seems to have forgotten about ~.

And FUNCTION is missing from this tokeniser:

{ident}"("              {return FUNCTION;}

-----------------------------------
Please visit http://RichInStyle.com. Featuring:
MySite: customizable styles.         AlwaysWork style 
Browser bug table covering all CSS2 with links to descriptions.
Lists of > 1000 browser bugs         Websafe Colorizer 
CSS2, CSS1 and HTML4 tutorials.      CSS masterclass 
CSS2 test suite: 5000++ tests and 300+ test pages.

Received on Wednesday, 17 May 2000 05:50:57 UTC