From 462b044c8dadaee658f3533d53f4d666b953c5a3 Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Mon, 2 Jan 2023 11:31:59 -0600 Subject: [PATCH] Pretty-print let{,seq} with intervening braces This is a workaround for https://github.com/B-Lang-org/bsc/issues/529. --- src/Language/Bluespec/Classic/AST/Syntax.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Language/Bluespec/Classic/AST/Syntax.hs b/src/Language/Bluespec/Classic/AST/Syntax.hs index 1328326..e65cb93 100644 --- a/src/Language/Bluespec/Classic/AST/Syntax.hs +++ b/src/Language/Bluespec/Classic/AST/Syntax.hs @@ -349,12 +349,12 @@ instance Pretty CExpr where pPrintPrec d p (Cletseq [] e) = pparen (p > 0) $ (t"letseq in" <+> pp d e) pPrintPrec d p (Cletseq ds e) = pparen (p > 0) $ - (t"letseq" <+> foldr1 ($+$) (map (pp d) ds)) $+$ + (t"letseq" <+> text "{" <+> foldr1 ($+$) (map (pp d) ds)) <+> text "}" $+$ (t"in " <> pp d e) pPrintPrec d p (Cletrec [] e) = pparen (p > 0) $ (t"let in" <+> pp d e) pPrintPrec d p (Cletrec ds e) = pparen (p > 0) $ - (t"let" <+> foldr1 ($+$) (map (pp d) ds)) $+$ + (t"let" <+> t "{" <+> foldr1 ($+$) (map (pp d) ds)) <+> t "}" $+$ (t"in " <> pp d e) pPrintPrec d p (CSelect e i) = pparen (p > (fromIntegral maxPrec+2)) $ pPrintPrec d (fromIntegral maxPrec+2) e <> t"." <> ppVarId d i pPrintPrec d _p (CCon i []) = ppConId d i @@ -672,9 +672,9 @@ instance Pretty CStmt where (map (ppPProp d . snd) pprops) ++ [pp d pat <+> t "<-" <+> pp d e] pPrintPrec _d _p (CSletseq []) = error "Syntax.Pretty(CStmt): CSletseq []" - pPrintPrec d _p (CSletseq ds) = text "letseq" <+> foldr1 ($+$) (map (pp d) ds) + pPrintPrec d _p (CSletseq ds) = text "letseq" <+> text "{" <+> foldr1 ($+$) (map (pp d) ds) <+> text "}" pPrintPrec _d _p (CSletrec []) = error "Syntax.Pretty(CStmt): CSletrec []" - pPrintPrec d _p (CSletrec ds) = text "let" <+> foldr1 ($+$) (map (pp d) ds) + pPrintPrec d _p (CSletrec ds) = text "let" <+> text "{" <+> foldr1 ($+$) (map (pp d) ds) <+> text "}" pPrintPrec d p (CSExpr _ e) = pPrintPrec d p e instance HasPosition CStmt where