diff options
-rw-r--r-- | src/AST/Pretty.hs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/AST/Pretty.hs b/src/AST/Pretty.hs index 7634cd0..8c0a406 100644 --- a/src/AST/Pretty.hs +++ b/src/AST/Pretty.hs @@ -7,7 +7,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeOperators #-} -module AST.Pretty (ppExpr, ppSTy, ppTy, PrettyX(..)) where +module AST.Pretty (pprintExpr, ppExpr, ppSTy, ppTy, PrettyX(..)) where import Control.Monad (ap) import Data.List (intersperse) @@ -64,6 +64,9 @@ genNameIfUsedIn' prefix ty idx ex genNameIfUsedIn :: STy a -> Idx env a -> Expr x env t -> M String genNameIfUsedIn = genNameIfUsedIn' "x" +pprintExpr :: (KnownEnv env, PrettyX x) => Expr x env t -> IO () +pprintExpr = putStrLn . ppExpr knownEnv + ppExpr :: PrettyX x => SList f env -> Expr x env t -> String ppExpr senv e = render $ fst (runM (mkVal senv >>= \val -> ppExpr' 0 val e) 1) where @@ -360,7 +363,7 @@ annotToANSI AKey = PT.bold annotToANSI AWith = PT.color PT.Red <> PT.underlined annotToANSI AHighlight = PT.color PT.Blue annotToANSI AMonoid = PT.color PT.Green -annotToANSI AExt = mempty +annotToANSI AExt = PT.colorDull PT.White type ADoc = Doc Annot |