Skip to content

Latest commit

 

History

History
72 lines (42 loc) · 1.57 KB

smug.org

File metadata and controls

72 lines (42 loc) · 1.57 KB

smug : parsing for lisp, made easy.

Introduction

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.

Features

  • 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!

Download and Install

It is in quicklisp. However, it is out of date there I think.

Old version

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"

Tutorial

tutorial.org

footnotes

[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)