ruler-0.4.0.0: src/ARule/PrettyPrint.cag
-------------------------------------------------------------------------
-- PP for ARule/Expr
-------------------------------------------------------------------------
%%[1 hs module (ARule.PrettyPrint)
%%]
%%[1 hs export (ppARule, ppExpr, ppECGam)
%%]
%%[1 hs import (qualified Data.Map as Map, UHC.Util.Utils, UHC.Util.Pretty, Common, LaTeXFmtUtils)
%%]
%%[1 hs import (Expr.Expr, ARule.ARule, ECnstrGam, Config( cfgStrSel ))
%%]
%%[1 ag import({Expr/AbsSynAG}, {ARule/AbsSynAG}, {Expr/PrettyPrintAG}, {ARule/PrettyPrintAG}, {Expr/SelfAG}, {ARule/SelfAG})
%%]
%%[1 ag
WRAPPER AGARuleItf AGExprItf
%%]
%%[1 hs
ppARule :: ARule -> PP_Doc
ppARule r
= pp_Syn_AGARuleItf r2
where r1 = sem_AGARuleItf (AGARuleItf_AGItf r)
r2 = wrap_AGARuleItf r1
(Inh_AGARuleItf)
ppExpr :: Expr -> PP_Doc
ppExpr e
= pp_Syn_AGExprItf r2
where r1 = sem_AGExprItf (AGExprItf_AGItf e)
r2 = wrap_AGExprItf r1
(Inh_AGExprItf)
ppECGam :: ECnstrGam -> PP_Doc
ppECGam g = vlist [ pp (Expr_Cnstr n v) | (n,v) <- gamAssocs g]
instance Show ARule where
show _ = "ARule"
instance PP ARule where
pp = ppARule
instance Show Expr where
show _ = "Expr"
instance PP Expr where
pp = ppExpr
%%]