Parsec: Difference between revisions
Derek Elkins (talk | contribs) No edit summary |
(link to parsec documentation included with ghc distribution) |
||
Line 9: | Line 9: | ||
See [http://www.cs.uu.nl/people/daan/download/parsec/parsec.html the Parsec site] | See [http://www.cs.uu.nl/people/daan/download/parsec/parsec.html the Parsec site] | ||
for downloads and documentation. | for downloads and documentation. Parsec is also distributed with GHC, hence [http://haskell.org/ghc/docs/6.8.2/html/libraries/index.html this documentation] might be more up to date. | ||
=== Usage === | === Usage === |
Revision as of 01:47, 4 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
Interesting non-Parsec parser combinator libraries: