]> Git — Sourcephile - haskell/symantic-parser.git/blob - src/Symantic/Parser/Automaton.hs
bump to ghc-9.0.1 to get a levity-polymorphic CodeQ
[haskell/symantic-parser.git] / src / Symantic / Parser / Automaton.hs
1 module Symantic.Parser.Automaton
2 ( module Symantic.Parser.Automaton
3 , module Symantic.Parser.Automaton.Instructions
4 , module Symantic.Parser.Automaton.Dump
5 ) where
6 import Symantic.Parser.Automaton.Instructions
7 import Symantic.Parser.Automaton.Dump
8
9 import Symantic.Parser.Grammar
10 import Symantic.Parser.Automaton.Input
11 import Data.Function ((.))
12 import qualified Language.Haskell.TH.Syntax as TH
13
14 automaton :: forall inp repr a.
15 InputPosition inp =>
16 Executable repr =>
17 Grammar (Automaton inp a) =>
18 ObserveSharing TH.Name (OptimizeComb TH.Name (Automaton inp a)) a ->
19 repr inp '[] ('Succ 'Zero) a a
20 automaton = runAutomaton . optimizeComb . observeSharing