| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
BNFC.PrettyPrint
Description
Extends 'PrettyPrint'.
Synopsis
- class Pretty a where
- pretty :: a -> Doc
- prettyPrec :: Int -> a -> Doc
- parensIf :: Bool -> Doc -> Doc
- prettyShow :: Pretty a => a -> String
- ($++$) :: Doc -> Doc -> Doc
- vsep :: [Doc] -> Doc
- vcat' :: [Doc] -> Doc
- (<=>) :: Doc -> Doc -> Doc
- prettyList :: Int -> Doc -> Doc -> Doc -> Doc -> [Doc] -> Doc
- codeblock :: Int -> [Doc] -> Doc
Documentation
Overloaded function pretty.
Minimal complete definition
Instances
| Pretty Cat Source # | |
| Pretty String Source # | |
Defined in BNFC.PrettyPrint | |
| Pretty Integer Source # | |
Defined in BNFC.PrettyPrint | |
| Pretty Int Source # | |
Defined in BNFC.PrettyPrint | |
| (IsFun f, Pretty f) => Pretty (Exp' f) Source # | |
| Pretty function => Pretty (Rul function) Source # | |
| Pretty a => Pretty (WithPosition a) Source # | |
Defined in BNFC.CF | |
parensIf :: Bool -> Doc -> Doc Source #
Put parens around document if given condition is true.
>>>parensIf True "foo"(foo)
>>>parensIf False "bar"bar
prettyShow :: Pretty a => a -> String Source #
Render as String.
($++$) :: Doc -> Doc -> Doc Source #
Separate vertically by a blank line.
>>>"foo" $++$ "bar"foo bar
>>>"foo" $++$ emptyfoo
vcat' :: [Doc] -> Doc Source #
List version of $+$.
>>>vcat' [text "abc", nest 4 (text "def")]abc def
(<=>) :: Doc -> Doc -> Doc Source #
Pretty print separator with = (for assignments...).
>>>"a" <=> "123"a = 123
Arguments
| :: Int | Indentation. |
| -> Doc | Preamble. |
| -> Doc | Left parenthesis. |
| -> Doc | Right parenthesis. |
| -> Doc | Separator (usually not including spaces). |
| -> [Doc] | List item. |
| -> Doc |
Print a list of 0-1 elements on the same line as some preamble and from 2 elements on the following lines, indented.
>>>prettyList 2 ("foo" <+> equals) lbrack rbrack comma []foo = []>>>prettyList 2 ("foo" <+> equals) lbrack rbrack comma [ "a" ]foo = [a]>>>prettyList 2 ("foo" <+> equals) lbrack rbrack comma [ "a", "b" ]foo = [ a , b ]
Used in the Agda backend.