[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Parsing XPath in XSLT?

Subject: Re: Parsing XPath in XSLT?
From: "Wendell Piez wapiez@xxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 1 Apr 2020 13:22:46 -0000
Re:  Parsing XPath in XSLT?
Dear Gerrit,

Thanks indeed for the thorough analysis.

I had gotten so far as to detect the XPath 1.0 EBNF wasn't complete,
but no further. You have shown me the way.

And what a beautiful PR!

Best regards -- Wendell

OT - hey can I mention how inspiring the current work is with XProc
3.0! Very much looking forward to using that.


On Tue, Mar 31, 2020 at 7:45 PM Imsieke, Gerrit, le-tex
gerrit.imsieke@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
>
> Hi Wendell,
>
> After comparing your XPath 1 EBNF with the XQuery 1.0 EBNF, I thought
> that there must be some incantation in the latter that makes REx
> understand patterns such as [^"]*. I analyzed the strange error message
> about EquivalenceLookAhead that came with 'Literal'. It dawned on me
> that REx must have been parsing the EBNF with a REx-generated parser,
> for which there must be an EBNF, and there it is:
> https://bottlecaps.de/rex/REx.ebnf.
> I saw that EquivalenceLookAhead also starts with '[', and then I thought
> "there must be a switch token in an EBNF that allows patterns like [^"]*
> to appear, and without that token everything that starts with '[' will
> be expected to be an EquivalenceLookAhead". And then I remembered that I
> already struggled with the <?TOKENS?> PI when editing an EBNF for CSS.
> All the terminals (but also other rules that depend on them, I guess)
> need to be defined after this token.
>
> After I fixed it I noticed another issue that REx is not to blame for:
> Many productions such as NCName were used but not defined in your XPath
> 1 schema. I copied the corresponding definitions from the XQuery schema.
> After that, there were different messages, some of them declared as
> errors, but there was still no output.
>
> It seems that you need to move not only all terminals after <?TOKENS?>,
> but also most (but not all) productions that directly or indirectly
> depend on the terminals.
>
> I finally managed to get *something* out of REx and I filed a pull
> request for that.(https://github.com/wendellpiez/metaschema/pull/2).
>
> I think the use and the overall necessity of the <?TOKENS?> PI in and
> EBNF need to be documented better in REx.
>
> b Gerrit
>
>
> On 31.03.2020 21:36, Wendell Piez wapiez@xxxxxxxxxxxxxxx wrote:
> > Dear XSL-List,
> >
> > Last week readers helped me with this interesting question of parsing
> > a formal language (specifically XPath) in XSLT. A couple of you (John
> > L, Christophe) pointed me to Gunther Rademacher's awesome work on the
> > REx parser generator.
> >
> > This is good stuff and I was indeed able to get XPath 2.0 parsing
> > running very readily. Fantastic!
> >
> > What I haven't managed to do yet is get XPath 1.0 parsing.
> >
> > For that, I need a formal grammar in EBNF that will work in Gunther's
> > tool. Conveniently, his other tool that draws railroad diagrams offers
> > one -- https://www.bottlecaps.de/rr/ui -- which indeed appears to be
> > pulled straight out of the XPath 1.0 Recommendation (see its initial
> > comment). Sounds good.
> >
> > However, while it makes a pretty railroad diagram, this EBNF doesn't
> > work in REx. (There is no good reason to think, I suppose, that it
> > should, but it is hard not to hope. :-) Possibly it is only partial.
> > In any case I need either an EBNF that works, or an education, to
> > provide me with the skills to repair this one.
> >
> > Do you have any helpful hints? What should implementers be looking at,
> > for formal descriptions of XPath 1.0 (assuming they want to do that
> > today, as I do)? In particular might there be somewhere a
> > complete-and-working variant of the XPath 1.0 grammar such as REx can
> > consume, or should it actually be pretty easy to make?
> >
> > Regards, Wendell
> >
> > PS - If anyone wishes to try the XPath 1.0 EBNF I have copied down
> > (which does not work :-):
> >
> > - REx parser generator: https://www.bottlecaps.de/rex/
> > - non-functioning EBNF:
> >
https://github.com/wendellpiez/metaschema/blob/issue39-pipeline-refactor/tool
chains/xslt-proto-v04/metapath/REx/xpath1.ebnf
> >
> > Maybe it is not that far off. REx chokes on the production for "Literal".
> > Thanks ! wap
> >
> > On Thu, Mar 26, 2020 at 7:16 PM Liam R. E. Quin liam@xxxxxxxxxxxxxxxx
> > <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >>
> >> On Thu, 2020-03-26 at 22:49 +0000, Christophe Marchand
> >> cmarchand@xxxxxxxxxx wrote:
> >>> I've used REx parser (exactly the URL mentioned by John) during XML
> >>> Prague to convert XQuery code into syntax hilighted code in slides,
> >>> for  a XQuery course.
> >>
> >> Yes - i used it in XSLT at one point for some simple XSLT coverage
> >> checking. (perhaps i should talk about that a bit in the course on
> >> analytical XSLT)
> >>
> >> --
> >> Liam Quin, https://www.delightfulcomputing.com/
> >> Available for XML/Document/Information Architecture/XSLT/
> >> XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
> >> Barefoot Web-slave, antique illustrations:  http://www.fromoldbooks.org
> >>
> >
> >
> >
>



--
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.