Top Description Inners Fields Constructors Methods
org.python.antlr

public Class PythonParser

extends Parser
Class Inheritance
Annotations
@SuppressWarnings:all
Imports
org.antlr.runtime.CommonToken, org.antlr.runtime.*, org.python.antlr.ParseException, .PythonTree, org.python.antlr.ast.alias, .arguments, .Assert, .Assign, .Attribute, .AugAssign, .BinOp, .BoolOp, .boolopType, .Break, .Call, .ClassDef, .cmpopType, .Compare, .comprehension, .Context, .Continue, .Delete, .Dict, .DictComp, .Ellipsis, .ErrorMod, .ExceptHandler, .Exec, .Expr, .Expression, .expr_contextType, .ExtSlice, .For, .GeneratorExp, .Global, .If, .IfExp, .Import, .ImportFrom, .Index, .Interactive, .keyword, .ListComp, .Lambda, .Module, .Name, .Num, .operatorType, .Pass, .Print, .Raise, .Repr, .Return, .Set, .SetComp, .Slice, .Str, .Subscript, .TryExcept, .TryFinally, .Tuple, .unaryopType, .UnaryOp, .While, .With, .Yield, org.python.antlr.base.excepthandler, .expr, .mod, .slice, .stmt, org.python.core.Py, .PyObject, .PyString, .PyUnicode, java.math.BigInteger, java.util.Collections, .Iterator, .ListIterator, .Stack, .List, .ArrayList, .Map, .HashMap, org.antlr.runtime.tree.*

