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

Re: XPath and Recursive Descent Parsers

Subject: Re: XPath and Recursive Descent Parsers
From: Jeff Kenton <jkenton@xxxxxxxxxxxxx>
Date: Thu, 10 Apr 2003 15:09:52 -0400
xpath recursive
martin@xxxxxxxx wrote:
hi,

has anyone tried using recursive descent to parse XPath expressions?

It has certainly been done. There are quite a few XSLT processors in the world -- I'd bet at least half of them use recursive descent.

I've written a recursive descent parser generator in XSLT, i want to generate an XPath parser, but wondering if i'm going to run into problems with my left-recursion eliminations.

to avoid infinite recursion i've rewritten left-recursive rules, for
example, from ->

relativeLocationPath ::= step
		| relativeLocationPath '/' step
		| relativeLocationPath '//' step

to ->

relativeLocationPath ::= step relativeLocationPathRest

relativeLocationPathRest ::= '/' step relativeLocationPathRest
		| '//' step relativeLocationPathRest
		|


Note that the corresponding part of the XPath 2.0 WD has:


RelativePathExpr ::= StepExpr ( ( "/" | "//" ) StepExpr ) *

This is clearer, and avoids any possible infinite recursion.


I'm amazed that you've actually done this using XSLT. I'd love to see what you've done.


--

--------------------------
Jeff Kenton
DataPower Technology, Inc.



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


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.