char-qq-0.1.1: library/CharQq.hs
module CharQq
(
ord,
ords,
chr,
)
where
import CharQq.Prelude hiding (ord, chr)
import qualified CharQq.Q as Q
-- * Quasi-quoters
-------------------------
{-|
A quasi-quoter which produces a unicode codepoint integer literal of a char.
E.g.,
>>> [CharQq.ord|Z|]
90
Works in the context of expressions and patterns.
-}
ord :: QuasiQuoter
ord = QuasiQuoter exp pat typ dec where
exp = Q.stringCodepointExp
pat = Q.stringCodepointPat
typ = const (fail "Unsupported")
dec = const (fail "Unsupported")
{-|
A quasi-quoter which produces a list of unicode codepoint integral literals of a sequence of chars.
E.g.,
>>> [CharQq.ords|абв|]
[1072,1073,1074]
Works in the context of expressions and patterns.
-}
ords :: QuasiQuoter
ords = QuasiQuoter exp pat typ dec where
exp = Q.stringCodepointsExp
pat = Q.stringCodepointsPat
typ = const (fail "Unsupported")
dec = const (fail "Unsupported")
{-|
A quasi-quoter which produces a char literal from a codepoint.
E.g.,
>>> [chr|90|]
'Z'
Works in the context of expressions and patterns.
-}
chr :: QuasiQuoter
chr = QuasiQuoter exp pat typ dec where
exp = Q.stringCodepointCharExp
pat = Q.stringCodepointCharPat
typ = const (fail "Unsupported")
dec = const (fail "Unsupported")