- From: Gunther Rademacher <grd@gmx.net>
- Date: Thu, 07 May 2015 23:47:44 +0200
- To: public-expath@w3.org
On May 5, 2015, at 6:20 PM, Adam Retter <adam@exist-db.org> wrote:
> Actually Rex appears somewhat of a mystery to most of is as it is not
> Open Source. I am very interested to hear that you believe it is
> written in XQuery. Not to question you exactly, but can I ask if this
> is known as a fact or more of a rumour? I can't find any official
> information about it.
Sorry for the mystery that I am providing here. The REx parser generator
is not implemented in XQuery, but there are some REx related tools that are:
- the Railroad Diagram Generator: http://bottlecaps.de/rr
(first published on my28msec.com)
- the Grammar Converter: http://bottlecaps.de/convert
Also, when I started on LL parsing in 2007, there was an early prototype
of the sLL(k) parser generator, that was mostly implemented in XQuery.
And I still often do prototyping of new functionality in XQuery, based
on annotated XML representations of the grammars. I love XQuery, and it
greatly improves my own performance, but the stuff that I am programming
performs better when coded in other languages.
REx is implemented in C++. It used to be C until about 2000, and it was
Pascal and Fortran until 1990 or so.
In the old days, REx was a [LA]LR(1) generator. That functionality is
still around, but currently only used internally, because it is not as
flexible as I want it to be. Since 2007, the main focus is on creating
sLL(k) recursive descent parsers. My belief is that parsing logic, when
mapped to target language code, as in recursive descent, will outperform
any table driven approach. Though I have neither implemented
table-driven LL, nor LR by recursive ascent, yet - both of these
exercises still need to be done...
However my current development activity is a new implementation of
(table-driven) [LA]LR(k) parsing, with EBNF support for compatibility
with existing REx grammars. This might be available later this year, or
early next year.
REx is not open source, not yet. I plan to publish it some day, but it
is not my primary goal to get this done as soon as possible. In the
first place, I am running this project for me to have fun. Without
getting paid for it, I have to pursue a daytime job to earn a living.
Going open source might attract a number of users that I have not time
enough to serve well, at least for the time being. So currently I prefer
to provide fair support to a few users, still have fun, and postpone
some tasks to the future.
Gunther
Received on Friday, 8 May 2015 06:13:31 UTC