memory-0.14.4: memory and related abstraction stuff

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.ByteArray.Parse

Contents

Description

A very simple bytearray parser related to Parsec and Attoparsec

Simple example:

> parse ((,,) <$> take 2 <*> byte 0x20 <*> (bytes "abc" *> anyByte)) "xx abctest"
ParseOK "est" ("xx", 116)

Synopsis

Documentation

data Parser byteArray a Source #

Simple ByteString parser structure

Instances

Monad (Parser byteArray) Source # 

Methods

(>>=) :: Parser byteArray a -> (a -> Parser byteArray b) -> Parser byteArray b #

(>>) :: Parser byteArray a -> Parser byteArray b -> Parser byteArray b #

return :: a -> Parser byteArray a #

fail :: String -> Parser byteArray a #

Functor (Parser byteArray) Source # 

Methods

fmap :: (a -> b) -> Parser byteArray a -> Parser byteArray b #

(<$) :: a -> Parser byteArray b -> Parser byteArray a #

Applicative (Parser byteArray) Source # 

Methods

pure :: a -> Parser byteArray a #

(<*>) :: Parser byteArray (a -> b) -> Parser byteArray a -> Parser byteArray b #

(*>) :: Parser byteArray a -> Parser byteArray b -> Parser byteArray b #

(<*) :: Parser byteArray a -> Parser byteArray b -> Parser byteArray a #

Alternative (Parser byteArray) Source # 

Methods

empty :: Parser byteArray a #

(<|>) :: Parser byteArray a -> Parser byteArray a -> Parser byteArray a #

some :: Parser byteArray a -> Parser byteArray [a] #

many :: Parser byteArray a -> Parser byteArray [a] #

MonadPlus (Parser byteArray) Source # 

Methods

mzero :: Parser byteArray a #

mplus :: Parser byteArray a -> Parser byteArray a -> Parser byteArray a #

data Result byteArray a Source #

Simple parsing result, that represent respectively:

  • failure: with the error message
  • continuation: that need for more input data
  • success: the remaining unparsed data and the parser value

Constructors

ParseFail String 
ParseMore (Maybe byteArray -> Result byteArray a) 
ParseOK byteArray a 

Instances

(Show ba, Show a) => Show (Result ba a) Source # 

Methods

showsPrec :: Int -> Result ba a -> ShowS #

show :: Result ba a -> String #

showList :: [Result ba a] -> ShowS #

run the Parser

parse :: ByteArrayAccess byteArray => Parser byteArray a -> byteArray -> Result byteArray a Source