summaryrefslogtreecommitdiff
path: root/attoparsec.cabal
blob: dd3456040b90d5c2c8e1e56228dcbe238fb2be7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
name:            attoparsec
version:         0.13.2.1
license:         BSD3
license-file:    LICENSE
category:        Text, Parsing
author:          Bryan O'Sullivan <bos@serpentine.com>
maintainer:      Bryan O'Sullivan <bos@serpentine.com>
stability:       experimental
tested-with:     GHC == 7.0.1, GHC == 7.2.1, GHC == 7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3
synopsis:        Fast combinator parsing for bytestrings and text
cabal-version:   >= 1.8
homepage:        https://github.com/bos/attoparsec
bug-reports:     https://github.com/bos/attoparsec/issues
build-type:      Simple
description:
    A fast parser combinator library, aimed particularly at dealing
    efficiently with network protocols and complicated text/binary
    file formats.
extra-source-files:
    README.markdown
    benchmarks/*.cabal
    benchmarks/*.hs
    benchmarks/*.txt
    benchmarks/json-data/*.json
    benchmarks/Makefile
    benchmarks/med.txt.bz2
    changelog.md
    examples/*.c
    examples/*.hs
    examples/Makefile
    tests/*.hs
    tests/QC/*.hs
    tests/QC/IPv6/*.hs

Flag developer
  Description: Whether to build the library in development mode
  Default: False
  Manual: True

library
  build-depends: array,
                 base >= 4.2 && < 5,
                 bytestring,
                 containers,
                 deepseq,
                 scientific >= 0.3.1 && < 0.4,
                 transformers,
                 text >= 1.1.1.3
  if impl(ghc < 7.4)
    build-depends:
      bytestring < 0.10.4.0

  if !impl(ghc >= 8.0)
    -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+
    build-depends: fail == 4.9.*,
                   semigroups >=0.16.1 && <0.19

  exposed-modules: Data.Attoparsec
                   Data.Attoparsec.ByteString
                   Data.Attoparsec.ByteString.Char8
                   Data.Attoparsec.ByteString.Lazy
                   Data.Attoparsec.Char8
                   Data.Attoparsec.Combinator
                   Data.Attoparsec.Internal
                   Data.Attoparsec.Internal.Types
                   Data.Attoparsec.Lazy
                   Data.Attoparsec.Number
                   Data.Attoparsec.Text
                   Data.Attoparsec.Text.Lazy
                   Data.Attoparsec.Types
                   Data.Attoparsec.Zepto
  other-modules:   Data.Attoparsec.ByteString.Buffer
                   Data.Attoparsec.ByteString.FastSet
                   Data.Attoparsec.ByteString.Internal
                   Data.Attoparsec.Internal.Fhthagn
                   Data.Attoparsec.Text.Buffer
                   Data.Attoparsec.Text.FastSet
                   Data.Attoparsec.Text.Internal
  ghc-options: -O2 -Wall

  if flag(developer)
    ghc-prof-options: -auto-all
    ghc-options: -Werror

test-suite tests
  type:           exitcode-stdio-1.0
  hs-source-dirs: tests .
  main-is:        QC.hs
  other-modules:  QC.Buffer
                  QC.ByteString
                  QC.Combinator
                  QC.Common
                  QC.IPv6.Internal
                  QC.IPv6.Types
                  QC.Rechunked
                  QC.Simple
                  QC.Text
                  QC.Text.FastSet
                  QC.Text.Regressions

  other-modules:  Data.Attoparsec.ByteString
                  Data.Attoparsec.ByteString.Buffer
                  Data.Attoparsec.ByteString.Char8
                  Data.Attoparsec.ByteString.FastSet
                  Data.Attoparsec.ByteString.Internal
                  Data.Attoparsec.ByteString.Lazy
                  Data.Attoparsec.Combinator
                  Data.Attoparsec.Internal
                  Data.Attoparsec.Internal.Fhthagn
                  Data.Attoparsec.Internal.Types
                  Data.Attoparsec.Number
                  Data.Attoparsec.Text
                  Data.Attoparsec.Text.Buffer
                  Data.Attoparsec.Text.FastSet
                  Data.Attoparsec.Text.Internal
                  Data.Attoparsec.Text.Lazy
                  Data.Attoparsec.Zepto

  ghc-options:
    -Wall -threaded -rtsopts

  if flag(developer)
    ghc-options: -Werror

  build-depends:
    array,
    base >= 4 && < 5,
    bytestring,
    deepseq >= 1.1,
    QuickCheck >= 2.7 && < 2.10,
    quickcheck-unicode,
    scientific,
    tasty >= 0.11,
    tasty-quickcheck >= 0.8,
    text,
    transformers,
    vector

  if !impl(ghc >= 8.0)
    -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+
    build-depends: fail == 4.9.*,
                   semigroups >=0.16.1 && <0.19

benchmark benchmarks
  type: exitcode-stdio-1.0
  hs-source-dirs: benchmarks benchmarks/warp-3.0.1.1 .
  ghc-options: -O2 -Wall -rtsopts
  main-is: Benchmarks.hs
  other-modules:
    Common
    HeadersByteString
    HeadersByteString.Atto
    HeadersText
    Links
    Network.Wai.Handler.Warp.ReadInt
    Network.Wai.Handler.Warp.RequestHeader
    Numbers
    Sets
    TextFastSet
    Warp
  ghc-options: -O2 -Wall

  if flag(developer)
    ghc-options: -Werror

  build-depends:
    array,
    base == 4.*,
    bytestring >= 0.10.4.0,
    case-insensitive,
    containers,
    criterion >= 1.0,
    deepseq >= 1.1,
    directory,
    filepath,
    ghc-prim,
    http-types,
    parsec >= 3.1.2,
    scientific,
    text >= 1.1.1.0,
    transformers,
    unordered-containers,
    vector

  if !impl(ghc >= 8.0)
    -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+
    build-depends: fail == 4.9.*,
                   semigroups >=0.16.1 && <0.19

source-repository head
  type:     git
  location: https://github.com/bos/attoparsec