]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
replace ValueCode by Production
[haskell/symantic-parser.git] / symantic-parser.cabal
1 cabal-version: 3.0
2 name: symantic-parser
3 version: 0.1.0.20210201
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
12 Pickering, admirably well presented at ICFP-2020: [Staged
13 Selective Parser
14 Combinators](https://icfp20.sigplan.org/details/icfp-2020-papers/20/Staged-Selective-Parser-Combinators).
15 license: AGPL-3.0-or-later
16 author: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
17 maintainer: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
18 bug-reports: https://mails.sourcephile.fr/inbox/symantic-parser
19 copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
20 stability: experimental
21 category: Parsing
22 extra-doc-files:
23 ChangeLog.md
24 Hacking.md
25 ReadMe.md
26 ToDo.md
27 extra-source-files:
28 cabal.project
29 default.nix
30 .envrc
31 flake.lock
32 flake.nix
33 Makefile
34 parsers/Parsers/*/inputs/*
35 shell.nix
36 test/Golden/**/*.txt
37 extra-tmp-files:
38 build-type: Simple
39 tested-with: GHC==9.0.1
40
41 source-repository head
42 type: git
43 location: git://git.sourcephile.fr/haskell/symantic-parser
44
45 flag dump-core
46 description: Dump GHC's Core in HTML
47 manual: True
48 default: False
49
50 common boilerplate
51 default-language: Haskell2010
52 default-extensions:
53 NoImplicitPrelude
54 ghc-options:
55 -Wall
56 -Wincomplete-uni-patterns
57 -Wincomplete-record-updates
58 -Wpartial-fields
59 -fhide-source-paths
60 ---freverse-errors
61 -fprint-potential-instances
62 ghc-prof-options: -eventlog -fprof-auto
63 -- -fprof-auto-calls
64
65 library
66 import: boilerplate
67 hs-source-dirs: src
68 exposed-modules:
69 Language.Haskell.TH.HideName
70 Symantic.Parser
71 Symantic.Parser.Grammar
72 Symantic.Parser.Grammar.Combinators
73 Symantic.Parser.Grammar.Fixity
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 Symantic.Univariant.Data
87 Symantic.Univariant.Lang
88 Symantic.Univariant.Letable
89 Symantic.Univariant.Optim
90 Symantic.Univariant.Trans
91 Symantic.Univariant.View
92 default-extensions:
93 BangPatterns,
94 DataKinds,
95 FlexibleContexts,
96 FlexibleInstances,
97 GADTs,
98 GeneralizedNewtypeDeriving,
99 LambdaCase,
100 MultiParamTypeClasses,
101 NamedFieldPuns,
102 RankNTypes,
103 RecordWildCards,
104 ScopedTypeVariables,
105 TypeApplications,
106 TypeFamilies,
107 TypeOperators
108 build-depends:
109 base >=4.10 && <5,
110 array,
111 bytestring,
112 containers,
113 deepseq >= 1.4,
114 ghc-prim,
115 hashable,
116 template-haskell >= 2.16,
117 text,
118 transformers,
119 unordered-containers
120
121 library parsers
122 -- visibility: public
123 import: boilerplate
124 hs-source-dirs: parsers
125 exposed-modules:
126 Parsers.Brainfuck.Attoparsec
127 Parsers.Brainfuck.Handrolled
128 Parsers.Brainfuck.SymanticParser.AutoSplice
129 Parsers.Brainfuck.SymanticParser.DumpSplice
130 Parsers.Brainfuck.SymanticParser.Grammar
131 Parsers.Brainfuck.SymanticParser.PprSplice
132 Parsers.Brainfuck.Types
133 Parsers.Nandlang
134 Parsers.Playground
135 Parsers.Utils
136 Parsers.Utils.Handrolled
137 Parsers.Utils.Attoparsec
138 Parsers.Utils.Attoparsec.Text
139 default-extensions:
140 BangPatterns,
141 DefaultSignatures,
142 FlexibleContexts,
143 FlexibleInstances,
144 GeneralizedNewtypeDeriving,
145 LambdaCase,
146 MultiParamTypeClasses,
147 ScopedTypeVariables,
148 TypeApplications,
149 TypeFamilies,
150 TypeOperators
151 ghc-options: -O2
152 -- -ddump-to-file -ddump-simpl-stats -ddump-splices
153 build-depends:
154 symantic-parser,
155 attoparsec >= 0.13,
156 base >= 4.10 && < 5,
157 bytestring >= 0.10,
158 containers >= 0.5.10.1,
159 deepseq >= 1.4,
160 directory >= 1.3,
161 filepath >= 1.4,
162 ghc-prim,
163 hashable >= 1.2.6,
164 megaparsec >= 9.0,
165 process >= 1.6,
166 strict >= 0.4,
167 tasty >= 0.11,
168 tasty-golden >= 2.3,
169 template-haskell >= 2.16,
170 text >= 1.2,
171 transformers >= 0.4,
172 unix >= 2.7,
173 unordered-containers
174
175 test-suite symantic-parser-test
176 import: boilerplate
177 type: exitcode-stdio-1.0
178 hs-source-dirs: test
179 main-is: Main.hs
180 other-modules:
181 Golden
182 Golden.Grammar
183 Golden.Machine
184 Golden.Parser
185 Golden.Splice
186 Golden.Utils
187 Grammar
188 -- HUnit
189 -- QuickCheck
190 Paths_symantic_parser
191 autogen-modules:
192 Paths_symantic_parser
193 ghc-options: -O2
194 ghc-prof-options: -fexternal-interpreter
195 build-depends:
196 symantic-parser,
197 symantic-parser:parsers,
198 base >= 4.10 && < 5,
199 bytestring >= 0.10,
200 -- Needed for exported Data.Map.Internal
201 containers >= 0.5.10.1,
202 deepseq >= 1.4,
203 directory >= 1.3,
204 filepath >= 1.4,
205 hashable >= 1.2.6,
206 process >= 1.6,
207 strict >= 0.4,
208 tasty >= 0.11,
209 tasty-golden >= 2.3,
210 -- tasty-hunit,
211 template-haskell >= 2.16,
212 -- th-lift-instances >= 0.1.17,
213 -- temporary >= 1.3,
214 text >= 1.2,
215 -- time >= 1.9,
216 transformers >= 0.4,
217 -- QuickCheck >= 2.0,
218 -- tasty-quickcheck,
219 unix >= 2.7,
220 unordered-containers
221 -- FIXME: add when haskellPackages.ormolu has been unbroken
222 -- build-tool-depends:
223 -- ormolu:ormolu >= 1.5
224 if flag(dump-core)
225 build-depends: dump-core
226 ghc-options: -fplugin=DumpCore
227
228 benchmark symantic-parser-benchmark
229 import: boilerplate
230 type: exitcode-stdio-1.0
231 hs-source-dirs: benchmarks
232 main-is: Main.hs
233 default-language: Haskell2010
234 other-modules:
235 Brainfuck
236 Paths_symantic_parser
237 autogen-modules:
238 Paths_symantic_parser
239 default-extensions:
240 ghc-options: -O2 -fno-enable-th-splice-warnings
241 ghc-prof-options: -fexternal-interpreter
242 build-depends:
243 base >= 4.6 && < 5,
244 symantic-parser,
245 symantic-parser:parsers,
246 attoparsec >= 0.13,
247 bytestring >= 0.10,
248 containers >= 0.5,
249 criterion >= 1.5,
250 deepseq >= 1.4,
251 megaparsec >= 9.0,
252 random >= 1.1,
253 text >= 1.2,
254 template-haskell >= 2.16,
255 transformers >= 0.5