]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
stick to ParsleyHaskell's optimizations, except on pattern-matching at the Haskell...
[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 extra-tmp-files:
36 build-type: Simple
37 tested-with: GHC==9.0.0
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 BangPatterns,
57 DataKinds,
58 FlexibleContexts,
59 FlexibleInstances,
60 GADTs,
61 GeneralizedNewtypeDeriving,
62 LambdaCase,
63 MultiParamTypeClasses,
64 NamedFieldPuns,
65 NoImplicitPrelude,
66 RankNTypes,
67 RecordWildCards,
68 ScopedTypeVariables,
69 TypeApplications,
70 TypeFamilies,
71 TypeOperators
72 ghc-options:
73 -Wall
74 -Wincomplete-uni-patterns
75 -Wincomplete-record-updates
76 -fhide-source-paths
77 -freverse-errors
78
79 library
80 import: boilerplate
81 hs-source-dirs: src
82 exposed-modules:
83 Symantic.Parser
84 Symantic.Parser.Grammar
85 Symantic.Parser.Grammar.Combinators
86 Symantic.Parser.Grammar.Fixity
87 Symantic.Parser.Grammar.ObserveSharing
88 Symantic.Parser.Grammar.Optimize
89 Symantic.Parser.Grammar.View
90 Symantic.Parser.Grammar.Write
91 Symantic.Parser.Haskell
92 Symantic.Parser.Haskell.Optimize
93 Symantic.Parser.Haskell.Term
94 Symantic.Parser.Haskell.View
95 Symantic.Parser.Machine
96 Symantic.Parser.Machine.Generate
97 Symantic.Parser.Machine.Input
98 Symantic.Parser.Machine.Instructions
99 Symantic.Parser.Machine.View
100 Symantic.Univariant.Letable
101 Symantic.Univariant.Trans
102 build-depends:
103 base >=4.10 && <5,
104 array,
105 bytestring,
106 containers,
107 ghc-prim,
108 hashable,
109 template-haskell >= 2.16,
110 text,
111 transformers,
112 unordered-containers
113
114 test-suite symantic-parser-test
115 import: boilerplate
116 type: exitcode-stdio-1.0
117 hs-source-dirs: test
118 main-is: Main.hs
119 other-modules:
120 Golden
121 Parser.Brainfuck
122 Parser.Nandlang
123 Parser.Playground
124 -- Golden.Utils
125 -- HUnit
126 -- QuickCheck
127 default-extensions:
128 ViewPatterns
129 ghc-options:
130 build-depends:
131 symantic-parser,
132 base >= 4.10 && < 5,
133 bytestring >= 0.10,
134 containers >= 0.5,
135 deepseq >= 1.4,
136 directory >= 1.3,
137 filepath >= 1.4,
138 hashable >= 1.2.6,
139 process >= 1.6,
140 strict >= 0.4,
141 tasty >= 0.11,
142 tasty-golden >= 2.3,
143 -- tasty-hunit,
144 template-haskell >= 2.16,
145 -- temporary >= 1.3,
146 text >= 1.2,
147 -- time >= 1.9,
148 transformers >= 0.4,
149 -- QuickCheck >= 2.0,
150 -- tasty-quickcheck,
151 unix >= 2.7,
152 unordered-containers
153 if flag(dump-core)
154 build-depends: dump-core
155 ghc-options: -fplugin=DumpCore
156 if flag(dump-splices)
157 ghc-options:
158 -ddump-splices
159 -ddump-to-file