]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
machine: rename InstrPure{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.Univariant.Letable
84 Symantic.Univariant.Trans
85 Symantic.Parser
86 Symantic.Parser.Grammar
87 Symantic.Parser.Grammar.Combinators
88 Symantic.Parser.Grammar.Dump
89 Symantic.Parser.Grammar.Fixity
90 Symantic.Parser.Grammar.ObserveSharing
91 Symantic.Parser.Grammar.Optimize
92 Symantic.Parser.Grammar.Pure
93 Symantic.Parser.Grammar.Write
94 Symantic.Parser.Machine
95 Symantic.Parser.Machine.Dump
96 Symantic.Parser.Machine.Generate
97 Symantic.Parser.Machine.Input
98 Symantic.Parser.Machine.Instructions
99 build-depends:
100 base >=4.10 && <5,
101 array,
102 bytestring,
103 containers,
104 ghc-prim,
105 hashable,
106 template-haskell >= 2.16,
107 text,
108 transformers,
109 unordered-containers
110
111 test-suite symantic-parser-test
112 import: boilerplate
113 type: exitcode-stdio-1.0
114 hs-source-dirs: test
115 main-is: Main.hs
116 other-modules:
117 Golden
118 Golden.Grammar
119 Parser.Nandlang
120 -- Golden.Utils
121 -- Golden.Parsers
122 -- HUnit
123 -- QuickCheck
124 default-extensions:
125 ViewPatterns
126 ghc-options:
127 build-depends:
128 symantic-parser,
129 base >= 4.10 && < 5,
130 bytestring >= 0.10,
131 containers >= 0.5,
132 deepseq >= 1.4,
133 directory >= 1.3,
134 filepath >= 1.4,
135 hashable >= 1.2.6,
136 process >= 1.6,
137 strict >= 0.4,
138 tasty >= 0.11,
139 tasty-golden >= 2.3,
140 -- tasty-hunit,
141 template-haskell >= 2.16,
142 -- temporary >= 1.3,
143 text >= 1.2,
144 -- time >= 1.9,
145 transformers >= 0.4,
146 -- QuickCheck >= 2.0,
147 -- tasty-quickcheck,
148 unix >= 2.7,
149 unordered-containers
150 if flag(dump-core)
151 build-depends: dump-core
152 ghc-options: -fplugin=DumpCore
153 if flag(dump-splices)
154 ghc-options:
155 -ddump-splices
156 -ddump-to-file