haskellish-0.2.2: For parsing Haskell-ish languages

Safe HaskellNone
LanguageHaskell2010

Language.Haskellish

Synopsis

Documentation

data Haskellish st a Source #

Constructors

Haskellish 

Fields

Instances
MonadState st (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

get :: Haskellish st st #

put :: st -> Haskellish st () #

state :: (st -> (a, st)) -> Haskellish st a #

MonadError String (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

throwError :: String -> Haskellish st a #

catchError :: Haskellish st a -> (String -> Haskellish st a) -> Haskellish st a #

Monad (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

(>>=) :: Haskellish st a -> (a -> Haskellish st b) -> Haskellish st b #

(>>) :: Haskellish st a -> Haskellish st b -> Haskellish st b #

return :: a -> Haskellish st a #

fail :: String -> Haskellish st a #

Functor (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

fmap :: (a -> b) -> Haskellish st a -> Haskellish st b #

(<$) :: a -> Haskellish st b -> Haskellish st a #

Applicative (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

pure :: a -> Haskellish st a #

(<*>) :: Haskellish st (a -> b) -> Haskellish st a -> Haskellish st b #

liftA2 :: (a -> b -> c) -> Haskellish st a -> Haskellish st b -> Haskellish st c #

(*>) :: Haskellish st a -> Haskellish st b -> Haskellish st b #

(<*) :: Haskellish st a -> Haskellish st b -> Haskellish st a #

Alternative (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

empty :: Haskellish st a #

(<|>) :: Haskellish st a -> Haskellish st a -> Haskellish st a #

some :: Haskellish st a -> Haskellish st [a] #

many :: Haskellish st a -> Haskellish st [a] #

MonadPlus (Haskellish st) Source # 
Instance details

Defined in Language.Haskellish

Methods

mzero :: Haskellish st a #

mplus :: Haskellish st a -> Haskellish st a -> Haskellish st a #

list :: Haskellish st a -> Haskellish st [a] Source #

tuple :: Haskellish st a -> Haskellish st b -> Haskellish st (a, b) Source #

asRightSection :: Haskellish st (a -> b -> c) -> Haskellish st b -> Haskellish st (a -> c) Source #

ifThenElse :: Haskellish st a -> Haskellish st b -> Haskellish st c -> Haskellish st (a, b, c) Source #

type Span = ((Int, Int), (Int, Int)) Source #

binaryApplication :: Haskellish st f -> Haskellish st a -> Haskellish st b -> Haskellish st (f, a, b) Source #

binaryApplication targets the specific situation of parsing a function that is applied to two arguments, given parsers for the function and each of the two arguments. This is intended for rare cases - in most cases, Haskellish's Applicative instance will be a preferred way of parsing function application. Unlike the applicative instance, this function returns the three components (function and two arguments) separately, ie. the function is not actually applied to its arguments in the return type.