Skip to content
An experimental implementation of parser combinators in Common Lisp
Common Lisp
Find file
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 Fix word in README Apr 16, 2011
basic.lisp Bind seen-positions hashtable to a context Oct 23, 2013
cache.lisp Add function for clearing parser cache. Jan 15, 2010
combinators.lisp Use proper apostrophe marks in comment Oct 23, 2013
contexts.lisp Bind seen-positions hashtable to a context Oct 23, 2013
debug.lisp Define C?, an ergonomic shortcut for CHECK? Aug 22, 2013
ensure-parser.lisp Add parameter to gathering functions to allow zero width matches, als… Jan 19, 2010
greedy.lisp Add BEFORE*: find a p before q, doesn't consume q. Aug 22, 2013
lazy.lisp
memoize.lisp In memoize?, move global variable management inside the closure. Feb 2, 2011
package.lisp Add CHOOKAHEAD?: return result if p matches, but do no advance Aug 22, 2013
parser-combinators-cl-ppcre.asd Add parser using regular expressions using cl-ppcre. Jun 15, 2010
parser-combinators-debug.asd Provide a separate debug system, dependent on CL-CONTAINERS Aug 22, 2013
parser-combinators-tests.asd Drop fare-matcher dependency Nov 4, 2012
parser-combinators.asd Move some parsers to a new file, add a new parser inspired by recent … Sep 3, 2010
parsers.lisp Add CHOOKAHEAD?: return result if p matches, but do no advance Aug 21, 2013
primitives.lisp Fix (zero) to emit proper closure. Feb 2, 2011
queue.lisp Add breadth first possibility search for find-after. Aug 22, 2009
recurse.lisp Fix curtail? Feb 2, 2011
regex-parser.lisp Use make-context-at-position in regex using parser, anchor regexes. Sep 1, 2010
test-arithmetic.lisp Drop fare-matcher dependency Nov 4, 2012
test-basic.lisp Commit update of test suite from `stefil` to `hu.dwim.stefil` Jan 14, 2011
test-expression.lisp Drop fare-matcher dependency Nov 4, 2012
test-parsers.lisp Add tests for except?. Mar 28, 2012
test-root.lisp Drop fare-matcher dependency Nov 4, 2012
token-parsers.lisp Fix indentation. Mar 27, 2012

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.

Something went wrong with that request. Please try again.