diff options
author | Tom Smeding <t.j.smeding@uu.nl> | 2025-03-07 17:19:48 +0100 |
---|---|---|
committer | Tom Smeding <t.j.smeding@uu.nl> | 2025-03-07 17:19:48 +0100 |
commit | d588b0a245bb162ea60165eb2e42ef44e9b540bc (patch) | |
tree | 063c329c7ecc14e67357e3186e089fdac879d3ac | |
parent | bb88a7dfdb377c77264801db01d72f2e8b245199 (diff) |
pprintExpr
-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 |