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

Fwd: Parse xslt to xdm in xslt

  • From: Dimitre Novatchev <dnovatchev@gmail.com>
  • To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
  • Date: Wed, 25 Sep 2019 06:21:29 -0700

Fwd:  Parse xslt to xdm in xslt


---------- Forwarded message ---------
From: Dimitre Novatchev <dnovatchev@gmail.com>
Date: Tue, Sep 24, 2019 at 6:21 AM
Subject: Re: Parse xslt to xdm in xslt
To: Mukul Gandhi <gandhi.mukul@g...>


Hi Mukul,

  > What practical use cases do you envision, for this implementation? Or, was it an academic exercise?  

The use cases are the same as for YACC -- this automates the parsing tables creation and the production of the syntax tree -- which are a considerable part of a complete compiler or interpreter system.

I have used this on a JSON grammar and on an XPath 2.0 grammar. Of course, parsing is just a part of a complete system -- interpreting or code generation and saving in particular, still need to be implemented based on the results of parsing (in the case of an interpreter this is not a multi-pass process but rather a co-routine collaboration).

Cheers,
Dimitre

On Mon, Sep 23, 2019 at 9:24 PM Mukul Gandhi <gandhi.mukul@g...> wrote:
Hi  Dimitre,

On Mon, Sep 23, 2019 at 9:51 PM Dimitre Novatchev <dnovatchev@gmail.com> wrote:
The FXSL library (at https://sourceforge.net/projects/fxsl/files/FXSL%20for%20XSLT%202/FXSL%202.0/) contains an LR parser -- the function lr-parse() in the file func-lrParse.xsl

it operates on an XML document that contains the LR-1 parsing tables generated from the BNF of the language.

FXSL provides a modification of Berkely YACC, which, given its ordinary input -- the BNF of an LR-1 unambiguous language, produces its parsing tables -- but in the XML format expected by  func-lrParse.xsl

I can make available the set of BNF rules describing XPath 2.0, (or directly the LR parsing tables for it) which in the past I successfully used for parsing arbitrary XPath 2.0. If I remember well, it contains about 209 rules.

Now, the lr-parse() function expects as one of its parameters a function that it will call (callback) every time a rule is reduced. One must write such functions, depending on what is the wanted processing -- for example one may want the recognized language sentence to be executed immediately -- so the programmer will write an interpreter. In another case we may want to construct a syntax tree of the parsed sentence, which can be used as an intermediate stage in a compiler.  
I
n your case, you can provide a callback that creates the desired XDM.

Another argument to this function is a lexical analyzer function -- that actually reads the raw text and emits a stream of terminal symbols.

The whole (the zip files don't contain the latest content) fxsl-xslt2 library can be downloaded using this command:

cvs -z3 -d:pserver:anonymous@a...:/cvsroot/fxsl co -P fxsl-xslt2

I am planning to move the whole FXSL library from sourceforge to github or bitbucket -- hopefully soon.

That's a great piece of work (I definitely, have heard it before). What practical use cases do you envision, for this implementation? Or, was it an academic exercise?



--
Regards,
Mukul Gandhi



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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.