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.Instructions
83 Symantic.Parser.Machine.Optimize
84 Symantic.Parser.Machine.Program
85 Symantic.Parser.Machine.View
92 GeneralizedNewtypeDeriving,
94 MultiParamTypeClasses,
110 -- For Language.Haskell.Ppr.Lib.pprExp
112 symantic-base >= 0.3,
113 template-haskell >= 2.16,
119 -- visibility: public
121 hs-source-dirs: parsers
123 Parsers.Brainfuck.Attoparsec
124 Parsers.Brainfuck.Handrolled
125 Parsers.Brainfuck.SymanticParser
126 Parsers.Brainfuck.SymanticParser.Grammar
127 Parsers.Brainfuck.Types
131 Parsers.Utils.Handrolled
132 Parsers.Utils.Attoparsec
133 Parsers.Utils.Attoparsec.Text
139 GeneralizedNewtypeDeriving,
141 MultiParamTypeClasses,
151 containers >= 0.5.10.1,
160 symantic-base >= 0.3,
163 template-haskell >= 2.16,
168 -- ghc-options: -ddump-splices
170 test-suite symantic-parser-tests
172 type: exitcode-stdio-1.0
173 hs-source-dirs: tests
185 Paths_symantic_parser
187 Paths_symantic_parser
188 ghc-prof-options: -fexternal-interpreter
191 symantic-parser:parsers,
194 -- Needed for exported Data.Map.Internal
195 containers >= 0.5.10.1,
205 template-haskell >= 2.16,
206 -- th-lift-instances >= 0.1.17,
211 -- QuickCheck >= 2.0,
215 if !flag(disable-ormolu-check)
219 build-depends: dump-core
220 ghc-options: -fplugin=DumpCore
222 benchmark symantic-parser-benchmark
224 type: exitcode-stdio-1.0
225 hs-source-dirs: benchmarks
227 default-language: Haskell2010
230 Paths_symantic_parser
232 Paths_symantic_parser
234 ghc-options: -fno-enable-th-splice-warnings
235 ghc-prof-options: -fexternal-interpreter
239 symantic-parser:parsers,
248 template-haskell >= 2.16,