Difference between revisions of "Parsec"

From HaskellWiki
Jump to navigation Jump to search
m (Add category)
Line 22: Line 22:
   
 
{{Template:Stub}}
 
{{Template:Stub}}
  +
  +
=== 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:
  +
* Spirit for C++ http://spirit.sourceforge.net/documentation.html
  +
* Scala http://www.scala-lang.org/docu/files/api/scala/util/parsing/combinator$content.html

Revision as of 00:15, 28 January 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.

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

Interesting non-Parsec parser combinator libraries: