Copyright | (c) 2009 Bernie Pope |
---|---|
License | BSD-style |
Maintainer | bjpop@csse.unimelb.edu.au |
Stability | experimental |
Portability | ghc |
Safe Haskell | None |
Language | Haskell98 |
A parser for Python version 2.x programs. Parsers are provided for modules, statements, and expressions. The parsers produce comment tokens in addition to the abstract syntax tree.
See:
- http://docs.python.org/2.6/reference/index.html for an overview of the language.
- http://docs.python.org/2.6/reference/grammar.html for the full grammar.
- http://docs.python.org/2.6/reference/toplevel_components.html for a description of the various Python top-levels, which correspond to the parsers provided here.
Synopsis
- parseModule :: String -> String -> Either ParseError (ModuleSpan, [Token])
- parseStmt :: String -> String -> Either ParseError ([StatementSpan], [Token])
- parseExpr :: String -> String -> Either ParseError (ExprSpan, [Token])
Parsing modules
:: String | The input stream (python module source code). |
-> String | The name of the python source (filename or input device). |
-> Either ParseError (ModuleSpan, [Token]) | An error or the abstract syntax tree (AST) of the python module and comment tokens. |
Parse a whole Python source file. Return comments in addition to the parsed module.
Parsing statements
:: String | The input stream (python statement source code). |
-> String | The name of the python source (filename or input device). |
-> Either ParseError ([StatementSpan], [Token]) | An error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments. |
Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.
Parsing expressions
:: String | The input stream (python statement source code). |
-> String | The name of the python source (filename or input device). |
-> Either ParseError (ExprSpan, [Token]) | An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens. |
Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression.