module Symantic.Parser.Automaton ( module Symantic.Parser.Automaton , module Symantic.Parser.Automaton.Instructions , module Symantic.Parser.Automaton.Dump ) where import Symantic.Parser.Automaton.Instructions import Symantic.Parser.Automaton.Dump import Symantic.Parser.Grammar import Data.Function ((.)) import qualified Language.Haskell.TH.Syntax as TH generateAutomaton :: Grammar repr => ObserveSharing TH.Name (OptimizeComb TH.Name repr) a -> repr a generateAutomaton = optimizeComb . observeSharing