module Data.Char.Properties.DerivedCore (isAlphabetic, isCaseIgnorable, isCased, isChangesWhenCasefolded, isChangesWhenCasemapped, isChangesWhenLowercased, isChangesWhenTitlecased, isChangesWhenUppercased, isDefaultIgnorableCodePoint, isGraphemeBase, isGraphemeExtend, isGraphemeLink, isIDContinue, isIDStart, isLowercase, isMath, isUppercase, isXIDContinue, isXIDStart) where
import Data.Word
import Foreign.C.Types
import Foreign.Ptr
isAlphabetic, isCaseIgnorable, isCased, isChangesWhenCasefolded, isChangesWhenCasemapped, isChangesWhenLowercased, isChangesWhenTitlecased, isChangesWhenUppercased, isDefaultIgnorableCodePoint, isGraphemeBase, isGraphemeExtend, isGraphemeLink, isIDContinue, isIDStart, isLowercase, isMath, isUppercase, isXIDContinue, isXIDStart :: Char -> Bool
foreign import ccall unsafe "range_search" c_range_search :: Word32 -> Ptr () -> Word -> CInt
isAlphabetic x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataAlphabetic 1058
{-# INLINE isAlphabetic #-}
foreign import ccall unsafe "&Alphabetic" dataAlphabetic :: Ptr ()

isCaseIgnorable x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataCaseIgnorable 448
{-# INLINE isCaseIgnorable #-}
foreign import ccall unsafe "&CaseIgnorable" dataCaseIgnorable :: Ptr ()

isCased x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataCased 154
{-# INLINE isCased #-}
foreign import ccall unsafe "&Cased" dataCased :: Ptr ()

isChangesWhenCasefolded x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataChangesWhenCasefolded 612
{-# INLINE isChangesWhenCasefolded #-}
foreign import ccall unsafe "&ChangesWhenCasefolded" dataChangesWhenCasefolded :: Ptr ()

isChangesWhenCasemapped x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataChangesWhenCasemapped 123
{-# INLINE isChangesWhenCasemapped #-}
foreign import ccall unsafe "&ChangesWhenCasemapped" dataChangesWhenCasemapped :: Ptr ()

isChangesWhenLowercased x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataChangesWhenLowercased 599
{-# INLINE isChangesWhenLowercased #-}
foreign import ccall unsafe "&ChangesWhenLowercased" dataChangesWhenLowercased :: Ptr ()

isChangesWhenTitlecased x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataChangesWhenTitlecased 615
{-# INLINE isChangesWhenTitlecased #-}
foreign import ccall unsafe "&ChangesWhenTitlecased" dataChangesWhenTitlecased :: Ptr ()

isChangesWhenUppercased x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataChangesWhenUppercased 616
{-# INLINE isChangesWhenUppercased #-}
foreign import ccall unsafe "&ChangesWhenUppercased" dataChangesWhenUppercased :: Ptr ()

isDefaultIgnorableCodePoint x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataDefaultIgnorableCodePoint 26
{-# INLINE isDefaultIgnorableCodePoint #-}
foreign import ccall unsafe "&DefaultIgnorableCodePoint" dataDefaultIgnorableCodePoint :: Ptr ()

isGraphemeBase x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataGraphemeBase 1639
{-# INLINE isGraphemeBase #-}
foreign import ccall unsafe "&GraphemeBase" dataGraphemeBase :: Ptr ()

isGraphemeExtend x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataGraphemeExtend 347
{-# INLINE isGraphemeExtend #-}
foreign import ccall unsafe "&GraphemeExtend" dataGraphemeExtend :: Ptr ()

isGraphemeLink x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataGraphemeLink 53
{-# INLINE isGraphemeLink #-}
foreign import ccall unsafe "&GraphemeLink" dataGraphemeLink :: Ptr ()

isIDContinue x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataIDContinue 1236
{-# INLINE isIDContinue #-}
foreign import ccall unsafe "&IDContinue" dataIDContinue :: Ptr ()

isIDStart x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataIDStart 682
{-# INLINE isIDStart #-}
foreign import ccall unsafe "&IDStart" dataIDStart :: Ptr ()

isLowercase x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataLowercase 662
{-# INLINE isLowercase #-}
foreign import ccall unsafe "&Lowercase" dataLowercase :: Ptr ()

isMath x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataMath 240
{-# INLINE isMath #-}
foreign import ccall unsafe "&Math" dataMath :: Ptr ()

isUppercase x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataUppercase 641
{-# INLINE isUppercase #-}
foreign import ccall unsafe "&Uppercase" dataUppercase :: Ptr ()

isXIDContinue x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataXIDContinue 1240
{-# INLINE isXIDContinue #-}
foreign import ccall unsafe "&XIDContinue" dataXIDContinue :: Ptr ()

isXIDStart x = 0 /= c_range_search ((fromIntegral . fromEnum) x) dataXIDStart 685
{-# INLINE isXIDStart #-}
foreign import ccall unsafe "&XIDStart" dataXIDStart :: Ptr ()