module Text.Alex.Quote ( parseAlex , compileAlex , alex ) where import Text.Alex(runAlex, Target(..)) import Text.Alex.AlexTemplate import Language.Haskell.TH.Quote import Language.Haskell.TH import Language.Haskell.TH.Lift import Language.Haskell.Meta type Alex = String compileAlex :: Alex -> Q [Dec] compileAlex = return . either error id . parseDecs alex :: QuasiQuoter alex = QuasiQuoter (lift . parseAlex) (error "pattern quoting is not supported") parseAlex :: String -> Alex parseAlex s = fst (runAlex [] Nothing s) ++ "\n" ++ alexTemplate HaskellTarget -- fst (runAlex [] Nothing s)