-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | For parsing Haskell-ish languages -- -- A library for parsing miniature and esoteric languages that are -- similar to Haskell @package haskellish @version 0.2.3 module Language.Haskellish data Haskellish st a Haskellish :: (st -> Exp SrcSpanInfo -> Either String (a, st)) -> Haskellish st a [runHaskellish] :: Haskellish st a -> st -> Exp SrcSpanInfo -> Either String (a, st) exp :: Haskellish st (Exp SrcSpanInfo) haskellishError :: String -> Haskellish st a applicationExpressions :: Exp SrcSpanInfo -> Either String (Exp SrcSpanInfo, Exp SrcSpanInfo) identifier :: Haskellish st String reserved :: String -> Haskellish st () string :: Haskellish st String integer :: Haskellish st Integer rational :: Haskellish st Rational rationalOrInteger :: Haskellish st Rational list :: Haskellish st a -> Haskellish st [a] listExpressions :: Exp SrcSpanInfo -> Either String [Exp SrcSpanInfo] tuple :: Haskellish st a -> Haskellish st b -> Haskellish st (a, b) asRightSection :: Haskellish st (a -> b -> c) -> Haskellish st b -> Haskellish st (a -> c) ifThenElse :: Haskellish st a -> Haskellish st b -> Haskellish st c -> Haskellish st (a, b, c) collectDoStatements :: Exp SrcSpanInfo -> [Exp SrcSpanInfo] listOfDoStatements :: Haskellish st a -> Haskellish st [a] type Span = ((Int, Int), (Int, Int)) span :: Haskellish st Span expToSpan :: Exp SrcSpanInfo -> Span srcSpanInfoToSpan :: SrcSpanInfo -> Span reverseApplication :: Haskellish st a -> Haskellish st (a -> b) -> Haskellish st b -- | 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. binaryApplication :: Haskellish st f -> Haskellish st a -> Haskellish st b -> Haskellish st (f, a, b) -- | functionApplication parses most cases where one thing is applied to -- another. Like binaryApplication, it is is intended for rare cases -- where one wants to match the pattern of one thing being applied to -- another, without that application "actually" taking place - the parsed -- sub-expressions are returned instead. functionApplication :: Haskellish st a -> Haskellish st b -> Haskellish st (a, b) instance GHC.Base.Functor (Language.Haskellish.Haskellish st) instance GHC.Base.Applicative (Language.Haskellish.Haskellish st) instance GHC.Base.Alternative (Language.Haskellish.Haskellish st) instance GHC.Base.Monad (Language.Haskellish.Haskellish st) instance GHC.Base.MonadPlus (Language.Haskellish.Haskellish st) instance Control.Monad.State.Class.MonadState st (Language.Haskellish.Haskellish st) instance Control.Monad.Error.Class.MonadError GHC.Base.String (Language.Haskellish.Haskellish st) module Language.Haskellish.TH grabExp :: String -> Q Exp grabInfoMap :: [String] -> Q (Map String Info)