Here's another patch, which in retrospect may be the most useful of the series. It adds a section called "PEG Internals" to the manual, and begins documenting how PEG actually works. This should make hacking PEG a lot easier.
Noah On Sun, Mar 6, 2011 at 12:25 AM, Noah Lavine <noah.b.lav...@gmail.com> wrote: > Hello all, > > Attached is a series of patches I've made for the wip-mlucy branch. It > splits the PEG code into several little modules which go in > module/ice-9/peg/. The original peg source file becomes very little. > At the end it finally loses its big eval-when wrapper. > > There's one part of this that I'm not satisfied with, which is that > define-nonterminal goes into module/ice-9/peg/string-peg.scm, which is > supposed to be solely for pegs-as-strings. The reason for this is that > I got compiler errors if I didn't do this, and I couldn't figure out > how to stop them. I would appreciate it if someone would take a look > and try to find what I missed. > > Also, a note about future ideas - the current PEG code can only parse > strings. However, there is almost nothing string-specific about the > parsing code - just a few calls to string-ref and substring in > codegen.scm. I'd like to see this extended to parse vectors filled > with arbitrary objects. This would let you use a tokenizer with it, > which is the easiest way to implement C correctly, and also probably > the easiest way to store line number information with tokens, which is > necessary for ultimately giving good error messages from PEG parsers. > > Thanks, > Noah >
0001-Document-PEG-Internals.patch
Description: Binary data