XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Fwd: [xml-dev] 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: [xml-dev] Parse xslt to xdm in xslt
To: Mukul Gandhi <gandhi.mukul@gmail.com>


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@gmail.com> 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.cvs.sourceforge.net:/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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS