- From: L. David Baron <dbaron@dbaron.org>
- Date: Wed, 15 Apr 2015 23:24:24 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
- Message-ID: <20150416062424.GA23839@pescadero.dbaron.org>
On Wednesday 2015-03-25 14:22 -0700, Tab Atkins Jr. wrote: > Your #2 is already true in reverse; we have features that are easy to > describe in left-to-right language, but hard in right-to-left. > ::shadow and >>> are easy to describe in left-to-right as just an > elaboration on the existing "move down the tree" language. If you try > to describe them right-to-left, you either have to start from the > universe of all possible elements and use a check at the end of every > matching that the matched elements are in the expected tree, which > doesn't match how implementations work, or you have to deal with > splitting the selector into sub-selectors at tree boundaries, so you > can evaluate each subselector right-to-left, but the selector as a > whole left-to-right. (Doing that with maybe-crossing-a-tree-boundary > cases like >>> is even more complicated, as you have to fork the > cases.) So how do implementations work? Maybe it's worth describing that. Because I don't think any implementations do right-to-left matching across combinators. > I'm not opposed to figuring out how to write it in the opposite > direction, but it *will* make things more complicated in interesting > ways. There are tradeoffs either way. I think you're optimizing for the convenience of the spec author over interoperability here. -David -- 𝄞 L. David Baron http://dbaron.org/ 𝄂 𝄢 Mozilla https://www.mozilla.org/ 𝄂 Before I built a wall I'd ask to know What I was walling in or walling out, And to whom I was like to give offense. - Robert Frost, Mending Wall (1914)
Received on Thursday, 16 April 2015 06:24:54 UTC