"ws" is particularly egregious because it is the most time-consuming expression. Using "trparse --ambig", and Bash diff, I found these rules to be a problem.
operator_
: '/' ws # goodOperator
| Comma ws # goodOperator
| Space ws # goodOperator
| '=' ws # badOperator // IE filter and DXImageTransform function
;
For partial input
abbr[title] {
border-bottom: 1px dotted;
}
we see two parses for "1px",
examples/xxx.css.112: (expr (term (dimension (Dimension "1px")) (ws (Space " "))) (term (ident (Ident "dotted")) (ws)))
examples/xxx.css.112: (expr (term (dimension (Dimension "1px")) (ws)) (operator_ (Space " ") (ws)) (term (ident (Ident "dotted")) (ws)))
(dotnet trparse -- --ambig examples/xxx.css | dotnet trxgrep -- ' //expr[.//Dimension[text()="1px"]]' | dotnet trtree -- -a)
A space should not be an operator!
Ken