symparsec
Safe HaskellNone
LanguageGHC2021

Symparsec.Parser.Natural.Digits

Description

Parse digits from type-level Chars.

A Nothing indicates the given Char was not a valid digit for the given base.

raehik copied this directly from his own Symparsec library.

Synopsis

Documentation

type SParseDigit (parseDigit :: Char ~> Maybe Nat) = Lam SChar (SMaybe SNat) parseDigit Source #

type family ParseDigitBin (ch :: Char) :: Maybe Natural where ... Source #

Parse a binary digit (0 or 1).

Equations

ParseDigitBin '0' = 'Just 0 
ParseDigitBin '1' = 'Just 1 
ParseDigitBin _1 = 'Nothing :: Maybe Natural 

type family ParseDigitOct (ch :: Char) :: Maybe Natural where ... Source #

Parse an octal digit (0-7).

Equations

ParseDigitOct '0' = 'Just 0 
ParseDigitOct '1' = 'Just 1 
ParseDigitOct '2' = 'Just 2 
ParseDigitOct '3' = 'Just 3 
ParseDigitOct '4' = 'Just 4 
ParseDigitOct '5' = 'Just 5 
ParseDigitOct '6' = 'Just 6 
ParseDigitOct '7' = 'Just 7 
ParseDigitOct _1 = 'Nothing :: Maybe Natural 

type family ParseDigitDec (ch :: Char) :: Maybe Natural where ... Source #

Parse a decimal digit (0-9).

Equations

ParseDigitDec '0' = 'Just 0 
ParseDigitDec '1' = 'Just 1 
ParseDigitDec '2' = 'Just 2 
ParseDigitDec '3' = 'Just 3 
ParseDigitDec '4' = 'Just 4 
ParseDigitDec '5' = 'Just 5 
ParseDigitDec '6' = 'Just 6 
ParseDigitDec '7' = 'Just 7 
ParseDigitDec '8' = 'Just 8 
ParseDigitDec '9' = 'Just 9 
ParseDigitDec _1 = 'Nothing :: Maybe Natural 

type family ParseDigitHex (ch :: Char) :: Maybe Natural where ... Source #

Parse a hexadecimal digit (0-9A-Fa-f).

Both upper and lower case are permitted.

Equations

ParseDigitHex '0' = 'Just 0 
ParseDigitHex '1' = 'Just 1 
ParseDigitHex '2' = 'Just 2 
ParseDigitHex '3' = 'Just 3 
ParseDigitHex '4' = 'Just 4 
ParseDigitHex '5' = 'Just 5 
ParseDigitHex '6' = 'Just 6 
ParseDigitHex '7' = 'Just 7 
ParseDigitHex '8' = 'Just 8 
ParseDigitHex '9' = 'Just 9 
ParseDigitHex 'a' = 'Just 10 
ParseDigitHex 'A' = 'Just 10 
ParseDigitHex 'b' = 'Just 11 
ParseDigitHex 'B' = 'Just 11 
ParseDigitHex 'c' = 'Just 12 
ParseDigitHex 'C' = 'Just 12 
ParseDigitHex 'd' = 'Just 13 
ParseDigitHex 'D' = 'Just 13 
ParseDigitHex 'e' = 'Just 14 
ParseDigitHex 'E' = 'Just 14 
ParseDigitHex 'f' = 'Just 15 
ParseDigitHex 'F' = 'Just 15 
ParseDigitHex _1 = 'Nothing :: Maybe Natural