Safe Haskell | None |
---|
Parsers for integral numbers written in positional numeral systems.
- class PositionalSystem s where
- systemName :: s -> String
- radixIn :: Num α => s -> α
- isDigitIn :: s -> Char -> Bool
- isNzDigitIn :: s -> Char -> Bool
- fromDigitIn :: Num α => s -> Char -> Maybe α
- fromNzDigitIn :: Num α => s -> Char -> Maybe α
- unsafeFromDigitIn :: Num α => s -> Char -> α
- intToDigitIn :: s -> Int -> Char
- printDigitIn :: Printer p => s -> Char -> p
- printZeroIn :: Printer p => s -> p
- class PositionalSystem s => BitSystem s where
- digitBitsIn :: s -> Int
- digitMaskIn :: Num α => s -> α
- lastDigitIn :: Bits α => s -> α -> Int
- data Binary = Binary
- data Octal = Octal
- data Decimal = Decimal
- data Hexadecimal = Hexadecimal
- data LowHex = LowHex
- data UpHex = UpHex
- digitIn :: (PositionalSystem s, Num α, CharParsing μ) => s -> μ α
- nzDigitIn :: (PositionalSystem s, Num α, CharParsing μ) => s -> μ α
- binDigit :: (Num α, CharParsing μ) => μ α
- nzBinDigit :: (Num α, CharParsing μ) => μ α
- octDigit :: (Num α, CharParsing μ) => μ α
- nzOctDigit :: (Num α, CharParsing μ) => μ α
- decDigit :: (Num α, CharParsing μ) => μ α
- nzDecDigit :: (Num α, CharParsing μ) => μ α
- hexDigit :: (Num α, CharParsing μ) => μ α
- nzHexDigit :: (Num α, CharParsing μ) => μ α
- lowHexDigit :: (Num α, CharParsing μ) => μ α
- nzLowHexDigit :: (Num α, CharParsing μ) => μ α
- upHexDigit :: (Num α, CharParsing μ) => μ α
- nzUpHexDigit :: (Num α, CharParsing μ) => μ α
- nonNegative :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- nnCompact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- nnUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- nncUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- nnBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- nncBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- nnBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- nncBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- nnBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- nncBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- nnbBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- nncbBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- nonPositive :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- npCompact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- npUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- npcUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- npBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- npcBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- npBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- npcBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- npBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- npcBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- npbBits :: forall s μ α. (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- npcbBits :: forall s μ α. (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- data Sign
- applySign :: Num α => Sign -> α -> α
- optMinus :: CharParsing μ => μ Sign
- optSign :: CharParsing μ => μ Sign
- number' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- number :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- compact' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- compact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ α
- numberUpTo' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ α
- numberUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- compactUpTo' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ α
- compactUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ α
- bounded' :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- bounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- cBounded' :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- cBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ α
- bits' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- bits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- cBits' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- cBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- bitsUpTo' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ α
- bitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- cBitsUpTo' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ α
- cBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ α
- bBits' :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- bBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
- cbBits' :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ α
- cbBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ α
Positional numeral systems
class PositionalSystem s where
Positional numeral system.
systemName :: s -> String
The name of the system (e.g. "binary", "decimal").
The radix of the system.
isDigitIn :: s -> Char -> Bool
Test if a character is a digit.
isNzDigitIn :: s -> Char -> Bool
Test if a character is a non-zero digit.
fromDigitIn :: Num α => s -> Char -> Maybe α
Map digits to the corresponding numbers. Return Nothing
on
other inputs.
fromNzDigitIn :: Num α => s -> Char -> Maybe α
Map non-zero digits to the corresponding numbers. Return Nothing
on
other inputs.
unsafeFromDigitIn :: Num α => s -> Char -> α
Map digits to the corresponding numbers. No checks are performed.
intToDigitIn :: s -> Int -> Char
Map Int
values to the corresponding digits. Inputs must be
non-negative and less than the radix.
printDigitIn :: Printer p => s -> Char -> p
Print a digit.
printZeroIn :: Printer p => s -> p
class PositionalSystem s => BitSystem s where
Positonal numeral system with a power of two radix.
digitBitsIn :: s -> Int
Numer of bits occupied by a digit.
digitMaskIn :: Num α => s -> α
The number that has digitBitsIn
least significant bits set to ones
and all the other bits set to zeroes.
lastDigitIn :: Bits α => s -> α -> Int
Map the last digit of a number to the corresponding Int
value.
data Binary
The binary numeral system.
data Octal
The octal numeral system.
data Decimal
The decimal numeral system.
data Hexadecimal
The hexadecimal numeral system.
data LowHex
The hexadecimal numeral system, using lower case digits.
data UpHex
The hexadecimal numeral system, using upper case digits.
Single digits
digitIn :: (PositionalSystem s, Num α, CharParsing μ) => s -> μ αSource
Parse a digit of the specified positional numeral system.
nzDigitIn :: (PositionalSystem s, Num α, CharParsing μ) => s -> μ αSource
Parse a non-zero digit of the specified positional numeral system.
binDigit :: (Num α, CharParsing μ) => μ αSource
Parse a binary digit.
nzBinDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero binary digit ('1').
octDigit :: (Num α, CharParsing μ) => μ αSource
Parse an octal digit.
nzOctDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero octal digit.
decDigit :: (Num α, CharParsing μ) => μ αSource
Parse a decimal digit.
nzDecDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero decimal digit.
hexDigit :: (Num α, CharParsing μ) => μ αSource
Parse a hexadecimal digit.
nzHexDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero hexadecimal digit.
lowHexDigit :: (Num α, CharParsing μ) => μ αSource
Parse a lower case hexadecimal digit.
nzLowHexDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero lower case hexadecimal digit.
upHexDigit :: (Num α, CharParsing μ) => μ αSource
Parse an upper case hexadecimal digit.
nzUpHexDigit :: (Num α, CharParsing μ) => μ αSource
Parse a non-zero upper case hexadecimal digit.
Numbers
nonNegative :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative number written in the specified positional numeral system.
nnCompact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative number written in the specified positional numeral system. Leading zeroes are not allowed.
nnUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-negative number written in the specified positional numeral system (up to n digits).
nncUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-negative number written in the specified positional numeral system (up to n digits). Leading zeroes are not allowed.
nnBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative number written in the specified positional numeral system, failing on overflow.
nncBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative number written in the specified positional numeral system, failing on overflow. Leading zeroes are not allowed.
nnBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system.
nncBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system. Leading zeroes are not allowed.
nnBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system (up to n digits).
nncBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system (up to n digits). Leading zeroes are not allowed.
nnbBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system, failing on overflow.
nncbBits :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-negative binary number written in the specified positional numeral system, failing on overflow. Leading zeroes are not allowed.
nonPositive :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive number written in the specified positional numeral system. For example, parsing "123" as a decimal would produce -123, not 123.
npCompact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive number written in the specified positional numeral system. Leading zeroes are not allowed.
npUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-positive number written in the specified positional numeral system (up to n digits).
npcUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-positive number written in the specified positional numeral system (up to n digits). Leading zeroes are not allowed.
npBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive number written in the specified positional numeral system, failing on overflow.
npcBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive number written in the specified positional numeral system, failing on overflow. Leading zeroes are not allowed.
npBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system.
npcBits :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system. Leading zeroes are not allowed.
npBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system (up to n digits).
npcBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system (up to n digits). Leading zeroes are not allowed.
npbBits :: forall s μ α. (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system, failing on overflow.
npcbBits :: forall s μ α. (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => s -> μ αSource
Parse a non-positive two's complement binary number written in the specified positional numeral system, failing on overflow. Leading zeroes are not allowed.
applySign :: Num α => Sign -> α -> αSource
Negate the supplied value if the sign is NonPositive
and return it
as it is otherwise.
optMinus :: CharParsing μ => μ SignSource
Optional minus sign.
optSign :: CharParsing μ => μ SignSource
Optional minus or plus sign.
number' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a number written in the specified positional numeral system. The supplied parser is used to determine the sign of the number.
number :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
compact' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a number written in the specified positional numeral system. The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.
compact :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> μ αSource
numberUpTo' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ αSource
Parse a number written in the specified positional numeral system (up to n digits). The supplied parser is used to determine the sign of the number.
numberUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
A shorthand for numberUpTo'
optMinus
.
compactUpTo' :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ αSource
Parse a number written in the specified positional numeral system (up to n digits). The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.
compactUpTo :: (PositionalSystem s, Num α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
A shorthand for compactUpTo'
optMinus
.
bounded' :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a number written in the specified positional numeral system, failing on overflow. The supplied parser is used to determine the sign of the number.
bounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
cBounded' :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a number written in the specified positional numeral system, failing on overflow. The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.
cBounded :: (PositionalSystem s, Ord α, Bounded α, Integral α, Monad μ, CharParsing μ) => s -> μ αSource
bits' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system. The supplied parser is used to determine the sign of the number.
cBits' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system. The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.
bitsUpTo' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system (up to n digits). The supplied parser is used to determine the sign of the number.
cBitsUpTo' :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> Int -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system (up to n digits). The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.
cBitsUpTo :: (BitSystem s, Num α, Bits α, Monad μ, CharParsing μ) => s -> Int -> μ αSource
A shorthand for cBitsUpTo'
optMinus
.
bBits' :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system, failing on overflow. The supplied parser is used to determine the sign of the number.
cbBits' :: (BitSystem s, Ord α, Bounded α, Num α, Bits α, Monad μ, CharParsing μ) => μ Sign -> s -> μ αSource
Parse a (two's complement) binary number written in the specified positional numeral system, failing on overflow. The supplied parser is used to determine the sign of the number. Leading zeroes are not allowed.