Personal tools

Parsec

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Changed division in (sub)sections, added section "Examples")
(Added links to blog articles)
Line 1: Line 1:
 
[[Category:Compiler tools]]
 
[[Category:Compiler tools]]
 
[[Category:Combinators]]
 
[[Category:Combinators]]
  +
[[Category:Packages]]
  +
[[Category:Libraries]]
  +
   
 
== Introduction ==
 
== Introduction ==
Line 47: Line 50:
 
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
  +
  +
  +
== Links ==
  +
  +
=== Blog articles ===
  +
  +
* [http://therning.org/magnus/archives/289 Adventures in parsing]
  +
* [http://therning.org/magnus/archives/290 More adventures in parsing]
  +
* [http://therning.org/magnus/archives/295 Adventures in parsing, part 3]
  +
* [http://therning.org/magnus/archives/296 Adventures in parsing, part 4]

Revision as of 08:01, 18 October 2010


Contents

1 Introduction

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.


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


3 Examples

See also the list of reversed dependencies for Parsec.


4 Parsec clones in other languages

Interesting non-Parsec parser combinator libraries:


5 Links

5.1 Blog articles