| Copyright | © 2021–present Megaparsec contributors |
|---|---|
| License | FreeBSD |
| Maintainer | Mark Karpov <markkarpov92@gmail.com> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Text.Megaparsec.Byte.Binary
Description
Binary-format number parsers.
Since: 9.2.0
Synopsis
- class BinaryChunk chunk where
- convertChunkBE :: (Bits a, Num a) => chunk -> a
- convertChunkLE :: (Bits a, Num a) => chunk -> a
- anyLE :: forall a e s m. (MonadParsec e s m, FiniteBits a, Num a, BinaryChunk (Tokens s)) => Maybe String -> m a
- anyBE :: forall a e s m. (MonadParsec e s m, FiniteBits a, Num a, BinaryChunk (Tokens s)) => Maybe String -> m a
- word8 :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word8
- word16le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word16
- word16be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word16
- word32le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word32
- word32be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word32
- word64le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word64
- word64be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word64
- int8 :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int8
- int16le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int16
- int16be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int16
- int32le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int32
- int32be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int32
- int64le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int64
- int64be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int64
Generic parsers
class BinaryChunk chunk where Source #
Data types that can be converted to little- or big- endian numbers.
Methods
convertChunkBE :: (Bits a, Num a) => chunk -> a Source #
convertChunkLE :: (Bits a, Num a) => chunk -> a Source #
Instances
| BinaryChunk ByteString Source # | |
Defined in Text.Megaparsec.Byte.Binary Methods convertChunkBE :: (Bits a, Num a) => ByteString -> a Source # convertChunkLE :: (Bits a, Num a) => ByteString -> a Source # | |
| BinaryChunk ByteString Source # | |
Defined in Text.Megaparsec.Byte.Binary Methods convertChunkBE :: (Bits a, Num a) => ByteString -> a Source # convertChunkLE :: (Bits a, Num a) => ByteString -> a Source # | |
Arguments
| :: forall a e s m. (MonadParsec e s m, FiniteBits a, Num a, BinaryChunk (Tokens s)) | |
| => Maybe String | Label, if any |
| -> m a |
Parse a little-endian number.
You may wish to call this with a visible type application:
number <- anyLE (Just "little-endian 32 bit word") @Word32
Arguments
| :: forall a e s m. (MonadParsec e s m, FiniteBits a, Num a, BinaryChunk (Tokens s)) | |
| => Maybe String | Label, if any |
| -> m a |
Parse a big-endian number.
You may wish to call this with a visible type application:
number <- anyBE (Just "big-endian 32 bit word") @Word32
Parsing unsigned values
word8 :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word8 Source #
Parse a Word8.
word16le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word16 Source #
Parse a little-endian Word16.
word16be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word16 Source #
Parse a big-endian Word16.
word32le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word32 Source #
Parse a little-endian Word32.
word32be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word32 Source #
Parse a big-endian Word32.
word64le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word64 Source #
Parse a little-endian Word64.
word64be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Word64 Source #
Parse a big-endian Word64.
Parsing signed values
int8 :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int8 Source #
Parse a Int8.
int16le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int16 Source #
Parse a little-endian Int16.
int16be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int16 Source #
Parse a big-endian Int16.
int32le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int32 Source #
Parse a little-endian Int32.
int32be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int32 Source #
Parse a big-endian Int32.
int64le :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int64 Source #
Parse a little-endian Int64.
int64be :: (MonadParsec e s m, BinaryChunk (Tokens s)) => m Int64 Source #
Parse a big-endian Int64.