alex-meta 0.1.1 → 0.2
raw patch · 3 files changed
+30/−30 lines, 3 filesdep −directorydep −th-liftdep ~haskell-src-meta
Dependencies removed: directory, th-lift
Dependency ranges changed: haskell-src-meta
Files
- Text/Alex/Quote.hs +0/−26
- alex-meta.cabal +3/−4
- src/Text/Alex/Quote.hs +27/−0
− Text/Alex/Quote.hs
@@ -1,26 +0,0 @@-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)
alex-meta.cabal view
@@ -1,5 +1,5 @@ Name: alex-meta -Version: 0.1.1 +Version: 0.2 Synopsis: Quasi-quoter for Alex lexers -- Description: License: BSD3 @@ -23,10 +23,9 @@ -- Packages needed in order to build this package. Build-depends: template-haskell >=2.4&&<2.5 - , th-lift >=0.5&&<0.6 - , haskell-src-meta >=0.1.1&&<0.2 + , haskell-src-meta >=0.3&&<1.0 , base >= 4.2 && < 5 - , array, containers, directory + , array, containers other-modules: Text.Alex
+ src/Text/Alex/Quote.hs view
@@ -0,0 +1,27 @@+{-#OPTIONS_GHC -fno-warn-missing-fields#-} + +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.Meta + +type Alex = String + +compileAlex :: Alex -> Q [Dec] +compileAlex = return . either error id . parseDecs + +alex :: QuasiQuoter +alex = QuasiQuoter {quoteExp = litE . StringL . parseAlex} + +parseAlex :: String -> Alex +parseAlex s = fst (runAlex [] Nothing s) ++ "\n" ++ alexTemplate HaskellTarget +