BNFC-meta-0.1: Language/LBNF/LiftBNF.hs
{-#Language TemplateHaskell #-}
module Language.LBNF.LiftBNF where
import Language.LBNF.AbsBNF
import Language.Haskell.TH.Lift
import Language.Haskell.TH.Syntax hiding (Exp)
import Language.Haskell.TH hiding (Exp)
import qualified Language.LBNF.CF as CF
deriveLift ''Grammar
deriveLift ''Def
deriveLift ''Exp
deriveLift ''Arg
deriveLift ''RHS
deriveLift ''MinimumSize
deriveLift ''ProfItem
deriveLift ''LabelId
deriveLift ''IntList
deriveLift ''Reg
deriveLift ''Item
deriveLift ''Cat
deriveLift ''Label
deriveLift ''HsTyp
instance Lift Ident where
lift (Ident s) = [| Ident s|]
instance Lift Double where
lift d = litE (DoublePrimL $ toRational d)
deriveLift ''CF.Exp
deriveLift ''CF.Pragma