1 module Symantic.Parser.Automaton
2 ( module Symantic.Parser.Automaton
3 , module Symantic.Parser.Automaton.Instructions
4 , module Symantic.Parser.Automaton.Dump
6 import Symantic.Parser.Automaton.Instructions
7 import Symantic.Parser.Automaton.Dump
9 import Symantic.Parser.Grammar
10 import Data.Function ((.))
11 import qualified Language.Haskell.TH.Syntax as TH
13 automaton :: forall inp repr a.
16 Grammar (Automaton inp a) =>
17 ObserveSharing TH.Name (OptimizeComb TH.Name (Automaton inp a)) a ->
18 repr inp '[] ('Succ 'Zero) a a
19 automaton = runAutomaton . optimizeComb . observeSharing