3 maintainer: mailto:~julm/symantic-parser@todo.code.sourcephile.fr
4 bug-reports: https://todo.code.sourcephile.fr/~julm/symantic-parser
5 homepage: https://git.code.sourcephile.fr/~julm/symantic-parser
6 author: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
7 copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
8 license: AGPL-3.0-or-later
9 license-file: LICENSES/AGPL-3.0-or-later.txt
10 version: 0.2.2.20211008
11 stability: experimental
12 synopsis: Parser combinators statically optimized and staged via typed meta-programming
14 This is a work-in-progress experimental library to generate parsers,
15 leveraging Tagless-Final interpreters and Typed Template Haskell staging.
17 This is an alternative but less powerful/reviewed
18 implementation of [ParsleyHaskell](https://github.com/J-mie6/ParsleyHaskell).
19 See the paper by Jamie Willis, Nicolas Wu, and Matthew Pickering,
20 admirably well presented at ICFP-2020: [Staged Selective Parser Combinators](https://icfp20.sigplan.org/details/icfp-2020-papers/20/Staged-Selective-Parser-Combinators).
23 tested-with: GHC==9.0.1
35 parsers/Parsers/Brainfuck/inputs/*.bf
39 source-repository head
41 location: https://git.code.sourcephile.fr/~julm/symantic-parser
44 description: Dump GHC's Core in HTML
48 flag disable-ormolu-check
49 description: Remove ormolu from build-tool-depends.
50 Temporary hack while Nixpkgs' haskellPackages.ormolu remains broken.
55 default-language: Haskell2010
60 -Wincomplete-uni-patterns
61 -Wincomplete-record-updates
63 -fprint-potential-instances
69 Language.Haskell.TH.HideName
70 Language.Haskell.TH.Show
72 Symantic.Parser.Grammar
73 Symantic.Parser.Grammar.Combinators
74 Symantic.Parser.Grammar.ObserveSharing
75 Symantic.Parser.Grammar.Optimize
76 Symantic.Parser.Grammar.Production
77 Symantic.Parser.Grammar.View
78 Symantic.Parser.Grammar.Write
79 Symantic.Parser.Machine
80 Symantic.Parser.Machine.Generate
81 Symantic.Parser.Machine.Input
82 Symantic.Parser.Machine.Input.Text.Buffer
83 Symantic.Parser.Machine.Instructions
84 Symantic.Parser.Machine.Optimize
85 Symantic.Parser.Machine.Program
86 Symantic.Parser.Machine.View
93 GeneralizedNewtypeDeriving,
95 MultiParamTypeClasses,
111 -- For Language.Haskell.Ppr.Lib.pprExp
113 symantic-base >= 0.3,
114 template-haskell >= 2.16,
120 -- visibility: public
122 hs-source-dirs: parsers
124 Parsers.Brainfuck.Attoparsec
125 Parsers.Brainfuck.Handrolled
126 Parsers.Brainfuck.SymanticParser
127 Parsers.Brainfuck.SymanticParser.Grammar
128 Parsers.Brainfuck.Types
132 Parsers.Utils.Handrolled
133 Parsers.Utils.Attoparsec
134 Parsers.Utils.Attoparsec.Text
140 GeneralizedNewtypeDeriving,
142 MultiParamTypeClasses,
152 containers >= 0.5.10.1,
161 symantic-base >= 0.3,
164 template-haskell >= 2.16,
169 -- ghc-options: -ddump-splices -ddump-to-file
171 test-suite symantic-parser-tests
173 type: exitcode-stdio-1.0
174 hs-source-dirs: tests
186 Paths_symantic_parser
188 Paths_symantic_parser
189 ghc-prof-options: -fexternal-interpreter
190 -- ghc-options: -ddump-splices -ddump-to-file
193 symantic-parser:parsers,
196 -- Needed for exported Data.Map.Internal
197 containers >= 0.5.10.1,
207 template-haskell >= 2.16,
208 -- th-lift-instances >= 0.1.17,
213 -- QuickCheck >= 2.0,
217 if !flag(disable-ormolu-check)
221 build-depends: dump-core
222 ghc-options: -fplugin=DumpCore
224 benchmark symantic-parser-benchmark
226 type: exitcode-stdio-1.0
227 hs-source-dirs: benchmarks
229 default-language: Haskell2010
232 Paths_symantic_parser
234 Paths_symantic_parser
236 ghc-options: -fno-enable-th-splice-warnings
237 ghc-prof-options: -fexternal-interpreter
241 symantic-parser:parsers,
250 template-haskell >= 2.16,