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