Parsec (parser)

Parsec
Original author(s)Daan Leijen, Paolo Martini, Antoine Latter
Developer(s)Herbert Valerio Riedel, Derek Elkins, Antoine Latter, Roman Cheplyaka, Ryan Scott
Initial releaseNovember 2, 2006 (2006-11-02)
Stable release
3.1.17.0 / April 5, 2024 (2024-04-05)
Repositorygithub.com/haskell/parsec
Written inHaskell
Operating systemLinux, macOS, Windows
PlatformHaskell Platform
Available inEnglish
TypeParser combinator, library
LicenseBSD-2-clause
Websitehackage.haskell.org/package/parsec

Parsec is a library for writing parsers written in the programming language Haskell. It is based on higher-order parser combinators, so a complicated parser can be made out of many smaller ones. It has been reimplemented in many other languages, including Erlang, Elixir, OCaml, Racket, F#, and the imperative programming languages C#, and Java.

Because a parser combinator-based program is generally slower than a parser generator-based program, Parsec is normally used for small domain-specific languages, while Happy is used for compilers such as the Glasgow Haskell Compiler (GHC).

Other Haskell parser combinator libraries that have been derived from Parsec include Megaparsec and Attoparsec.

Parsec is free software released under the BSD-3-Clause license.