unicode-data-parser-0.3.0.2: Parsers for Unicode Character Database (UCD) files
Copyright(c) 2024 Pierre Le Marre
Maintainer[email protected]
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageGHC2021

Unicode.CharacterDatabase.Parser.Common

Description

Miscellaneous bits common to various parsers

Synopsis

Code point

parseCodePoint :: HasCallStack => ShortByteString -> Char Source #

Parse a code point formatted as hexadecimal

Warning: raise an error on invalid input.

>>> parseCodePoint "0061"
'a'

Since: 0.1.0

parseCodePointList :: HasCallStack => ShortByteString -> [Char] Source #

Parse a list of code points

Range

data CodePointRange Source #

A Unicode code point range

Since: 0.1.0

Constructors

SingleChar 

Fields

CharRange 

Fields

Instances

Instances details
Show CodePointRange Source # 
Instance details

Defined in Unicode.CharacterDatabase.Parser.Internal

Eq CodePointRange Source # 
Instance details

Defined in Unicode.CharacterDatabase.Parser.Internal

Ord CodePointRange Source #

This should be used only for non-overlapping ranges and expect ranges to be well-formed, i.e. $sel:start:SingleChar < $sel:end:SingleChar.

>>> compare (SingleChar 'A') (SingleChar 'A')
EQ
>>> compare (SingleChar 'A') (SingleChar 'B')
LT
>>> compare (SingleChar 'B') (SingleChar 'A')
GT
>>> compare (SingleChar 'A') (CharRange 'A' 'B')
LT
>>> compare (SingleChar 'B') (CharRange 'A' 'B')
GT
>>> compare (SingleChar 'C') (CharRange 'A' 'B')
GT
>>> compare (SingleChar 'A') (CharRange 'A' 'A')
EQ
>>> compare (SingleChar 'A') (CharRange 'B' 'C')
LT
>>> compare (CharRange 'A' 'B') (SingleChar 'A')
GT
>>> compare (CharRange 'A' 'B') (SingleChar 'B')
LT
>>> compare (CharRange 'A' 'B') (SingleChar 'C')
LT
>>> compare (CharRange 'B' 'C') (SingleChar 'A')
GT
>>> compare (CharRange 'A' 'A') (SingleChar 'A')
EQ
>>> compare (CharRange 'A' 'B') (CharRange 'A' 'B')
EQ
>>> compare (CharRange 'A' 'B') (CharRange 'C' 'D')
LT
>>> compare (CharRange 'A' 'B') (CharRange 'B' 'C')
LT
>>> compare (CharRange 'A' 'C') (CharRange 'B' 'D')
LT
>>> compare (CharRange 'A' 'D') (CharRange 'B' 'C')
LT
>>> compare (CharRange 'C' 'D') (CharRange 'A' 'B')
GT
>>> compare (CharRange 'B' 'D') (CharRange 'A' 'B')
GT
>>> compare (CharRange 'B' 'C') (CharRange 'A' 'D')
GT
Instance details

Defined in Unicode.CharacterDatabase.Parser.Internal

Numeric value

data NumericValue Source #

Numeric value of a code point, if relevant

Since: 0.1.0

Miscellaneous

parseList :: HasCallStack => ShortByteString -> [ShortByteString] Source #

Parse space-separated list, similar to words.