Safe Haskell | None |
---|
Data.Textual.Integral
Description
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.
Methods
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.
Methods
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.
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.
Sign of a number.
Constructors
NonNegative | |
NonPositive |
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.