penny-lib-0.14.0.0: lib/Penny/Copper/Terminals.hs
module Penny.Copper.Terminals where
invalid :: Char -> Bool
invalid c = c >= '\xD800' && c <= '\xDFFF'
unicode :: Char -> Bool
unicode = not . invalid
newline :: Char -> Bool
newline = (== '\x0A')
space :: Char -> Bool
space = (== '\x20')
tab :: Char -> Bool
tab = (== '\x09')
white :: Char -> Bool
white c = space c || tab c
nonNewline :: Char -> Bool
nonNewline c = unicode c && (not . newline $ c)
nonNewlineNonSpace :: Char -> Bool
nonNewlineNonSpace c = nonNewline c && (not . white $ c)
upperCaseAscii :: Char -> Bool
upperCaseAscii c = c >= 'A' && c <= 'Z'
lowerCaseAscii :: Char -> Bool
lowerCaseAscii c = c >= 'a' && c <= 'z'
digit :: Char -> Bool
digit c = c >= '0' && c <= '9'
nonAscii :: Char -> Bool
nonAscii c = nonNewline c && c > '\x7F'
letter :: Char -> Bool
letter c = upperCaseAscii c || lowerCaseAscii c || nonAscii c
dollar :: Char -> Bool
dollar = (== '$')
colon :: Char -> Bool
colon = (== ':')
openCurly :: Char -> Bool
openCurly = (== '{')
closeCurly :: Char -> Bool
closeCurly = (== '}')
openSquare :: Char -> Bool
openSquare = (== '[')
closeSquare :: Char -> Bool
closeSquare = (== ']')
doubleQuote :: Char -> Bool
doubleQuote = (== '"')
period :: Char -> Bool
period = (== '.')
hash :: Char -> Bool
hash = (== '#')
thinSpace :: Char -> Bool
thinSpace = (== '\x2009')
dateSep :: Char -> Bool
dateSep c = c == '/' || c == '-'
plus :: Char -> Bool
plus = (== '+')
minus :: Char -> Bool
minus = (== '-')
lessThan :: Char -> Bool
lessThan = (== '<')
greaterThan :: Char -> Bool
greaterThan = (== '>')
openParen :: Char -> Bool
openParen = (== '(')
closeParen :: Char -> Bool
closeParen = (== ')')
semicolon :: Char -> Bool
semicolon = (== ';')
apostrophe :: Char -> Bool
apostrophe = (== '\x27')
tilde :: Char -> Bool
tilde = (== '~')
underscore :: Char -> Bool
underscore = (== '_')
asterisk :: Char -> Bool
asterisk = (== '*')
lvl1AcctChar :: Char -> Bool
lvl1AcctChar c = nonNewline c && (not . closeCurly $ c)
&& (not . colon $ c)
lvl2AcctOtherChar :: Char -> Bool
lvl2AcctOtherChar c =
nonNewline c && (not . white $ c) && (not . colon $ c)
&& (not . asterisk $ c) && (not . greaterThan $ c)
&& (not . lessThan $ c)
lvl1CmdtyChar :: Char -> Bool
lvl1CmdtyChar c =
nonNewline c && (not . doubleQuote $ c)
lvl2CmdtyFirstChar :: Char -> Bool
lvl2CmdtyFirstChar c = letter c || dollar c
lvl2CmdtyOtherChar :: Char -> Bool
lvl2CmdtyOtherChar c = nonNewline c && (not . white $ c)
lvl3CmdtyChar :: Char -> Bool
lvl3CmdtyChar c = letter c || dollar c
flagChar :: Char -> Bool
flagChar c = nonNewline c && (not . closeSquare $ c)
numberChar :: Char -> Bool
numberChar c = nonNewline c && (not . closeParen $ c)
quotedPayeeChar :: Char -> Bool
quotedPayeeChar c = nonNewline c && (not . tilde $ c)
tagChar :: Char -> Bool
tagChar c = nonNewlineNonSpace c && (not . asterisk $ c)
&& (not . greaterThan $ c) && (not . lessThan $ c)
atSign :: Char -> Bool
atSign = (== '@')