module Lighttpd.Conf.Instances.Lift where
import Lighttpd.Conf.Syntax hiding (Name,mkName)
import qualified Lighttpd.Conf.Syntax as Syn
import qualified Data.ByteString.Char8 as BC8
import Language.Haskell.TH.Syntax hiding (Pat,Exp,Match,CondE)
import Language.Haskell.TH.Lib
import Data.PackedString
instance Lift BC8.ByteString where
lift a = [|BC8.pack $(lift (BC8.unpack a))|]
instance Lift Syn.Name where
lift (Syn.Name a) = [|Syn.Name a|]
instance Lift QName where
lift (QName a b) = [|QName a b|]
instance Lift Config where
lift (Config es) = [|Config es|]
instance Lift Val where
lift (SpliceV x) = [|toVal $(varE (mkName (BC8.unpack x)))|]
lift (VarV x0)
= appE
(conE
(Name (packString "VarV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (StringV x0)
= appE
(conE
(Name (packString "StringV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (IntegerV x0)
= appE
(conE
(Name (packString "IntegerV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (BooleanV x0)
= appE
(conE
(Name (packString "BooleanV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (ArrayV x0)
= appE
(conE
(Name (packString "ArrayV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (ManyV x0)
= appE
(conE
(Name (packString "ManyV")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
instance Lift ArrayElem where
lift (ArrayElem x0 x1)
= appE
(appE
(conE
(Name (packString "ArrayElem")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1)
instance Lift Enabled where
lift (Enable)
= conE
(Name (packString "Enable")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
lift (Disable)
= conE
(Name (packString "Disable")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
instance Lift Exp where
lift (CommentE x0)
= appE
(conE
(Name (packString "CommentE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (GlobalCxtE x0)
= appE
(conE
(Name (packString "GlobalCxtE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (OptionE x0 x1)
= appE
(appE
(conE
(Name (packString "OptionE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1)
lift (MergeE x0 x1)
= appE
(appE
(conE
(Name (packString "MergeE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1)
lift (IncludeE x0)
= appE
(conE
(Name (packString "IncludeE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (CondE x0 x1 x2)
= appE
(appE
(appE
(conE
(Name (packString "CondE")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1))
(lift x2)
instance Lift CondElse where
lift (CondElse x0 x1)
= appE
(appE
(conE
(Name (packString "CondElse")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1)
instance Lift Include where
lift (ValueI x0)
= appE
(conE
(Name (packString "ValueI")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (ShellI x0)
= appE
(conE
(Name (packString "ShellI")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
instance Lift Cond where
lift (Cond x0 x1 x2)
= appE
(appE
(appE
(conE
(Name (packString "Cond")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1))
(lift x2)
instance Lift Op where
lift (Equal)
= conE
(Name (packString "Equal")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
lift (NotEqual)
= conE
(Name (packString "NotEqual")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
lift (Match)
= conE
(Name (packString "Match")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
lift (NotMatch)
= conE
(Name (packString "NotMatch")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax")))
instance Lift Pat where
lift (StringP x0)
= appE
(conE
(Name (packString "StringP")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
lift (RegexP x0)
= appE
(conE
(Name (packString "RegexP")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0)
instance Lift Field where
lift (Field x0 x1)
= appE
(appE
(conE
(Name (packString "Field")
(NameG DataName (packString "lighttpd-conf-0.4")
(packString "Lighttpd.Conf.Syntax"))))
(lift x0))
(lift x1)