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