Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An experimental implementation of parser combinators in Common Lisp

branch: master

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).
latest commit 9c7569a4f6
Jakub Higersberger authored October 23, 2013
Octocat-spinner-32 doc
Octocat-spinner-32 README.markdown
Octocat-spinner-32 basic.lisp Bind seen-positions hashtable to a context October 23, 2013
Octocat-spinner-32 cache.lisp Add function for clearing parser cache. January 15, 2010
Octocat-spinner-32 combinators.lisp Use proper apostrophe marks in comment October 23, 2013
Octocat-spinner-32 contexts.lisp
Octocat-spinner-32 debug.lisp
Octocat-spinner-32 ensure-parser.lisp Add parameter to gathering functions to allow zero width matches, als… January 19, 2010
Octocat-spinner-32 greedy.lisp Add BEFORE*: find a p before q, doesn't consume q. August 22, 2013
Octocat-spinner-32 lazy.lisp
Octocat-spinner-32 memoize.lisp
Octocat-spinner-32 package.lisp
Octocat-spinner-32 parser-combinators-cl-ppcre.asd
Octocat-spinner-32 parser-combinators-debug.asd Provide a separate debug system, dependent on CL-CONTAINERS August 22, 2013
Octocat-spinner-32 parser-combinators-tests.asd
Octocat-spinner-32 parser-combinators.asd Move some parsers to a new file, add a new parser inspired by recent … September 03, 2010
Octocat-spinner-32 parsers.lisp
Octocat-spinner-32 primitives.lisp Fix (zero) to emit proper closure. February 02, 2011
Octocat-spinner-32 queue.lisp Add breadth first possibility search for find-after. August 22, 2009
Octocat-spinner-32 recurse.lisp
Octocat-spinner-32 regex-parser.lisp Use make-context-at-position in regex using parser, anchor regexes. September 01, 2010
Octocat-spinner-32 test-arithmetic.lisp Drop fare-matcher dependency November 04, 2012
Octocat-spinner-32 test-basic.lisp
Octocat-spinner-32 test-expression.lisp
Octocat-spinner-32 test-parsers.lisp
Octocat-spinner-32 test-root.lisp Drop fare-matcher dependency November 04, 2012
Octocat-spinner-32 token-parsers.lisp Fix indentation. March 27, 2012


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.


  • iterate
  • alexandria

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


There is some documentation in the doc directory.

Something went wrong with that request. Please try again.