Generating parsers in LISP seems to be an easy task when
using LEX and YACC as recommended by Luigi Semenzato.
In contrast to his approach you can use YACC for defining
the syntax but instead of using curly brackets to indicate
semantic actions you should use
{/* LISP-CODE-of-semantic-action */}
Note the 'commented' semantic actions !!!
The next thing you have to do is to transform the LR parsing
algorithm (yyparser) into LISP and then steal the tables
from the xxx.tab.c file. I tried this procedure for a
12 pages long EBNF and it worked fine. There are only little
restrictions which doesn't weigh in my opinion. As you see
I already did the above procedure. If you want the LISP code
for the LR parser, and two simple C programms to steal the
semantic actions and transforms them into LISP just send me
mail. I should also mention, that I used a homebrew scanner
instead of LEX.
YOU CAN SPECIFY ANY LANGUAGE
WITHOUT THE NEED FOR
LISP-LIKE STYLE :-)))
Hope this helps.
GREG