on 1ed37fe help sign in
elk/compiler/SourceSyntax/PrettyPrint.hs
23 lines 515 B history raw
2module SourceSyntax.PrettyPrint where
4import Text.PrettyPrint
5import qualified SourceSyntax.Helpers as Help
7class Pretty a where
8 pretty :: a -> Doc
10instance Pretty () where
11 pretty () = empty
13commaCat docs = cat (punctuate comma docs)
14commaSep docs = sep (punctuate comma docs)
16parensIf bool doc = if bool then parens doc else doc
18variable x =
19 if Help.isOp x then parens (text x)
20 else text (reprime x)
22reprime :: String -> String
23reprime = map (\c -> if c == '$' then '\'' else c)