[climacs-devel] incremental GLR and LR parser library

Earl J. Wagner earljwagner at alum.mit.edu
Sat Feb 4 08:52:32 UTC 2006


Hi all,

I've been following the discussion of parsers on and off and have  
something that might be useful to contribute. I packaged up some code  
that I have for creating incremental GLR and LR parser generators  
from BNF-style language descriptions. The GLR parser is based on  
Rekers' incremental algorithm with Farshi's modifications. It is  
robust and includes many tests. The LR parser is an implementation of  
the standard algorithm from the dragon book. Finally, this includes  
Mark Johnson's LALR parse table generator with his permission.

I'm aware that this is a more conventional approach than what is  
currently envisioned for the parser for climacs. If using this code  
can save effort, however, then I'm willing to help out in building on  
it.


The library is asdf-installable and is released under the LLGPL:
www.cs.northwestern.edu/~ewagner/parsers.tar.gz

It uses an extension to cl-ppcre (along with cl-ppcre) that adds  
named registers:
www.cs.northwestern.edu/~ewagner/cl-ppcre-e.tar.gz

For testing, It also uses CLUnit that, with a minor modification  
(commenting out the package operations in lines 291-292 CLUnit.lisp)  
runs in SBCL
www.cs.northwestern.edu/~ewagner/CLUnit.tar.gz

Eventually I'd like to release this library more widely but for right  
now I'm interested in getting feedback from anyone who finds them  
immediately useful. In particular, the code was written on Allegro  
and runs on Allegro 7.0 and SBCL 0.9.0 but has minimal testing on the  
latter. Making sure the code runs well for other users and on other  
platforms is my main priority right now.


Thanks for any feedback

-Earl



More information about the climacs-devel mailing list