Personal tools

Parsec

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Update link to list of reverse dependencies)
(Examples)
Line 34: Line 34:
 
* [http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/Parsing Write Yourself a Scheme in 48 Hours/Parsing]. Note, that where the example uses the read function, the Token module of Parsec could have been used, to handle numbers.
 
* [http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/Parsing Write Yourself a Scheme in 48 Hours/Parsing]. Note, that where the example uses the read function, the Token module of Parsec could have been used, to handle numbers.
   
See also the [http://packdeps.haskellers.com/reverse/parsec#list of reverse dependencies for Parsec].
+
See also the [http://packdeps.haskellers.com/reverse/parsec list of reverse dependencies for Parsec].
   
 
== Parsec clones in other languages ==
 
== Parsec clones in other languages ==

Revision as of 11:02, 3 December 2011


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 reverse dependencies for Parsec.

4 Parsec clones in other languages

Interesting non-Parsec parser combinator libraries:


5 Links

5.1 Docs

5.2 Blog articles

5.3 Other