- From: Dave Pawson <dave.pawson@gmail.com>
- Date: Thu, 16 Dec 2021 12:54:29 +0000
- To: Norm Tovey-Walsh <norm@saxonica.com>
- Cc: ixml <public-ixml@w3.org>
OK, I disagree with Norm on this one, but will assume he is right and withdraw my comment. I am unable to read the same combinations from the "a"*"#" pattern as Norm. regards On Thu, 16 Dec 2021 at 12:45, Norm Tovey-Walsh <norm@saxonica.com> wrote: > > >> Later, “hints for implementors” observes that > >> > >> a*"#" > >> > >> can be rewritten. For example: > >> > >> X: a*"#" . > >> > >> can be rewritten as > >> > >> X: Y . > >> -Y: a+"#" ; . > > > > which smells to my way of thinking? > > That *insists* on at least one 'a' which seems incorrect? > > No, it doesn’t. Observe that “;” separates alternatives so > > -Y: a+"#" ; . > > reads as (a+"#") OR (). > > >> All of this has turned out to be an interesting challenge for me to > >> implement because I don’t think the PEP parser can be made to accept > >> “nothing” as an alternative. Instead, I think (I think!) I’ve modified > >> it so that it understands an optional terminal or nonterminal. So I’ll > >> end up rewriting it something like this: > >> > >> X: Y . > >> -Y: Z? . > >> -Z: a, A . > >> -A: ("#", a, A)? . > > > > Is this expansion on X: a*"#" . ? > > > > In which case I've the same objection as above? > > Z is an “a” followed by an “A”. An “A” is a optional so it can be > nothing. If it isn’t nothing it’s “#” followed by “a” followed by “A”. > And we recurse there with that “A” being replaced by either nothing or > another occurrence of “#” followed by “a” followed by “A”. > > Be seeing you, > norm > > -- > Norm Tovey-Walsh > Saxonica -- Dave Pawson XSLT XSL-FO FAQ. Docbook FAQ.
Received on Thursday, 16 December 2021 12:54:52 UTC