]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
grammar: add precedence to showCode
[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 -- Needed to use Language.Haskell.Ppr.Lib.pprExp
118 pretty >= 1.1,
119 template-haskell >= 2.16,
120 text,
121 transformers,
122 unordered-containers
123
124 library parsers
125 -- visibility: public
126 import: boilerplate
127 hs-source-dirs: parsers
128 exposed-modules:
129 Parsers.Brainfuck.Attoparsec
130 Parsers.Brainfuck.Handrolled
131 Parsers.Brainfuck.SymanticParser
132 Parsers.Brainfuck.SymanticParser.Grammar
133 Parsers.Brainfuck.Types
134 Parsers.Nandlang
135 Parsers.Playground
136 Parsers.Utils
137 Parsers.Utils.Handrolled
138 Parsers.Utils.Attoparsec
139 Parsers.Utils.Attoparsec.Text
140 default-extensions:
141 BangPatterns,
142 DefaultSignatures,
143 FlexibleContexts,
144 FlexibleInstances,
145 GeneralizedNewtypeDeriving,
146 LambdaCase,
147 MultiParamTypeClasses,
148 ScopedTypeVariables,
149 TypeApplications,
150 TypeFamilies,
151 TypeOperators
152 ghc-options: -O2
153 -- -ddump-to-file -ddump-simpl-stats -ddump-splices
154 build-depends:
155 symantic-parser,
156 attoparsec >= 0.13,
157 base >= 4.10 && < 5,
158 bytestring >= 0.10,
159 containers >= 0.5.10.1,
160 deepseq >= 1.4,
161 directory >= 1.3,
162 filepath >= 1.4,
163 ghc-prim,
164 hashable >= 1.2.6,
165 megaparsec >= 9.0,
166 process >= 1.6,
167 strict >= 0.4,
168 tasty >= 0.11,
169 tasty-golden >= 2.3,
170 template-haskell >= 2.16,
171 text >= 1.2,
172 transformers >= 0.4,
173 unix >= 2.7,
174 unordered-containers
175
176 test-suite symantic-parser-test
177 import: boilerplate
178 type: exitcode-stdio-1.0
179 hs-source-dirs: test
180 main-is: Main.hs
181 other-modules:
182 Golden
183 Golden.Grammar
184 Golden.Machine
185 Golden.Parser
186 Golden.Splice
187 Golden.Utils
188 Grammar
189 -- HUnit
190 -- QuickCheck
191 Paths_symantic_parser
192 autogen-modules:
193 Paths_symantic_parser
194 ghc-options: -O2
195 ghc-prof-options: -fexternal-interpreter
196 build-depends:
197 symantic-parser,
198 symantic-parser:parsers,
199 base >= 4.10 && < 5,
200 bytestring >= 0.10,
201 -- Needed for exported Data.Map.Internal
202 containers >= 0.5.10.1,
203 deepseq >= 1.4,
204 directory >= 1.3,
205 filepath >= 1.4,
206 hashable >= 1.2.6,
207 process >= 1.6,
208 strict >= 0.4,
209 tasty >= 0.11,
210 tasty-golden >= 2.3,
211 -- tasty-hunit,
212 template-haskell >= 2.16,
213 -- th-lift-instances >= 0.1.17,
214 -- temporary >= 1.3,
215 text >= 1.2,
216 -- time >= 1.9,
217 transformers >= 0.4,
218 -- QuickCheck >= 2.0,
219 -- tasty-quickcheck,
220 unix >= 2.7,
221 unordered-containers
222 -- FIXME: add when haskellPackages.ormolu has been unbroken
223 -- build-tool-depends:
224 -- ormolu:ormolu >= 1.5
225 if flag(dump-core)
226 build-depends: dump-core
227 ghc-options: -fplugin=DumpCore
228
229 benchmark symantic-parser-benchmark
230 import: boilerplate
231 type: exitcode-stdio-1.0
232 hs-source-dirs: benchmarks
233 main-is: Main.hs
234 default-language: Haskell2010
235 other-modules:
236 Brainfuck
237 Paths_symantic_parser
238 autogen-modules:
239 Paths_symantic_parser
240 default-extensions:
241 ghc-options: -O2 -fno-enable-th-splice-warnings
242 ghc-prof-options: -fexternal-interpreter
243 build-depends:
244 base >= 4.6 && < 5,
245 symantic-parser,
246 symantic-parser:parsers,
247 attoparsec >= 0.13,
248 bytestring >= 0.10,
249 containers >= 0.5,
250 criterion >= 1.5,
251 deepseq >= 1.4,
252 megaparsec >= 9.0,
253 random >= 1.1,
254 text >= 1.2,
255 template-haskell >= 2.16,
256 transformers >= 0.5