Re: CSS draft 4.0 [Level 2 YACC Spec]

Glenn Adams (glenn@stonehand.com)
Sun, 22 Oct 95 21:34:59 -0400


While I'm on the subject of LEX/YACC specs, I don't know if anyone has
tried it, but the level 2 YACC spec in the 4.0 draft is in serious need
of repair. Besides a variety of typos, the following productions
produce a variety of problems:

1. imports: imports IMPORT url

This rule prevents any rule from applying. Change to:

imports: imports IMPORT url | /* empty */;

2. term: length | STRING | HEXCOLOR | NUMBER | IDENT | attref | propref |
ENVVAR | '(' value ')';

Here propref conflicts with IDENT. Change to:

term: length | STRING | HEXCOLOR | NUMBER | IDENT | attref |
ENVVAR | '(' value ')';

3. op: '+' | '-' | '*' | '/' | INTERPOLATEHI | INTERPOLATELO | /* empty */;

Produces 2 shift/reduce conflicts. Change to:

op: '+' | '-' | '*' | '/' | INTERPOLATEHI | INTERPOLATELO;

Regards,
Glenn Adams