]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
cabal: clean up
[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 -fhide-source-paths
64 ---freverse-errors
65 -fprint-potential-instances
66 ghc-prof-options: -eventlog -fprof-auto
67 -- -fprof-auto-calls
68
69 library
70 import: boilerplate
71 hs-source-dirs: src
72 exposed-modules:
73 Language.Haskell.TH.HideName
74 Language.Haskell.TH.Show
75 Symantic.Parser
76 Symantic.Parser.Grammar
77 Symantic.Parser.Grammar.Combinators
78 Symantic.Parser.Grammar.Fixity
79 Symantic.Parser.Grammar.ObserveSharing
80 Symantic.Parser.Grammar.Optimize
81 Symantic.Parser.Grammar.Production
82 Symantic.Parser.Grammar.View
83 Symantic.Parser.Grammar.Write
84 Symantic.Parser.Machine
85 Symantic.Parser.Machine.Generate
86 Symantic.Parser.Machine.Input
87 Symantic.Parser.Machine.Instructions
88 Symantic.Parser.Machine.Optimize
89 Symantic.Parser.Machine.Program
90 Symantic.Parser.Machine.View
91 Symantic.Typed.Data
92 Symantic.Typed.Lang
93 Symantic.Typed.Letable
94 Symantic.Typed.Optim
95 Symantic.Typed.Trans
96 Symantic.Typed.View
97 default-extensions:
98 BangPatterns,
99 DataKinds,
100 FlexibleContexts,
101 FlexibleInstances,
102 GADTs,
103 GeneralizedNewtypeDeriving,
104 LambdaCase,
105 MultiParamTypeClasses,
106 NamedFieldPuns,
107 RankNTypes,
108 RecordWildCards,
109 ScopedTypeVariables,
110 TypeApplications,
111 TypeFamilies,
112 TypeOperators
113 build-depends:
114 base >=4.10 && <5,
115 array,
116 bytestring,
117 containers,
118 deepseq >= 1.4,
119 ghc-prim,
120 hashable,
121 -- Needed to use Language.Haskell.Ppr.Lib.pprExp
122 pretty >= 1.1,
123 template-haskell >= 2.16,
124 text,
125 transformers,
126 unordered-containers
127
128 library parsers
129 -- visibility: public
130 import: boilerplate
131 hs-source-dirs: parsers
132 exposed-modules:
133 Parsers.Brainfuck.Attoparsec
134 Parsers.Brainfuck.Handrolled
135 Parsers.Brainfuck.SymanticParser
136 Parsers.Brainfuck.SymanticParser.Grammar
137 Parsers.Brainfuck.Types
138 Parsers.Nandlang
139 Parsers.Playground
140 Parsers.Utils
141 Parsers.Utils.Handrolled
142 Parsers.Utils.Attoparsec
143 Parsers.Utils.Attoparsec.Text
144 default-extensions:
145 BangPatterns,
146 DefaultSignatures,
147 FlexibleContexts,
148 FlexibleInstances,
149 GeneralizedNewtypeDeriving,
150 LambdaCase,
151 MultiParamTypeClasses,
152 ScopedTypeVariables,
153 TypeApplications,
154 TypeFamilies,
155 TypeOperators
156 build-depends:
157 symantic-parser,
158 attoparsec >= 0.13,
159 base >= 4.10 && < 5,
160 bytestring >= 0.10,
161 containers >= 0.5.10.1,
162 deepseq >= 1.4,
163 directory >= 1.3,
164 filepath >= 1.4,
165 ghc-prim,
166 hashable >= 1.2.6,
167 megaparsec >= 9.0,
168 process >= 1.6,
169 strict >= 0.4,
170 tasty >= 0.11,
171 tasty-golden >= 2.3,
172 template-haskell >= 2.16,
173 text >= 1.2,
174 transformers >= 0.4,
175 unix >= 2.7,
176 unordered-containers
177
178 test-suite symantic-parser-test
179 import: boilerplate
180 type: exitcode-stdio-1.0
181 hs-source-dirs: test
182 main-is: Main.hs
183 other-modules:
184 Golden
185 Golden.Grammar
186 Golden.Machine
187 Golden.Parser
188 Golden.Splice
189 Golden.Utils
190 Grammar
191 -- HUnit
192 -- QuickCheck
193 Paths_symantic_parser
194 autogen-modules:
195 Paths_symantic_parser
196 ghc-prof-options: -fexternal-interpreter
197 build-depends:
198 symantic-parser,
199 symantic-parser:parsers,
200 base >= 4.10 && < 5,
201 bytestring >= 0.10,
202 -- Needed for exported Data.Map.Internal
203 containers >= 0.5.10.1,
204 deepseq >= 1.4,
205 directory >= 1.3,
206 filepath >= 1.4,
207 hashable >= 1.2.6,
208 process >= 1.6,
209 strict >= 0.4,
210 tasty >= 0.11,
211 tasty-golden >= 2.3,
212 -- tasty-hunit,
213 template-haskell >= 2.16,
214 -- th-lift-instances >= 0.1.17,
215 -- temporary >= 1.3,
216 text >= 1.2,
217 -- time >= 1.9,
218 transformers >= 0.4,
219 -- QuickCheck >= 2.0,
220 -- tasty-quickcheck,
221 unix >= 2.7,
222 unordered-containers
223 if !flag(disable-ormolu-check)
224 build-tool-depends:
225 ormolu:ormolu >= 1.5
226 if flag(dump-core)
227 build-depends: dump-core
228 ghc-options: -fplugin=DumpCore
229
230 benchmark symantic-parser-benchmark
231 import: boilerplate
232 type: exitcode-stdio-1.0
233 hs-source-dirs: benchmarks
234 main-is: Main.hs
235 default-language: Haskell2010
236 other-modules:
237 Brainfuck
238 Paths_symantic_parser
239 autogen-modules:
240 Paths_symantic_parser
241 default-extensions:
242 ghc-options: -fno-enable-th-splice-warnings
243 ghc-prof-options: -fexternal-interpreter
244 build-depends:
245 base >= 4.6 && < 5,
246 symantic-parser,
247 symantic-parser:parsers,
248 attoparsec >= 0.13,
249 bytestring >= 0.10,
250 containers >= 0.5,
251 criterion >= 1.5,
252 deepseq >= 1.4,
253 megaparsec >= 9.0,
254 random >= 1.1,
255 text >= 1.2,
256 template-haskell >= 2.16,
257 transformers >= 0.5