Bump base upper bound to 4.15
[packages/parsec.git] / parsec.cabal
1 cabal-version:  1.12
2 name:           parsec
3 version:        3.1.14.0
4
5 synopsis:       Monadic parser combinators
6 description:    Parsec is designed from scratch as an industrial-strength parser
7                 library.  It is simple, safe, well documented (on the package
8                 homepage), has extensive libraries, good error messages,
9                 and is fast.  It is defined as a monad transformer that can be
10                 stacked on arbitrary monads, and it is also parametric in the
11                 input stream type.
12                 .
13                 The main entry point is the "Text.Parsec" module which provides
14                 defaults for parsing 'Char'acter data.
15                 .
16                 The "Text.ParserCombinators.Parsec" module hierarchy contains
17                 the legacy @parsec-2@ API and may be removed at some point in
18                 the future.
19
20 license:        BSD3
21 license-file:   LICENSE
22 author:         Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>, Antoine Latter <aslatter@gmail.com>
23 maintainer:     Herbert Valerio Riedel <hvr@gnu.org>
24 homepage:       https://github.com/haskell/parsec
25 bug-reports:    https://github.com/haskell/parsec/issues
26 category:       Parsing
27
28 build-type:     Simple
29 tested-with:    GHC ==8.6.1 || ==8.4.3 || ==8.2.2 || ==8.0.2 || ==7.10.3 || ==7.8.4 || ==7.6.3 || ==7.4.2 || ==7.4.1
30
31 extra-source-files: ChangeLog.md, README.md
32
33 source-repository head
34     type: git
35     location: https://github.com/haskell/parsec
36
37 library
38     hs-source-dirs: src
39     exposed-modules:
40         Text.Parsec
41         Text.Parsec.String
42         Text.Parsec.ByteString
43         Text.Parsec.ByteString.Lazy
44         Text.Parsec.Text
45         Text.Parsec.Text.Lazy
46         Text.Parsec.Pos
47         Text.Parsec.Error
48         Text.Parsec.Prim
49         Text.Parsec.Char
50         Text.Parsec.Combinator
51         Text.Parsec.Token
52         Text.Parsec.Expr
53         Text.Parsec.Language
54         Text.Parsec.Perm
55         Text.ParserCombinators.Parsec
56         Text.ParserCombinators.Parsec.Char
57         Text.ParserCombinators.Parsec.Combinator
58         Text.ParserCombinators.Parsec.Error
59         Text.ParserCombinators.Parsec.Expr
60         Text.ParserCombinators.Parsec.Language
61         Text.ParserCombinators.Parsec.Perm
62         Text.ParserCombinators.Parsec.Pos
63         Text.ParserCombinators.Parsec.Prim
64         Text.ParserCombinators.Parsec.Token
65
66     build-depends:
67         base       >= 4.5.0   && < 4.15,
68         mtl        >= 1.1.1   && < 2.3,
69         bytestring >= 0.9.2.1 && < 0.11,
70         text      (>= 0.11.3.1 && < 0.12)
71                || (>= 1.0.0.0  && < 1.3)
72
73     default-language: Haskell2010
74     other-extensions:
75         CPP
76         DeriveDataTypeable
77         ExistentialQuantification
78         FlexibleContexts
79         FlexibleInstances
80         FunctionalDependencies
81         MultiParamTypeClasses
82         PolymorphicComponents
83         StandaloneDeriving
84         Safe
85         Trustworthy
86         UndecidableInstances
87
88     ghc-options: -Wall
89     if impl(ghc >= 8.0)
90         ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wno-trustworthy-safe
91         if impl(ghc < 8.8)
92           ghc-options: -Wnoncanonical-monadfail-instances
93     else
94         -- provide/emulate `Control.Monad.Fail` and `Semigroup` API for pre-GHC8
95         build-depends: fail == 4.9.*, semigroups >= 0.18 && < 0.20
96
97         if impl(ghc >= 7.10)
98             ghc-options: -fno-warn-trustworthy-safe
99
100 test-suite parsec.
101     type: exitcode-stdio-1.0
102
103     hs-source-dirs: test
104     main-is: Main.hs
105     other-modules:
106         Bugs
107         Bugs.Bug2
108         Bugs.Bug6
109         Bugs.Bug9
110         Bugs.Bug35
111         Features
112         Features.Feature80
113         Util
114
115     build-depends:
116         base,
117         mtl,
118         parsec,
119         -- dependencies whose version bounds are not inherited via lib:parsec
120         HUnit                == 1.6.* || (>= 1.3.1.2 && < 1.4),
121         test-framework       == 0.8.*,
122         test-framework-hunit == 0.3.*
123
124     default-language: Haskell2010
125
126     ghc-options: -Wall
127     if impl(ghc >= 8.0)
128         ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
129     else
130         build-depends: semigroups