]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
doc: update public presence
[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.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.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.3,
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.3,
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 tasty >= 0.11,
205 tasty-golden >= 2.3,
206 -- tasty-hunit,
207 template-haskell >= 2.16,
208 -- th-lift-instances >= 0.1.17,
209 -- temporary >= 1.3,
210 text >= 1.2,
211 -- time >= 1.9,
212 transformers >= 0.4,
213 -- QuickCheck >= 2.0,
214 -- tasty-quickcheck,
215 unix >= 2.7,
216 unordered-containers
217 if !flag(disable-ormolu-check)
218 build-tool-depends:
219 ormolu:ormolu >= 1.5
220 if flag(dump-core)
221 build-depends: dump-core
222 ghc-options: -fplugin=DumpCore
223
224 benchmark symantic-parser-benchmark
225 import: boilerplate
226 type: exitcode-stdio-1.0
227 hs-source-dirs: benchmarks
228 main-is: Main.hs
229 default-language: Haskell2010
230 other-modules:
231 Brainfuck
232 Paths_symantic_parser
233 autogen-modules:
234 Paths_symantic_parser
235 default-extensions:
236 ghc-options: -fno-enable-th-splice-warnings
237 ghc-prof-options: -fexternal-interpreter
238 build-depends:
239 base >= 4.6 && < 5,
240 symantic-parser,
241 symantic-parser:parsers,
242 attoparsec >= 0.13,
243 bytestring >= 0.10,
244 containers >= 0.5,
245 criterion >= 1.5,
246 deepseq >= 1.4,
247 megaparsec >= 9.0,
248 random >= 1.1,
249 text >= 1.2,
250 template-haskell >= 2.16,
251 transformers >= 0.5