Portability | portable |
---|---|
Stability | experimental |
Maintainer | libraries@haskell.org |
Safe Haskell | None |
Language.Haskell.ParseMonad
Description
Monads for the Haskell parser and lexer.
- data P a
- data ParseResult a
- = ParseOk a
- | ParseFailed SrcLoc String
- atSrcLoc :: P a -> SrcLoc -> P a
- data LexContext
- data ParseMode = ParseMode {
- parseFilename :: String
- defaultParseMode :: ParseMode
- runParserWithMode :: ParseMode -> P a -> String -> ParseResult a
- runParser :: P a -> String -> ParseResult a
- getSrcLoc :: P SrcLoc
- pushCurrentContext :: P ()
- popContext :: P ()
- data Lex r a
- getInput :: Lex r String
- discard :: Int -> Lex r ()
- lexNewline :: Lex a ()
- lexTab :: Lex a ()
- lexWhile :: (Char -> Bool) -> Lex a String
- alternative :: Lex a v -> Lex a (Lex a v)
- checkBOL :: Lex a Bool
- setBOL :: Lex a ()
- startToken :: Lex a ()
- getOffside :: Lex a Ordering
- pushContextL :: LexContext -> Lex a ()
- popContextL :: String -> Lex a ()
Parsing
data ParseResult a
The result of a parse.
Constructors
ParseOk a | The parse succeeded, yielding a value. |
ParseFailed SrcLoc String | The parse failed at the specified source location, with an error message. |
Instances
Monad ParseResult | |
Functor ParseResult | |
Applicative ParseResult | |
Show a => Show (ParseResult a) | |
Monoid m => Monoid (ParseResult m) |
data LexContext
Instances
Eq LexContext | |
Ord LexContext | |
Show LexContext |
data ParseMode
Static parameters governing a parse. More to come later, e.g. literate mode, language extensions.
Constructors
ParseMode | |
Fields
|
Default parameters for a parse, currently just a marker for an unknown filename.
runParserWithMode :: ParseMode -> P a -> String -> ParseResult a
runParser :: P a -> String -> ParseResult a
pushCurrentContext :: P ()
popContext :: P ()
Lexing
lexNewline :: Lex a ()
Discard the next character, which must be a newline.
alternative :: Lex a v -> Lex a (Lex a v)
startToken :: Lex a ()
getOffside :: Lex a Ordering
pushContextL :: LexContext -> Lex a ()
popContextL :: String -> Lex a ()