Copyright | (c) The GHC Team, 1997-2000 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
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 {}
- 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 Source
The result of a parse.
ParseOk a | The parse succeeded, yielding a value. |
ParseFailed SrcLoc String | The parse failed at the specified source location, with an error message. |
Monad ParseResult | |
Functor ParseResult | |
Applicative ParseResult | |
Show a => Show (ParseResult a) | |
Monoid m => Monoid (ParseResult m) |
Static parameters governing a parse. More to come later, e.g. literate mode, language extensions.
ParseMode | |
|
defaultParseMode :: ParseMode Source
Default parameters for a parse, currently just a marker for an unknown filename.
runParserWithMode :: ParseMode -> P a -> String -> ParseResult a Source
runParser :: P a -> String -> ParseResult a Source
pushCurrentContext :: P () Source
popContext :: P () Source
Lexing
discard :: Int -> Lex r () Source
Discard some input characters (these must not include tabs or newlines).
lexNewline :: Lex a () Source
Discard the next character, which must be a newline.
alternative :: Lex a v -> Lex a (Lex a v) Source
startToken :: Lex a () Source
getOffside :: Lex a Ordering Source
pushContextL :: LexContext -> Lex a () Source
popContextL :: String -> Lex a () Source