This module contain different general parsers.
- type Token = Word8
- data St = State {}
- type CharEncoding = Integer
- type TagParser = Parser St Token
- run :: TagParser a -> [Word8] -> (Either String a, [Token])
- tagVersionGet :: TagParser TagVersion
- tagVersionSet :: TagVersion -> TagParser ()
- flagsGet :: TagParser Flags
- flagsSet :: Flags -> TagParser ()
- posGet :: TagParser Integer
- posUpdate :: (Integer -> Integer) -> TagParser ()
- posSet :: Integer -> TagParser ()
- posDec :: TagParser ()
- posInc :: TagParser ()
- sizeGet :: TagParser Integer
- sizeUpdate :: (Integer -> Integer) -> TagParser ()
- sizeSet :: Integer -> TagParser ()
- sizeDec :: TagParser ()
- sizeInc :: TagParser ()
- ifSize :: TagParser [a] -> TagParser [a]
- many' :: TagParser a -> TagParser [a]
- many1' :: TagParser a -> TagParser [a]
- manyTill' :: TagParser a -> TagParser z -> TagParser [a]
- manyTill1' :: TagParser a -> TagParser z -> TagParser [a]
- sepBy' :: TagParser a -> TagParser sep -> TagParser [a]
- sepBy1' :: TagParser a -> TagParser sep -> TagParser [a]
- count :: Num n => n -> TagParser a -> TagParser [a]
- count' :: Num n => n -> TagParser a -> TagParser [a]
- countSepBy' :: Num n => n -> TagParser a -> TagParser sep -> TagParser [a]
- encPack :: CharEncoding -> [Token] -> String
- parseUntilWord8Null :: TagParser [Token]
- parseUntilWord16Null :: TagParser [Token]
- parseEncoding :: TagParser CharEncoding
- parseString :: CharEncoding -> TagParser String
- parseNumber :: TagParser Integer
- parseLanguage :: TagParser String
- parsers :: [TagParser a] -> TagParser [a]
- word8 :: Token -> TagParser Token
- word8s :: [Token] -> TagParser [Token]
- byteString :: ByteString -> TagParser ByteString
- string :: String -> TagParser ByteString
- upper :: TagParser Token
- digit :: TagParser Token
- anyWord8 :: TagParser Token
- type Size = Integer
- parseSize :: Integer -> Bool -> TagParser Size
- parseFlags_ :: [Int] -> TagParser [Bool]
Documentation
Parsers state
State | |
|
type CharEncoding = IntegerSource
ifSize :: TagParser [a] -> TagParser [a]Source
Wrapper for reiterative parsers.
Mnemonic: if
continue curSize
> 0 thenelse
stop
manyTill' :: TagParser a -> TagParser z -> TagParser [a]Source
parses a possibly-empty sequence of manyTill'
p endp
's, terminated by a end
.
manyTill1' :: TagParser a -> TagParser z -> TagParser [a]Source
'manyTill1\' p end' parses a non-empty sequence of p's, terminated by a end.
sepBy' :: TagParser a -> TagParser sep -> TagParser [a]Source
Parse a list of items separated by discarded junk.
sepBy1' :: TagParser a -> TagParser sep -> TagParser [a]Source
Parse a non-empty list of items separated by discarded junk.
count :: Num n => n -> TagParser a -> TagParser [a]Source
'count n p' parses a precise number of items, n, using the parser p, in sequence.
count' :: Num n => n -> TagParser a -> TagParser [a]Source
count
n p' parses a precise number of items, n, using the parser p, in sequence.
countSepBy' :: Num n => n -> TagParser a -> TagParser sep -> TagParser [a]Source
Hybrid of count
and 'sepBy\''
encPack :: CharEncoding -> [Token] -> StringSource
parseUntilWord8Null :: TagParser [Token]Source
Parses one value (as [Token]) till termination symbol
parseEncoding :: TagParser CharEncodingSource
Parses a character-encoding code, a one-byte value that should be 0, 1, 2, or 3
parseString :: CharEncoding -> TagParser StringSource
Parses one value and returns it as a String
parseNumber :: TagParser IntegerSource
Parses one value and returns it as a Integer
parseLanguage :: TagParser StringSource
Parses 3 bytes of language value (as a String) and returns a pair (Language, value)
byteString :: ByteString -> TagParser ByteStringSource
Parses given ByteString
.
string :: String -> TagParser ByteStringSource
Same as byteString
but argument is simple String
.