bookhound-0.1.26.0: src/Bookhound/Parsers/Char.hs
module Bookhound.Parsers.Char (module AnyChar, digit, hexDigit, octDigit, upper, lower, alpha, alphaNum, space, tab, newLine, spaceOrTab, whiteSpace, comma, dot, colon, quote, doubleQuote, dash, plus, equal, underscore, hashTag, question, openParens, closeParens, openSquare, closeSquare, openCurly, closeCurly, openAngle, closeAngle) where
import qualified Bookhound.Parser as AnyChar (anyChar)
import qualified Bookhound.Parser as Parser
import Bookhound.ParserCombinators (IsMatch (..))
import Bookhound.Parser (Parser, anyChar)
import Control.Applicative
import Data.Char (isAsciiLower, isAsciiUpper, isDigit, isHexDigit,
isOctDigit)
digit :: Parser Char
digit = satisfy isDigit
hexDigit :: Parser Char
hexDigit = satisfy isHexDigit
octDigit :: Parser Char
octDigit = satisfy isOctDigit
upper :: Parser Char
upper = satisfy isAsciiUpper
lower :: Parser Char
lower = satisfy isAsciiLower
alpha :: Parser Char
alpha = satisfy isAlpha
alphaNum :: Parser Char
alphaNum = satisfy isAlphaNum
space :: Parser Char
space = is ' '
tab :: Parser Char
tab = is '\t'
spaceOrTab :: Parser Char
spaceOrTab = space <|> tab
whiteSpace :: Parser Char
whiteSpace = space <|> tab <|> newLine
newLine :: Parser Char
newLine = is '\n'
comma :: Parser Char
comma = is ','
dot :: Parser Char
dot = is '.'
colon :: Parser Char
colon = is ':'
quote :: Parser Char
quote = is '\''
doubleQuote :: Parser Char
doubleQuote = is '"'
dash :: Parser Char
dash = is '-'
plus :: Parser Char
plus = is '+'
equal :: Parser Char
equal = is '='
underscore :: Parser Char
underscore = is '_'
hashTag :: Parser Char
hashTag = is '#'
question :: Parser Char
question = is '?'
openParens :: Parser Char
openParens = is '('
closeParens :: Parser Char
closeParens = is ')'
openSquare :: Parser Char
openSquare = is '['
closeSquare :: Parser Char
closeSquare = is ']'
openCurly :: Parser Char
openCurly = is '{'
closeCurly :: Parser Char
closeCurly = is '}'
openAngle :: Parser Char
openAngle = is '<'
closeAngle :: Parser Char
closeAngle = is '>'
isAlpha :: Char -> Bool
isAlpha x = isAsciiLower x || isAsciiUpper x
isAlphaNum :: Char -> Bool
isAlphaNum x = isAlpha x || isDigit x
satisfy :: (Char -> Bool) -> Parser Char
satisfy = flip Parser.satisfy anyChar