| haskell-src-1.0.1.3: Manipulating Haskell source code | Source code | Contents | Index
Language.Haskell.ParseMonad |
Portability | portable
Stability | experimental
Maintainer | libraries@haskell.org
Contents
Parsing Lexing
Description
Monads for the Haskell parser and lexer.
Synopsis
data P a
data ParseResult a
= ParseOk a
| ParseFailed SrcLoc String
atSrcLoc :: P a -> SrcLoc -> P a
data LexContext
= NoLayout
| Layout Int
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 P a | Source
Monad for parsing
Instances
Monad P
data ParseResult a | Source
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)
atSrcLoc :: P a -> SrcLoc -> P a | Source
data LexContext | Source
Constructors
NoLayout |
Layout Int |
Instances
Eq LexContext
Ord LexContext
Show LexContext
data ParseMode | Source
Static parameters governing a parse. More to come later, e.g. literate mode, language extensions.
Constructors
ParseMode |
parseFilename :: String | original name of the file being parsed
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
getSrcLoc :: P SrcLoc | Source
pushCurrentContext :: P () | Source
popContext :: P () | Source
Lexing
data Lex r a | Source
Instances
Monad (Lex r)
getInput :: Lex r String | Source
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.
lexTab :: Lex a () | Source
Discard the next character, which must be a tab.
lexWhile :: (Char -> Bool) -> Lex a String | Source
alternative :: Lex a v -> Lex a (Lex a v) | Source
checkBOL :: Lex a Bool | Source
setBOL :: Lex a () | Source
startToken :: Lex a () | Source
getOffside :: Lex a Ordering | Source
pushContextL :: LexContext -> Lex a () | Source
popContextL :: String -> Lex a () | Source
Produced by Haddock version 2.4.2