- 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