An experimental implementation of parser combinators in Common Lisp
Common Lisp
Latest commit 9c7569a Oct 23, 2013 @Ramarren Bind seen-positions hashtable to a context
This is so that it doesn't invalidate when used with parse-sequence,
which will continue parsing to obtain additional results after leaving
parse-sequence dynamic scope as required.

Also make type declaration in note-position use long-form to placate
ECL compiler (fixes #11).
Failed to load latest commit information.
doc
README.markdown
basic.lisp
cache.lisp
combinators.lisp
contexts.lisp
debug.lisp
ensure-parser.lisp
greedy.lisp
lazy.lisp
memoize.lisp
package.lisp
parser-combinators-cl-ppcre.asd
parser-combinators-debug.asd
parser-combinators-tests.asd
parser-combinators.asd
parsers.lisp
primitives.lisp
queue.lisp
recurse.lisp
regex-parser.lisp
test-arithmetic.lisp
test-basic.lisp
test-expression.lisp
test-parsers.lisp
test-root.lisp
token-parsers.lisp

README.markdown

parser-combinators

This is an experimental implementation of parser combinators for Common Lisp. This is mostly inspired by Parsec, but with limited optimizations. Parser combinators are, in theory, an elegant form of constructing parsers for context-free grammars.

The name of the system is parser-combinators, despite the name of the GitHub repository. The library is fairly lightly tested. Any comments or questions on the functionality or performance are welcome.

Dependencies

  • iterate
  • alexandria

The test suite has some additional dependencies, all of which are in quicklisp

Documentation

There is some documentation in the doc directory.