Re: Open Source XQuery apps?

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