Smug is a library for parsing text, based on monadic parser combinators [fn:1]. Using a simple technique from the functional programming camp, smug makes it simple to create quick extensible recursive descent parsers without funky syntax or impenetrable macrology.
- parsers are first class values written in basic lisp
- non-deterministic infinite look-ahead
- easy to learn, easy to use
- extensible input protocol : parse strings, streams, lists etc
- in-depth tutorial : no previous experience required!
It is in quicklisp. However, it is out of date there I think.
cd ~/quicklisp/local-projects/
git clone ssh://[email protected]/var/git/projects/asdf/asdf.git
cd asdf
make
cd -
git clone http://github.com/fare/lisp-interface-library/
(let ((asdf:*central-registry*
(list (merge-pathnames "quicklisp/local-projects/asdf/"
(user-homedir-pathname)))))
(asdf:upgrade-asdf) (ql:quickload :asdf))
(asdf:asdf-version) ; => "3.1.0.2"
[fn:1] Monadic parser combinators (pdf, ps, bibtex) Graham Hutton and Erik Meijer. Technical Report NOTTCS-TR-96-4, Department of Computer Science, University of Nottingham, 1996.
– http://www.cs.nott.ac.uk/~gmh/bib.html#monparsing
[fn:2] http://www.willamette.edu/~fruehr/haskell/seuss.html
[fn:3] like, say, scheme
#(end-lisp)