]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
fix: use a global polyfix for defLet and defRef
[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 -- -dynamic-too
59 ---static
60 -Wall
61 -Wincomplete-uni-patterns
62 -Wincomplete-record-updates
63 -Wpartial-fields
64 -fhide-source-paths
65 -freverse-errors
66
67 custom-setup
68 setup-depends:
69 base >= 4.14,
70 Cabal >= 3.2,
71 directory >= 1,
72 filepath >= 1.3
73
74 library
75 import: boilerplate
76 hs-source-dirs: src
77 exposed-modules:
78 Symantic.Parser
79 Symantic.Parser.Grammar
80 Symantic.Parser.Grammar.Combinators
81 Symantic.Parser.Grammar.Fixity
82 Symantic.Parser.Grammar.ObserveSharing
83 Symantic.Parser.Grammar.Optimize
84 Symantic.Parser.Grammar.View
85 Symantic.Parser.Grammar.Write
86 Symantic.Parser.Haskell
87 Symantic.Parser.Haskell.Optimize
88 Symantic.Parser.Haskell.Term
89 Symantic.Parser.Haskell.View
90 Symantic.Parser.Machine
91 Symantic.Parser.Machine.Generate
92 --Symantic.Parser.Machine.Horizon
93 Symantic.Parser.Machine.Input
94 Symantic.Parser.Machine.Instructions
95 Symantic.Parser.Machine.Optimize
96 Symantic.Parser.Machine.Program
97 Symantic.Parser.Machine.View
98 Symantic.Univariant.Letable
99 Symantic.Univariant.Trans
100 default-extensions:
101 BangPatterns,
102 DataKinds,
103 FlexibleContexts,
104 FlexibleInstances,
105 GADTs,
106 GeneralizedNewtypeDeriving,
107 LambdaCase,
108 MultiParamTypeClasses,
109 NamedFieldPuns,
110 RankNTypes,
111 RecordWildCards,
112 ScopedTypeVariables,
113 TypeApplications,
114 TypeFamilies,
115 TypeOperators
116 build-depends:
117 base >=4.10 && <5,
118 array,
119 bytestring,
120 containers,
121 ghc-prim,
122 hashable,
123 template-haskell >= 2.16,
124 text,
125 transformers,
126 unordered-containers
127
128 test-suite symantic-parser-test
129 import: boilerplate
130 type: exitcode-stdio-1.0
131 hs-source-dirs: test
132 main-is: Main.hs
133 other-modules:
134 Golden
135 Golden.Grammar
136 Golden.Machine
137 Golden.Parser
138 Golden.Splice
139 Golden.Splice.Utils
140 Golden.Utils
141 Grammar
142 Grammar.Brainfuck
143 Grammar.Nandlang
144 Grammar.Playground
145 Parser
146 Machine
147 -- Paths_symantic_parser
148 -- HUnit
149 -- QuickCheck
150 -- autogen-modules:
151 -- Paths_symantic_parser
152 ghc-options:
153 ghc-prof-options:
154 -fexternal-interpreter
155 build-depends:
156 symantic-parser,
157 base >= 4.10 && < 5,
158 bytestring >= 0.10,
159 --ghc-bignum,
160 -- Needed for exported Data.Map.Internal
161 containers >= 0.5.10.1,
162 deepseq >= 1.4,
163 directory >= 1.3,
164 filepath >= 1.4,
165 hashable >= 1.2.6,
166 --pretty >= 1.1,
167 process >= 1.6,
168 strict >= 0.4,
169 tasty >= 0.11,
170 tasty-golden >= 2.3,
171 -- tasty-hunit,
172 template-haskell >= 2.16,
173 -- th-lift-instances >= 0.1.17,
174 -- temporary >= 1.3,
175 text >= 1.2,
176 -- time >= 1.9,
177 transformers >= 0.4,
178 turtle >= 1.5,
179 -- QuickCheck >= 2.0,
180 -- tasty-quickcheck,
181 unix >= 2.7,
182 unordered-containers
183 if flag(dump-core)
184 build-depends: dump-core
185 ghc-options: -fplugin=DumpCore
186 if flag(dump-splices)
187 ghc-options:
188 -ddump-splices
189 -ddump-to-file