diff options
Diffstat (limited to 'src/AST/Pretty.hs')
-rw-r--r-- | src/AST/Pretty.hs | 16 |
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 |