]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
machine: map exceptionStack by label
[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/**/*.dump
35 test/Golden/**/*.txt
36 -- test/Golden/Splice/**/*.hs
37 extra-tmp-files:
38 build-type: Simple
39 -- build-type: Custom
40 tested-with: GHC==9.0.1
41
42 source-repository head
43 type: git
44 location: git://git.sourcephile.fr/haskell/symantic-parser
45
46 flag dump-core
47 description: Dump GHC's Core in HTML
48 manual: True
49 default: False
50
51 flag dump-splices
52 description: Dump code generated by Template Haskell
53 manual: True
54 default: False
55
56 common boilerplate
57 default-language: Haskell2010
58 default-extensions:
59 NoImplicitPrelude
60 ghc-options:
61 -Wall
62 -Wincomplete-uni-patterns
63 -Wincomplete-record-updates
64 -Wpartial-fields
65 -fhide-source-paths
66 -freverse-errors
67
68 -- custom-setup
69 -- setup-depends:
70 -- base >= 4.14,
71 -- Cabal >= 3.0,
72 -- directory >= 1,
73 -- filepath >= 1.3
74
75 library
76 import: boilerplate
77 hs-source-dirs: src
78 exposed-modules:
79 Symantic.Parser
80 Symantic.Parser.Grammar
81 Symantic.Parser.Grammar.Combinators
82 Symantic.Parser.Grammar.Fixity
83 Symantic.Parser.Grammar.ObserveSharing
84 Symantic.Parser.Grammar.Optimize
85 Symantic.Parser.Grammar.View
86 Symantic.Parser.Grammar.Write
87 Symantic.Parser.Haskell
88 Symantic.Parser.Haskell.Optimize
89 Symantic.Parser.Haskell.Term
90 Symantic.Parser.Haskell.View
91 Symantic.Parser.Machine
92 Symantic.Parser.Machine.Generate
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.Splice
136 --Golden.Utils
137 Parser
138 Parser.Brainfuck
139 Parser.Nandlang
140 Parser.Playground
141 --Paths_symantic_parser
142 -- HUnit
143 -- QuickCheck
144 -- autogen-modules:
145 -- Paths_symantic_parser
146 ghc-options:
147 build-depends:
148 symantic-parser,
149 base >= 4.10 && < 5,
150 bytestring >= 0.10,
151 -- Needed for exported Data.Map.Internal
152 containers >= 0.5.10.1,
153 deepseq >= 1.4,
154 directory >= 1.3,
155 filepath >= 1.4,
156 hashable >= 1.2.6,
157 process >= 1.6,
158 strict >= 0.4,
159 tasty >= 0.11,
160 tasty-golden >= 2.3,
161 -- tasty-hunit,
162 template-haskell >= 2.16,
163 -- th-lift-instances >= 0.1.17,
164 -- temporary >= 1.3,
165 text >= 1.2,
166 -- time >= 1.9,
167 transformers >= 0.4,
168 -- turtle >= 1.5,
169 -- QuickCheck >= 2.0,
170 -- tasty-quickcheck,
171 unix >= 2.7,
172 unordered-containers
173 if flag(dump-core)
174 build-depends: dump-core
175 ghc-options: -fplugin=DumpCore
176 if flag(dump-splices)
177 ghc-options:
178 -ddump-splices
179 -ddump-to-file