]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
nix: cleanup
[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/**/*.txt
35 extra-tmp-files:
36 build-type: Simple
37 tested-with: GHC==9.0.1
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 common boilerplate
49 default-language: Haskell2010
50 default-extensions:
51 NoImplicitPrelude
52 ghc-options:
53 -Wall
54 -Wincomplete-uni-patterns
55 -Wincomplete-record-updates
56 -Wpartial-fields
57 -fhide-source-paths
58 -freverse-errors
59
60 library
61 import: boilerplate
62 hs-source-dirs: src
63 exposed-modules:
64 Language.Haskell.TH.HideName
65 Symantic.Parser
66 Symantic.Parser.Grammar
67 Symantic.Parser.Grammar.Combinators
68 Symantic.Parser.Grammar.Fixity
69 Symantic.Parser.Grammar.ObserveSharing
70 Symantic.Parser.Grammar.Optimize
71 Symantic.Parser.Grammar.View
72 Symantic.Parser.Grammar.Write
73 Symantic.Parser.Haskell
74 Symantic.Parser.Haskell.Optimize
75 Symantic.Parser.Haskell.Term
76 Symantic.Parser.Haskell.View
77 Symantic.Parser.Machine
78 Symantic.Parser.Machine.Generate
79 Symantic.Parser.Machine.Input
80 Symantic.Parser.Machine.Instructions
81 Symantic.Parser.Machine.Optimize
82 Symantic.Parser.Machine.Program
83 Symantic.Parser.Machine.View
84 Symantic.Univariant.Letable
85 Symantic.Univariant.Trans
86 default-extensions:
87 BangPatterns,
88 DataKinds,
89 FlexibleContexts,
90 FlexibleInstances,
91 GADTs,
92 GeneralizedNewtypeDeriving,
93 LambdaCase,
94 MultiParamTypeClasses,
95 NamedFieldPuns,
96 RankNTypes,
97 RecordWildCards,
98 ScopedTypeVariables,
99 TypeApplications,
100 TypeFamilies,
101 TypeOperators
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 Golden.Grammar
122 Golden.Machine
123 Golden.Parser
124 Golden.Splice
125 Golden.Utils
126 Grammar
127 Grammar.Brainfuck
128 Grammar.Nandlang
129 Grammar.Playground
130 -- HUnit
131 -- QuickCheck
132 ghc-options:
133 ghc-prof-options:
134 -fexternal-interpreter
135 build-depends:
136 symantic-parser,
137 base >= 4.10 && < 5,
138 bytestring >= 0.10,
139 -- Needed for exported Data.Map.Internal
140 containers >= 0.5.10.1,
141 deepseq >= 1.4,
142 directory >= 1.3,
143 filepath >= 1.4,
144 hashable >= 1.2.6,
145 process >= 1.6,
146 strict >= 0.4,
147 tasty >= 0.11,
148 tasty-golden >= 2.3,
149 -- tasty-hunit,
150 template-haskell >= 2.16,
151 -- th-lift-instances >= 0.1.17,
152 -- temporary >= 1.3,
153 text >= 1.2,
154 -- time >= 1.9,
155 transformers >= 0.4,
156 -- QuickCheck >= 2.0,
157 -- tasty-quickcheck,
158 unix >= 2.7,
159 unordered-containers
160 -- FIXME: add when haskellPackages.ormolu has been unbroken
161 -- build-tool-depends:
162 -- ormolu:ormolu >= 1.5
163 if flag(dump-core)
164 build-depends: dump-core
165 ghc-options: -fplugin=DumpCore