I have written a PEG parser library in the Dylan language, and I am happy enough with it to announce it on this list.

Documentation: http://wiki.opendylan.org/wiki/view.dsp?title=PEG Parser Library
Source code: 
http://www.opendylan.org/cgi-bin/viewvc.cgi/trunk/libraries/utilities/peg-parser/

I think it is about as capable as Rats! and Treetop. It is not a parser generator, but rather a parser library to be called upon directly by a program or library. It caches user-specified productions (as opposed to automatically determining the best productions to cache, or caching all productions), supports grammar attributes, and allows user actions. I think that left-recursive parsing requires all productions to be cached, so it does not support that feature. It is not limited to working with characters, but rather relies on user- supplied functions to parse terminals. These functions can also be created for intermediate productions within a parse tree, allowing, for example, call-outs to a secondary parser for specific sections of code, or sophisticated error-recovery techniques.

Take a look. If you've any questions or comments, I'd be pleased to discuss it.

I've used it for special-purpose parsing of the Dylan language itself and for parsing a plain-text markup format.

As used for markup parsing: 
http://www.opendylan.org/cgi-bin/viewvc.cgi/trunk/libraries/doctower/code/markup-parser-lib/markup-parser/

_______________________________________________
PEG mailing list
PEG@lists.csail.mit.edu
https://lists.csail.mit.edu/mailman/listinfo/peg

Reply via email to