Blob Blame History Raw
name:                 megaparsec
version:              6.5.0
x-revision: 4
cabal-version:        1.18
tested-with:          GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
license:              BSD2
license-file:         LICENSE.md
author:               Megaparsec contributors,
                      Paolo Martini <paolo@nemail.it>,
                      Daan Leijen <daan@microsoft.com>

maintainer:           Mark Karpov <markkarpov92@gmail.com>
homepage:             https://github.com/mrkkrp/megaparsec
bug-reports:          https://github.com/mrkkrp/megaparsec/issues
category:             Parsing
synopsis:             Monadic parser combinators
build-type:           Simple
description:

  This is an industrial-strength monadic parser combinator library.
  Megaparsec is a feature-rich package that strikes a nice balance between
  speed, flexibility, and quality of parse errors.

extra-doc-files:      AUTHORS.md
                    , CHANGELOG.md
                    , README.md

source-repository head
  type:               git
  location:           https://github.com/mrkkrp/megaparsec.git

flag dev
  description:        Turn on development settings.
  manual:             True
  default:            False

library
  build-depends:      base         >= 4.7   && < 5.0
                    , bytestring   >= 0.2   && < 0.11
                    , case-insensitive >= 1.2 && < 1.3
                    , containers   >= 0.5   && < 0.7
                    , deepseq      >= 1.3   && < 1.5
                    , mtl          >= 2.0   && < 3.0
                    , parser-combinators >= 0.4 && < 2.0
                    , scientific   >= 0.3.1 && < 0.4
                    , text         >= 0.2   && < 1.3
                    , transformers >= 0.4   && < 0.6
  if !impl(ghc >= 8.0)
    build-depends:    fail         == 4.9.*
                    , semigroups   == 0.18.*
  if !impl(ghc >= 7.10)
    build-depends:    void         == 0.7.*
  exposed-modules:    Text.Megaparsec
                    , Text.Megaparsec.Byte
                    , Text.Megaparsec.Byte.Lexer
                    , Text.Megaparsec.Char
                    , Text.Megaparsec.Char.Lexer
                    , Text.Megaparsec.Error
                    , Text.Megaparsec.Error.Builder
                    , Text.Megaparsec.Expr
                    , Text.Megaparsec.Internal
                    , Text.Megaparsec.Perm
                    , Text.Megaparsec.Pos
                    , Text.Megaparsec.Stream
  other-modules:      Text.Megaparsec.Class
                    , Text.Megaparsec.State
  if flag(dev)
    ghc-options:      -O0 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  if flag(dev) && impl(ghc >= 8.0)
    ghc-options:      -Wcompat
                      -Wincomplete-record-updates
                      -Wincomplete-uni-patterns
                      -Wnoncanonical-monad-instances
                      -Wnoncanonical-monadfail-instances
  default-language:   Haskell2010

test-suite tests
  main-is:            Main.hs
  hs-source-dirs:     tests
  type:               exitcode-stdio-1.0
  if flag(dev)
    ghc-options:      -O0 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  other-modules:      Spec
                    , Control.Applicative.CombinatorsSpec
                    , Control.Monad.CombinatorsSpec
                    , Test.Hspec.Megaparsec
                    , Test.Hspec.Megaparsec.AdHoc
                    , Text.Megaparsec.Byte.LexerSpec
                    , Text.Megaparsec.ByteSpec
                    , Text.Megaparsec.Char.LexerSpec
                    , Text.Megaparsec.CharSpec
                    , Text.Megaparsec.ErrorSpec
                    , Text.Megaparsec.ExprSpec
                    , Text.Megaparsec.PermSpec
                    , Text.Megaparsec.PosSpec
                    , Text.Megaparsec.StreamSpec
                    , Text.MegaparsecSpec
  build-depends:      QuickCheck   >= 2.7   && < 2.13
                    , base         >= 4.7   && < 5.0
                    , bytestring   >= 0.2   && < 0.11
                    , containers   >= 0.5   && < 0.7
                    , hspec        >= 2.0   && < 3.0
                    , hspec-expectations >= 0.5 && < 0.9
                    , megaparsec
                    , mtl          >= 2.0   && < 3.0
                    , scientific   >= 0.3.1 && < 0.4
                    , text         >= 0.2   && < 1.3
                    , transformers >= 0.4   && < 0.6
  build-tools:        hspec-discover >= 2.0 && < 3.0
  if !impl(ghc >= 8.0)
    build-depends:    semigroups   == 0.18.*
  if !impl(ghc >= 7.10)
    build-depends:    void         == 0.7.*
  default-language:   Haskell2010

benchmark bench-speed
  main-is:            Main.hs
  hs-source-dirs:     bench/speed
  type:               exitcode-stdio-1.0
  build-depends:      base         >= 4.7  && < 5.0
                    , criterion    >= 0.6.2.1 && < 1.6
                    , deepseq      >= 1.3  && < 1.5
                    , megaparsec
                    , text         >= 0.2  && < 1.3
  if !impl(ghc >= 8.0)
    build-depends:    semigroups   == 0.18.*
  if !impl(ghc >= 7.10)
    build-depends:    void         == 0.7.*
  if flag(dev)
    ghc-options:      -O2 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  default-language:   Haskell2010

benchmark bench-memory
  main-is:            Main.hs
  hs-source-dirs:     bench/memory
  type:               exitcode-stdio-1.0
  build-depends:      base         >= 4.7  && < 5.0
                    , deepseq      >= 1.3  && < 1.5
                    , megaparsec
                    , text         >= 0.2  && < 1.3
                    , weigh        >= 0.0.4
  if !impl(ghc >= 8.0)
    build-depends:    semigroups   == 0.18.*
  if !impl(ghc >= 7.10)
    build-depends:    void         == 0.7.*
  if flag(dev)
    ghc-options:      -O2 -Wall -Werror
  else
    ghc-options:      -O2 -Wall
  default-language:   Haskell2010