]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
add benchmarks
[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: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
19 copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
20 stability: experimental
21 category: Parsing
22 extra-doc-files:
23 ChangeLog.md
24 HackMe.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 ghc-prof-options:
62 -eventlog -fprof-auto -fprof-auto-calls
63
64 library
65 import: boilerplate
66 hs-source-dirs: src
67 exposed-modules:
68 Language.Haskell.TH.HideName
69 Symantic.Parser
70 Symantic.Parser.Grammar
71 Symantic.Parser.Grammar.Combinators
72 Symantic.Parser.Grammar.Fixity
73 Symantic.Parser.Grammar.ObserveSharing
74 Symantic.Parser.Grammar.Optimize
75 Symantic.Parser.Grammar.View
76 Symantic.Parser.Grammar.Write
77 Symantic.Parser.Haskell
78 Symantic.Parser.Haskell.Optimize
79 Symantic.Parser.Haskell.Term
80 Symantic.Parser.Haskell.View
81 Symantic.Parser.Machine
82 Symantic.Parser.Machine.Generate
83 Symantic.Parser.Machine.Input
84 Symantic.Parser.Machine.Instructions
85 Symantic.Parser.Machine.Optimize
86 Symantic.Parser.Machine.Program
87 Symantic.Parser.Machine.View
88 Symantic.Univariant.Letable
89 Symantic.Univariant.Trans
90 default-extensions:
91 BangPatterns,
92 DataKinds,
93 FlexibleContexts,
94 FlexibleInstances,
95 GADTs,
96 GeneralizedNewtypeDeriving,
97 LambdaCase,
98 MultiParamTypeClasses,
99 NamedFieldPuns,
100 RankNTypes,
101 RecordWildCards,
102 ScopedTypeVariables,
103 TypeApplications,
104 TypeFamilies,
105 TypeOperators
106 build-depends:
107 base >=4.10 && <5,
108 array,
109 bytestring,
110 containers,
111 deepseq >= 1.4,
112 ghc-prim,
113 hashable,
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.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 ghc-options: -O2
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 hashable >= 1.2.6,
157 megaparsec >= 9.0,
158 process >= 1.6,
159 strict >= 0.4,
160 tasty >= 0.11,
161 tasty-golden >= 2.3,
162 template-haskell >= 2.16,
163 text >= 1.2,
164 transformers >= 0.4,
165 unix >= 2.7,
166 unordered-containers
167
168 test-suite symantic-parser-test
169 import: boilerplate
170 type: exitcode-stdio-1.0
171 hs-source-dirs: test
172 main-is: Main.hs
173 other-modules:
174 Golden
175 Golden.Grammar
176 Golden.Machine
177 Golden.Parser
178 Golden.Splice
179 Golden.Utils
180 Grammar
181 -- HUnit
182 -- QuickCheck
183 Paths_symantic_parser
184 autogen-modules:
185 Paths_symantic_parser
186 ghc-options: -O2
187 ghc-prof-options:
188 -fexternal-interpreter
189 build-depends:
190 symantic-parser,
191 symantic-parser:parsers,
192 base >= 4.10 && < 5,
193 bytestring >= 0.10,
194 -- Needed for exported Data.Map.Internal
195 containers >= 0.5.10.1,
196 deepseq >= 1.4,
197 directory >= 1.3,
198 filepath >= 1.4,
199 hashable >= 1.2.6,
200 process >= 1.6,
201 strict >= 0.4,
202 tasty >= 0.11,
203 tasty-golden >= 2.3,
204 -- tasty-hunit,
205 template-haskell >= 2.16,
206 -- th-lift-instances >= 0.1.17,
207 -- temporary >= 1.3,
208 text >= 1.2,
209 -- time >= 1.9,
210 transformers >= 0.4,
211 -- QuickCheck >= 2.0,
212 -- tasty-quickcheck,
213 unix >= 2.7,
214 unordered-containers
215 -- FIXME: add when haskellPackages.ormolu has been unbroken
216 -- build-tool-depends:
217 -- ormolu:ormolu >= 1.5
218 if flag(dump-core)
219 build-depends: dump-core
220 ghc-options: -fplugin=DumpCore
221
222 benchmark symantic-parser-benchmark
223 import: boilerplate
224 type: exitcode-stdio-1.0
225 hs-source-dirs: benchmarks
226 main-is: Main.hs
227 default-language: Haskell2010
228 other-modules:
229 Brainfuck
230 Paths_symantic_parser
231 autogen-modules:
232 Paths_symantic_parser
233 default-extensions:
234 ghc-options: -O2
235 ghc-prof-options:
236 -fexternal-interpreter
237 build-depends:
238 base >= 4.6 && < 5,
239 symantic-parser,
240 symantic-parser:parsers,
241 attoparsec >= 0.13,
242 bytestring >= 0.10,
243 containers >= 0.5,
244 criterion >= 1.5,
245 deepseq >= 1.4,
246 megaparsec >= 9.0,
247 random >= 1.1,
248 text >= 1.2,
249 template-haskell >= 2.16,
250 transformers >= 0.5