]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
iface: remove `satisfyOrFail`
[haskell/symantic-parser.git] / symantic-parser.cabal
1 cabal-version: 3.0
2 name: symantic-parser
3 maintainer: mailto:symantic-parser@sourcephile.fr
4 bug-reports: https://mails.sourcephile.fr/inbox/symantic-parser
5 homepage: https://git.sourcephile.fr/haskell/symantic-parser.git
6 author: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
7 copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
8 license: AGPL-3.0-or-later
9 license-file: LICENSES/AGPL-3.0-or-later.txt
10 version: 0.2.2.20211008
11 stability: experimental
12 synopsis: Parser combinators statically optimized and staged via typed meta-programming
13 description:
14 This is a work-in-progress experimental library to generate parsers,
15 leveraging Tagless-Final interpreters and Typed Template Haskell staging.
16
17 This is an alternative but less powerful/reviewed
18 implementation of [ParsleyHaskell](https://github.com/J-mie6/ParsleyHaskell).
19 See the paper by Jamie Willis, Nicolas Wu, and Matthew Pickering,
20 admirably well presented at ICFP-2020: [Staged Selective Parser Combinators](https://icfp20.sigplan.org/details/icfp-2020-papers/20/Staged-Selective-Parser-Combinators).
21 category: Parsing
22 build-type: Simple
23 tested-with: GHC==9.0.1
24 extra-doc-files:
25 ChangeLog.md
26 Hacking.md
27 ReadMe.md
28 ToDo.md
29 extra-source-files:
30 cabal.project
31 .envrc
32 flake.lock
33 flake.nix
34 Makefile
35 parsers/Parsers/Brainfuck/inputs/*.bf
36 tests/Golden/**/*.txt
37 extra-tmp-files:
38
39 source-repository head
40 type: git
41 location: git://git.sourcephile.fr/haskell/symantic-parser.git
42
43 flag dump-core
44 description: Dump GHC's Core in HTML
45 manual: True
46 default: False
47
48 flag disable-ormolu-check
49 description: Remove ormolu from build-tool-depends.
50 Temporary hack while Nixpkgs' haskellPackages.ormolu remains broken.
51 manual: True
52 default: False
53
54 common boilerplate
55 default-language: Haskell2010
56 default-extensions:
57 NoImplicitPrelude
58 ghc-options:
59 -Wall
60 -Wincomplete-uni-patterns
61 -Wincomplete-record-updates
62 -Wpartial-fields
63 -fprint-potential-instances
64
65 library
66 import: boilerplate
67 hs-source-dirs: src
68 exposed-modules:
69 Language.Haskell.TH.HideName
70 Language.Haskell.TH.Show
71 Symantic.Parser
72 Symantic.Parser.Grammar
73 Symantic.Parser.Grammar.Combinators
74 Symantic.Parser.Grammar.SharingObserver
75 Symantic.Parser.Grammar.Optimize
76 Symantic.Parser.Grammar.Production
77 Symantic.Parser.Grammar.View
78 Symantic.Parser.Grammar.Write
79 Symantic.Parser.Machine
80 Symantic.Parser.Machine.Generate
81 Symantic.Parser.Machine.Input
82 Symantic.Parser.Machine.Input.Text.Buffer
83 Symantic.Parser.Machine.Instructions
84 Symantic.Parser.Machine.Optimize
85 Symantic.Parser.Machine.Program
86 Symantic.Parser.Machine.View
87 default-extensions:
88 BangPatterns,
89 DataKinds,
90 FlexibleContexts,
91 FlexibleInstances,
92 GADTs,
93 GeneralizedNewtypeDeriving,
94 LambdaCase,
95 MultiParamTypeClasses,
96 NamedFieldPuns,
97 RankNTypes,
98 RecordWildCards,
99 ScopedTypeVariables,
100 TypeApplications,
101 TypeFamilies,
102 TypeOperators
103 build-depends:
104 base >=4.10 && <5,
105 array,
106 bytestring,
107 containers,
108 deepseq >= 1.4,
109 ghc-prim,
110 hashable,
111 -- For Language.Haskell.Ppr.Lib.pprExp
112 pretty >= 1.1,
113 symantic-base >= 0.5,
114 template-haskell >= 2.16,
115 text,
116 transformers,
117 unordered-containers
118
119 library parsers
120 -- visibility: public
121 import: boilerplate
122 hs-source-dirs: parsers
123 exposed-modules:
124 Parsers.Brainfuck.Attoparsec
125 Parsers.Brainfuck.Handrolled
126 Parsers.Brainfuck.SymanticParser
127 Parsers.Brainfuck.SymanticParser.Grammar
128 Parsers.Brainfuck.Types
129 Parsers.Nandlang
130 Parsers.Playground
131 Parsers.Utils
132 Parsers.Utils.Handrolled
133 Parsers.Utils.Attoparsec
134 Parsers.Utils.Attoparsec.Text
135 default-extensions:
136 BangPatterns,
137 DefaultSignatures,
138 FlexibleContexts,
139 FlexibleInstances,
140 GeneralizedNewtypeDeriving,
141 LambdaCase,
142 MultiParamTypeClasses,
143 ScopedTypeVariables,
144 TypeApplications,
145 TypeFamilies,
146 TypeOperators
147 build-depends:
148 symantic-parser,
149 attoparsec >= 0.13,
150 base >= 4.10 && < 5,
151 bytestring >= 0.10,
152 containers >= 0.5.10.1,
153 deepseq >= 1.4,
154 directory >= 1.3,
155 filepath >= 1.4,
156 ghc-prim,
157 hashable >= 1.2.6,
158 megaparsec >= 9.0,
159 process >= 1.6,
160 strict >= 0.4,
161 symantic-base >= 0.5,
162 tasty >= 0.11,
163 tasty-golden >= 2.3,
164 template-haskell >= 2.16,
165 text >= 1.2,
166 transformers >= 0.4,
167 unix >= 2.7,
168 unordered-containers
169 ghc-options: -ddump-splices -ddump-to-file
170
171 test-suite symantic-parser-tests
172 import: boilerplate
173 type: exitcode-stdio-1.0
174 hs-source-dirs: tests
175 main-is: Main.hs
176 other-modules:
177 Golden
178 Golden.Grammar
179 Golden.Machine
180 Golden.Parser
181 Golden.Splice
182 Golden.Utils
183 Grammar
184 -- HUnit
185 -- QuickCheck
186 Paths_symantic_parser
187 autogen-modules:
188 Paths_symantic_parser
189 ghc-prof-options: -fexternal-interpreter
190 -- ghc-options: -ddump-splices -ddump-to-file
191 build-depends:
192 symantic-parser,
193 symantic-parser:parsers,
194 base >= 4.10 && < 5,
195 bytestring >= 0.10,
196 -- Needed for exported Data.Map.Internal
197 containers >= 0.5.10.1,
198 deepseq >= 1.4,
199 directory >= 1.3,
200 filepath >= 1.4,
201 hashable >= 1.2.6,
202 process >= 1.6,
203 strict >= 0.4,
204 symantic-base >= 0.5,
205 tasty >= 0.11,
206 tasty-golden >= 2.3,
207 -- tasty-hunit,
208 template-haskell >= 2.16,
209 -- th-lift-instances >= 0.1.17,
210 -- temporary >= 1.3,
211 text >= 1.2,
212 -- time >= 1.9,
213 transformers >= 0.4,
214 -- QuickCheck >= 2.0,
215 -- tasty-quickcheck,
216 unix >= 2.7,
217 unordered-containers
218 if !flag(disable-ormolu-check)
219 build-tool-depends:
220 ormolu:ormolu >= 1.5
221 if flag(dump-core)
222 build-depends: dump-core
223 ghc-options: -fplugin=DumpCore
224
225 benchmark symantic-parser-benchmark
226 import: boilerplate
227 type: exitcode-stdio-1.0
228 hs-source-dirs: benchmarks
229 main-is: Main.hs
230 default-language: Haskell2010
231 other-modules:
232 Brainfuck
233 Paths_symantic_parser
234 autogen-modules:
235 Paths_symantic_parser
236 default-extensions:
237 ghc-options: -fno-enable-th-splice-warnings
238 ghc-prof-options: -fexternal-interpreter
239 build-depends:
240 base >= 4.6 && < 5,
241 symantic-parser,
242 symantic-parser:parsers,
243 attoparsec >= 0.13,
244 bytestring >= 0.10,
245 containers >= 0.5,
246 criterion >= 1.5,
247 deepseq >= 1.4,
248 megaparsec >= 9.0,
249 random >= 1.1,
250 text >= 1.2,
251 template-haskell >= 2.16,
252 transformers >= 0.5