]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
prepare testing splices, but cabal-install-3.4 does not build yet
[haskell/symantic-parser.git] / symantic-parser.cabal
1 cabal-version: 2.4
2 name: symantic-parser
3 version: 0.0.0.20210102
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: GPL-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.nix
32 shell.nix
33 test/Golden/**/*.dump
34 test/Golden/**/*.txt
35 test/Golden/Splice/**/*.hs
36 extra-tmp-files:
37 build-type: Simple
38 -- build-type: Custom
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 flag dump-splices
51 description: Dump code generated by Template Haskell
52 manual: True
53 default: False
54
55 common boilerplate
56 default-language: Haskell2010
57 default-extensions:
58 BangPatterns,
59 DataKinds,
60 FlexibleContexts,
61 FlexibleInstances,
62 GADTs,
63 GeneralizedNewtypeDeriving,
64 LambdaCase,
65 MultiParamTypeClasses,
66 NamedFieldPuns,
67 NoImplicitPrelude,
68 RankNTypes,
69 RecordWildCards,
70 ScopedTypeVariables,
71 TypeApplications,
72 TypeFamilies,
73 TypeOperators
74 ghc-options:
75 -Wall
76 -Wincomplete-uni-patterns
77 -Wincomplete-record-updates
78 -fhide-source-paths
79 -freverse-errors
80
81 -- custom-setup
82 -- setup-depends:
83 -- base >= 4.14,
84 -- Cabal >= 3.0,
85 -- directory >= 1,
86 -- filepath >= 1.3
87
88 library
89 import: boilerplate
90 hs-source-dirs: src
91 exposed-modules:
92 Symantic.Parser
93 Symantic.Parser.Grammar
94 Symantic.Parser.Grammar.Combinators
95 Symantic.Parser.Grammar.Fixity
96 Symantic.Parser.Grammar.ObserveSharing
97 Symantic.Parser.Grammar.Optimize
98 Symantic.Parser.Grammar.View
99 Symantic.Parser.Grammar.Write
100 Symantic.Parser.Haskell
101 Symantic.Parser.Haskell.Optimize
102 Symantic.Parser.Haskell.Term
103 Symantic.Parser.Haskell.View
104 Symantic.Parser.Machine
105 Symantic.Parser.Machine.Generate
106 Symantic.Parser.Machine.Input
107 Symantic.Parser.Machine.Instructions
108 Symantic.Parser.Machine.View
109 Symantic.Univariant.Letable
110 Symantic.Univariant.Trans
111 build-depends:
112 base >=4.10 && <5,
113 array,
114 bytestring,
115 containers,
116 ghc-prim,
117 hashable,
118 template-haskell >= 2.16,
119 text,
120 transformers,
121 unordered-containers
122
123 test-suite symantic-parser-test
124 import: boilerplate
125 type: exitcode-stdio-1.0
126 hs-source-dirs: test
127 main-is: Main.hs
128 other-modules:
129 Golden
130 --Golden.Splice
131 --Golden.Utils
132 Parser
133 Parser.Brainfuck
134 Parser.Nandlang
135 Parser.Playground
136 --Paths_symantic_parser
137 -- HUnit
138 -- QuickCheck
139 -- autogen-modules:
140 -- Paths_symantic_parser
141 default-extensions:
142 ViewPatterns
143 ghc-options:
144 build-depends:
145 symantic-parser,
146 base >= 4.10 && < 5,
147 bytestring >= 0.10,
148 containers >= 0.5,
149 deepseq >= 1.4,
150 directory >= 1.3,
151 filepath >= 1.4,
152 hashable >= 1.2.6,
153 process >= 1.6,
154 strict >= 0.4,
155 tasty >= 0.11,
156 tasty-golden >= 2.3,
157 -- tasty-hunit,
158 template-haskell >= 2.16,
159 -- temporary >= 1.3,
160 text >= 1.2,
161 -- time >= 1.9,
162 transformers >= 0.4,
163 -- turtle >= 1.5,
164 -- QuickCheck >= 2.0,
165 -- tasty-quickcheck,
166 unix >= 2.7,
167 unordered-containers
168 if flag(dump-core)
169 build-depends: dump-core
170 ghc-options: -fplugin=DumpCore
171 if flag(dump-splices)
172 ghc-options:
173 -ddump-splices
174 -ddump-to-file