module HaskellWorks.Data.Json.Standard.Cursor.Internal.Word8 where

import Data.Word
import Data.Word8 hiding (isDigit)

import qualified Data.Char as C

isLeadingDigit :: Word8 -> Bool
isLeadingDigit :: Word8 -> Bool
isLeadingDigit Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_hyphen Bool -> Bool -> Bool
|| (Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_0 Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_9)

isTrailingDigit :: Word8 -> Bool
isTrailingDigit :: Word8 -> Bool
isTrailingDigit Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_plus Bool -> Bool -> Bool
|| Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_hyphen Bool -> Bool -> Bool
|| (Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_0 Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_9) Bool -> Bool -> Bool
|| Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_period Bool -> Bool -> Bool
|| Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_E Bool -> Bool -> Bool
|| Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_e

isAlphabetic :: Word8 -> Bool
isAlphabetic :: Word8 -> Bool
isAlphabetic Word8
w = (Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_A Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_Z) Bool -> Bool -> Bool
|| (Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_a Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_z)

isDigit :: Word8 -> Bool
isDigit :: Word8 -> Bool
isDigit Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_0 Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_9

wIsJsonNumberDigit :: Word8 -> Bool
wIsJsonNumberDigit :: Word8 -> Bool
wIsJsonNumberDigit Word8
w = (Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
>= Word8
_0 Bool -> Bool -> Bool
&& Word8
w Word8 -> Word8 -> Bool
forall a. Ord a => a -> a -> Bool
<= Word8
_9) Bool -> Bool -> Bool
|| Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
_hyphen

doubleQuote :: Word8
doubleQuote :: Word8
doubleQuote = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
'"')

backSlash :: Word8
backSlash :: Word8
backSlash = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
'\\')

openBrace :: Word8
openBrace :: Word8
openBrace = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
'{')

closeBrace :: Word8
closeBrace :: Word8
closeBrace = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
'}')

openBracket :: Word8
openBracket :: Word8
openBracket = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
'[')

closeBracket :: Word8
closeBracket :: Word8
closeBracket = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
']')

comma :: Word8
comma :: Word8
comma = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
',')

colon :: Word8
colon :: Word8
colon = Int -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Char -> Int
C.ord Char
':')

isPeriod :: Word8 -> Bool
isPeriod :: Word8 -> Bool
isPeriod Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
46

isMinus :: Word8 -> Bool
isMinus :: Word8 -> Bool
isMinus Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
45

isPlus :: Word8 -> Bool
isPlus :: Word8 -> Bool
isPlus Word8
w = Word8
w Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
43

isValueChar :: Word8 -> Bool
isValueChar :: Word8 -> Bool
isValueChar Word8
c = Word8 -> Bool
isAlphabetic Word8
c Bool -> Bool -> Bool
|| Word8 -> Bool
isDigit Word8
c Bool -> Bool -> Bool
|| Word8 -> Bool
isPeriod Word8
c Bool -> Bool -> Bool
|| Word8 -> Bool
isMinus Word8
c Bool -> Bool -> Bool
|| Word8 -> Bool
isPlus Word8
c

isOpen :: Word8 -> Bool
isOpen :: Word8 -> Bool
isOpen Word8
c = Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
openBracket Bool -> Bool -> Bool
|| Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
openBrace

isClose :: Word8 -> Bool
isClose :: Word8 -> Bool
isClose Word8
c = Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
closeBracket Bool -> Bool -> Bool
|| Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
closeBrace

isDelim :: Word8 -> Bool
isDelim :: Word8 -> Bool
isDelim Word8
c = Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
comma Bool -> Bool -> Bool
|| Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
colon

isDoubleQuote :: Word8 -> Bool
isDoubleQuote :: Word8 -> Bool
isDoubleQuote Word8
c = Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
doubleQuote

isBackSlash :: Word8 -> Bool
isBackSlash :: Word8 -> Bool
isBackSlash Word8
c = Word8
c Word8 -> Word8 -> Bool
forall a. Eq a => a -> a -> Bool
== Word8
backSlash