]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
Reorganize Comb and Instr optimizations
[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.Optimize
110 Symantic.Parser.Machine.View
111 Symantic.Univariant.Letable
112 Symantic.Univariant.Trans
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.Splice
133 --Golden.Utils
134 Parser
135 Parser.Brainfuck
136 Parser.Nandlang
137 Parser.Playground
138 --Paths_symantic_parser
139 -- HUnit
140 -- QuickCheck
141 -- autogen-modules:
142 -- Paths_symantic_parser
143 default-extensions:
144 ViewPatterns
145 ghc-options:
146 build-depends:
147 symantic-parser,
148 base >= 4.10 && < 5,
149 bytestring >= 0.10,
150 containers >= 0.5,
151 deepseq >= 1.4,
152 directory >= 1.3,
153 filepath >= 1.4,
154 hashable >= 1.2.6,
155 process >= 1.6,
156 strict >= 0.4,
157 tasty >= 0.11,
158 tasty-golden >= 2.3,
159 -- tasty-hunit,
160 template-haskell >= 2.16,
161 -- temporary >= 1.3,
162 text >= 1.2,
163 -- time >= 1.9,
164 transformers >= 0.4,
165 -- turtle >= 1.5,
166 -- QuickCheck >= 2.0,
167 -- tasty-quickcheck,
168 unix >= 2.7,
169 unordered-containers
170 if flag(dump-core)
171 build-depends: dump-core
172 ghc-options: -fplugin=DumpCore
173 if flag(dump-splices)
174 ghc-options:
175 -ddump-splices
176 -ddump-to-file