1{-# LANGUAGE CPP               #-}
2{-# LANGUAGE OverloadedStrings #-}
3
4#include "version-compatibility-macros.h"
5
6-- | Common symbols composed out of the ASCII subset of Unicode. For non-ASCII
7-- symbols, see "Prettyprinter.Symbols.Unicode".
8module Prettyprinter.Symbols.Ascii where
9
10
11
12import Prettyprinter.Internal
13
14
15
16-- | >>> squotes "·"
17-- '·'
18squotes :: Doc ann -> Doc ann
19squotes = enclose squote squote
20
21-- | >>> dquotes "·"
22-- "·"
23dquotes :: Doc ann -> Doc ann
24dquotes = enclose dquote dquote
25
26-- | >>> parens "·"
27-- (·)
28parens :: Doc ann -> Doc ann
29parens = enclose lparen rparen
30
31-- | >>> angles "·"
32-- <·>
33angles :: Doc ann -> Doc ann
34angles = enclose langle rangle
35
36-- | >>> brackets "·"
37-- [·]
38brackets :: Doc ann -> Doc ann
39brackets = enclose lbracket rbracket
40
41-- | >>> braces "·"
42-- {·}
43braces :: Doc ann -> Doc ann
44braces = enclose lbrace rbrace
45
46-- | >>> squote
47-- '
48squote :: Doc ann
49squote = Char '\''
50
51-- | >>> dquote
52-- "
53dquote :: Doc ann
54dquote = Char '"'
55
56-- | >>> lparen
57-- (
58lparen :: Doc ann
59lparen = Char '('
60
61-- | >>> rparen
62-- )
63rparen :: Doc ann
64rparen = Char ')'
65
66-- | >>> langle
67-- <
68langle :: Doc ann
69langle = Char '<'
70
71-- | >>> rangle
72-- >
73rangle :: Doc ann
74rangle = Char '>'
75
76-- | >>> lbracket
77-- [
78lbracket :: Doc ann
79lbracket = Char '['
80-- | >>> rbracket
81-- ]
82rbracket :: Doc ann
83rbracket = Char ']'
84
85-- | >>> lbrace
86-- {
87lbrace :: Doc ann
88lbrace = Char '{'
89-- | >>> rbrace
90-- }
91rbrace :: Doc ann
92rbrace = Char '}'
93
94-- | >>> semi
95-- ;
96semi :: Doc ann
97semi = Char ';'
98
99-- | >>> colon
100-- :
101colon :: Doc ann
102colon = Char ':'
103
104-- | >>> comma
105-- ,
106comma :: Doc ann
107comma = Char ','
108
109-- | >>> "a" <> space <> "b"
110-- a b
111--
112-- This is mostly used via @'<+>'@,
113--
114-- >>> "a" <+> "b"
115-- a b
116space :: Doc ann
117space = Char ' '
118
119-- | >>> dot
120-- .
121dot :: Doc ann
122dot = Char '.'
123
124-- | >>> slash
125-- /
126slash :: Doc ann
127slash = Char '/'
128
129-- | >>> backslash
130-- \\
131
132backslash :: Doc ann
133backslash = "\\"
134
135-- | >>> equals
136-- =
137equals :: Doc ann
138equals = Char '='
139
140-- | >>> pipe
141-- |
142pipe :: Doc ann
143pipe = Char '|'
144
145
146
147-- $setup
148--
149-- (Definitions for the doctests)
150--
151-- >>> :set -XOverloadedStrings
152-- >>> import Data.Semigroup
153-- >>> import Prettyprinter.Render.Text
154-- >>> import Prettyprinter.Util
155