summaryrefslogtreecommitdiff
path: root/src/AST/Pretty.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/AST/Pretty.hs')
-rw-r--r--src/AST/Pretty.hs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/AST/Pretty.hs b/src/AST/Pretty.hs
index 1dc9dd3..dbbc021 100644
--- a/src/AST/Pretty.hs
+++ b/src/AST/Pretty.hs
@@ -113,14 +113,12 @@ ppExpr' d val = \case
return $ showParen (d > 10) $
showString "build1 " . a' . showString (" (\\" ++ name ++ " -> ") . b' . showString ")"
- EBuild _ es e -> do
- es' <- mapM (ppExpr' 0 val) es
- names <- mapM (const genName) es -- TODO generate underscores
- e' <- ppExpr' 0 (vpushN names val) e
+ EBuild _ n a b -> do
+ a' <- ppExpr' 11 val a
+ names <- sequence (vecGenerate n (\_ -> genName)) -- TODO generate underscores
+ e' <- ppExpr' 0 (vpushN names val) b
return $ showParen (d > 10) $
- showString "build ["
- . foldr (.) id (intersperse (showString ", ") (reverse (toList es')))
- . showString "] (\\["
+ showString "build " . a' . showString " (\\["
. foldr (.) id (intersperse (showString ",") (map showString (reverse (toList names))))
. showString ("] -> ") . e' . showString ")"
@@ -137,6 +135,10 @@ ppExpr' d val = \case
e' <- ppExpr' 11 val e
return $ showParen (d > 10) $ showString "unit " . e'
+ EReplicate _ e -> do
+ e' <- ppExpr' 11 val e
+ return $ showParen (d > 10) $ showString "replicate " . e'
+
EConst _ ty v -> return $ showString $ case ty of
STI32 -> show v ; STI64 -> show v ; STF32 -> show v ; STF64 -> show v ; STBool -> show v