Re: [xml-dev] Parse xslt to xdm in xslt
Hi
Dimitre,
On Mon, Sep 23, 2019 at 9:51 PM Dimitre Novatchev <[email protected]> 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.xslit 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.xslI 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.In 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:[email protected]:/cvsroot/fxsl co -P fxsl-xslt2I 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
Mukul Gandhi