]> Git — Sourcephile - haskell/symantic-parser.git/blob - symantic-parser.cabal
move doc in *.md files
[haskell/symantic-parser.git] / symantic-parser.cabal
1 cabal-version: 2.2
2 name: symantic-parser
3 version: 0.0.0.20210101
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 extra-tmp-files:
34 build-type: Simple
35 tested-with: GHC==9.0.0
36
37 source-repository head
38 type: git
39 location: git://git.sourcephile.fr/haskell/symantic-parser
40
41 flag dump-core
42 description: Dump GHC's Core in HTML
43 manual: True
44 default: False
45
46 flag dump-splices
47 description: Dump code generated by Template Haskell
48 manual: True
49 default: False
50
51 common boilerplate
52 default-language: Haskell2010
53 default-extensions:
54 BangPatterns,
55 DataKinds,
56 FlexibleContexts,
57 FlexibleInstances,
58 GADTs,
59 GeneralizedNewtypeDeriving,
60 LambdaCase,
61 MultiParamTypeClasses,
62 NamedFieldPuns,
63 NoImplicitPrelude,
64 RankNTypes,
65 RecordWildCards,
66 ScopedTypeVariables,
67 TypeApplications,
68 TypeFamilies,
69 TypeOperators
70 ghc-options:
71 -Wall
72 -Wincomplete-uni-patterns
73 -Wincomplete-record-updates
74 -fhide-source-paths
75 -freverse-errors
76
77 library
78 import: boilerplate
79 hs-source-dirs: src
80 exposed-modules:
81 Symantic.Univariant.Letable
82 Symantic.Univariant.Trans
83 Symantic.Parser
84 Symantic.Parser.Grammar
85 Symantic.Parser.Grammar.Combinators
86 Symantic.Parser.Grammar.Dump
87 Symantic.Parser.Grammar.Fixity
88 Symantic.Parser.Grammar.ObserveSharing
89 Symantic.Parser.Grammar.Optimize
90 Symantic.Parser.Grammar.Write
91 Symantic.Parser.Haskell
92 Symantic.Parser.Machine
93 Symantic.Parser.Machine.Dump
94 Symantic.Parser.Machine.Generate
95 Symantic.Parser.Machine.Input
96 Symantic.Parser.Machine.Instructions
97 build-depends:
98 base >=4.10 && <5,
99 array,
100 bytestring,
101 containers,
102 ghc-prim,
103 hashable,
104 template-haskell >= 2.16,
105 text,
106 transformers,
107 unordered-containers
108
109 test-suite symantic-parser-test
110 import: boilerplate
111 type: exitcode-stdio-1.0
112 hs-source-dirs: test
113 main-is: Main.hs
114 other-modules:
115 Golden
116 Golden.Grammar
117 -- Golden.Utils
118 -- Golden.Parsers
119 -- HUnit
120 -- QuickCheck
121 default-extensions:
122 ViewPatterns
123 ghc-options:
124 build-depends:
125 symantic-parser,
126 base >= 4.10 && < 5,
127 bytestring >= 0.10,
128 containers >= 0.5,
129 deepseq >= 1.4,
130 directory >= 1.3,
131 filepath >= 1.4,
132 hashable >= 1.2.6,
133 process >= 1.6,
134 strict >= 0.4,
135 tasty >= 0.11,
136 tasty-golden >= 2.3,
137 -- tasty-hunit,
138 template-haskell >= 2.16,
139 -- temporary >= 1.3,
140 text >= 1.2,
141 -- time >= 1.9,
142 transformers >= 0.4,
143 -- QuickCheck >= 2.0,
144 -- tasty-quickcheck,
145 unix >= 2.7,
146 unordered-containers
147 if flag(dump-core)
148 build-depends: dump-core
149 ghc-options: -fplugin=DumpCore
150 if flag(dump-splices)
151 ghc-options:
152 -ddump-splices
153 -ddump-to-file