{-# OPTIONS_HADDOCK hide #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# HLINT ignore "Use camelCase" #-}
module Unicode.Internal.Char.PropList
( isPattern_Syntax
, isPattern_White_Space
, isWhite_Space
) where
import Data.Bits (Bits(..))
import Data.Char (ord)
import Data.Int (Int8)
import Data.Word (Word8)
import GHC.Exts (Ptr(..))
import Unicode.Internal.Bits (lookupBit, lookupWord8AsInt)
{-# INLINE isPattern_Syntax #-}
isPattern_Syntax :: Char -> Bool
isPattern_Syntax :: Char -> Bool
isPattern_Syntax Char
c = Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
>= Char
'\x0021' Bool -> Bool -> Bool
&& Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
<= Char
'\xFE46' Bool -> Bool -> Bool
&& Int -> Bool
lookupIsPattern_SyntaxBitMap (Char -> Int
ord Char
c)
{-# INLINE lookupIsPattern_SyntaxBitMap #-}
lookupIsPattern_SyntaxBitMap :: Int -> Bool
lookupIsPattern_SyntaxBitMap :: Int -> Bool
lookupIsPattern_SyntaxBitMap Int
n =
Addr# -> Int -> Int -> Bool
lookupBit Addr#
data# (
Addr# -> Int -> Int
lookupWord8AsInt Addr#
offsets# (
Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
8
) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ ((Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
3) Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
mask)
) (Int
n Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
7)
where
mask :: Int
mask = (Int
1 Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftL` Int
5) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1
!(Ptr Addr#
data#) = Ptr Int8
isPattern_SyntaxDataBitMap
!(Ptr Addr#
offsets#) = Ptr Word8
isPattern_SyntaxOffsetsBitMap
isPattern_SyntaxDataBitMap :: Ptr Int8
isPattern_SyntaxDataBitMap :: Ptr Int8
isPattern_SyntaxDataBitMap = Addr# -> Ptr Int8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\0\0\255\255\255\0\255\127\254\255\239\127\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\254\255\0\252\1\0\
\\0\120\1\0\0\120\0\0\0\0\254\90\67\136\0\0\128\0\0\0\128\0\14\255\255\255\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\\0\0\0\0\192\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\96\0\0\255\255\255\0\255\127\254\255\239\127\0\0\0\0\0\0\0\0\
\\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\0\0\0\0\0\0\
\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\255\255\255\255\255\255\255\255\255\255\255\255\255\255\63\0\0\0\240\255\255\255\255\255\255\255\255\255\255\255\255\255"#
isPattern_SyntaxOffsetsBitMap :: Ptr Word8
isPattern_SyntaxOffsetsBitMap :: Ptr Word8
isPattern_SyntaxOffsetsBitMap = Addr# -> Ptr Word8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\40\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\0\144\162\162\182\162\162\214\162\162\162\162\12\12\178\12\72\12\
\\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\
\\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\
\\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\
\\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\
\\12\12\12\97\121"#
{-# INLINE isPattern_White_Space #-}
isPattern_White_Space :: Char -> Bool
isPattern_White_Space :: Char -> Bool
isPattern_White_Space Char
c = Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
>= Char
'\x0009' Bool -> Bool -> Bool
&& Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
<= Char
'\x2029' Bool -> Bool -> Bool
&& Int -> Bool
lookupIsPattern_White_SpaceBitMap (Char -> Int
ord Char
c)
{-# INLINE lookupIsPattern_White_SpaceBitMap #-}
lookupIsPattern_White_SpaceBitMap :: Int -> Bool
lookupIsPattern_White_SpaceBitMap :: Int -> Bool
lookupIsPattern_White_SpaceBitMap Int
n =
Addr# -> Int -> Int -> Bool
lookupBit Addr#
data# (
Addr# -> Int -> Int
lookupWord8AsInt Addr#
offsets# (
Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
8
) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ ((Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
3) Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
mask)
) (Int
n Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
7)
where
mask :: Int
mask = (Int
1 Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftL` Int
5) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1
!(Ptr Addr#
data#) = Ptr Int8
isPattern_White_SpaceDataBitMap
!(Ptr Addr#
offsets#) = Ptr Word8
isPattern_White_SpaceOffsetsBitMap
isPattern_White_SpaceDataBitMap :: Ptr Int8
isPattern_White_SpaceDataBitMap :: Ptr Int8
isPattern_White_SpaceDataBitMap = Addr# -> Ptr Int8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\0\62\0\0\1\0\0\0\0\0\0\0\0\0\0\0\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\192\0\0\0\3"#
isPattern_White_SpaceOffsetsBitMap :: Ptr Word8
isPattern_White_SpaceOffsetsBitMap :: Ptr Word8
isPattern_White_SpaceOffsetsBitMap = Addr# -> Ptr Word8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\0\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\17\80"#
{-# INLINE isWhite_Space #-}
isWhite_Space :: Char -> Bool
isWhite_Space :: Char -> Bool
isWhite_Space Char
c = Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
>= Char
'\x0009' Bool -> Bool -> Bool
&& Char
c Char -> Char -> Bool
forall a. Ord a => a -> a -> Bool
<= Char
'\x3000' Bool -> Bool -> Bool
&& Int -> Bool
lookupIsWhite_SpaceBitMap (Char -> Int
ord Char
c)
{-# INLINE lookupIsWhite_SpaceBitMap #-}
lookupIsWhite_SpaceBitMap :: Int -> Bool
lookupIsWhite_SpaceBitMap :: Int -> Bool
lookupIsWhite_SpaceBitMap Int
n =
Addr# -> Int -> Int -> Bool
lookupBit Addr#
data# (
Addr# -> Int -> Int
lookupWord8AsInt Addr#
offsets# (
Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
8
) Int -> Int -> Int
forall a. Num a => a -> a -> a
+ ((Int
n Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftR` Int
3) Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
mask)
) (Int
n Int -> Int -> Int
forall a. Bits a => a -> a -> a
.&. Int
7)
where
mask :: Int
mask = (Int
1 Int -> Int -> Int
forall a. Bits a => a -> Int -> a
`shiftL` Int
5) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1
!(Ptr Addr#
data#) = Ptr Int8
isWhite_SpaceDataBitMap
!(Ptr Addr#
offsets#) = Ptr Word8
isWhite_SpaceOffsetsBitMap
isWhite_SpaceDataBitMap :: Ptr Int8
isWhite_SpaceDataBitMap :: Ptr Int8
isWhite_SpaceDataBitMap = Addr# -> Ptr Int8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\255\7\0\0\0\131\0\0\0\0\0\128\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\
\\0\0\0\0\0\0\0\0\0\0\0\62\0\0\1\0\0\0\0\0\0\0\0\0\0\0\32\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\\0\0\0\0\0\0\0\0\0\0\0\0\0"#
isWhite_SpaceOffsetsBitMap :: Ptr Word8
isWhite_SpaceOffsetsBitMap :: Ptr Word8
isWhite_SpaceOffsetsBitMap = Addr# -> Ptr Word8
forall a. Addr# -> Ptr a
Ptr
Addr#
"\60\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\28\12\12\12\12\12\12\12\12\12\0\12\12\12\12\12\12\12\12\12\12\12\12\12\12\12\44"#