packages feed

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

%%]