sparsec

simple Haskell parser combinator library
git clone git://git.rr3.xyz/sparsec
Log | Files | Refs | README | LICENSE

Char.hs (1963B)


      1 module Sparsec.Char (
      2     charIsUpperLatin,
      3     charIsLowerLatin,
      4     charIsLatin,
      5     charIsUpperGreek,
      6     charIsLowerGreek,
      7     charIsGreek,
      8     charIsSafeUpperGreek,
      9     charIsSafeLowerGreek,
     10     charIsSafeGreek,
     11     charIsNum2,
     12     charIsNum4,
     13     charIsNum8,
     14     charIsNum10,
     15     charIsNum16,
     16 ) where
     17 
     18 charIsUpperLatin :: Char -> Bool
     19 charIsUpperLatin c = 'A' <= c && c <= 'Z'
     20 {-# INLINE charIsUpperLatin #-}
     21 
     22 charIsLowerLatin :: Char -> Bool
     23 charIsLowerLatin c = 'a' <= c && c <= 'z'
     24 {-# INLINE charIsLowerLatin #-}
     25 
     26 charIsLatin :: Char -> Bool
     27 charIsLatin c = charIsUpperLatin c || charIsLowerLatin c
     28 {-# INLINE charIsLatin #-}
     29 
     30 charIsUpperGreek :: Char -> Bool
     31 charIsUpperGreek c = 'Α' <= c && c <= 'Ω'
     32 {-# INLINE charIsUpperGreek #-}
     33 
     34 charIsLowerGreek :: Char -> Bool
     35 charIsLowerGreek c = 'α' <= c && c <= 'ω'
     36 {-# INLINE charIsLowerGreek #-}
     37 
     38 charIsGreek :: Char -> Bool
     39 charIsGreek c = charIsUpperGreek c || charIsLowerGreek c
     40 {-# INLINE charIsGreek #-}
     41 
     42 charIsSafeUpperGreek :: Char -> Bool
     43 charIsSafeUpperGreek c = c == 'Γ' || c == 'Δ' || c == 'Θ' || c == 'Λ' || c == 'Ξ' || c == 'Π' || c == 'Σ' || c == 'Φ' || c == 'Ψ' || c == 'Ω'
     44 {-# INLINE charIsSafeUpperGreek #-}
     45 
     46 charIsSafeLowerGreek :: Char -> Bool
     47 charIsSafeLowerGreek c = charIsLowerGreek c && c /= 'ο'
     48 {-# INLINE charIsSafeLowerGreek #-}
     49 
     50 charIsSafeGreek :: Char -> Bool
     51 charIsSafeGreek c = charIsSafeUpperGreek c || charIsSafeLowerGreek c
     52 {-# INLINE charIsSafeGreek #-}
     53 
     54 charIsNum2 :: Char -> Bool
     55 charIsNum2 c = '0' <= c && c <= '1'
     56 {-# INLINE charIsNum2 #-}
     57 
     58 charIsNum4 :: Char -> Bool
     59 charIsNum4 c = '0' <= c && c <= '3'
     60 {-# INLINE charIsNum4 #-}
     61 
     62 charIsNum8 :: Char -> Bool
     63 charIsNum8 c = '0' <= c && c <= '7'
     64 {-# INLINE charIsNum8 #-}
     65 
     66 charIsNum10 :: Char -> Bool
     67 charIsNum10 c = '0' <= c && c <= '9'
     68 {-# INLINE charIsNum10 #-}
     69 
     70 charIsNum16 :: Char -> Bool
     71 charIsNum16 c = '0' <= c && c <= '9' || 'A' <= c && c <= 'F' || 'a' <= c && c <= 'f'
     72 {-# INLINE charIsNum16 #-}