Python 2.3.3 Grammar Terence Parr and Loring Craymer February 2004 Converted to ANTLR v3 November 2005 by Terence Parr. This grammar was derived automatically from the Python 2.3.3 parser grammar to get a syntactically correct ANTLR grammar for Python. Then Terence hand tweaked it to be semantically correct; i.e., removed lookahead issues etc... It is LL(1) except for the (sometimes optional) trailing commas and semi-colons. It needs two symbols of lookahead in this case. Starting with Loring's preliminary lexer for Python, I modified it to do my version of the whole nasty INDENT/DEDENT issue just so I could understand the problem better. This grammar requires PythonTokenStream.java to work. Also I used some rules from the semi-formal grammar on the web for Python (automatically translated to ANTLR format by an ANTLR grammar, naturally ). The lexical rules for python are particularly nasty and it took me a long time to get it 'right'; i.e., think about it in the proper way. Resist changing the lexer unless you've used ANTLR a lot. ;) I (Terence) tested this by running it on the jython-2.1/Lib directory of 40k lines of Python. REQUIRES ANTLR v3 Updated the original parser for Python 2.5 features. The parser has been altered to produce an AST - the AST work started from tne newcompiler grammar from Jim Baker. The current parsing and compiling strategy looks like this: Python source->Python.g->AST (org/python/parser/ast/*)->CodeCompiler(ASM)->.class

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
protected class
protected class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
protected static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
protected static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class
public static class

Field Summary

Modifier and TypeField and Description
private GrammarActions
protected TreeAdaptor
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
protected PythonParser.DFA136
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final char[]
pack-priv static final String
pack-priv static final char[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[][]
pack-priv static final String[]
protected PythonParser.DFA52
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final char[]
pack-priv static final String
pack-priv static final char[]
pack-priv static final String
pack-priv static final short[]
pack-priv static final String
pack-priv static final short[][]
pack-priv static final String[]
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
private String
public static final int
public static final int
private ErrorHandler
public static final int
public static final int
public static final int
public static final int
protected Stack<PythonParser.expr_scope>
public static final int
public static final int
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final BitSet
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
private boolean
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
protected Stack<PythonParser.suite_scope>
public static final int
public static final String[]
public static final int
public static final int
public static final int
public static final int
private boolean
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
Inherited from org.antlr.runtime.Parser:
input

Constructor Summary

AccessConstructor and Description
public
public
public
PythonParser(TokenStream input, String encoding)

public
PythonParser(TokenStream input, String encoding, boolean printFunction, boolean unicodeLiterals)

Method Summary

Modifier and TypeMethod and Description
public final PythonParser.and_expr_return
public final PythonParser.and_test_return
public final PythonParser.arglist_return
public final PythonParser.argument_return
argument(List<E> arguments, List<E> kws, List<E> gens, boolean first, boolean afterStar)

public final PythonParser.arith_expr_return
public final PythonParser.arith_op_return
public final PythonParser.assert_stmt_return
public final PythonParser.atom_return
atom()

public final PythonParser.attr_return
attr()

public final PythonParser.augassign_return
public final PythonParser.break_stmt_return
public final PythonParser.classdef_return
public final PythonParser.comp_for_return
comp_for(List<E> gens)

public final PythonParser.comp_if_return
comp_if(List<E> gens, List<E> ifs)

public final PythonParser.comp_iter_return
comp_iter(List<E> gens, List<E> ifs)

public final PythonParser.comp_op_return
public final PythonParser.comparison_return
public final PythonParser.compound_stmt_return
public final PythonParser.continue_stmt_return
public final PythonParser.decorator_return
public final PythonParser.decorators_return
public final PythonParser.defparameter_return
defparameter(List<E> defaults)

public final PythonParser.del_list_return
public final PythonParser.del_stmt_return
public final PythonParser.dictorsetmaker_return
public void
public final PythonParser.dotted_as_name_return
public final PythonParser.dotted_as_names_return
public final PythonParser.dotted_attr_return
public final PythonParser.dotted_name_return
public final PythonParser.elif_clause_return
public final PythonParser.else_clause_return
public final PythonParser.eval_input_return
public final PythonParser.except_clause_return
public final PythonParser.exec_stmt_return
public final PythonParser.expr_return
public final PythonParser.expr_stmt_return
public final PythonParser.exprlist_return
public final PythonParser.factor_return
public final PythonParser.file_input_return
public final PythonParser.flow_stmt_return
public final PythonParser.for_stmt_return
public final PythonParser.fpdef_return
public final PythonParser.fplist_return
public final PythonParser.funcdef_return
public Parser[]
public String
getGrammarFileName()

Overrides org.antlr.runtime.BaseRecognizer.getGrammarFileName.

For debugging and other purposes, might want the grammar name.

public String[]
getTokenNames()

Overrides org.antlr.runtime.BaseRecognizer.getTokenNames.

Used to print out token names like ID during debugging and error reporting.

public TreeAdaptor
public final PythonParser.global_stmt_return
public final PythonParser.if_stmt_return
public final PythonParser.import_as_name_return
public final PythonParser.import_as_names_return
public final PythonParser.import_from_return
public final PythonParser.import_name_return
public final PythonParser.import_stmt_return
public final PythonParser.lambdef_return
public final PythonParser.list_for_return
list_for(List<E> gens)

public final PythonParser.list_if_return
list_if(List<E> gens, List<E> ifs)

public final PythonParser.list_iter_return
list_iter(List<E> gens, List<E> ifs)

public final PythonParser.listmaker_return
listmaker(Token lbrack)

public final PythonParser.name_or_print_return
public final PythonParser.not_test_return
public final PythonParser.or_test_return
public final PythonParser.parameters_return
public final PythonParser.pass_stmt_return
public final PythonParser.power_return
public final PythonParser.printlist_return
public final PythonParser.printlist2_return
public final PythonParser.raise_stmt_return
protected Object
recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow)

Overrides org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken.

Attempt to recover from a single missing or extra token.

public void
public final PythonParser.return_stmt_return
public void
public void
public final PythonParser.shift_expr_return
public final PythonParser.shift_op_return
public final PythonParser.simple_stmt_return
public final PythonParser.single_input_return
public final PythonParser.sliceop_return
public final PythonParser.small_stmt_return
public final PythonParser.stmt_return
stmt()

public final PythonParser.subscript_return
public final PythonParser.subscriptlist_return
public final PythonParser.suite_return
suite(boolean fromFinally)

public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final boolean
public final void
public final PythonParser.term_return
term()

public final PythonParser.term_op_return
public final PythonParser.test_return
public final PythonParser.testlist_return
public final PythonParser.testlist1_return
public final PythonParser.testlist_gexp_return
public final PythonParser.trailer_return
trailer(Token begin, PythonTree ptree)

public final PythonParser.try_stmt_return
public final PythonParser.varargslist_return
public final PythonParser.while_stmt_return
public final PythonParser.with_item_return
public final PythonParser.with_stmt_return
public final PythonParser.xor_expr_return
public final PythonParser.yield_expr_return
public final PythonParser.yield_stmt_return
Inherited from org.antlr.runtime.Parser:
getCurrentInputSymbolgetMissingSymbolgetSourceNamegetTokenStreamresetsetTokenStreamtraceIntraceOut