This module contain different general parsers.
- type Token = Word8
- data St = State {}
- type TagParser = Parser St Token
- run :: TagParser a -> [Word8] -> (Either String a, [Token])
- 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 ()
- encGet :: TagParser Integer
- encUpdate :: (Integer -> Integer) -> TagParser ()
- encSet :: Integer -> TagParser ()
- encRead :: TagParser Integer
- 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]
- terminator :: TagParser [Token]
- encPack :: Integer -> [Token] -> String
- parseValues :: Num n => n -> TagParser [[Token]]
- parseValue :: TagParser [Token]
- parseString :: TagParser String
- parseNumber :: TagParser Integer
- parseLanguage :: TagParser String
- formValues :: [String] -> TagParser [(String, 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 -> TagParser Size
- parseFlags_ :: [Int] -> TagParser [Bool]
Documentation
Parsers state
encRead :: TagParser IntegerSource
Parses one byte and sets curEncoding
.
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\''
terminator :: TagParser [Token]Source
terminator
parses values termination symbol, according to current encoding (curEncoding
).
parseValues :: Num n => n -> TagParser [[Token]]Source
Parses a list of values (as [Token]) separated with termination symbol
parseValue :: TagParser [Token]Source
Parses one value (as [Token]) till termination symbol
parseString :: 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)
formValues :: [String] -> TagParser [(String, String)]Source
Takes a list of keys and parses a list of values. Result is zip of these two lists.
byteString :: ByteString -> TagParser ByteStringSource
Parses given ByteString
.
string :: String -> TagParser ByteStringSource
Same as byteString
but argument is simple String
.