Personal tools

Parsec

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (Rewording for clarity)
(adding link to parsec example page)
Line 17: Line 17:
 
program. The parsers are first-class citizens of the language , unlike
 
program. The parsers are first-class citizens of the language , unlike
 
[[Happy]] parsers, which must be generated via a preprocessor.
 
[[Happy]] parsers, which must be generated via a preprocessor.
  +
  +
An example for parsing a simple grammar of expressions can be found [http://www.haskell.org/haskellwiki/Parsing_expressions_and_statements here].
   
 
Much more documentation can be found on [http://legacy.cs.uu.nl/daan/parsec.html the parsec website].
 
Much more documentation can be found on [http://legacy.cs.uu.nl/daan/parsec.html the parsec website].

Revision as of 21:37, 3 August 2010

1 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.

The latest stable release with Haddock documentation is available on Hackage and development versions are available via the darcs repository.

1.1 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.

An example for parsing a simple grammar of expressions can be found here.

Much more documentation can be found on the parsec website.

This article is a stub. You can help by expanding it.

1.2 Parsec clones in other languages

Interesting non-Parsec parser combinator libraries: