symparsec-1.1.1: Type level string parser combinators
Safe HaskellSafe-Inferred
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.

Synopsis

Documentation

type SParseDigit parseDigit = 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 _ = Nothing 

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 _ = Nothing 

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

Parse a decimal digit (0-9).

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 _ = Nothing