]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
grammar: open the Comb data-type
[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.Build
106 Symantic.Parser.Machine.Generate
107 Symantic.Parser.Machine.Input
108 Symantic.Parser.Machine.Instructions
109 Symantic.Parser.Machine.View
110 Symantic.Univariant.Letable
111 Symantic.Univariant.Trans
112 build-depends:
113 base >=4.10 && <5,
114 array,
115 bytestring,
116 containers,
117 ghc-prim,
118 hashable,
119 template-haskell >= 2.16,
120 text,
121 transformers,
122 unordered-containers
123
124 test-suite symantic-parser-test
125 import: boilerplate
126 type: exitcode-stdio-1.0
127 hs-source-dirs: test
128 main-is: Main.hs
129 other-modules:
130 Golden
131 --Golden.Splice
132 --Golden.Utils
133 Parser
134 Parser.Brainfuck
135 Parser.Nandlang
136 Parser.Playground
137 --Paths_symantic_parser
138 -- HUnit
139 -- QuickCheck
140 -- autogen-modules:
141 -- Paths_symantic_parser
142 default-extensions:
143 ViewPatterns
144 ghc-options:
145 build-depends:
146 symantic-parser,
147 base >= 4.10 && < 5,
148 bytestring >= 0.10,
149 containers >= 0.5,
150 deepseq >= 1.4,
151 directory >= 1.3,
152 filepath >= 1.4,
153 hashable >= 1.2.6,
154 process >= 1.6,
155 strict >= 0.4,
156 tasty >= 0.11,
157 tasty-golden >= 2.3,
158 -- tasty-hunit,
159 template-haskell >= 2.16,
160 -- temporary >= 1.3,
161 text >= 1.2,
162 -- time >= 1.9,
163 transformers >= 0.4,
164 -- turtle >= 1.5,
165 -- QuickCheck >= 2.0,
166 -- tasty-quickcheck,
167 unix >= 2.7,
168 unordered-containers
169 if flag(dump-core)
170 build-depends: dump-core
171 ghc-options: -fplugin=DumpCore
172 if flag(dump-splices)
173 ghc-options:
174 -ddump-splices
175 -ddump-to-file