]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
test: add goldens for TH splices
[haskell/symantic-parser.git] / symantic-parser.cabal
1 cabal-version: 2.4
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 ReadMe.md
25 ToDo.md
26 extra-source-files:
27 .envrc
28 Makefile
29 cabal.project
30 default.nix
31 flake.lock
32 flake.nix
33 shell.nix
34 test/Golden/**/*.txt
35 extra-tmp-files:
36 build-type: Custom
37 tested-with: GHC==9.0.1
38
39 source-repository head
40 type: git
41 location: git://git.sourcephile.fr/haskell/symantic-parser
42
43 flag dump-core
44 description: Dump GHC's Core in HTML
45 manual: True
46 default: False
47
48 flag dump-splices
49 description: Dump code generated by Template Haskell
50 manual: True
51 default: False
52
53 common boilerplate
54 default-language: Haskell2010
55 default-extensions:
56 NoImplicitPrelude
57 ghc-options:
58 -Wall
59 -Wincomplete-uni-patterns
60 -Wincomplete-record-updates
61 -Wpartial-fields
62 -fhide-source-paths
63 -freverse-errors
64
65 custom-setup
66 setup-depends:
67 base >= 4.14,
68 Cabal >= 3.2,
69 directory >= 1,
70 filepath >= 1.3
71
72 library
73 import: boilerplate
74 hs-source-dirs: src
75 exposed-modules:
76 Symantic.Parser
77 Symantic.Parser.Grammar
78 Symantic.Parser.Grammar.Combinators
79 Symantic.Parser.Grammar.Fixity
80 Symantic.Parser.Grammar.ObserveSharing
81 Symantic.Parser.Grammar.Optimize
82 Symantic.Parser.Grammar.View
83 Symantic.Parser.Grammar.Write
84 Symantic.Parser.Haskell
85 Symantic.Parser.Haskell.Optimize
86 Symantic.Parser.Haskell.Term
87 Symantic.Parser.Haskell.View
88 Symantic.Parser.Machine
89 Symantic.Parser.Machine.Generate
90 Symantic.Parser.Machine.Input
91 Symantic.Parser.Machine.Instructions
92 Symantic.Parser.Machine.Optimize
93 Symantic.Parser.Machine.Program
94 Symantic.Parser.Machine.View
95 Symantic.Univariant.Letable
96 Symantic.Univariant.Trans
97 default-extensions:
98 BangPatterns,
99 DataKinds,
100 FlexibleContexts,
101 FlexibleInstances,
102 GADTs,
103 GeneralizedNewtypeDeriving,
104 LambdaCase,
105 MultiParamTypeClasses,
106 NamedFieldPuns,
107 RankNTypes,
108 RecordWildCards,
109 ScopedTypeVariables,
110 TypeApplications,
111 TypeFamilies,
112 TypeOperators
113 build-depends:
114 base >=4.10 && <5,
115 array,
116 bytestring,
117 containers,
118 ghc-prim,
119 hashable,
120 template-haskell >= 2.16,
121 text,
122 transformers,
123 unordered-containers
124
125 test-suite symantic-parser-test
126 import: boilerplate
127 type: exitcode-stdio-1.0
128 hs-source-dirs: test
129 main-is: Main.hs
130 other-modules:
131 Golden
132 Golden.Grammar
133 Golden.Machine
134 Golden.Parser
135 Golden.Splice
136 Golden.Splice.Utils
137 Golden.Utils
138 Grammar
139 Grammar.Brainfuck
140 Grammar.Nandlang
141 Grammar.Playground
142 Parser
143 Machine
144 -- Paths_symantic_parser
145 -- HUnit
146 -- QuickCheck
147 -- autogen-modules:
148 -- Paths_symantic_parser
149 ghc-options:
150 build-depends:
151 symantic-parser,
152 base >= 4.10 && < 5,
153 bytestring >= 0.10,
154 -- Needed for exported Data.Map.Internal
155 containers >= 0.5.10.1,
156 deepseq >= 1.4,
157 directory >= 1.3,
158 filepath >= 1.4,
159 hashable >= 1.2.6,
160 process >= 1.6,
161 strict >= 0.4,
162 tasty >= 0.11,
163 tasty-golden >= 2.3,
164 -- tasty-hunit,
165 template-haskell >= 2.16,
166 -- th-lift-instances >= 0.1.17,
167 -- temporary >= 1.3,
168 text >= 1.2,
169 -- time >= 1.9,
170 transformers >= 0.4,
171 turtle >= 1.5,
172 -- QuickCheck >= 2.0,
173 -- tasty-quickcheck,
174 unix >= 2.7,
175 unordered-containers
176 if flag(dump-core)
177 build-depends: dump-core
178 ghc-options: -fplugin=DumpCore
179 if flag(dump-splices)
180 ghc-options:
181 -ddump-splices
182 -ddump-to-file