module Snail.Characters (validCharacter, parenthesisStartingCharacter) where

-- | The valid character set of Snail
validCharacter :: String
validCharacter :: String
validCharacter = [Char
'a' .. Char
'z'] String -> String -> String
forall a. Semigroup a => a -> a -> a
<> [Char
'A' .. Char
'Z'] String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
digitCharacter String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
specialInitialCharacter

-- | Characters allowed in numbers
digitCharacter :: String
digitCharacter :: String
digitCharacter = [Char
'0' .. Char
'9']

-- | Special initial characters
specialInitialCharacter :: String
specialInitialCharacter :: String
specialInitialCharacter = String
"!$%&*/:=?^_~#,'+-.@\\<>"

-- | Characters allowed in front of an s-expression
parenthesisStartingCharacter :: String
parenthesisStartingCharacter :: String
parenthesisStartingCharacter = String
"'`@#,"