Copyright | (c) 2009 Bernie Pope |
---|---|
License | BSD-style |
Maintainer | bjpop@csse.unimelb.edu.au |
Stability | experimental |
Portability | ghc |
Safe Haskell | Safe |
Language | Haskell98 |
Language.Python.Common.ParserMonad
Description
Monad support for Python parser and lexer.
Documentation
type P a = StateT ParseState (Either ParseError) a
execParser :: P a -> ParseState -> Either ParseError a
execParserKeepComments :: P a -> ParseState -> Either ParseError (a, [Token])
runParser :: P a -> ParseState -> Either ParseError (a, ParseState)
setLocation :: SrcLocation -> P ()
getLastToken :: P Token
setLastToken :: Token -> P ()
setLastEOL :: SrcSpan -> P ()
getLastEOL :: P SrcSpan
data ParseError
Constructors
UnexpectedToken Token | An error from the parser. Token found where it should not be. Note: tokens contain their own source span. |
UnexpectedChar Char SrcLocation | An error from the lexer. Character found where it should not be. |
StrError String | A generic error containing a string message. No source location. |
Instances
data ParseState
Constructors
ParseState | |
Fields
|
Instances
initialState :: SrcLocation -> String -> [Int] -> ParseState
pushStartCode :: Int -> P ()
popStartCode :: P ()
getStartCode :: P Int
pushIndent :: Int -> P ()
addComment :: Token -> P ()
getComments :: P [Token]