Parsec: Difference between revisions
(link to parsec documentation included with ghc distribution) |
(Add link to blog post about Pysec, a Python clone of Parsec. (No official release for now.)) |
||
Line 34: | Line 34: | ||
* Parsnip for C++ http://parsnip-parser.sourceforge.net/ | * Parsnip for C++ http://parsnip-parser.sourceforge.net/ | ||
* Somewhere there is a Nemerle port | * Somewhere there is a Nemerle port | ||
* Pysec for Python http://www.valuedlessons.com/2008/02/pysec-monadic-combinatoric-parsing-in.html | |||
Interesting non-Parsec parser combinator libraries: | Interesting non-Parsec parser combinator libraries: | ||
* Spirit for C++ http://spirit.sourceforge.net/documentation.html | * Spirit for C++ http://spirit.sourceforge.net/documentation.html | ||
* Scala http://www.scala-lang.org/docu/files/api/scala/util/parsing/combinator$content.html | * Scala http://www.scala-lang.org/docu/files/api/scala/util/parsing/combinator$content.html |
Revision as of 10:03, 20 February 2008
Parsec
Parsec is an industrial strength, monadic parser combinator library for Haskell. It can parse context-sensitive, infinite look-ahead grammars but it performs best on predictive (LL[1]) grammars.
See the Parsec site for downloads and documentation. Parsec is also distributed with GHC, hence this documentation might be more up to date.
Usage
Parsec lets you construct parsers by combining higher-order Combinators to create larger expressions. Combinator parsers are written and used within the same programming language as the rest of the program. The parsers are first-class citizens of the language , unlike Happy parsers, which must be generated via a preprocessor.
Much more documentation can be found on the parsec site.
This article is a stub. You can help by expanding it.
Parsec clones in other languages
- PCL for O'Caml http://lprousnth.files.wordpress.com/2007/08/pcl.pdf
- JParsec for Java http://jparsec.codehaus.org/JParsec+Overview
- NParsec, JParsec ported to C# http://jparsec.codehaus.org/NParsec+Tutorial
- Ruby Parsec, JParsec ported to Ruby http://jparsec.codehaus.org/Ruby+Parsec
- FParsec for F# http://www.quanttec.com/fparsec/
- A small Parsec in Erlang http://www.engr.uconn.edu/~jeffm/Source/Erlang/
- AliceParsec for Alice ML http://www.ps.uni-sb.de/alice/contribs.html
- Parsnip for C++ http://parsnip-parser.sourceforge.net/
- Somewhere there is a Nemerle port
- Pysec for Python http://www.valuedlessons.com/2008/02/pysec-monadic-combinatoric-parsing-in.html
Interesting non-Parsec parser combinator libraries: