Goal is to write recursive descent parsers concisely/readably
Like regexes but composable
i.e. BNF
README explains the syntax.
Bootstrapping: First I wrote the grammar (ometa1.bnf), then translated it
to Scheme (handwritten-ometa.scm), added some ancillary stuff
(om-core.scm, om) and ran it until the generated Scheme matched the
handwritten Scheme:
./om ometa1.bnf generated1.scm
The 'py*' files are the beginning of a Python parser. I also have a
"Precedence Climbing" expression parser (like Shunting Yard) to incorporate
into it...
See also:
1. The real, object-oriented OMeta
2. Henry G. Baker's CL-META
3. David A. Moon's PLOT language look way better than this :-)