// $ANTLR 3.1.3 Mar 17, 2009 19:23:44 /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g 2011-07-07 17:07:55
package org.python.antlr;
import org.antlr.runtime.CommonToken;
import org.python.antlr.ParseException;
import org.python.antlr.PythonTree;
import org.python.antlr.ast.alias;
import org.python.antlr.ast.arguments;
import org.python.antlr.ast.Assert;
import org.python.antlr.ast.Assign;
import org.python.antlr.ast.Attribute;
import org.python.antlr.ast.AugAssign;
import org.python.antlr.ast.BinOp;
import org.python.antlr.ast.BoolOp;
import org.python.antlr.ast.boolopType;
import org.python.antlr.ast.Break;
import org.python.antlr.ast.Call;
import org.python.antlr.ast.ClassDef;
import org.python.antlr.ast.cmpopType;
import org.python.antlr.ast.Compare;
import org.python.antlr.ast.comprehension;
import org.python.antlr.ast.Context;
import org.python.antlr.ast.Continue;
import org.python.antlr.ast.Delete;
import org.python.antlr.ast.Dict;
import org.python.antlr.ast.Ellipsis;
import org.python.antlr.ast.ErrorMod;
import org.python.antlr.ast.ExceptHandler;
import org.python.antlr.ast.Exec;
import org.python.antlr.ast.Expr;
import org.python.antlr.ast.Expression;
import org.python.antlr.ast.expr_contextType;
import org.python.antlr.ast.ExtSlice;
import org.python.antlr.ast.For;
import org.python.antlr.ast.GeneratorExp;
import org.python.antlr.ast.Global;
import org.python.antlr.ast.If;
import org.python.antlr.ast.IfExp;
import org.python.antlr.ast.Import;
import org.python.antlr.ast.ImportFrom;
import org.python.antlr.ast.Index;
import org.python.antlr.ast.Interactive;
import org.python.antlr.ast.keyword;
import org.python.antlr.ast.ListComp;
import org.python.antlr.ast.Lambda;
import org.python.antlr.ast.Module;
import org.python.antlr.ast.Name;
import org.python.antlr.ast.Num;
import org.python.antlr.ast.operatorType;
import org.python.antlr.ast.Pass;
import org.python.antlr.ast.Print;
import org.python.antlr.ast.Raise;
import org.python.antlr.ast.Repr;
import org.python.antlr.ast.Return;
import org.python.antlr.ast.Slice;
import org.python.antlr.ast.Str;
import org.python.antlr.ast.Subscript;
import org.python.antlr.ast.TryExcept;
import org.python.antlr.ast.TryFinally;
import org.python.antlr.ast.Tuple;
import org.python.antlr.ast.unaryopType;
import org.python.antlr.ast.UnaryOp;
import org.python.antlr.ast.While;
import org.python.antlr.ast.With;
import org.python.antlr.ast.Yield;
import org.python.antlr.base.excepthandler;
import org.python.antlr.base.expr;
import org.python.antlr.base.mod;
import org.python.antlr.base.slice;
import org.python.antlr.base.stmt;
import org.python.core.Py;
import org.python.core.PyObject;
import org.python.core.PyString;
import org.python.core.PyUnicode;
import java.math.BigInteger;
import java.util.Collections;
import java.util.Iterator;
import java.util.ListIterator;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import 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 <grin>).
* 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
*/
public class PythonParser extends Parser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "INDENT", "DEDENT", "TRAILBACKSLASH", "NEWLINE", "LEADING_WS", "NAME", "DOT", "AND", "AS", "ASSERT", "BREAK", "CLASS", "CONTINUE", "DEF", "DELETE", "ELIF", "EXCEPT", "EXEC", "FINALLY", "FROM", "FOR", "GLOBAL", "IF", "IMPORT", "IN", "IS", "LAMBDA", "NOT", "OR", "ORELSE", "PASS", "PRINT", "RAISE", "RETURN", "TRY", "WHILE", "WITH", "YIELD", "AT", "LPAREN", "RPAREN", "COLON", "ASSIGN", "COMMA", "STAR", "DOUBLESTAR", "SEMI", "PLUSEQUAL", "MINUSEQUAL", "STAREQUAL", "SLASHEQUAL", "PERCENTEQUAL", "AMPEREQUAL", "VBAREQUAL", "CIRCUMFLEXEQUAL", "LEFTSHIFTEQUAL", "RIGHTSHIFTEQUAL", "DOUBLESTAREQUAL", "DOUBLESLASHEQUAL", "RIGHTSHIFT", "LESS", "GREATER", "EQUAL", "GREATEREQUAL", "LESSEQUAL", "ALT_NOTEQUAL", "NOTEQUAL", "VBAR", "CIRCUMFLEX", "AMPER", "LEFTSHIFT", "PLUS", "MINUS", "SLASH", "PERCENT", "DOUBLESLASH", "TILDE", "LBRACK", "RBRACK", "LCURLY", "RCURLY", "BACKQUOTE", "INT", "LONGINT", "FLOAT", "COMPLEX", "STRING", "DIGITS", "Exponent", "TRIAPOS", "TRIQUOTE", "ESC", "COMMENT", "CONTINUED_LINE", "WS"
};
public static final int SLASHEQUAL=54;
public static final int BACKQUOTE=85;
public static final int STAR=48;
public static final int CIRCUMFLEXEQUAL=58;
public static final int WHILE=39;
public static final int TRIAPOS=93;
public static final int ORELSE=33;
public static final int GREATEREQUAL=67;
public static final int COMPLEX=89;
public static final int NOT=31;
public static final int EXCEPT=20;
public static final int EOF=-1;
public static final int BREAK=14;
public static final int PASS=34;
public static final int LEADING_WS=8;
public static final int NOTEQUAL=70;
public static final int MINUSEQUAL=52;
public static final int VBAR=71;
public static final int RPAREN=44;
public static final int IMPORT=27;
public static final int NAME=9;
public static final int GREATER=65;
public static final int DOUBLESTAREQUAL=61;
public static final int RETURN=37;
public static final int LESS=64;
public static final int RAISE=36;
public static final int COMMENT=96;
public static final int RBRACK=82;
public static final int LCURLY=83;
public static final int INT=86;
public static final int DELETE=18;
public static final int RIGHTSHIFT=63;
public static final int ASSERT=13;
public static final int TRY=38;
public static final int DOUBLESLASHEQUAL=62;
public static final int ELIF=19;
public static final int WS=98;
public static final int VBAREQUAL=57;
public static final int OR=32;
public static final int LONGINT=87;
public static final int FROM=23;
public static final int PERCENTEQUAL=55;
public static final int LESSEQUAL=68;
public static final int DOUBLESLASH=79;
public static final int CLASS=15;
public static final int CONTINUED_LINE=97;
public static final int LBRACK=81;
public static final int DEF=17;
public static final int DOUBLESTAR=49;
public static final int ESC=95;
public static final int DIGITS=91;
public static final int Exponent=92;
public static final int FOR=24;
public static final int DEDENT=5;
public static final int FLOAT=88;
public static final int AND=11;
public static final int RIGHTSHIFTEQUAL=60;
public static final int LPAREN=43;
public static final int INDENT=4;
public static final int IF=26;
public static final int PLUSEQUAL=51;
public static final int AT=42;
public static final int AS=12;
public static final int SLASH=77;
public static final int IN=28;
public static final int CONTINUE=16;
public static final int COMMA=47;
public static final int IS=29;
public static final int AMPER=73;
public static final int EQUAL=66;
public static final int YIELD=41;
public static final int TILDE=80;
public static final int LEFTSHIFTEQUAL=59;
public static final int LEFTSHIFT=74;
public static final int PLUS=75;
public static final int LAMBDA=30;
public static final int DOT=10;
public static final int WITH=40;
public static final int PERCENT=78;
public static final int EXEC=21;
public static final int MINUS=76;
public static final int SEMI=50;
public static final int PRINT=35;
public static final int TRIQUOTE=94;
public static final int COLON=45;
public static final int TRAILBACKSLASH=6;
public static final int NEWLINE=7;
public static final int AMPEREQUAL=56;
public static final int FINALLY=22;
public static final int RCURLY=84;
public static final int ASSIGN=46;
public static final int GLOBAL=25;
public static final int STAREQUAL=53;
public static final int CIRCUMFLEX=72;
public static final int STRING=90;
public static final int ALT_NOTEQUAL=69;
// delegates
// delegators
public PythonParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public PythonParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
public String[] getTokenNames() { return PythonParser.tokenNames; }
public String getGrammarFileName() { return "/home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g"; }
private ErrorHandler errorHandler;
private GrammarActions actions = new GrammarActions();
private String encoding;
public void setErrorHandler(ErrorHandler eh) {
this.errorHandler = eh;
actions.setErrorHandler(eh);
}
protected Object recoverFromMismatchedToken(IntStream input, int ttype, BitSet follow)
throws RecognitionException {
Object o = errorHandler.recoverFromMismatchedToken(this, input, ttype, follow);
if (o != null) {
return o;
}
return super.recoverFromMismatchedToken(input, ttype, follow);
}
public PythonParser(TokenStream input, String encoding) {
this(input);
this.encoding = encoding;
}
public static class single_input_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "single_input"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:273:1: single_input : ( ( NEWLINE )* EOF | simple_stmt ( NEWLINE )* EOF | compound_stmt ( NEWLINE )+ EOF );
public final PythonParser.single_input_return single_input() throws RecognitionException {
PythonParser.single_input_return retval = new PythonParser.single_input_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NEWLINE1=null;
Token EOF2=null;
Token NEWLINE4=null;
Token EOF5=null;
Token NEWLINE7=null;
Token EOF8=null;
PythonParser.simple_stmt_return simple_stmt3 = null;
PythonParser.compound_stmt_return compound_stmt6 = null;
PythonTree NEWLINE1_tree=null;
PythonTree EOF2_tree=null;
PythonTree NEWLINE4_tree=null;
PythonTree EOF5_tree=null;
PythonTree NEWLINE7_tree=null;
PythonTree EOF8_tree=null;
mod mtype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:280:5: ( ( NEWLINE )* EOF | simple_stmt ( NEWLINE )* EOF | compound_stmt ( NEWLINE )+ EOF )
int alt4=3;
switch ( input.LA(1) ) {
case EOF:
case NEWLINE:
{
alt4=1;
}
break;
case NAME:
case ASSERT:
case BREAK:
case CONTINUE:
case DELETE:
case EXEC:
case FROM:
case GLOBAL:
case IMPORT:
case LAMBDA:
case NOT:
case PASS:
case PRINT:
case RAISE:
case RETURN:
case YIELD:
case LPAREN:
case PLUS:
case MINUS:
case TILDE:
case LBRACK:
case LCURLY:
case BACKQUOTE:
case INT:
case LONGINT:
case FLOAT:
case COMPLEX:
case STRING:
{
alt4=2;
}
break;
case CLASS:
case DEF:
case FOR:
case IF:
case TRY:
case WHILE:
case WITH:
case AT:
{
alt4=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:280:7: ( NEWLINE )* EOF
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:280:7: ( NEWLINE )*
loop1:
do {
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==NEWLINE) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:280:7: NEWLINE
{
NEWLINE1=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_single_input118); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE1_tree = (PythonTree)adaptor.create(NEWLINE1);
adaptor.addChild(root_0, NEWLINE1_tree);
}
}
break;
default :
break loop1;
}
} while (true);
EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_single_input121); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF2_tree = (PythonTree)adaptor.create(EOF2);
adaptor.addChild(root_0, EOF2_tree);
}
if ( state.backtracking==0 ) {
mtype = new Interactive(((Token)retval.start), new ArrayList<stmt>());
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:284:7: simple_stmt ( NEWLINE )* EOF
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_simple_stmt_in_single_input137);
simple_stmt3=simple_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_stmt3.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:284:19: ( NEWLINE )*
loop2:
do {
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==NEWLINE) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:284:19: NEWLINE
{
NEWLINE4=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_single_input139); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE4_tree = (PythonTree)adaptor.create(NEWLINE4);
adaptor.addChild(root_0, NEWLINE4_tree);
}
}
break;
default :
break loop2;
}
} while (true);
EOF5=(Token)match(input,EOF,FOLLOW_EOF_in_single_input142); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF5_tree = (PythonTree)adaptor.create(EOF5);
adaptor.addChild(root_0, EOF5_tree);
}
if ( state.backtracking==0 ) {
mtype = new Interactive(((Token)retval.start), actions.castStmts((simple_stmt3!=null?simple_stmt3.stypes:null)));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:288:7: compound_stmt ( NEWLINE )+ EOF
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_compound_stmt_in_single_input158);
compound_stmt6=compound_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compound_stmt6.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:288:21: ( NEWLINE )+
int cnt3=0;
loop3:
do {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==NEWLINE) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:288:21: NEWLINE
{
NEWLINE7=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_single_input160); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE7_tree = (PythonTree)adaptor.create(NEWLINE7);
adaptor.addChild(root_0, NEWLINE7_tree);
}
}
break;
default :
if ( cnt3 >= 1 ) break loop3;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(3, input);
throw eee;
}
cnt3++;
} while (true);
EOF8=(Token)match(input,EOF,FOLLOW_EOF_in_single_input163); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF8_tree = (PythonTree)adaptor.create(EOF8);
adaptor.addChild(root_0, EOF8_tree);
}
if ( state.backtracking==0 ) {
mtype = new Interactive(((Token)retval.start), actions.castStmts((compound_stmt6!=null?((PythonTree)compound_stmt6.tree):null)));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = mtype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
PythonTree badNode = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
retval.tree = new ErrorMod(badNode);
}
finally {
}
return retval;
}
// $ANTLR end "single_input"
public static class file_input_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "file_input"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:302:1: file_input : ( NEWLINE | stmt )* EOF ;
public final PythonParser.file_input_return file_input() throws RecognitionException {
PythonParser.file_input_return retval = new PythonParser.file_input_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NEWLINE9=null;
Token EOF11=null;
PythonParser.stmt_return stmt10 = null;
PythonTree NEWLINE9_tree=null;
PythonTree EOF11_tree=null;
mod mtype = null;
List stypes = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:320:5: ( ( NEWLINE | stmt )* EOF )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:320:7: ( NEWLINE | stmt )* EOF
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:320:7: ( NEWLINE | stmt )*
loop5:
do {
int alt5=3;
int LA5_0 = input.LA(1);
if ( (LA5_0==NEWLINE) ) {
alt5=1;
}
else if ( (LA5_0==NAME||(LA5_0>=ASSERT && LA5_0<=DELETE)||LA5_0==EXEC||(LA5_0>=FROM && LA5_0<=IMPORT)||(LA5_0>=LAMBDA && LA5_0<=NOT)||(LA5_0>=PASS && LA5_0<=LPAREN)||(LA5_0>=PLUS && LA5_0<=MINUS)||(LA5_0>=TILDE && LA5_0<=LBRACK)||LA5_0==LCURLY||(LA5_0>=BACKQUOTE && LA5_0<=STRING)) ) {
alt5=2;
}
switch (alt5) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:320:8: NEWLINE
{
NEWLINE9=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_file_input215); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE9_tree = (PythonTree)adaptor.create(NEWLINE9);
adaptor.addChild(root_0, NEWLINE9_tree);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:321:9: stmt
{
pushFollow(FOLLOW_stmt_in_file_input225);
stmt10=stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, stmt10.getTree());
if ( state.backtracking==0 ) {
if ((stmt10!=null?stmt10.stypes:null) != null) {
stypes.addAll((stmt10!=null?stmt10.stypes:null));
}
}
}
break;
default :
break loop5;
}
} while (true);
EOF11=(Token)match(input,EOF,FOLLOW_EOF_in_file_input244); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF11_tree = (PythonTree)adaptor.create(EOF11);
adaptor.addChild(root_0, EOF11_tree);
}
if ( state.backtracking==0 ) {
mtype = new Module(((Token)retval.start), actions.castStmts(stypes));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (!stypes.isEmpty()) {
//The EOF token messes up the end offsets, so set them manually.
//XXX: this may no longer be true now that PythonTokenSource is
// adjusting EOF offsets -- but needs testing before I remove
// this.
PythonTree stop = (PythonTree)stypes.get(stypes.size() -1);
mtype.setCharStopIndex(stop.getCharStopIndex());
mtype.setTokenStopIndex(stop.getTokenStopIndex());
}
retval.tree = mtype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
PythonTree badNode = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
retval.tree = new ErrorMod(badNode);
}
finally {
}
return retval;
}
// $ANTLR end "file_input"
public static class eval_input_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "eval_input"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:341:1: eval_input : ( LEADING_WS )? ( NEWLINE )* testlist[expr_contextType.Load] ( NEWLINE )* EOF ;
public final PythonParser.eval_input_return eval_input() throws RecognitionException {
PythonParser.eval_input_return retval = new PythonParser.eval_input_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LEADING_WS12=null;
Token NEWLINE13=null;
Token NEWLINE15=null;
Token EOF16=null;
PythonParser.testlist_return testlist14 = null;
PythonTree LEADING_WS12_tree=null;
PythonTree NEWLINE13_tree=null;
PythonTree NEWLINE15_tree=null;
PythonTree EOF16_tree=null;
mod mtype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:5: ( ( LEADING_WS )? ( NEWLINE )* testlist[expr_contextType.Load] ( NEWLINE )* EOF )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:7: ( LEADING_WS )? ( NEWLINE )* testlist[expr_contextType.Load] ( NEWLINE )* EOF
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:7: ( LEADING_WS )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==LEADING_WS) ) {
alt6=1;
}
switch (alt6) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:7: LEADING_WS
{
LEADING_WS12=(Token)match(input,LEADING_WS,FOLLOW_LEADING_WS_in_eval_input298); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LEADING_WS12_tree = (PythonTree)adaptor.create(LEADING_WS12);
adaptor.addChild(root_0, LEADING_WS12_tree);
}
}
break;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:19: ( NEWLINE )*
loop7:
do {
int alt7=2;
int LA7_0 = input.LA(1);
if ( (LA7_0==NEWLINE) ) {
alt7=1;
}
switch (alt7) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:20: NEWLINE
{
NEWLINE13=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_eval_input302); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE13_tree = (PythonTree)adaptor.create(NEWLINE13);
adaptor.addChild(root_0, NEWLINE13_tree);
}
}
break;
default :
break loop7;
}
} while (true);
pushFollow(FOLLOW_testlist_in_eval_input306);
testlist14=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist14.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:62: ( NEWLINE )*
loop8:
do {
int alt8=2;
int LA8_0 = input.LA(1);
if ( (LA8_0==NEWLINE) ) {
alt8=1;
}
switch (alt8) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:348:63: NEWLINE
{
NEWLINE15=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_eval_input310); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE15_tree = (PythonTree)adaptor.create(NEWLINE15);
adaptor.addChild(root_0, NEWLINE15_tree);
}
}
break;
default :
break loop8;
}
} while (true);
EOF16=(Token)match(input,EOF,FOLLOW_EOF_in_eval_input314); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EOF16_tree = (PythonTree)adaptor.create(EOF16);
adaptor.addChild(root_0, EOF16_tree);
}
if ( state.backtracking==0 ) {
mtype = new Expression(((Token)retval.start), actions.castExpr((testlist14!=null?((PythonTree)testlist14.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = mtype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
PythonTree badNode = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
retval.tree = new ErrorMod(badNode);
}
finally {
}
return retval;
}
// $ANTLR end "eval_input"
public static class dotted_attr_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dotted_attr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:363:1: dotted_attr returns [expr etype] : n1= NAME ( ( DOT n2+= NAME )+ | ) ;
public final PythonParser.dotted_attr_return dotted_attr() throws RecognitionException {
PythonParser.dotted_attr_return retval = new PythonParser.dotted_attr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token n1=null;
Token DOT17=null;
Token n2=null;
List list_n2=null;
PythonTree n1_tree=null;
PythonTree DOT17_tree=null;
PythonTree n2_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:365:5: (n1= NAME ( ( DOT n2+= NAME )+ | ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:365:7: n1= NAME ( ( DOT n2+= NAME )+ | )
{
root_0 = (PythonTree)adaptor.nil();
n1=(Token)match(input,NAME,FOLLOW_NAME_in_dotted_attr366); if (state.failed) return retval;
if ( state.backtracking==0 ) {
n1_tree = (PythonTree)adaptor.create(n1);
adaptor.addChild(root_0, n1_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:366:7: ( ( DOT n2+= NAME )+ | )
int alt10=2;
int LA10_0 = input.LA(1);
if ( (LA10_0==DOT) ) {
alt10=1;
}
else if ( (LA10_0==NEWLINE||LA10_0==LPAREN) ) {
alt10=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:366:9: ( DOT n2+= NAME )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:366:9: ( DOT n2+= NAME )+
int cnt9=0;
loop9:
do {
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0==DOT) ) {
alt9=1;
}
switch (alt9) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:366:10: DOT n2+= NAME
{
DOT17=(Token)match(input,DOT,FOLLOW_DOT_in_dotted_attr377); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT17_tree = (PythonTree)adaptor.create(DOT17);
adaptor.addChild(root_0, DOT17_tree);
}
n2=(Token)match(input,NAME,FOLLOW_NAME_in_dotted_attr381); if (state.failed) return retval;
if ( state.backtracking==0 ) {
n2_tree = (PythonTree)adaptor.create(n2);
adaptor.addChild(root_0, n2_tree);
}
if (list_n2==null) list_n2=new ArrayList();
list_n2.add(n2);
}
break;
default :
if ( cnt9 >= 1 ) break loop9;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(9, input);
throw eee;
}
cnt9++;
} while (true);
if ( state.backtracking==0 ) {
retval.etype = actions.makeDottedAttr(n1, list_n2);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:371:9:
{
if ( state.backtracking==0 ) {
retval.etype = actions.makeNameNode(n1);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "dotted_attr"
public static class attr_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "attr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:380:1: attr : ( NAME | AND | AS | ASSERT | BREAK | CLASS | CONTINUE | DEF | DELETE | ELIF | EXCEPT | EXEC | FINALLY | FROM | FOR | GLOBAL | IF | IMPORT | IN | IS | LAMBDA | NOT | OR | ORELSE | PASS | PRINT | RAISE | RETURN | TRY | WHILE | WITH | YIELD );
public final PythonParser.attr_return attr() throws RecognitionException {
PythonParser.attr_return retval = new PythonParser.attr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token set18=null;
PythonTree set18_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:381:5: ( NAME | AND | AS | ASSERT | BREAK | CLASS | CONTINUE | DEF | DELETE | ELIF | EXCEPT | EXEC | FINALLY | FROM | FOR | GLOBAL | IF | IMPORT | IN | IS | LAMBDA | NOT | OR | ORELSE | PASS | PRINT | RAISE | RETURN | TRY | WHILE | WITH | YIELD )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:
{
root_0 = (PythonTree)adaptor.nil();
set18=(Token)input.LT(1);
if ( input.LA(1)==NAME||(input.LA(1)>=AND && input.LA(1)<=YIELD) ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (PythonTree)adaptor.create(set18));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "attr"
public static class decorator_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "decorator"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:416:1: decorator returns [expr etype] : AT dotted_attr ( LPAREN ( arglist | ) RPAREN | ) NEWLINE ;
public final PythonParser.decorator_return decorator() throws RecognitionException {
PythonParser.decorator_return retval = new PythonParser.decorator_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token AT19=null;
Token LPAREN21=null;
Token RPAREN23=null;
Token NEWLINE24=null;
PythonParser.dotted_attr_return dotted_attr20 = null;
PythonParser.arglist_return arglist22 = null;
PythonTree AT19_tree=null;
PythonTree LPAREN21_tree=null;
PythonTree RPAREN23_tree=null;
PythonTree NEWLINE24_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:421:5: ( AT dotted_attr ( LPAREN ( arglist | ) RPAREN | ) NEWLINE )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:421:7: AT dotted_attr ( LPAREN ( arglist | ) RPAREN | ) NEWLINE
{
root_0 = (PythonTree)adaptor.nil();
AT19=(Token)match(input,AT,FOLLOW_AT_in_decorator718); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AT19_tree = (PythonTree)adaptor.create(AT19);
adaptor.addChild(root_0, AT19_tree);
}
pushFollow(FOLLOW_dotted_attr_in_decorator720);
dotted_attr20=dotted_attr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dotted_attr20.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:422:5: ( LPAREN ( arglist | ) RPAREN | )
int alt12=2;
int LA12_0 = input.LA(1);
if ( (LA12_0==LPAREN) ) {
alt12=1;
}
else if ( (LA12_0==NEWLINE) ) {
alt12=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:422:7: LPAREN ( arglist | ) RPAREN
{
LPAREN21=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_decorator728); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN21_tree = (PythonTree)adaptor.create(LPAREN21);
adaptor.addChild(root_0, LPAREN21_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:423:7: ( arglist | )
int alt11=2;
int LA11_0 = input.LA(1);
if ( (LA11_0==NAME||(LA11_0>=LAMBDA && LA11_0<=NOT)||LA11_0==LPAREN||(LA11_0>=STAR && LA11_0<=DOUBLESTAR)||(LA11_0>=PLUS && LA11_0<=MINUS)||(LA11_0>=TILDE && LA11_0<=LBRACK)||LA11_0==LCURLY||(LA11_0>=BACKQUOTE && LA11_0<=STRING)) ) {
alt11=1;
}
else if ( (LA11_0==RPAREN) ) {
alt11=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:423:9: arglist
{
pushFollow(FOLLOW_arglist_in_decorator738);
arglist22=arglist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arglist22.getTree());
if ( state.backtracking==0 ) {
retval.etype = actions.makeCall(LPAREN21, (dotted_attr20!=null?dotted_attr20.etype:null), (arglist22!=null?arglist22.args:null), (arglist22!=null?arglist22.keywords:null),
(arglist22!=null?arglist22.starargs:null), (arglist22!=null?arglist22.kwargs:null));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:429:9:
{
if ( state.backtracking==0 ) {
retval.etype = actions.makeCall(LPAREN21, (dotted_attr20!=null?dotted_attr20.etype:null));
}
}
break;
}
RPAREN23=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_decorator782); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN23_tree = (PythonTree)adaptor.create(RPAREN23);
adaptor.addChild(root_0, RPAREN23_tree);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:435:7:
{
if ( state.backtracking==0 ) {
retval.etype = (dotted_attr20!=null?dotted_attr20.etype:null);
}
}
break;
}
NEWLINE24=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_decorator804); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE24_tree = (PythonTree)adaptor.create(NEWLINE24);
adaptor.addChild(root_0, NEWLINE24_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "decorator"
public static class decorators_return extends ParserRuleReturnScope {
public List etypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "decorators"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:442:1: decorators returns [List etypes] : (d+= decorator )+ ;
public final PythonParser.decorators_return decorators() throws RecognitionException {
PythonParser.decorators_return retval = new PythonParser.decorators_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
List list_d=null;
PythonParser.decorator_return d = null;
d = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:444:5: ( (d+= decorator )+ )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:444:7: (d+= decorator )+
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:444:8: (d+= decorator )+
int cnt13=0;
loop13:
do {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==AT) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:444:8: d+= decorator
{
pushFollow(FOLLOW_decorator_in_decorators832);
d=decorator();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, d.getTree());
if (list_d==null) list_d=new ArrayList();
list_d.add(d.getTree());
}
break;
default :
if ( cnt13 >= 1 ) break loop13;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(13, input);
throw eee;
}
cnt13++;
} while (true);
if ( state.backtracking==0 ) {
retval.etypes = list_d;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "decorators"
public static class funcdef_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "funcdef"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:451:1: funcdef : ( decorators )? DEF NAME parameters COLON suite[false] ;
public final PythonParser.funcdef_return funcdef() throws RecognitionException {
PythonParser.funcdef_return retval = new PythonParser.funcdef_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token DEF26=null;
Token NAME27=null;
Token COLON29=null;
PythonParser.decorators_return decorators25 = null;
PythonParser.parameters_return parameters28 = null;
PythonParser.suite_return suite30 = null;
PythonTree DEF26_tree=null;
PythonTree NAME27_tree=null;
PythonTree COLON29_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:459:5: ( ( decorators )? DEF NAME parameters COLON suite[false] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:459:7: ( decorators )? DEF NAME parameters COLON suite[false]
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:459:7: ( decorators )?
int alt14=2;
int LA14_0 = input.LA(1);
if ( (LA14_0==AT) ) {
alt14=1;
}
switch (alt14) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:459:7: decorators
{
pushFollow(FOLLOW_decorators_in_funcdef870);
decorators25=decorators();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, decorators25.getTree());
}
break;
}
DEF26=(Token)match(input,DEF,FOLLOW_DEF_in_funcdef873); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEF26_tree = (PythonTree)adaptor.create(DEF26);
adaptor.addChild(root_0, DEF26_tree);
}
NAME27=(Token)match(input,NAME,FOLLOW_NAME_in_funcdef875); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME27_tree = (PythonTree)adaptor.create(NAME27);
adaptor.addChild(root_0, NAME27_tree);
}
pushFollow(FOLLOW_parameters_in_funcdef877);
parameters28=parameters();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, parameters28.getTree());
COLON29=(Token)match(input,COLON,FOLLOW_COLON_in_funcdef879); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON29_tree = (PythonTree)adaptor.create(COLON29);
adaptor.addChild(root_0, COLON29_tree);
}
pushFollow(FOLLOW_suite_in_funcdef881);
suite30=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, suite30.getTree());
if ( state.backtracking==0 ) {
Token t = DEF26;
if ((decorators25!=null?((Token)decorators25.start):null) != null) {
t = (decorators25!=null?((Token)decorators25.start):null);
}
stype = actions.makeFuncdef(t, NAME27, (parameters28!=null?parameters28.args:null), (suite30!=null?suite30.stypes:null), (decorators25!=null?decorators25.etypes:null));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "funcdef"
public static class parameters_return extends ParserRuleReturnScope {
public arguments args;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "parameters"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:470:1: parameters returns [arguments args] : LPAREN ( varargslist | ) RPAREN ;
public final PythonParser.parameters_return parameters() throws RecognitionException {
PythonParser.parameters_return retval = new PythonParser.parameters_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LPAREN31=null;
Token RPAREN33=null;
PythonParser.varargslist_return varargslist32 = null;
PythonTree LPAREN31_tree=null;
PythonTree RPAREN33_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:472:5: ( LPAREN ( varargslist | ) RPAREN )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:472:7: LPAREN ( varargslist | ) RPAREN
{
root_0 = (PythonTree)adaptor.nil();
LPAREN31=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_parameters914); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN31_tree = (PythonTree)adaptor.create(LPAREN31);
adaptor.addChild(root_0, LPAREN31_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:473:7: ( varargslist | )
int alt15=2;
int LA15_0 = input.LA(1);
if ( (LA15_0==NAME||LA15_0==LPAREN||(LA15_0>=STAR && LA15_0<=DOUBLESTAR)) ) {
alt15=1;
}
else if ( (LA15_0==RPAREN) ) {
alt15=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:473:8: varargslist
{
pushFollow(FOLLOW_varargslist_in_parameters923);
varargslist32=varargslist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varargslist32.getTree());
if ( state.backtracking==0 ) {
retval.args = (varargslist32!=null?varargslist32.args:null);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:478:9:
{
if ( state.backtracking==0 ) {
retval.args = new arguments(((Token)retval.start), new ArrayList<expr>(), null, null, new ArrayList<expr>());
}
}
break;
}
RPAREN33=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_parameters967); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN33_tree = (PythonTree)adaptor.create(RPAREN33);
adaptor.addChild(root_0, RPAREN33_tree);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "parameters"
public static class defparameter_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "defparameter"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:486:1: defparameter[List defaults] returns [expr etype] : fpdef[expr_contextType.Param] ( ASSIGN test[expr_contextType.Load] )? ;
public final PythonParser.defparameter_return defparameter(List defaults) throws RecognitionException {
PythonParser.defparameter_return retval = new PythonParser.defparameter_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token ASSIGN35=null;
PythonParser.fpdef_return fpdef34 = null;
PythonParser.test_return test36 = null;
PythonTree ASSIGN35_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:491:5: ( fpdef[expr_contextType.Param] ( ASSIGN test[expr_contextType.Load] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:491:7: fpdef[expr_contextType.Param] ( ASSIGN test[expr_contextType.Load] )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_fpdef_in_defparameter1000);
fpdef34=fpdef(expr_contextType.Param);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fpdef34.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:491:37: ( ASSIGN test[expr_contextType.Load] )?
int alt16=2;
int LA16_0 = input.LA(1);
if ( (LA16_0==ASSIGN) ) {
alt16=1;
}
switch (alt16) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:491:38: ASSIGN test[expr_contextType.Load]
{
ASSIGN35=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_defparameter1004); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ASSIGN35_tree = (PythonTree)adaptor.create(ASSIGN35);
adaptor.addChild(root_0, ASSIGN35_tree);
}
pushFollow(FOLLOW_test_in_defparameter1006);
test36=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test36.getTree());
}
break;
}
if ( state.backtracking==0 ) {
retval.etype = actions.castExpr((fpdef34!=null?((PythonTree)fpdef34.tree):null));
if (ASSIGN35 != null) {
defaults.add((test36!=null?((PythonTree)test36.tree):null));
} else if (!defaults.isEmpty()) {
throw new ParseException("non-default argument follows default argument", (fpdef34!=null?((PythonTree)fpdef34.tree):null));
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "defparameter"
public static class varargslist_return extends ParserRuleReturnScope {
public arguments args;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "varargslist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:505:1: varargslist returns [arguments args] : (d+= defparameter[defaults] ( options {greedy=true; } : COMMA d+= defparameter[defaults] )* ( COMMA ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )? )? | STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME );
public final PythonParser.varargslist_return varargslist() throws RecognitionException {
PythonParser.varargslist_return retval = new PythonParser.varargslist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token starargs=null;
Token kwargs=null;
Token COMMA37=null;
Token COMMA38=null;
Token STAR39=null;
Token COMMA40=null;
Token DOUBLESTAR41=null;
Token DOUBLESTAR42=null;
Token STAR43=null;
Token COMMA44=null;
Token DOUBLESTAR45=null;
Token DOUBLESTAR46=null;
List list_d=null;
PythonParser.defparameter_return d = null;
d = null;
PythonTree starargs_tree=null;
PythonTree kwargs_tree=null;
PythonTree COMMA37_tree=null;
PythonTree COMMA38_tree=null;
PythonTree STAR39_tree=null;
PythonTree COMMA40_tree=null;
PythonTree DOUBLESTAR41_tree=null;
PythonTree DOUBLESTAR42_tree=null;
PythonTree STAR43_tree=null;
PythonTree COMMA44_tree=null;
PythonTree DOUBLESTAR45_tree=null;
PythonTree DOUBLESTAR46_tree=null;
List defaults = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:510:5: (d+= defparameter[defaults] ( options {greedy=true; } : COMMA d+= defparameter[defaults] )* ( COMMA ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )? )? | STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )
int alt22=3;
switch ( input.LA(1) ) {
case NAME:
case LPAREN:
{
alt22=1;
}
break;
case STAR:
{
alt22=2;
}
break;
case DOUBLESTAR:
{
alt22=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 22, 0, input);
throw nvae;
}
switch (alt22) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:510:7: d+= defparameter[defaults] ( options {greedy=true; } : COMMA d+= defparameter[defaults] )* ( COMMA ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )? )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_defparameter_in_varargslist1052);
d=defparameter(defaults);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, d.getTree());
if (list_d==null) list_d=new ArrayList();
list_d.add(d.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:510:33: ( options {greedy=true; } : COMMA d+= defparameter[defaults] )*
loop17:
do {
int alt17=2;
int LA17_0 = input.LA(1);
if ( (LA17_0==COMMA) ) {
int LA17_1 = input.LA(2);
if ( (LA17_1==NAME||LA17_1==LPAREN) ) {
alt17=1;
}
}
switch (alt17) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:510:57: COMMA d+= defparameter[defaults]
{
COMMA37=(Token)match(input,COMMA,FOLLOW_COMMA_in_varargslist1063); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA37_tree = (PythonTree)adaptor.create(COMMA37);
adaptor.addChild(root_0, COMMA37_tree);
}
pushFollow(FOLLOW_defparameter_in_varargslist1067);
d=defparameter(defaults);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, d.getTree());
if (list_d==null) list_d=new ArrayList();
list_d.add(d.getTree());
}
break;
default :
break loop17;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:511:7: ( COMMA ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )? )?
int alt20=2;
int LA20_0 = input.LA(1);
if ( (LA20_0==COMMA) ) {
alt20=1;
}
switch (alt20) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:511:8: COMMA ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )?
{
COMMA38=(Token)match(input,COMMA,FOLLOW_COMMA_in_varargslist1079); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA38_tree = (PythonTree)adaptor.create(COMMA38);
adaptor.addChild(root_0, COMMA38_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:512:11: ( STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )? | DOUBLESTAR kwargs= NAME )?
int alt19=3;
int LA19_0 = input.LA(1);
if ( (LA19_0==STAR) ) {
alt19=1;
}
else if ( (LA19_0==DOUBLESTAR) ) {
alt19=2;
}
switch (alt19) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:512:12: STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )?
{
STAR39=(Token)match(input,STAR,FOLLOW_STAR_in_varargslist1092); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR39_tree = (PythonTree)adaptor.create(STAR39);
adaptor.addChild(root_0, STAR39_tree);
}
starargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1096); if (state.failed) return retval;
if ( state.backtracking==0 ) {
starargs_tree = (PythonTree)adaptor.create(starargs);
adaptor.addChild(root_0, starargs_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:512:31: ( COMMA DOUBLESTAR kwargs= NAME )?
int alt18=2;
int LA18_0 = input.LA(1);
if ( (LA18_0==COMMA) ) {
alt18=1;
}
switch (alt18) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:512:32: COMMA DOUBLESTAR kwargs= NAME
{
COMMA40=(Token)match(input,COMMA,FOLLOW_COMMA_in_varargslist1099); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA40_tree = (PythonTree)adaptor.create(COMMA40);
adaptor.addChild(root_0, COMMA40_tree);
}
DOUBLESTAR41=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist1101); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR41_tree = (PythonTree)adaptor.create(DOUBLESTAR41);
adaptor.addChild(root_0, DOUBLESTAR41_tree);
}
kwargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1105); if (state.failed) return retval;
if ( state.backtracking==0 ) {
kwargs_tree = (PythonTree)adaptor.create(kwargs);
adaptor.addChild(root_0, kwargs_tree);
}
}
break;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:513:13: DOUBLESTAR kwargs= NAME
{
DOUBLESTAR42=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist1121); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR42_tree = (PythonTree)adaptor.create(DOUBLESTAR42);
adaptor.addChild(root_0, DOUBLESTAR42_tree);
}
kwargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1125); if (state.failed) return retval;
if ( state.backtracking==0 ) {
kwargs_tree = (PythonTree)adaptor.create(kwargs);
adaptor.addChild(root_0, kwargs_tree);
}
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {
retval.args = actions.makeArgumentsType(((Token)retval.start), list_d, starargs, kwargs, defaults);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:519:7: STAR starargs= NAME ( COMMA DOUBLESTAR kwargs= NAME )?
{
root_0 = (PythonTree)adaptor.nil();
STAR43=(Token)match(input,STAR,FOLLOW_STAR_in_varargslist1163); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR43_tree = (PythonTree)adaptor.create(STAR43);
adaptor.addChild(root_0, STAR43_tree);
}
starargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1167); if (state.failed) return retval;
if ( state.backtracking==0 ) {
starargs_tree = (PythonTree)adaptor.create(starargs);
adaptor.addChild(root_0, starargs_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:519:26: ( COMMA DOUBLESTAR kwargs= NAME )?
int alt21=2;
int LA21_0 = input.LA(1);
if ( (LA21_0==COMMA) ) {
alt21=1;
}
switch (alt21) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:519:27: COMMA DOUBLESTAR kwargs= NAME
{
COMMA44=(Token)match(input,COMMA,FOLLOW_COMMA_in_varargslist1170); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA44_tree = (PythonTree)adaptor.create(COMMA44);
adaptor.addChild(root_0, COMMA44_tree);
}
DOUBLESTAR45=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist1172); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR45_tree = (PythonTree)adaptor.create(DOUBLESTAR45);
adaptor.addChild(root_0, DOUBLESTAR45_tree);
}
kwargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1176); if (state.failed) return retval;
if ( state.backtracking==0 ) {
kwargs_tree = (PythonTree)adaptor.create(kwargs);
adaptor.addChild(root_0, kwargs_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.args = actions.makeArgumentsType(((Token)retval.start), list_d, starargs, kwargs, defaults);
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:523:7: DOUBLESTAR kwargs= NAME
{
root_0 = (PythonTree)adaptor.nil();
DOUBLESTAR46=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_varargslist1194); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR46_tree = (PythonTree)adaptor.create(DOUBLESTAR46);
adaptor.addChild(root_0, DOUBLESTAR46_tree);
}
kwargs=(Token)match(input,NAME,FOLLOW_NAME_in_varargslist1198); if (state.failed) return retval;
if ( state.backtracking==0 ) {
kwargs_tree = (PythonTree)adaptor.create(kwargs);
adaptor.addChild(root_0, kwargs_tree);
}
if ( state.backtracking==0 ) {
retval.args = actions.makeArgumentsType(((Token)retval.start), list_d, null, kwargs, defaults);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "varargslist"
public static class fpdef_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fpdef"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:530:1: fpdef[expr_contextType ctype] : ( NAME | ( LPAREN fpdef[null] COMMA )=> LPAREN fplist RPAREN | LPAREN fplist RPAREN );
public final PythonParser.fpdef_return fpdef(expr_contextType ctype) throws RecognitionException {
PythonParser.fpdef_return retval = new PythonParser.fpdef_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NAME47=null;
Token LPAREN48=null;
Token RPAREN50=null;
Token LPAREN51=null;
Token RPAREN53=null;
PythonParser.fplist_return fplist49 = null;
PythonParser.fplist_return fplist52 = null;
PythonTree NAME47_tree=null;
PythonTree LPAREN48_tree=null;
PythonTree RPAREN50_tree=null;
PythonTree LPAREN51_tree=null;
PythonTree RPAREN53_tree=null;
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:540:5: ( NAME | ( LPAREN fpdef[null] COMMA )=> LPAREN fplist RPAREN | LPAREN fplist RPAREN )
int alt23=3;
int LA23_0 = input.LA(1);
if ( (LA23_0==NAME) ) {
alt23=1;
}
else if ( (LA23_0==LPAREN) ) {
int LA23_2 = input.LA(2);
if ( (synpred1_Python()) ) {
alt23=2;
}
else if ( (true) ) {
alt23=3;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 2, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 23, 0, input);
throw nvae;
}
switch (alt23) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:540:7: NAME
{
root_0 = (PythonTree)adaptor.nil();
NAME47=(Token)match(input,NAME,FOLLOW_NAME_in_fpdef1235); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME47_tree = (PythonTree)adaptor.create(NAME47);
adaptor.addChild(root_0, NAME47_tree);
}
if ( state.backtracking==0 ) {
etype = new Name(NAME47, (NAME47!=null?NAME47.getText():null), ctype);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:544:7: ( LPAREN fpdef[null] COMMA )=> LPAREN fplist RPAREN
{
root_0 = (PythonTree)adaptor.nil();
LPAREN48=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_fpdef1262); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN48_tree = (PythonTree)adaptor.create(LPAREN48);
adaptor.addChild(root_0, LPAREN48_tree);
}
pushFollow(FOLLOW_fplist_in_fpdef1264);
fplist49=fplist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fplist49.getTree());
RPAREN50=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_fpdef1266); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN50_tree = (PythonTree)adaptor.create(RPAREN50);
adaptor.addChild(root_0, RPAREN50_tree);
}
if ( state.backtracking==0 ) {
etype = new Tuple((fplist49!=null?((Token)fplist49.start):null), actions.castExprs((fplist49!=null?fplist49.etypes:null)), expr_contextType.Store);
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:548:7: LPAREN fplist RPAREN
{
root_0 = (PythonTree)adaptor.nil();
LPAREN51=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_fpdef1282); if (state.failed) return retval;
pushFollow(FOLLOW_fplist_in_fpdef1285);
fplist52=fplist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, fplist52.getTree());
RPAREN53=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_fpdef1287); if (state.failed) return retval;
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
actions.checkAssign(actions.castExpr(((PythonTree)retval.tree)));
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "fpdef"
public static class fplist_return extends ParserRuleReturnScope {
public List etypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "fplist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:552:1: fplist returns [List etypes] : f+= fpdef[expr_contextType.Store] ( options {greedy=true; } : COMMA f+= fpdef[expr_contextType.Store] )* ( COMMA )? ;
public final PythonParser.fplist_return fplist() throws RecognitionException {
PythonParser.fplist_return retval = new PythonParser.fplist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA54=null;
Token COMMA55=null;
List list_f=null;
PythonParser.fpdef_return f = null;
f = null;
PythonTree COMMA54_tree=null;
PythonTree COMMA55_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:554:5: (f+= fpdef[expr_contextType.Store] ( options {greedy=true; } : COMMA f+= fpdef[expr_contextType.Store] )* ( COMMA )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:554:7: f+= fpdef[expr_contextType.Store] ( options {greedy=true; } : COMMA f+= fpdef[expr_contextType.Store] )* ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_fpdef_in_fplist1316);
f=fpdef(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, f.getTree());
if (list_f==null) list_f=new ArrayList();
list_f.add(f.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:555:7: ( options {greedy=true; } : COMMA f+= fpdef[expr_contextType.Store] )*
loop24:
do {
int alt24=2;
int LA24_0 = input.LA(1);
if ( (LA24_0==COMMA) ) {
int LA24_1 = input.LA(2);
if ( (LA24_1==NAME||LA24_1==LPAREN) ) {
alt24=1;
}
}
switch (alt24) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:555:31: COMMA f+= fpdef[expr_contextType.Store]
{
COMMA54=(Token)match(input,COMMA,FOLLOW_COMMA_in_fplist1333); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA54_tree = (PythonTree)adaptor.create(COMMA54);
adaptor.addChild(root_0, COMMA54_tree);
}
pushFollow(FOLLOW_fpdef_in_fplist1337);
f=fpdef(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, f.getTree());
if (list_f==null) list_f=new ArrayList();
list_f.add(f.getTree());
}
break;
default :
break loop24;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:555:72: ( COMMA )?
int alt25=2;
int LA25_0 = input.LA(1);
if ( (LA25_0==COMMA) ) {
alt25=1;
}
switch (alt25) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:555:73: COMMA
{
COMMA55=(Token)match(input,COMMA,FOLLOW_COMMA_in_fplist1343); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA55_tree = (PythonTree)adaptor.create(COMMA55);
adaptor.addChild(root_0, COMMA55_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.etypes = list_f;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "fplist"
public static class stmt_return extends ParserRuleReturnScope {
public List stypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:562:1: stmt returns [List stypes] : ( simple_stmt | compound_stmt );
public final PythonParser.stmt_return stmt() throws RecognitionException {
PythonParser.stmt_return retval = new PythonParser.stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.simple_stmt_return simple_stmt56 = null;
PythonParser.compound_stmt_return compound_stmt57 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:564:5: ( simple_stmt | compound_stmt )
int alt26=2;
int LA26_0 = input.LA(1);
if ( (LA26_0==NAME||(LA26_0>=ASSERT && LA26_0<=BREAK)||LA26_0==CONTINUE||LA26_0==DELETE||LA26_0==EXEC||LA26_0==FROM||LA26_0==GLOBAL||LA26_0==IMPORT||(LA26_0>=LAMBDA && LA26_0<=NOT)||(LA26_0>=PASS && LA26_0<=RETURN)||LA26_0==YIELD||LA26_0==LPAREN||(LA26_0>=PLUS && LA26_0<=MINUS)||(LA26_0>=TILDE && LA26_0<=LBRACK)||LA26_0==LCURLY||(LA26_0>=BACKQUOTE && LA26_0<=STRING)) ) {
alt26=1;
}
else if ( (LA26_0==CLASS||LA26_0==DEF||LA26_0==FOR||LA26_0==IF||(LA26_0>=TRY && LA26_0<=WITH)||LA26_0==AT) ) {
alt26=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:564:7: simple_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_simple_stmt_in_stmt1379);
simple_stmt56=simple_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_stmt56.getTree());
if ( state.backtracking==0 ) {
retval.stypes = (simple_stmt56!=null?simple_stmt56.stypes:null);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:568:7: compound_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_compound_stmt_in_stmt1395);
compound_stmt57=compound_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, compound_stmt57.getTree());
if ( state.backtracking==0 ) {
retval.stypes = new ArrayList();
retval.stypes.add((compound_stmt57!=null?((PythonTree)compound_stmt57.tree):null));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "stmt"
public static class simple_stmt_return extends ParserRuleReturnScope {
public List stypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "simple_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:576:1: simple_stmt returns [List stypes] : s+= small_stmt ( options {greedy=true; } : SEMI s+= small_stmt )* ( SEMI )? NEWLINE ;
public final PythonParser.simple_stmt_return simple_stmt() throws RecognitionException {
PythonParser.simple_stmt_return retval = new PythonParser.simple_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token SEMI58=null;
Token SEMI59=null;
Token NEWLINE60=null;
List list_s=null;
PythonParser.small_stmt_return s = null;
s = null;
PythonTree SEMI58_tree=null;
PythonTree SEMI59_tree=null;
PythonTree NEWLINE60_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:5: (s+= small_stmt ( options {greedy=true; } : SEMI s+= small_stmt )* ( SEMI )? NEWLINE )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:7: s+= small_stmt ( options {greedy=true; } : SEMI s+= small_stmt )* ( SEMI )? NEWLINE
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_small_stmt_in_simple_stmt1431);
s=small_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
if (list_s==null) list_s=new ArrayList();
list_s.add(s.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:21: ( options {greedy=true; } : SEMI s+= small_stmt )*
loop27:
do {
int alt27=2;
int LA27_0 = input.LA(1);
if ( (LA27_0==SEMI) ) {
int LA27_1 = input.LA(2);
if ( (LA27_1==NAME||(LA27_1>=ASSERT && LA27_1<=BREAK)||LA27_1==CONTINUE||LA27_1==DELETE||LA27_1==EXEC||LA27_1==FROM||LA27_1==GLOBAL||LA27_1==IMPORT||(LA27_1>=LAMBDA && LA27_1<=NOT)||(LA27_1>=PASS && LA27_1<=RETURN)||LA27_1==YIELD||LA27_1==LPAREN||(LA27_1>=PLUS && LA27_1<=MINUS)||(LA27_1>=TILDE && LA27_1<=LBRACK)||LA27_1==LCURLY||(LA27_1>=BACKQUOTE && LA27_1<=STRING)) ) {
alt27=1;
}
}
switch (alt27) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:45: SEMI s+= small_stmt
{
SEMI58=(Token)match(input,SEMI,FOLLOW_SEMI_in_simple_stmt1441); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SEMI58_tree = (PythonTree)adaptor.create(SEMI58);
adaptor.addChild(root_0, SEMI58_tree);
}
pushFollow(FOLLOW_small_stmt_in_simple_stmt1445);
s=small_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
if (list_s==null) list_s=new ArrayList();
list_s.add(s.getTree());
}
break;
default :
break loop27;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:66: ( SEMI )?
int alt28=2;
int LA28_0 = input.LA(1);
if ( (LA28_0==SEMI) ) {
alt28=1;
}
switch (alt28) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:578:67: SEMI
{
SEMI59=(Token)match(input,SEMI,FOLLOW_SEMI_in_simple_stmt1450); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SEMI59_tree = (PythonTree)adaptor.create(SEMI59);
adaptor.addChild(root_0, SEMI59_tree);
}
}
break;
}
NEWLINE60=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_simple_stmt1454); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE60_tree = (PythonTree)adaptor.create(NEWLINE60);
adaptor.addChild(root_0, NEWLINE60_tree);
}
if ( state.backtracking==0 ) {
retval.stypes = list_s;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "simple_stmt"
public static class small_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "small_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:586:1: small_stmt : ( expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | exec_stmt | assert_stmt );
public final PythonParser.small_stmt_return small_stmt() throws RecognitionException {
PythonParser.small_stmt_return retval = new PythonParser.small_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.expr_stmt_return expr_stmt61 = null;
PythonParser.print_stmt_return print_stmt62 = null;
PythonParser.del_stmt_return del_stmt63 = null;
PythonParser.pass_stmt_return pass_stmt64 = null;
PythonParser.flow_stmt_return flow_stmt65 = null;
PythonParser.import_stmt_return import_stmt66 = null;
PythonParser.global_stmt_return global_stmt67 = null;
PythonParser.exec_stmt_return exec_stmt68 = null;
PythonParser.assert_stmt_return assert_stmt69 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:586:12: ( expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | exec_stmt | assert_stmt )
int alt29=9;
alt29 = dfa29.predict(input);
switch (alt29) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:586:14: expr_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_expr_stmt_in_small_stmt1477);
expr_stmt61=expr_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr_stmt61.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:587:14: print_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_print_stmt_in_small_stmt1492);
print_stmt62=print_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, print_stmt62.getTree());
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:588:14: del_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_del_stmt_in_small_stmt1507);
del_stmt63=del_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, del_stmt63.getTree());
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:589:14: pass_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_pass_stmt_in_small_stmt1522);
pass_stmt64=pass_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, pass_stmt64.getTree());
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:590:14: flow_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_flow_stmt_in_small_stmt1537);
flow_stmt65=flow_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, flow_stmt65.getTree());
}
break;
case 6 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:591:14: import_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_import_stmt_in_small_stmt1552);
import_stmt66=import_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, import_stmt66.getTree());
}
break;
case 7 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:592:14: global_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_global_stmt_in_small_stmt1567);
global_stmt67=global_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, global_stmt67.getTree());
}
break;
case 8 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:593:14: exec_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_exec_stmt_in_small_stmt1582);
exec_stmt68=exec_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exec_stmt68.getTree());
}
break;
case 9 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:594:14: assert_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_assert_stmt_in_small_stmt1597);
assert_stmt69=assert_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, assert_stmt69.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "small_stmt"
public static class expr_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "expr_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:599:1: expr_stmt : ( ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) ) | ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) ) | lhs= testlist[expr_contextType.Load] ) ;
public final PythonParser.expr_stmt_return expr_stmt() throws RecognitionException {
PythonParser.expr_stmt_return retval = new PythonParser.expr_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token at=null;
Token ay=null;
List list_t=null;
List list_y2=null;
PythonParser.testlist_return lhs = null;
PythonParser.augassign_return aay = null;
PythonParser.yield_expr_return y1 = null;
PythonParser.augassign_return aat = null;
PythonParser.testlist_return rhs = null;
PythonParser.testlist_return t = null;
t = null;
PythonParser.yield_expr_return y2 = null;
y2 = null;
PythonTree at_tree=null;
PythonTree ay_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:5: ( ( ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) ) | ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) ) | lhs= testlist[expr_contextType.Load] ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:7: ( ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) ) | ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) ) | lhs= testlist[expr_contextType.Load] )
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:7: ( ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) ) | ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) ) | lhs= testlist[expr_contextType.Load] )
int alt34=3;
alt34 = dfa34.predict(input);
switch (alt34) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:8: ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) )
{
pushFollow(FOLLOW_testlist_in_expr_stmt1645);
lhs=testlist(expr_contextType.AugStore);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:609:9: ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) )
int alt30=2;
alt30 = dfa30.predict(input);
switch (alt30) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:609:11: (aay= augassign y1= yield_expr )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:609:11: (aay= augassign y1= yield_expr )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:609:12: aay= augassign y1= yield_expr
{
pushFollow(FOLLOW_augassign_in_expr_stmt1661);
aay=augassign();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, aay.getTree());
pushFollow(FOLLOW_yield_expr_in_expr_stmt1665);
y1=yield_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, y1.getTree());
if ( state.backtracking==0 ) {
actions.checkAssign(actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)));
stype = new AugAssign((lhs!=null?((PythonTree)lhs.tree):null), actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)), (aay!=null?aay.op:null), actions.castExpr((y1!=null?y1.etype:null)));
}
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:615:11: (aat= augassign rhs= testlist[expr_contextType.Load] )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:615:11: (aat= augassign rhs= testlist[expr_contextType.Load] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:615:12: aat= augassign rhs= testlist[expr_contextType.Load]
{
pushFollow(FOLLOW_augassign_in_expr_stmt1705);
aat=augassign();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, aat.getTree());
pushFollow(FOLLOW_testlist_in_expr_stmt1709);
rhs=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, rhs.getTree());
if ( state.backtracking==0 ) {
actions.checkAssign(actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)));
stype = new AugAssign((lhs!=null?((PythonTree)lhs.tree):null), actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)), (aat!=null?aat.op:null), actions.castExpr((rhs!=null?((PythonTree)rhs.tree):null)));
}
}
}
break;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:622:7: ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) )
{
pushFollow(FOLLOW_testlist_in_expr_stmt1764);
lhs=testlist(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:623:9: ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) )
int alt33=3;
int LA33_0 = input.LA(1);
if ( (LA33_0==NEWLINE||LA33_0==SEMI) ) {
alt33=1;
}
else if ( (LA33_0==ASSIGN) ) {
int LA33_2 = input.LA(2);
if ( (LA33_2==YIELD) ) {
alt33=3;
}
else if ( (LA33_2==NAME||(LA33_2>=LAMBDA && LA33_2<=NOT)||LA33_2==LPAREN||(LA33_2>=PLUS && LA33_2<=MINUS)||(LA33_2>=TILDE && LA33_2<=LBRACK)||LA33_2==LCURLY||(LA33_2>=BACKQUOTE && LA33_2<=STRING)) ) {
alt33=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 2, input);
throw nvae;
}
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:9:
{
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:11: ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:11: ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:12: (at= ASSIGN t+= testlist[expr_contextType.Store] )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:12: (at= ASSIGN t+= testlist[expr_contextType.Store] )+
int cnt31=0;
loop31:
do {
int alt31=2;
int LA31_0 = input.LA(1);
if ( (LA31_0==ASSIGN) ) {
alt31=1;
}
switch (alt31) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:624:13: at= ASSIGN t+= testlist[expr_contextType.Store]
{
at=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_stmt1791); if (state.failed) return retval;
if ( state.backtracking==0 ) {
at_tree = (PythonTree)adaptor.create(at);
adaptor.addChild(root_0, at_tree);
}
pushFollow(FOLLOW_testlist_in_expr_stmt1795);
t=testlist(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
if ( cnt31 >= 1 ) break loop31;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(31, input);
throw eee;
}
cnt31++;
} while (true);
if ( state.backtracking==0 ) {
stype = new Assign((lhs!=null?((PythonTree)lhs.tree):null), actions.makeAssignTargets(
actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)), list_t), actions.makeAssignValue(list_t));
}
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:630:11: ( (ay= ASSIGN y2+= yield_expr )+ )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:630:11: ( (ay= ASSIGN y2+= yield_expr )+ )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:630:12: (ay= ASSIGN y2+= yield_expr )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:630:12: (ay= ASSIGN y2+= yield_expr )+
int cnt32=0;
loop32:
do {
int alt32=2;
int LA32_0 = input.LA(1);
if ( (LA32_0==ASSIGN) ) {
alt32=1;
}
switch (alt32) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:630:13: ay= ASSIGN y2+= yield_expr
{
ay=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_expr_stmt1840); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ay_tree = (PythonTree)adaptor.create(ay);
adaptor.addChild(root_0, ay_tree);
}
pushFollow(FOLLOW_yield_expr_in_expr_stmt1844);
y2=yield_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, y2.getTree());
if (list_y2==null) list_y2=new ArrayList();
list_y2.add(y2.getTree());
}
break;
default :
if ( cnt32 >= 1 ) break loop32;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(32, input);
throw eee;
}
cnt32++;
} while (true);
if ( state.backtracking==0 ) {
stype = new Assign((lhs!=null?((Token)lhs.start):null), actions.makeAssignTargets(
actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)), list_y2), actions.makeAssignValue(list_y2));
}
}
}
break;
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:637:7: lhs= testlist[expr_contextType.Load]
{
pushFollow(FOLLOW_testlist_in_expr_stmt1892);
lhs=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lhs.getTree());
if ( state.backtracking==0 ) {
stype = new Expr((lhs!=null?((Token)lhs.start):null), actions.castExpr((lhs!=null?((PythonTree)lhs.tree):null)));
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (stype != null) {
retval.tree = stype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "expr_stmt"
public static class augassign_return extends ParserRuleReturnScope {
public operatorType op;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "augassign"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:646:1: augassign returns [operatorType op] : ( PLUSEQUAL | MINUSEQUAL | STAREQUAL | SLASHEQUAL | PERCENTEQUAL | AMPEREQUAL | VBAREQUAL | CIRCUMFLEXEQUAL | LEFTSHIFTEQUAL | RIGHTSHIFTEQUAL | DOUBLESTAREQUAL | DOUBLESLASHEQUAL );
public final PythonParser.augassign_return augassign() throws RecognitionException {
PythonParser.augassign_return retval = new PythonParser.augassign_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token PLUSEQUAL70=null;
Token MINUSEQUAL71=null;
Token STAREQUAL72=null;
Token SLASHEQUAL73=null;
Token PERCENTEQUAL74=null;
Token AMPEREQUAL75=null;
Token VBAREQUAL76=null;
Token CIRCUMFLEXEQUAL77=null;
Token LEFTSHIFTEQUAL78=null;
Token RIGHTSHIFTEQUAL79=null;
Token DOUBLESTAREQUAL80=null;
Token DOUBLESLASHEQUAL81=null;
PythonTree PLUSEQUAL70_tree=null;
PythonTree MINUSEQUAL71_tree=null;
PythonTree STAREQUAL72_tree=null;
PythonTree SLASHEQUAL73_tree=null;
PythonTree PERCENTEQUAL74_tree=null;
PythonTree AMPEREQUAL75_tree=null;
PythonTree VBAREQUAL76_tree=null;
PythonTree CIRCUMFLEXEQUAL77_tree=null;
PythonTree LEFTSHIFTEQUAL78_tree=null;
PythonTree RIGHTSHIFTEQUAL79_tree=null;
PythonTree DOUBLESTAREQUAL80_tree=null;
PythonTree DOUBLESLASHEQUAL81_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:648:5: ( PLUSEQUAL | MINUSEQUAL | STAREQUAL | SLASHEQUAL | PERCENTEQUAL | AMPEREQUAL | VBAREQUAL | CIRCUMFLEXEQUAL | LEFTSHIFTEQUAL | RIGHTSHIFTEQUAL | DOUBLESTAREQUAL | DOUBLESLASHEQUAL )
int alt35=12;
switch ( input.LA(1) ) {
case PLUSEQUAL:
{
alt35=1;
}
break;
case MINUSEQUAL:
{
alt35=2;
}
break;
case STAREQUAL:
{
alt35=3;
}
break;
case SLASHEQUAL:
{
alt35=4;
}
break;
case PERCENTEQUAL:
{
alt35=5;
}
break;
case AMPEREQUAL:
{
alt35=6;
}
break;
case VBAREQUAL:
{
alt35=7;
}
break;
case CIRCUMFLEXEQUAL:
{
alt35=8;
}
break;
case LEFTSHIFTEQUAL:
{
alt35=9;
}
break;
case RIGHTSHIFTEQUAL:
{
alt35=10;
}
break;
case DOUBLESTAREQUAL:
{
alt35=11;
}
break;
case DOUBLESLASHEQUAL:
{
alt35=12;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 35, 0, input);
throw nvae;
}
switch (alt35) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:648:7: PLUSEQUAL
{
root_0 = (PythonTree)adaptor.nil();
PLUSEQUAL70=(Token)match(input,PLUSEQUAL,FOLLOW_PLUSEQUAL_in_augassign1934); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUSEQUAL70_tree = (PythonTree)adaptor.create(PLUSEQUAL70);
adaptor.addChild(root_0, PLUSEQUAL70_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Add;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:652:7: MINUSEQUAL
{
root_0 = (PythonTree)adaptor.nil();
MINUSEQUAL71=(Token)match(input,MINUSEQUAL,FOLLOW_MINUSEQUAL_in_augassign1952); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUSEQUAL71_tree = (PythonTree)adaptor.create(MINUSEQUAL71);
adaptor.addChild(root_0, MINUSEQUAL71_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Sub;
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:656:7: STAREQUAL
{
root_0 = (PythonTree)adaptor.nil();
STAREQUAL72=(Token)match(input,STAREQUAL,FOLLOW_STAREQUAL_in_augassign1970); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAREQUAL72_tree = (PythonTree)adaptor.create(STAREQUAL72);
adaptor.addChild(root_0, STAREQUAL72_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Mult;
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:660:7: SLASHEQUAL
{
root_0 = (PythonTree)adaptor.nil();
SLASHEQUAL73=(Token)match(input,SLASHEQUAL,FOLLOW_SLASHEQUAL_in_augassign1988); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SLASHEQUAL73_tree = (PythonTree)adaptor.create(SLASHEQUAL73);
adaptor.addChild(root_0, SLASHEQUAL73_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Div;
}
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:664:7: PERCENTEQUAL
{
root_0 = (PythonTree)adaptor.nil();
PERCENTEQUAL74=(Token)match(input,PERCENTEQUAL,FOLLOW_PERCENTEQUAL_in_augassign2006); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PERCENTEQUAL74_tree = (PythonTree)adaptor.create(PERCENTEQUAL74);
adaptor.addChild(root_0, PERCENTEQUAL74_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Mod;
}
}
break;
case 6 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:668:7: AMPEREQUAL
{
root_0 = (PythonTree)adaptor.nil();
AMPEREQUAL75=(Token)match(input,AMPEREQUAL,FOLLOW_AMPEREQUAL_in_augassign2024); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AMPEREQUAL75_tree = (PythonTree)adaptor.create(AMPEREQUAL75);
adaptor.addChild(root_0, AMPEREQUAL75_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.BitAnd;
}
}
break;
case 7 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:672:7: VBAREQUAL
{
root_0 = (PythonTree)adaptor.nil();
VBAREQUAL76=(Token)match(input,VBAREQUAL,FOLLOW_VBAREQUAL_in_augassign2042); if (state.failed) return retval;
if ( state.backtracking==0 ) {
VBAREQUAL76_tree = (PythonTree)adaptor.create(VBAREQUAL76);
adaptor.addChild(root_0, VBAREQUAL76_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.BitOr;
}
}
break;
case 8 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:676:7: CIRCUMFLEXEQUAL
{
root_0 = (PythonTree)adaptor.nil();
CIRCUMFLEXEQUAL77=(Token)match(input,CIRCUMFLEXEQUAL,FOLLOW_CIRCUMFLEXEQUAL_in_augassign2060); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CIRCUMFLEXEQUAL77_tree = (PythonTree)adaptor.create(CIRCUMFLEXEQUAL77);
adaptor.addChild(root_0, CIRCUMFLEXEQUAL77_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.BitXor;
}
}
break;
case 9 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:680:7: LEFTSHIFTEQUAL
{
root_0 = (PythonTree)adaptor.nil();
LEFTSHIFTEQUAL78=(Token)match(input,LEFTSHIFTEQUAL,FOLLOW_LEFTSHIFTEQUAL_in_augassign2078); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LEFTSHIFTEQUAL78_tree = (PythonTree)adaptor.create(LEFTSHIFTEQUAL78);
adaptor.addChild(root_0, LEFTSHIFTEQUAL78_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.LShift;
}
}
break;
case 10 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:684:7: RIGHTSHIFTEQUAL
{
root_0 = (PythonTree)adaptor.nil();
RIGHTSHIFTEQUAL79=(Token)match(input,RIGHTSHIFTEQUAL,FOLLOW_RIGHTSHIFTEQUAL_in_augassign2096); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RIGHTSHIFTEQUAL79_tree = (PythonTree)adaptor.create(RIGHTSHIFTEQUAL79);
adaptor.addChild(root_0, RIGHTSHIFTEQUAL79_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.RShift;
}
}
break;
case 11 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:688:7: DOUBLESTAREQUAL
{
root_0 = (PythonTree)adaptor.nil();
DOUBLESTAREQUAL80=(Token)match(input,DOUBLESTAREQUAL,FOLLOW_DOUBLESTAREQUAL_in_augassign2114); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAREQUAL80_tree = (PythonTree)adaptor.create(DOUBLESTAREQUAL80);
adaptor.addChild(root_0, DOUBLESTAREQUAL80_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Pow;
}
}
break;
case 12 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:692:7: DOUBLESLASHEQUAL
{
root_0 = (PythonTree)adaptor.nil();
DOUBLESLASHEQUAL81=(Token)match(input,DOUBLESLASHEQUAL,FOLLOW_DOUBLESLASHEQUAL_in_augassign2132); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESLASHEQUAL81_tree = (PythonTree)adaptor.create(DOUBLESLASHEQUAL81);
adaptor.addChild(root_0, DOUBLESLASHEQUAL81_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.FloorDiv;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "augassign"
public static class print_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "print_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:700:1: print_stmt : PRINT (t1= printlist | RIGHTSHIFT t2= printlist2 | ) ;
public final PythonParser.print_stmt_return print_stmt() throws RecognitionException {
PythonParser.print_stmt_return retval = new PythonParser.print_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token PRINT82=null;
Token RIGHTSHIFT83=null;
PythonParser.printlist_return t1 = null;
PythonParser.printlist2_return t2 = null;
PythonTree PRINT82_tree=null;
PythonTree RIGHTSHIFT83_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:708:5: ( PRINT (t1= printlist | RIGHTSHIFT t2= printlist2 | ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:708:7: PRINT (t1= printlist | RIGHTSHIFT t2= printlist2 | )
{
root_0 = (PythonTree)adaptor.nil();
PRINT82=(Token)match(input,PRINT,FOLLOW_PRINT_in_print_stmt2172); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PRINT82_tree = (PythonTree)adaptor.create(PRINT82);
adaptor.addChild(root_0, PRINT82_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:709:7: (t1= printlist | RIGHTSHIFT t2= printlist2 | )
int alt36=3;
switch ( input.LA(1) ) {
case NAME:
case LAMBDA:
case NOT:
case LPAREN:
case PLUS:
case MINUS:
case TILDE:
case LBRACK:
case LCURLY:
case BACKQUOTE:
case INT:
case LONGINT:
case FLOAT:
case COMPLEX:
case STRING:
{
alt36=1;
}
break;
case RIGHTSHIFT:
{
alt36=2;
}
break;
case NEWLINE:
case SEMI:
{
alt36=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:709:8: t1= printlist
{
pushFollow(FOLLOW_printlist_in_print_stmt2183);
t1=printlist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
if ( state.backtracking==0 ) {
stype = new Print(PRINT82, null, actions.castExprs((t1!=null?t1.elts:null)), (t1!=null?t1.newline:false));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:713:9: RIGHTSHIFT t2= printlist2
{
RIGHTSHIFT83=(Token)match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_print_stmt2202); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RIGHTSHIFT83_tree = (PythonTree)adaptor.create(RIGHTSHIFT83);
adaptor.addChild(root_0, RIGHTSHIFT83_tree);
}
pushFollow(FOLLOW_printlist2_in_print_stmt2206);
t2=printlist2();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
if ( state.backtracking==0 ) {
stype = new Print(PRINT82, actions.castExpr((t2!=null?t2.elts:null).get(0)), actions.castExprs((t2!=null?t2.elts:null), 1), (t2!=null?t2.newline:false));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:718:8:
{
if ( state.backtracking==0 ) {
stype = new Print(PRINT82, null, new ArrayList<expr>(), true);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "print_stmt"
public static class printlist_return extends ParserRuleReturnScope {
public boolean newline;
public List elts;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "printlist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:725:1: printlist returns [boolean newline, List elts] : ( ( test[null] COMMA )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] );
public final PythonParser.printlist_return printlist() throws RecognitionException {
PythonParser.printlist_return retval = new PythonParser.printlist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token trailcomma=null;
Token COMMA84=null;
List list_t=null;
PythonParser.test_return t = null;
t = null;
PythonTree trailcomma_tree=null;
PythonTree COMMA84_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:727:5: ( ( test[null] COMMA )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] )
int alt39=2;
alt39 = dfa39.predict(input);
switch (alt39) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:727:7: ( test[null] COMMA )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_printlist2286);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:728:39: ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )*
loop37:
do {
int alt37=2;
alt37 = dfa37.predict(input);
switch (alt37) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:728:56: COMMA t+= test[expr_contextType.Load]
{
COMMA84=(Token)match(input,COMMA,FOLLOW_COMMA_in_printlist2298); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA84_tree = (PythonTree)adaptor.create(COMMA84);
adaptor.addChild(root_0, COMMA84_tree);
}
pushFollow(FOLLOW_test_in_printlist2302);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop37;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:728:95: (trailcomma= COMMA )?
int alt38=2;
int LA38_0 = input.LA(1);
if ( (LA38_0==COMMA) ) {
alt38=1;
}
switch (alt38) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:728:96: trailcomma= COMMA
{
trailcomma=(Token)match(input,COMMA,FOLLOW_COMMA_in_printlist2310); if (state.failed) return retval;
if ( state.backtracking==0 ) {
trailcomma_tree = (PythonTree)adaptor.create(trailcomma);
adaptor.addChild(root_0, trailcomma_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.elts =list_t;
if (trailcomma == null) {
retval.newline = true;
} else {
retval.newline = false;
}
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:737:7: t+= test[expr_contextType.Load]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_printlist2331);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
if ( state.backtracking==0 ) {
retval.elts =list_t;
retval.newline = true;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "printlist"
public static class printlist2_return extends ParserRuleReturnScope {
public boolean newline;
public List elts;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "printlist2"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:746:1: printlist2 returns [boolean newline, List elts] : ( ( test[null] COMMA test[null] )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] );
public final PythonParser.printlist2_return printlist2() throws RecognitionException {
PythonParser.printlist2_return retval = new PythonParser.printlist2_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token trailcomma=null;
Token COMMA85=null;
List list_t=null;
PythonParser.test_return t = null;
t = null;
PythonTree trailcomma_tree=null;
PythonTree COMMA85_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:748:5: ( ( test[null] COMMA test[null] )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] )
int alt42=2;
alt42 = dfa42.predict(input);
switch (alt42) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:748:7: ( test[null] COMMA test[null] )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_printlist22388);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:749:39: ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )*
loop40:
do {
int alt40=2;
alt40 = dfa40.predict(input);
switch (alt40) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:749:56: COMMA t+= test[expr_contextType.Load]
{
COMMA85=(Token)match(input,COMMA,FOLLOW_COMMA_in_printlist22400); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA85_tree = (PythonTree)adaptor.create(COMMA85);
adaptor.addChild(root_0, COMMA85_tree);
}
pushFollow(FOLLOW_test_in_printlist22404);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop40;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:749:95: (trailcomma= COMMA )?
int alt41=2;
int LA41_0 = input.LA(1);
if ( (LA41_0==COMMA) ) {
alt41=1;
}
switch (alt41) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:749:96: trailcomma= COMMA
{
trailcomma=(Token)match(input,COMMA,FOLLOW_COMMA_in_printlist22412); if (state.failed) return retval;
if ( state.backtracking==0 ) {
trailcomma_tree = (PythonTree)adaptor.create(trailcomma);
adaptor.addChild(root_0, trailcomma_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.elts =list_t;
if (trailcomma == null) {
retval.newline = true;
} else {
retval.newline = false;
}
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:757:7: t+= test[expr_contextType.Load]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_printlist22433);
t=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
if ( state.backtracking==0 ) {
retval.elts =list_t;
retval.newline = true;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "printlist2"
public static class del_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "del_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:765:1: del_stmt : DELETE del_list ;
public final PythonParser.del_stmt_return del_stmt() throws RecognitionException {
PythonParser.del_stmt_return retval = new PythonParser.del_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token DELETE86=null;
PythonParser.del_list_return del_list87 = null;
PythonTree DELETE86_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:772:5: ( DELETE del_list )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:772:7: DELETE del_list
{
root_0 = (PythonTree)adaptor.nil();
DELETE86=(Token)match(input,DELETE,FOLLOW_DELETE_in_del_stmt2470); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DELETE86_tree = (PythonTree)adaptor.create(DELETE86);
adaptor.addChild(root_0, DELETE86_tree);
}
pushFollow(FOLLOW_del_list_in_del_stmt2472);
del_list87=del_list();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, del_list87.getTree());
if ( state.backtracking==0 ) {
stype = new Delete(DELETE86, (del_list87!=null?del_list87.etypes:null));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "del_stmt"
public static class pass_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "pass_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:779:1: pass_stmt : PASS ;
public final PythonParser.pass_stmt_return pass_stmt() throws RecognitionException {
PythonParser.pass_stmt_return retval = new PythonParser.pass_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token PASS88=null;
PythonTree PASS88_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:786:5: ( PASS )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:786:7: PASS
{
root_0 = (PythonTree)adaptor.nil();
PASS88=(Token)match(input,PASS,FOLLOW_PASS_in_pass_stmt2508); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PASS88_tree = (PythonTree)adaptor.create(PASS88);
adaptor.addChild(root_0, PASS88_tree);
}
if ( state.backtracking==0 ) {
stype = new Pass(PASS88);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "pass_stmt"
public static class flow_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "flow_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:793:1: flow_stmt : ( break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt );
public final PythonParser.flow_stmt_return flow_stmt() throws RecognitionException {
PythonParser.flow_stmt_return retval = new PythonParser.flow_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.break_stmt_return break_stmt89 = null;
PythonParser.continue_stmt_return continue_stmt90 = null;
PythonParser.return_stmt_return return_stmt91 = null;
PythonParser.raise_stmt_return raise_stmt92 = null;
PythonParser.yield_stmt_return yield_stmt93 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:794:5: ( break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt )
int alt43=5;
switch ( input.LA(1) ) {
case BREAK:
{
alt43=1;
}
break;
case CONTINUE:
{
alt43=2;
}
break;
case RETURN:
{
alt43=3;
}
break;
case RAISE:
{
alt43=4;
}
break;
case YIELD:
{
alt43=5;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:794:7: break_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_break_stmt_in_flow_stmt2534);
break_stmt89=break_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, break_stmt89.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:795:7: continue_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_continue_stmt_in_flow_stmt2542);
continue_stmt90=continue_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, continue_stmt90.getTree());
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:796:7: return_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_return_stmt_in_flow_stmt2550);
return_stmt91=return_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, return_stmt91.getTree());
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:797:7: raise_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_raise_stmt_in_flow_stmt2558);
raise_stmt92=raise_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, raise_stmt92.getTree());
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:798:7: yield_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_yield_stmt_in_flow_stmt2566);
yield_stmt93=yield_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, yield_stmt93.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "flow_stmt"
public static class break_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "break_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:802:1: break_stmt : BREAK ;
public final PythonParser.break_stmt_return break_stmt() throws RecognitionException {
PythonParser.break_stmt_return retval = new PythonParser.break_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token BREAK94=null;
PythonTree BREAK94_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:809:5: ( BREAK )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:809:7: BREAK
{
root_0 = (PythonTree)adaptor.nil();
BREAK94=(Token)match(input,BREAK,FOLLOW_BREAK_in_break_stmt2594); if (state.failed) return retval;
if ( state.backtracking==0 ) {
BREAK94_tree = (PythonTree)adaptor.create(BREAK94);
adaptor.addChild(root_0, BREAK94_tree);
}
if ( state.backtracking==0 ) {
stype = new Break(BREAK94);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "break_stmt"
public static class continue_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "continue_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:816:1: continue_stmt : CONTINUE ;
public final PythonParser.continue_stmt_return continue_stmt() throws RecognitionException {
PythonParser.continue_stmt_return retval = new PythonParser.continue_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token CONTINUE95=null;
PythonTree CONTINUE95_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:823:5: ( CONTINUE )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:823:7: CONTINUE
{
root_0 = (PythonTree)adaptor.nil();
CONTINUE95=(Token)match(input,CONTINUE,FOLLOW_CONTINUE_in_continue_stmt2630); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CONTINUE95_tree = (PythonTree)adaptor.create(CONTINUE95);
adaptor.addChild(root_0, CONTINUE95_tree);
}
if ( state.backtracking==0 ) {
if (!suite_stack.isEmpty() && ((suite_scope)suite_stack.peek()).continueIllegal) {
errorHandler.error("'continue' not supported inside 'finally' clause", new PythonTree(((Token)retval.start)));
}
stype = new Continue(CONTINUE95);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "continue_stmt"
public static class return_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "return_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:833:1: return_stmt : RETURN ( testlist[expr_contextType.Load] | ) ;
public final PythonParser.return_stmt_return return_stmt() throws RecognitionException {
PythonParser.return_stmt_return retval = new PythonParser.return_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token RETURN96=null;
PythonParser.testlist_return testlist97 = null;
PythonTree RETURN96_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:840:5: ( RETURN ( testlist[expr_contextType.Load] | ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:840:7: RETURN ( testlist[expr_contextType.Load] | )
{
root_0 = (PythonTree)adaptor.nil();
RETURN96=(Token)match(input,RETURN,FOLLOW_RETURN_in_return_stmt2666); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RETURN96_tree = (PythonTree)adaptor.create(RETURN96);
adaptor.addChild(root_0, RETURN96_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:841:7: ( testlist[expr_contextType.Load] | )
int alt44=2;
int LA44_0 = input.LA(1);
if ( (LA44_0==NAME||(LA44_0>=LAMBDA && LA44_0<=NOT)||LA44_0==LPAREN||(LA44_0>=PLUS && LA44_0<=MINUS)||(LA44_0>=TILDE && LA44_0<=LBRACK)||LA44_0==LCURLY||(LA44_0>=BACKQUOTE && LA44_0<=STRING)) ) {
alt44=1;
}
else if ( (LA44_0==NEWLINE||LA44_0==SEMI) ) {
alt44=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 44, 0, input);
throw nvae;
}
switch (alt44) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:841:8: testlist[expr_contextType.Load]
{
pushFollow(FOLLOW_testlist_in_return_stmt2675);
testlist97=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist97.getTree());
if ( state.backtracking==0 ) {
stype = new Return(RETURN96, actions.castExpr((testlist97!=null?((PythonTree)testlist97.tree):null)));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:846:8:
{
if ( state.backtracking==0 ) {
stype = new Return(RETURN96, null);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "return_stmt"
public static class yield_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "yield_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:853:1: yield_stmt : yield_expr ;
public final PythonParser.yield_stmt_return yield_stmt() throws RecognitionException {
PythonParser.yield_stmt_return retval = new PythonParser.yield_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.yield_expr_return yield_expr98 = null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:860:5: ( yield_expr )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:860:7: yield_expr
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_yield_expr_in_yield_stmt2740);
yield_expr98=yield_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, yield_expr98.getTree());
if ( state.backtracking==0 ) {
stype = new Expr((yield_expr98!=null?((Token)yield_expr98.start):null), actions.castExpr((yield_expr98!=null?yield_expr98.etype:null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "yield_stmt"
public static class raise_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "raise_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:867:1: raise_stmt : RAISE (t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )? )? ;
public final PythonParser.raise_stmt_return raise_stmt() throws RecognitionException {
PythonParser.raise_stmt_return retval = new PythonParser.raise_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token RAISE99=null;
Token COMMA100=null;
Token COMMA101=null;
PythonParser.test_return t1 = null;
PythonParser.test_return t2 = null;
PythonParser.test_return t3 = null;
PythonTree RAISE99_tree=null;
PythonTree COMMA100_tree=null;
PythonTree COMMA101_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:5: ( RAISE (t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )? )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:7: RAISE (t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )? )?
{
root_0 = (PythonTree)adaptor.nil();
RAISE99=(Token)match(input,RAISE,FOLLOW_RAISE_in_raise_stmt2776); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RAISE99_tree = (PythonTree)adaptor.create(RAISE99);
adaptor.addChild(root_0, RAISE99_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:13: (t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )? )?
int alt47=2;
int LA47_0 = input.LA(1);
if ( (LA47_0==NAME||(LA47_0>=LAMBDA && LA47_0<=NOT)||LA47_0==LPAREN||(LA47_0>=PLUS && LA47_0<=MINUS)||(LA47_0>=TILDE && LA47_0<=LBRACK)||LA47_0==LCURLY||(LA47_0>=BACKQUOTE && LA47_0<=STRING)) ) {
alt47=1;
}
switch (alt47) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:14: t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )?
{
pushFollow(FOLLOW_test_in_raise_stmt2781);
t1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:45: ( COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )? )?
int alt46=2;
int LA46_0 = input.LA(1);
if ( (LA46_0==COMMA) ) {
alt46=1;
}
switch (alt46) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:874:46: COMMA t2= test[expr_contextType.Load] ( COMMA t3= test[expr_contextType.Load] )?
{
COMMA100=(Token)match(input,COMMA,FOLLOW_COMMA_in_raise_stmt2785); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA100_tree = (PythonTree)adaptor.create(COMMA100);
adaptor.addChild(root_0, COMMA100_tree);
}
pushFollow(FOLLOW_test_in_raise_stmt2789);
t2=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:875:9: ( COMMA t3= test[expr_contextType.Load] )?
int alt45=2;
int LA45_0 = input.LA(1);
if ( (LA45_0==COMMA) ) {
alt45=1;
}
switch (alt45) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:875:10: COMMA t3= test[expr_contextType.Load]
{
COMMA101=(Token)match(input,COMMA,FOLLOW_COMMA_in_raise_stmt2801); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA101_tree = (PythonTree)adaptor.create(COMMA101);
adaptor.addChild(root_0, COMMA101_tree);
}
pushFollow(FOLLOW_test_in_raise_stmt2805);
t3=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t3.getTree());
}
break;
}
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {
stype = new Raise(RAISE99, actions.castExpr((t1!=null?((PythonTree)t1.tree):null)), actions.castExpr((t2!=null?((PythonTree)t2.tree):null)), actions.castExpr((t3!=null?((PythonTree)t3.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "raise_stmt"
public static class import_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "import_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:882:1: import_stmt : ( import_name | import_from );
public final PythonParser.import_stmt_return import_stmt() throws RecognitionException {
PythonParser.import_stmt_return retval = new PythonParser.import_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.import_name_return import_name102 = null;
PythonParser.import_from_return import_from103 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:883:5: ( import_name | import_from )
int alt48=2;
int LA48_0 = input.LA(1);
if ( (LA48_0==IMPORT) ) {
alt48=1;
}
else if ( (LA48_0==FROM) ) {
alt48=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 48, 0, input);
throw nvae;
}
switch (alt48) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:883:7: import_name
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_import_name_in_import_stmt2838);
import_name102=import_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, import_name102.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:884:7: import_from
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_import_from_in_import_stmt2846);
import_from103=import_from();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, import_from103.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "import_stmt"
public static class import_name_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "import_name"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:888:1: import_name : IMPORT dotted_as_names ;
public final PythonParser.import_name_return import_name() throws RecognitionException {
PythonParser.import_name_return retval = new PythonParser.import_name_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token IMPORT104=null;
PythonParser.dotted_as_names_return dotted_as_names105 = null;
PythonTree IMPORT104_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:895:5: ( IMPORT dotted_as_names )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:895:7: IMPORT dotted_as_names
{
root_0 = (PythonTree)adaptor.nil();
IMPORT104=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_name2874); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IMPORT104_tree = (PythonTree)adaptor.create(IMPORT104);
adaptor.addChild(root_0, IMPORT104_tree);
}
pushFollow(FOLLOW_dotted_as_names_in_import_name2876);
dotted_as_names105=dotted_as_names();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dotted_as_names105.getTree());
if ( state.backtracking==0 ) {
stype = new Import(IMPORT104, (dotted_as_names105!=null?dotted_as_names105.atypes:null));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "import_name"
public static class import_from_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "import_from"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:903:1: import_from : FROM ( (d+= DOT )* dotted_name | (d+= DOT )+ ) IMPORT ( STAR | i1= import_as_names | LPAREN i2= import_as_names ( COMMA )? RPAREN ) ;
public final PythonParser.import_from_return import_from() throws RecognitionException {
PythonParser.import_from_return retval = new PythonParser.import_from_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token FROM106=null;
Token IMPORT108=null;
Token STAR109=null;
Token LPAREN110=null;
Token COMMA111=null;
Token RPAREN112=null;
Token d=null;
List list_d=null;
PythonParser.import_as_names_return i1 = null;
PythonParser.import_as_names_return i2 = null;
PythonParser.dotted_name_return dotted_name107 = null;
PythonTree FROM106_tree=null;
PythonTree IMPORT108_tree=null;
PythonTree STAR109_tree=null;
PythonTree LPAREN110_tree=null;
PythonTree COMMA111_tree=null;
PythonTree RPAREN112_tree=null;
PythonTree d_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:5: ( FROM ( (d+= DOT )* dotted_name | (d+= DOT )+ ) IMPORT ( STAR | i1= import_as_names | LPAREN i2= import_as_names ( COMMA )? RPAREN ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:7: FROM ( (d+= DOT )* dotted_name | (d+= DOT )+ ) IMPORT ( STAR | i1= import_as_names | LPAREN i2= import_as_names ( COMMA )? RPAREN )
{
root_0 = (PythonTree)adaptor.nil();
FROM106=(Token)match(input,FROM,FOLLOW_FROM_in_import_from2913); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FROM106_tree = (PythonTree)adaptor.create(FROM106);
adaptor.addChild(root_0, FROM106_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:12: ( (d+= DOT )* dotted_name | (d+= DOT )+ )
int alt51=2;
alt51 = dfa51.predict(input);
switch (alt51) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:13: (d+= DOT )* dotted_name
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:14: (d+= DOT )*
loop49:
do {
int alt49=2;
int LA49_0 = input.LA(1);
if ( (LA49_0==DOT) ) {
alt49=1;
}
switch (alt49) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:14: d+= DOT
{
d=(Token)match(input,DOT,FOLLOW_DOT_in_import_from2918); if (state.failed) return retval;
if ( state.backtracking==0 ) {
d_tree = (PythonTree)adaptor.create(d);
adaptor.addChild(root_0, d_tree);
}
if (list_d==null) list_d=new ArrayList();
list_d.add(d);
}
break;
default :
break loop49;
}
} while (true);
pushFollow(FOLLOW_dotted_name_in_import_from2921);
dotted_name107=dotted_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dotted_name107.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:35: (d+= DOT )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:36: (d+= DOT )+
int cnt50=0;
loop50:
do {
int alt50=2;
int LA50_0 = input.LA(1);
if ( (LA50_0==DOT) ) {
alt50=1;
}
switch (alt50) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:910:36: d+= DOT
{
d=(Token)match(input,DOT,FOLLOW_DOT_in_import_from2927); if (state.failed) return retval;
if ( state.backtracking==0 ) {
d_tree = (PythonTree)adaptor.create(d);
adaptor.addChild(root_0, d_tree);
}
if (list_d==null) list_d=new ArrayList();
list_d.add(d);
}
break;
default :
if ( cnt50 >= 1 ) break loop50;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(50, input);
throw eee;
}
cnt50++;
} while (true);
}
break;
}
IMPORT108=(Token)match(input,IMPORT,FOLLOW_IMPORT_in_import_from2931); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IMPORT108_tree = (PythonTree)adaptor.create(IMPORT108);
adaptor.addChild(root_0, IMPORT108_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:911:9: ( STAR | i1= import_as_names | LPAREN i2= import_as_names ( COMMA )? RPAREN )
int alt53=3;
switch ( input.LA(1) ) {
case STAR:
{
alt53=1;
}
break;
case NAME:
{
alt53=2;
}
break;
case LPAREN:
{
alt53=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 53, 0, input);
throw nvae;
}
switch (alt53) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:911:10: STAR
{
STAR109=(Token)match(input,STAR,FOLLOW_STAR_in_import_from2942); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR109_tree = (PythonTree)adaptor.create(STAR109);
adaptor.addChild(root_0, STAR109_tree);
}
if ( state.backtracking==0 ) {
stype = new ImportFrom(FROM106, actions.makeFromText(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeModuleNameNode(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeStarAlias(STAR109), actions.makeLevel(list_d));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:917:11: i1= import_as_names
{
pushFollow(FOLLOW_import_as_names_in_import_from2967);
i1=import_as_names();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, i1.getTree());
if ( state.backtracking==0 ) {
stype = new ImportFrom(FROM106, actions.makeFromText(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeModuleNameNode(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeAliases((i1!=null?i1.atypes:null)), actions.makeLevel(list_d));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:923:11: LPAREN i2= import_as_names ( COMMA )? RPAREN
{
LPAREN110=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_import_from2990); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN110_tree = (PythonTree)adaptor.create(LPAREN110);
adaptor.addChild(root_0, LPAREN110_tree);
}
pushFollow(FOLLOW_import_as_names_in_import_from2994);
i2=import_as_names();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, i2.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:923:37: ( COMMA )?
int alt52=2;
int LA52_0 = input.LA(1);
if ( (LA52_0==COMMA) ) {
alt52=1;
}
switch (alt52) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:923:37: COMMA
{
COMMA111=(Token)match(input,COMMA,FOLLOW_COMMA_in_import_from2996); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA111_tree = (PythonTree)adaptor.create(COMMA111);
adaptor.addChild(root_0, COMMA111_tree);
}
}
break;
}
RPAREN112=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_import_from2999); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN112_tree = (PythonTree)adaptor.create(RPAREN112);
adaptor.addChild(root_0, RPAREN112_tree);
}
if ( state.backtracking==0 ) {
stype = new ImportFrom(FROM106, actions.makeFromText(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeModuleNameNode(list_d, (dotted_name107!=null?dotted_name107.names:null)),
actions.makeAliases((i2!=null?i2.atypes:null)), actions.makeLevel(list_d));
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "import_from"
public static class import_as_names_return extends ParserRuleReturnScope {
public List<alias> atypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "import_as_names"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:933:1: import_as_names returns [List<alias> atypes] : n+= import_as_name ( COMMA n+= import_as_name )* ;
public final PythonParser.import_as_names_return import_as_names() throws RecognitionException {
PythonParser.import_as_names_return retval = new PythonParser.import_as_names_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA113=null;
List list_n=null;
PythonParser.import_as_name_return n = null;
n = null;
PythonTree COMMA113_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:935:5: (n+= import_as_name ( COMMA n+= import_as_name )* )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:935:7: n+= import_as_name ( COMMA n+= import_as_name )*
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_import_as_name_in_import_as_names3048);
n=import_as_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, n.getTree());
if (list_n==null) list_n=new ArrayList();
list_n.add(n.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:935:25: ( COMMA n+= import_as_name )*
loop54:
do {
int alt54=2;
int LA54_0 = input.LA(1);
if ( (LA54_0==COMMA) ) {
int LA54_2 = input.LA(2);
if ( (LA54_2==NAME) ) {
alt54=1;
}
}
switch (alt54) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:935:26: COMMA n+= import_as_name
{
COMMA113=(Token)match(input,COMMA,FOLLOW_COMMA_in_import_as_names3051); if (state.failed) return retval;
pushFollow(FOLLOW_import_as_name_in_import_as_names3056);
n=import_as_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, n.getTree());
if (list_n==null) list_n=new ArrayList();
list_n.add(n.getTree());
}
break;
default :
break loop54;
}
} while (true);
if ( state.backtracking==0 ) {
retval.atypes = list_n;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "import_as_names"
public static class import_as_name_return extends ParserRuleReturnScope {
public alias atype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "import_as_name"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:942:1: import_as_name returns [alias atype] : name= NAME ( AS asname= NAME )? ;
public final PythonParser.import_as_name_return import_as_name() throws RecognitionException {
PythonParser.import_as_name_return retval = new PythonParser.import_as_name_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token name=null;
Token asname=null;
Token AS114=null;
PythonTree name_tree=null;
PythonTree asname_tree=null;
PythonTree AS114_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:947:5: (name= NAME ( AS asname= NAME )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:947:7: name= NAME ( AS asname= NAME )?
{
root_0 = (PythonTree)adaptor.nil();
name=(Token)match(input,NAME,FOLLOW_NAME_in_import_as_name3097); if (state.failed) return retval;
if ( state.backtracking==0 ) {
name_tree = (PythonTree)adaptor.create(name);
adaptor.addChild(root_0, name_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:947:17: ( AS asname= NAME )?
int alt55=2;
int LA55_0 = input.LA(1);
if ( (LA55_0==AS) ) {
alt55=1;
}
switch (alt55) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:947:18: AS asname= NAME
{
AS114=(Token)match(input,AS,FOLLOW_AS_in_import_as_name3100); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AS114_tree = (PythonTree)adaptor.create(AS114);
adaptor.addChild(root_0, AS114_tree);
}
asname=(Token)match(input,NAME,FOLLOW_NAME_in_import_as_name3104); if (state.failed) return retval;
if ( state.backtracking==0 ) {
asname_tree = (PythonTree)adaptor.create(asname);
adaptor.addChild(root_0, asname_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.atype = new alias(actions.makeNameNode(name), actions.makeNameNode(asname));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.atype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "import_as_name"
public static class dotted_as_name_return extends ParserRuleReturnScope {
public alias atype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dotted_as_name"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:955:1: dotted_as_name returns [alias atype] : dotted_name ( AS asname= NAME )? ;
public final PythonParser.dotted_as_name_return dotted_as_name() throws RecognitionException {
PythonParser.dotted_as_name_return retval = new PythonParser.dotted_as_name_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token asname=null;
Token AS116=null;
PythonParser.dotted_name_return dotted_name115 = null;
PythonTree asname_tree=null;
PythonTree AS116_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:960:5: ( dotted_name ( AS asname= NAME )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:960:7: dotted_name ( AS asname= NAME )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_dotted_name_in_dotted_as_name3144);
dotted_name115=dotted_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dotted_name115.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:960:19: ( AS asname= NAME )?
int alt56=2;
int LA56_0 = input.LA(1);
if ( (LA56_0==AS) ) {
alt56=1;
}
switch (alt56) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:960:20: AS asname= NAME
{
AS116=(Token)match(input,AS,FOLLOW_AS_in_dotted_as_name3147); if (state.failed) return retval;
if ( state.backtracking==0 ) {
AS116_tree = (PythonTree)adaptor.create(AS116);
adaptor.addChild(root_0, AS116_tree);
}
asname=(Token)match(input,NAME,FOLLOW_NAME_in_dotted_as_name3151); if (state.failed) return retval;
if ( state.backtracking==0 ) {
asname_tree = (PythonTree)adaptor.create(asname);
adaptor.addChild(root_0, asname_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.atype = new alias((dotted_name115!=null?dotted_name115.names:null), actions.makeNameNode(asname));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.atype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "dotted_as_name"
public static class dotted_as_names_return extends ParserRuleReturnScope {
public List<alias> atypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dotted_as_names"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:967:1: dotted_as_names returns [List<alias> atypes] : d+= dotted_as_name ( COMMA d+= dotted_as_name )* ;
public final PythonParser.dotted_as_names_return dotted_as_names() throws RecognitionException {
PythonParser.dotted_as_names_return retval = new PythonParser.dotted_as_names_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA117=null;
List list_d=null;
PythonParser.dotted_as_name_return d = null;
d = null;
PythonTree COMMA117_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:969:5: (d+= dotted_as_name ( COMMA d+= dotted_as_name )* )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:969:7: d+= dotted_as_name ( COMMA d+= dotted_as_name )*
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_dotted_as_name_in_dotted_as_names3187);
d=dotted_as_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, d.getTree());
if (list_d==null) list_d=new ArrayList();
list_d.add(d.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:969:25: ( COMMA d+= dotted_as_name )*
loop57:
do {
int alt57=2;
int LA57_0 = input.LA(1);
if ( (LA57_0==COMMA) ) {
alt57=1;
}
switch (alt57) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:969:26: COMMA d+= dotted_as_name
{
COMMA117=(Token)match(input,COMMA,FOLLOW_COMMA_in_dotted_as_names3190); if (state.failed) return retval;
pushFollow(FOLLOW_dotted_as_name_in_dotted_as_names3195);
d=dotted_as_name();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, d.getTree());
if (list_d==null) list_d=new ArrayList();
list_d.add(d.getTree());
}
break;
default :
break loop57;
}
} while (true);
if ( state.backtracking==0 ) {
retval.atypes = list_d;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "dotted_as_names"
public static class dotted_name_return extends ParserRuleReturnScope {
public List<Name> names;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dotted_name"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:976:1: dotted_name returns [List<Name> names] : NAME ( DOT dn+= attr )* ;
public final PythonParser.dotted_name_return dotted_name() throws RecognitionException {
PythonParser.dotted_name_return retval = new PythonParser.dotted_name_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NAME118=null;
Token DOT119=null;
List list_dn=null;
PythonParser.attr_return dn = null;
dn = null;
PythonTree NAME118_tree=null;
PythonTree DOT119_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:978:5: ( NAME ( DOT dn+= attr )* )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:978:7: NAME ( DOT dn+= attr )*
{
root_0 = (PythonTree)adaptor.nil();
NAME118=(Token)match(input,NAME,FOLLOW_NAME_in_dotted_name3229); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME118_tree = (PythonTree)adaptor.create(NAME118);
adaptor.addChild(root_0, NAME118_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:978:12: ( DOT dn+= attr )*
loop58:
do {
int alt58=2;
int LA58_0 = input.LA(1);
if ( (LA58_0==DOT) ) {
alt58=1;
}
switch (alt58) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:978:13: DOT dn+= attr
{
DOT119=(Token)match(input,DOT,FOLLOW_DOT_in_dotted_name3232); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT119_tree = (PythonTree)adaptor.create(DOT119);
adaptor.addChild(root_0, DOT119_tree);
}
pushFollow(FOLLOW_attr_in_dotted_name3236);
dn=attr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dn.getTree());
if (list_dn==null) list_dn=new ArrayList();
list_dn.add(dn.getTree());
}
break;
default :
break loop58;
}
} while (true);
if ( state.backtracking==0 ) {
retval.names = actions.makeDottedName(NAME118, list_dn);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "dotted_name"
public static class global_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "global_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:985:1: global_stmt : GLOBAL n+= NAME ( COMMA n+= NAME )* ;
public final PythonParser.global_stmt_return global_stmt() throws RecognitionException {
PythonParser.global_stmt_return retval = new PythonParser.global_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token GLOBAL120=null;
Token COMMA121=null;
Token n=null;
List list_n=null;
PythonTree GLOBAL120_tree=null;
PythonTree COMMA121_tree=null;
PythonTree n_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:992:5: ( GLOBAL n+= NAME ( COMMA n+= NAME )* )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:992:7: GLOBAL n+= NAME ( COMMA n+= NAME )*
{
root_0 = (PythonTree)adaptor.nil();
GLOBAL120=(Token)match(input,GLOBAL,FOLLOW_GLOBAL_in_global_stmt3272); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GLOBAL120_tree = (PythonTree)adaptor.create(GLOBAL120);
adaptor.addChild(root_0, GLOBAL120_tree);
}
n=(Token)match(input,NAME,FOLLOW_NAME_in_global_stmt3276); if (state.failed) return retval;
if ( state.backtracking==0 ) {
n_tree = (PythonTree)adaptor.create(n);
adaptor.addChild(root_0, n_tree);
}
if (list_n==null) list_n=new ArrayList();
list_n.add(n);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:992:22: ( COMMA n+= NAME )*
loop59:
do {
int alt59=2;
int LA59_0 = input.LA(1);
if ( (LA59_0==COMMA) ) {
alt59=1;
}
switch (alt59) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:992:23: COMMA n+= NAME
{
COMMA121=(Token)match(input,COMMA,FOLLOW_COMMA_in_global_stmt3279); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA121_tree = (PythonTree)adaptor.create(COMMA121);
adaptor.addChild(root_0, COMMA121_tree);
}
n=(Token)match(input,NAME,FOLLOW_NAME_in_global_stmt3283); if (state.failed) return retval;
if ( state.backtracking==0 ) {
n_tree = (PythonTree)adaptor.create(n);
adaptor.addChild(root_0, n_tree);
}
if (list_n==null) list_n=new ArrayList();
list_n.add(n);
}
break;
default :
break loop59;
}
} while (true);
if ( state.backtracking==0 ) {
stype = new Global(GLOBAL120, actions.makeNames(list_n), actions.makeNameNodes(list_n));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "global_stmt"
public static class exec_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "exec_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:999:1: exec_stmt : EXEC expr[expr_contextType.Load] ( IN t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? )? ;
public final PythonParser.exec_stmt_return exec_stmt() throws RecognitionException {
PythonParser.exec_stmt_return retval = new PythonParser.exec_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token EXEC122=null;
Token IN124=null;
Token COMMA125=null;
PythonParser.test_return t1 = null;
PythonParser.test_return t2 = null;
PythonParser.expr_return expr123 = null;
PythonTree EXEC122_tree=null;
PythonTree IN124_tree=null;
PythonTree COMMA125_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:5: ( EXEC expr[expr_contextType.Load] ( IN t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:7: EXEC expr[expr_contextType.Load] ( IN t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? )?
{
root_0 = (PythonTree)adaptor.nil();
EXEC122=(Token)match(input,EXEC,FOLLOW_EXEC_in_exec_stmt3321); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXEC122_tree = (PythonTree)adaptor.create(EXEC122);
adaptor.addChild(root_0, EXEC122_tree);
}
pushFollow(FOLLOW_expr_in_exec_stmt3323);
expr123=expr(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr123.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:40: ( IN t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? )?
int alt61=2;
int LA61_0 = input.LA(1);
if ( (LA61_0==IN) ) {
alt61=1;
}
switch (alt61) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:41: IN t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )?
{
IN124=(Token)match(input,IN,FOLLOW_IN_in_exec_stmt3327); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN124_tree = (PythonTree)adaptor.create(IN124);
adaptor.addChild(root_0, IN124_tree);
}
pushFollow(FOLLOW_test_in_exec_stmt3331);
t1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:75: ( COMMA t2= test[expr_contextType.Load] )?
int alt60=2;
int LA60_0 = input.LA(1);
if ( (LA60_0==COMMA) ) {
alt60=1;
}
switch (alt60) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1006:76: COMMA t2= test[expr_contextType.Load]
{
COMMA125=(Token)match(input,COMMA,FOLLOW_COMMA_in_exec_stmt3335); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA125_tree = (PythonTree)adaptor.create(COMMA125);
adaptor.addChild(root_0, COMMA125_tree);
}
pushFollow(FOLLOW_test_in_exec_stmt3339);
t2=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {
stype = new Exec(EXEC122, actions.castExpr((expr123!=null?((PythonTree)expr123.tree):null)), actions.castExpr((t1!=null?((PythonTree)t1.tree):null)), actions.castExpr((t2!=null?((PythonTree)t2.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "exec_stmt"
public static class assert_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "assert_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1013:1: assert_stmt : ASSERT t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? ;
public final PythonParser.assert_stmt_return assert_stmt() throws RecognitionException {
PythonParser.assert_stmt_return retval = new PythonParser.assert_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token ASSERT126=null;
Token COMMA127=null;
PythonParser.test_return t1 = null;
PythonParser.test_return t2 = null;
PythonTree ASSERT126_tree=null;
PythonTree COMMA127_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1020:5: ( ASSERT t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1020:7: ASSERT t1= test[expr_contextType.Load] ( COMMA t2= test[expr_contextType.Load] )?
{
root_0 = (PythonTree)adaptor.nil();
ASSERT126=(Token)match(input,ASSERT,FOLLOW_ASSERT_in_assert_stmt3380); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ASSERT126_tree = (PythonTree)adaptor.create(ASSERT126);
adaptor.addChild(root_0, ASSERT126_tree);
}
pushFollow(FOLLOW_test_in_assert_stmt3384);
t1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1020:45: ( COMMA t2= test[expr_contextType.Load] )?
int alt62=2;
int LA62_0 = input.LA(1);
if ( (LA62_0==COMMA) ) {
alt62=1;
}
switch (alt62) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1020:46: COMMA t2= test[expr_contextType.Load]
{
COMMA127=(Token)match(input,COMMA,FOLLOW_COMMA_in_assert_stmt3388); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA127_tree = (PythonTree)adaptor.create(COMMA127);
adaptor.addChild(root_0, COMMA127_tree);
}
pushFollow(FOLLOW_test_in_assert_stmt3392);
t2=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
}
break;
}
if ( state.backtracking==0 ) {
stype = new Assert(ASSERT126, actions.castExpr((t1!=null?((PythonTree)t1.tree):null)), actions.castExpr((t2!=null?((PythonTree)t2.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "assert_stmt"
public static class compound_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "compound_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1027:1: compound_stmt : ( if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | ( ( decorators )? DEF )=> funcdef | classdef );
public final PythonParser.compound_stmt_return compound_stmt() throws RecognitionException {
PythonParser.compound_stmt_return retval = new PythonParser.compound_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.if_stmt_return if_stmt128 = null;
PythonParser.while_stmt_return while_stmt129 = null;
PythonParser.for_stmt_return for_stmt130 = null;
PythonParser.try_stmt_return try_stmt131 = null;
PythonParser.with_stmt_return with_stmt132 = null;
PythonParser.funcdef_return funcdef133 = null;
PythonParser.classdef_return classdef134 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1028:5: ( if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | ( ( decorators )? DEF )=> funcdef | classdef )
int alt63=7;
int LA63_0 = input.LA(1);
if ( (LA63_0==IF) ) {
alt63=1;
}
else if ( (LA63_0==WHILE) ) {
alt63=2;
}
else if ( (LA63_0==FOR) ) {
alt63=3;
}
else if ( (LA63_0==TRY) ) {
alt63=4;
}
else if ( (LA63_0==WITH) ) {
alt63=5;
}
else if ( (LA63_0==AT) ) {
int LA63_6 = input.LA(2);
if ( (synpred6_Python()) ) {
alt63=6;
}
else if ( (true) ) {
alt63=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 63, 6, input);
throw nvae;
}
}
else if ( (LA63_0==DEF) && (synpred6_Python())) {
alt63=6;
}
else if ( (LA63_0==CLASS) ) {
alt63=7;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1028:7: if_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_if_stmt_in_compound_stmt3421);
if_stmt128=if_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, if_stmt128.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1029:7: while_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_while_stmt_in_compound_stmt3429);
while_stmt129=while_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, while_stmt129.getTree());
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1030:7: for_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_for_stmt_in_compound_stmt3437);
for_stmt130=for_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, for_stmt130.getTree());
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1031:7: try_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_try_stmt_in_compound_stmt3445);
try_stmt131=try_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, try_stmt131.getTree());
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1032:7: with_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_with_stmt_in_compound_stmt3453);
with_stmt132=with_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, with_stmt132.getTree());
}
break;
case 6 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1033:7: ( ( decorators )? DEF )=> funcdef
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_funcdef_in_compound_stmt3470);
funcdef133=funcdef();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, funcdef133.getTree());
}
break;
case 7 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1034:7: classdef
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_classdef_in_compound_stmt3478);
classdef134=classdef();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, classdef134.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "compound_stmt"
public static class if_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "if_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1038:1: if_stmt : IF test[expr_contextType.Load] COLON ifsuite= suite[false] ( elif_clause )? ;
public final PythonParser.if_stmt_return if_stmt() throws RecognitionException {
PythonParser.if_stmt_return retval = new PythonParser.if_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token IF135=null;
Token COLON137=null;
PythonParser.suite_return ifsuite = null;
PythonParser.test_return test136 = null;
PythonParser.elif_clause_return elif_clause138 = null;
PythonTree IF135_tree=null;
PythonTree COLON137_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1045:5: ( IF test[expr_contextType.Load] COLON ifsuite= suite[false] ( elif_clause )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1045:7: IF test[expr_contextType.Load] COLON ifsuite= suite[false] ( elif_clause )?
{
root_0 = (PythonTree)adaptor.nil();
IF135=(Token)match(input,IF,FOLLOW_IF_in_if_stmt3506); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IF135_tree = (PythonTree)adaptor.create(IF135);
adaptor.addChild(root_0, IF135_tree);
}
pushFollow(FOLLOW_test_in_if_stmt3508);
test136=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test136.getTree());
COLON137=(Token)match(input,COLON,FOLLOW_COLON_in_if_stmt3511); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON137_tree = (PythonTree)adaptor.create(COLON137);
adaptor.addChild(root_0, COLON137_tree);
}
pushFollow(FOLLOW_suite_in_if_stmt3515);
ifsuite=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, ifsuite.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1045:65: ( elif_clause )?
int alt64=2;
int LA64_0 = input.LA(1);
if ( (LA64_0==ELIF||LA64_0==ORELSE) ) {
alt64=1;
}
switch (alt64) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1045:65: elif_clause
{
pushFollow(FOLLOW_elif_clause_in_if_stmt3518);
elif_clause138=elif_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elif_clause138.getTree());
}
break;
}
if ( state.backtracking==0 ) {
stype = new If(IF135, actions.castExpr((test136!=null?((PythonTree)test136.tree):null)), actions.castStmts((ifsuite!=null?ifsuite.stypes:null)),
actions.makeElse((elif_clause138!=null?elif_clause138.stypes:null), (elif_clause138!=null?((PythonTree)elif_clause138.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "if_stmt"
public static class elif_clause_return extends ParserRuleReturnScope {
public List stypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "elif_clause"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1053:1: elif_clause returns [List stypes] : ( else_clause | ELIF test[expr_contextType.Load] COLON suite[false] (e2= elif_clause | ) );
public final PythonParser.elif_clause_return elif_clause() throws RecognitionException {
PythonParser.elif_clause_return retval = new PythonParser.elif_clause_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token ELIF140=null;
Token COLON142=null;
PythonParser.elif_clause_return e2 = null;
PythonParser.else_clause_return else_clause139 = null;
PythonParser.test_return test141 = null;
PythonParser.suite_return suite143 = null;
PythonTree ELIF140_tree=null;
PythonTree COLON142_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1063:5: ( else_clause | ELIF test[expr_contextType.Load] COLON suite[false] (e2= elif_clause | ) )
int alt66=2;
int LA66_0 = input.LA(1);
if ( (LA66_0==ORELSE) ) {
alt66=1;
}
else if ( (LA66_0==ELIF) ) {
alt66=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 66, 0, input);
throw nvae;
}
switch (alt66) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1063:7: else_clause
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_else_clause_in_elif_clause3563);
else_clause139=else_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, else_clause139.getTree());
if ( state.backtracking==0 ) {
retval.stypes = (else_clause139!=null?else_clause139.stypes:null);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1067:7: ELIF test[expr_contextType.Load] COLON suite[false] (e2= elif_clause | )
{
root_0 = (PythonTree)adaptor.nil();
ELIF140=(Token)match(input,ELIF,FOLLOW_ELIF_in_elif_clause3579); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ELIF140_tree = (PythonTree)adaptor.create(ELIF140);
adaptor.addChild(root_0, ELIF140_tree);
}
pushFollow(FOLLOW_test_in_elif_clause3581);
test141=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test141.getTree());
COLON142=(Token)match(input,COLON,FOLLOW_COLON_in_elif_clause3584); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON142_tree = (PythonTree)adaptor.create(COLON142);
adaptor.addChild(root_0, COLON142_tree);
}
pushFollow(FOLLOW_suite_in_elif_clause3586);
suite143=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, suite143.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1068:7: (e2= elif_clause | )
int alt65=2;
int LA65_0 = input.LA(1);
if ( (LA65_0==ELIF||LA65_0==ORELSE) ) {
alt65=1;
}
else if ( (LA65_0==EOF||LA65_0==DEDENT||LA65_0==NEWLINE||LA65_0==NAME||(LA65_0>=ASSERT && LA65_0<=DELETE)||LA65_0==EXEC||(LA65_0>=FROM && LA65_0<=IMPORT)||(LA65_0>=LAMBDA && LA65_0<=NOT)||(LA65_0>=PASS && LA65_0<=LPAREN)||(LA65_0>=PLUS && LA65_0<=MINUS)||(LA65_0>=TILDE && LA65_0<=LBRACK)||LA65_0==LCURLY||(LA65_0>=BACKQUOTE && LA65_0<=STRING)) ) {
alt65=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 65, 0, input);
throw nvae;
}
switch (alt65) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1068:8: e2= elif_clause
{
pushFollow(FOLLOW_elif_clause_in_elif_clause3598);
e2=elif_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree());
if ( state.backtracking==0 ) {
stype = new If((test141!=null?((Token)test141.start):null), actions.castExpr((test141!=null?((PythonTree)test141.tree):null)), actions.castStmts((suite143!=null?suite143.stypes:null)), actions.makeElse((e2!=null?e2.stypes:null), (e2!=null?((PythonTree)e2.tree):null)));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1073:8:
{
if ( state.backtracking==0 ) {
stype = new If((test141!=null?((Token)test141.start):null), actions.castExpr((test141!=null?((PythonTree)test141.tree):null)), actions.castStmts((suite143!=null?suite143.stypes:null)), new ArrayList<stmt>());
}
}
break;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (stype != null) {
retval.tree = stype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "elif_clause"
public static class else_clause_return extends ParserRuleReturnScope {
public List stypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "else_clause"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1080:1: else_clause returns [List stypes] : ORELSE COLON elsesuite= suite[false] ;
public final PythonParser.else_clause_return else_clause() throws RecognitionException {
PythonParser.else_clause_return retval = new PythonParser.else_clause_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token ORELSE144=null;
Token COLON145=null;
PythonParser.suite_return elsesuite = null;
PythonTree ORELSE144_tree=null;
PythonTree COLON145_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1082:5: ( ORELSE COLON elsesuite= suite[false] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1082:7: ORELSE COLON elsesuite= suite[false]
{
root_0 = (PythonTree)adaptor.nil();
ORELSE144=(Token)match(input,ORELSE,FOLLOW_ORELSE_in_else_clause3658); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ORELSE144_tree = (PythonTree)adaptor.create(ORELSE144);
adaptor.addChild(root_0, ORELSE144_tree);
}
COLON145=(Token)match(input,COLON,FOLLOW_COLON_in_else_clause3660); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON145_tree = (PythonTree)adaptor.create(COLON145);
adaptor.addChild(root_0, COLON145_tree);
}
pushFollow(FOLLOW_suite_in_else_clause3664);
elsesuite=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elsesuite.getTree());
if ( state.backtracking==0 ) {
retval.stypes = (elsesuite!=null?elsesuite.stypes:null);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "else_clause"
public static class while_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "while_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1089:1: while_stmt : WHILE test[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )? ;
public final PythonParser.while_stmt_return while_stmt() throws RecognitionException {
PythonParser.while_stmt_return retval = new PythonParser.while_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token WHILE146=null;
Token COLON148=null;
Token ORELSE149=null;
Token COLON150=null;
PythonParser.suite_return s1 = null;
PythonParser.suite_return s2 = null;
PythonParser.test_return test147 = null;
PythonTree WHILE146_tree=null;
PythonTree COLON148_tree=null;
PythonTree ORELSE149_tree=null;
PythonTree COLON150_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1096:5: ( WHILE test[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1096:7: WHILE test[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )?
{
root_0 = (PythonTree)adaptor.nil();
WHILE146=(Token)match(input,WHILE,FOLLOW_WHILE_in_while_stmt3701); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WHILE146_tree = (PythonTree)adaptor.create(WHILE146);
adaptor.addChild(root_0, WHILE146_tree);
}
pushFollow(FOLLOW_test_in_while_stmt3703);
test147=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test147.getTree());
COLON148=(Token)match(input,COLON,FOLLOW_COLON_in_while_stmt3706); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON148_tree = (PythonTree)adaptor.create(COLON148);
adaptor.addChild(root_0, COLON148_tree);
}
pushFollow(FOLLOW_suite_in_while_stmt3710);
s1=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1096:63: ( ORELSE COLON s2= suite[false] )?
int alt67=2;
int LA67_0 = input.LA(1);
if ( (LA67_0==ORELSE) ) {
alt67=1;
}
switch (alt67) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1096:64: ORELSE COLON s2= suite[false]
{
ORELSE149=(Token)match(input,ORELSE,FOLLOW_ORELSE_in_while_stmt3714); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ORELSE149_tree = (PythonTree)adaptor.create(ORELSE149);
adaptor.addChild(root_0, ORELSE149_tree);
}
COLON150=(Token)match(input,COLON,FOLLOW_COLON_in_while_stmt3716); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON150_tree = (PythonTree)adaptor.create(COLON150);
adaptor.addChild(root_0, COLON150_tree);
}
pushFollow(FOLLOW_suite_in_while_stmt3720);
s2=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s2.getTree());
}
break;
}
if ( state.backtracking==0 ) {
stype = actions.makeWhile(WHILE146, actions.castExpr((test147!=null?((PythonTree)test147.tree):null)), (s1!=null?s1.stypes:null), (s2!=null?s2.stypes:null));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "while_stmt"
public static class for_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "for_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1103:1: for_stmt : FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )? ;
public final PythonParser.for_stmt_return for_stmt() throws RecognitionException {
PythonParser.for_stmt_return retval = new PythonParser.for_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token FOR151=null;
Token IN153=null;
Token COLON155=null;
Token ORELSE156=null;
Token COLON157=null;
PythonParser.suite_return s1 = null;
PythonParser.suite_return s2 = null;
PythonParser.exprlist_return exprlist152 = null;
PythonParser.testlist_return testlist154 = null;
PythonTree FOR151_tree=null;
PythonTree IN153_tree=null;
PythonTree COLON155_tree=null;
PythonTree ORELSE156_tree=null;
PythonTree COLON157_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1110:5: ( FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1110:7: FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] COLON s1= suite[false] ( ORELSE COLON s2= suite[false] )?
{
root_0 = (PythonTree)adaptor.nil();
FOR151=(Token)match(input,FOR,FOLLOW_FOR_in_for_stmt3759); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR151_tree = (PythonTree)adaptor.create(FOR151);
adaptor.addChild(root_0, FOR151_tree);
}
pushFollow(FOLLOW_exprlist_in_for_stmt3761);
exprlist152=exprlist(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exprlist152.getTree());
IN153=(Token)match(input,IN,FOLLOW_IN_in_for_stmt3764); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN153_tree = (PythonTree)adaptor.create(IN153);
adaptor.addChild(root_0, IN153_tree);
}
pushFollow(FOLLOW_testlist_in_for_stmt3766);
testlist154=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist154.getTree());
COLON155=(Token)match(input,COLON,FOLLOW_COLON_in_for_stmt3769); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON155_tree = (PythonTree)adaptor.create(COLON155);
adaptor.addChild(root_0, COLON155_tree);
}
pushFollow(FOLLOW_suite_in_for_stmt3773);
s1=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1111:9: ( ORELSE COLON s2= suite[false] )?
int alt68=2;
int LA68_0 = input.LA(1);
if ( (LA68_0==ORELSE) ) {
alt68=1;
}
switch (alt68) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1111:10: ORELSE COLON s2= suite[false]
{
ORELSE156=(Token)match(input,ORELSE,FOLLOW_ORELSE_in_for_stmt3785); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ORELSE156_tree = (PythonTree)adaptor.create(ORELSE156);
adaptor.addChild(root_0, ORELSE156_tree);
}
COLON157=(Token)match(input,COLON,FOLLOW_COLON_in_for_stmt3787); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON157_tree = (PythonTree)adaptor.create(COLON157);
adaptor.addChild(root_0, COLON157_tree);
}
pushFollow(FOLLOW_suite_in_for_stmt3791);
s2=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s2.getTree());
}
break;
}
if ( state.backtracking==0 ) {
stype = actions.makeFor(FOR151, (exprlist152!=null?exprlist152.etype:null), actions.castExpr((testlist154!=null?((PythonTree)testlist154.tree):null)), (s1!=null?s1.stypes:null), (s2!=null?s2.stypes:null));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "for_stmt"
public static class try_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "try_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1122:1: try_stmt : TRY COLON trysuite= suite[!$suite.isEmpty() && $suite::continueIllegal] ( (e+= except_clause )+ ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )? ( FINALLY COLON finalsuite= suite[true] )? | FINALLY COLON finalsuite= suite[true] ) ;
public final PythonParser.try_stmt_return try_stmt() throws RecognitionException {
PythonParser.try_stmt_return retval = new PythonParser.try_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token TRY158=null;
Token COLON159=null;
Token ORELSE160=null;
Token COLON161=null;
Token FINALLY162=null;
Token COLON163=null;
Token FINALLY164=null;
Token COLON165=null;
List list_e=null;
PythonParser.suite_return trysuite = null;
PythonParser.suite_return elsesuite = null;
PythonParser.suite_return finalsuite = null;
PythonParser.except_clause_return e = null;
e = null;
PythonTree TRY158_tree=null;
PythonTree COLON159_tree=null;
PythonTree ORELSE160_tree=null;
PythonTree COLON161_tree=null;
PythonTree FINALLY162_tree=null;
PythonTree COLON163_tree=null;
PythonTree FINALLY164_tree=null;
PythonTree COLON165_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1129:5: ( TRY COLON trysuite= suite[!$suite.isEmpty() && $suite::continueIllegal] ( (e+= except_clause )+ ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )? ( FINALLY COLON finalsuite= suite[true] )? | FINALLY COLON finalsuite= suite[true] ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1129:7: TRY COLON trysuite= suite[!$suite.isEmpty() && $suite::continueIllegal] ( (e+= except_clause )+ ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )? ( FINALLY COLON finalsuite= suite[true] )? | FINALLY COLON finalsuite= suite[true] )
{
root_0 = (PythonTree)adaptor.nil();
TRY158=(Token)match(input,TRY,FOLLOW_TRY_in_try_stmt3834); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TRY158_tree = (PythonTree)adaptor.create(TRY158);
adaptor.addChild(root_0, TRY158_tree);
}
COLON159=(Token)match(input,COLON,FOLLOW_COLON_in_try_stmt3836); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON159_tree = (PythonTree)adaptor.create(COLON159);
adaptor.addChild(root_0, COLON159_tree);
}
pushFollow(FOLLOW_suite_in_try_stmt3840);
trysuite=suite(!suite_stack.isEmpty() && ((suite_scope)suite_stack.peek()).continueIllegal);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, trysuite.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:7: ( (e+= except_clause )+ ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )? ( FINALLY COLON finalsuite= suite[true] )? | FINALLY COLON finalsuite= suite[true] )
int alt72=2;
int LA72_0 = input.LA(1);
if ( (LA72_0==EXCEPT) ) {
alt72=1;
}
else if ( (LA72_0==FINALLY) ) {
alt72=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 72, 0, input);
throw nvae;
}
switch (alt72) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:9: (e+= except_clause )+ ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )? ( FINALLY COLON finalsuite= suite[true] )?
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:10: (e+= except_clause )+
int cnt69=0;
loop69:
do {
int alt69=2;
int LA69_0 = input.LA(1);
if ( (LA69_0==EXCEPT) ) {
alt69=1;
}
switch (alt69) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:10: e+= except_clause
{
pushFollow(FOLLOW_except_clause_in_try_stmt3853);
e=except_clause();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree());
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTree());
}
break;
default :
if ( cnt69 >= 1 ) break loop69;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(69, input);
throw eee;
}
cnt69++;
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:27: ( ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal] )?
int alt70=2;
int LA70_0 = input.LA(1);
if ( (LA70_0==ORELSE) ) {
alt70=1;
}
switch (alt70) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:28: ORELSE COLON elsesuite= suite[!$suite.isEmpty() && $suite::continueIllegal]
{
ORELSE160=(Token)match(input,ORELSE,FOLLOW_ORELSE_in_try_stmt3857); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ORELSE160_tree = (PythonTree)adaptor.create(ORELSE160);
adaptor.addChild(root_0, ORELSE160_tree);
}
COLON161=(Token)match(input,COLON,FOLLOW_COLON_in_try_stmt3859); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON161_tree = (PythonTree)adaptor.create(COLON161);
adaptor.addChild(root_0, COLON161_tree);
}
pushFollow(FOLLOW_suite_in_try_stmt3863);
elsesuite=suite(!suite_stack.isEmpty() && ((suite_scope)suite_stack.peek()).continueIllegal);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, elsesuite.getTree());
}
break;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:105: ( FINALLY COLON finalsuite= suite[true] )?
int alt71=2;
int LA71_0 = input.LA(1);
if ( (LA71_0==FINALLY) ) {
alt71=1;
}
switch (alt71) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1130:106: FINALLY COLON finalsuite= suite[true]
{
FINALLY162=(Token)match(input,FINALLY,FOLLOW_FINALLY_in_try_stmt3869); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FINALLY162_tree = (PythonTree)adaptor.create(FINALLY162);
adaptor.addChild(root_0, FINALLY162_tree);
}
COLON163=(Token)match(input,COLON,FOLLOW_COLON_in_try_stmt3871); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON163_tree = (PythonTree)adaptor.create(COLON163);
adaptor.addChild(root_0, COLON163_tree);
}
pushFollow(FOLLOW_suite_in_try_stmt3875);
finalsuite=suite(true);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, finalsuite.getTree());
}
break;
}
if ( state.backtracking==0 ) {
stype = actions.makeTryExcept(TRY158, (trysuite!=null?trysuite.stypes:null), list_e, (elsesuite!=null?elsesuite.stypes:null), (finalsuite!=null?finalsuite.stypes:null));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1134:9: FINALLY COLON finalsuite= suite[true]
{
FINALLY164=(Token)match(input,FINALLY,FOLLOW_FINALLY_in_try_stmt3898); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FINALLY164_tree = (PythonTree)adaptor.create(FINALLY164);
adaptor.addChild(root_0, FINALLY164_tree);
}
COLON165=(Token)match(input,COLON,FOLLOW_COLON_in_try_stmt3900); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON165_tree = (PythonTree)adaptor.create(COLON165);
adaptor.addChild(root_0, COLON165_tree);
}
pushFollow(FOLLOW_suite_in_try_stmt3904);
finalsuite=suite(true);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, finalsuite.getTree());
if ( state.backtracking==0 ) {
stype = actions.makeTryFinally(TRY158, (trysuite!=null?trysuite.stypes:null), (finalsuite!=null?finalsuite.stypes:null));
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "try_stmt"
public static class with_stmt_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "with_stmt"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1142:1: with_stmt : WITH test[expr_contextType.Load] ( with_var )? COLON suite[false] ;
public final PythonParser.with_stmt_return with_stmt() throws RecognitionException {
PythonParser.with_stmt_return retval = new PythonParser.with_stmt_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token WITH166=null;
Token COLON169=null;
PythonParser.test_return test167 = null;
PythonParser.with_var_return with_var168 = null;
PythonParser.suite_return suite170 = null;
PythonTree WITH166_tree=null;
PythonTree COLON169_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1149:5: ( WITH test[expr_contextType.Load] ( with_var )? COLON suite[false] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1149:7: WITH test[expr_contextType.Load] ( with_var )? COLON suite[false]
{
root_0 = (PythonTree)adaptor.nil();
WITH166=(Token)match(input,WITH,FOLLOW_WITH_in_with_stmt3953); if (state.failed) return retval;
if ( state.backtracking==0 ) {
WITH166_tree = (PythonTree)adaptor.create(WITH166);
adaptor.addChild(root_0, WITH166_tree);
}
pushFollow(FOLLOW_test_in_with_stmt3955);
test167=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test167.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1149:40: ( with_var )?
int alt73=2;
int LA73_0 = input.LA(1);
if ( (LA73_0==NAME||LA73_0==AS) ) {
alt73=1;
}
switch (alt73) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1149:41: with_var
{
pushFollow(FOLLOW_with_var_in_with_stmt3959);
with_var168=with_var();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, with_var168.getTree());
}
break;
}
COLON169=(Token)match(input,COLON,FOLLOW_COLON_in_with_stmt3963); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON169_tree = (PythonTree)adaptor.create(COLON169);
adaptor.addChild(root_0, COLON169_tree);
}
pushFollow(FOLLOW_suite_in_with_stmt3965);
suite170=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, suite170.getTree());
if ( state.backtracking==0 ) {
stype = new With(WITH166, actions.castExpr((test167!=null?((PythonTree)test167.tree):null)), (with_var168!=null?with_var168.etype:null),
actions.castStmts((suite170!=null?suite170.stypes:null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "with_stmt"
public static class with_var_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "with_var"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1157:1: with_var returns [expr etype] : ( AS | NAME ) expr[expr_contextType.Store] ;
public final PythonParser.with_var_return with_var() throws RecognitionException {
PythonParser.with_var_return retval = new PythonParser.with_var_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token set171=null;
PythonParser.expr_return expr172 = null;
PythonTree set171_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1159:5: ( ( AS | NAME ) expr[expr_contextType.Store] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1159:7: ( AS | NAME ) expr[expr_contextType.Store]
{
root_0 = (PythonTree)adaptor.nil();
set171=(Token)input.LT(1);
if ( input.LA(1)==NAME||input.LA(1)==AS ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (PythonTree)adaptor.create(set171));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_expr_in_with_var4008);
expr172=expr(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr172.getTree());
if ( state.backtracking==0 ) {
retval.etype = actions.castExpr((expr172!=null?((PythonTree)expr172.tree):null));
actions.checkAssign(retval.etype);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "with_var"
public static class except_clause_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "except_clause"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1167:1: except_clause : EXCEPT (t1= test[expr_contextType.Load] ( ( COMMA | AS ) t2= test[expr_contextType.Store] )? )? COLON suite[!$suite.isEmpty() && $suite::continueIllegal] ;
public final PythonParser.except_clause_return except_clause() throws RecognitionException {
PythonParser.except_clause_return retval = new PythonParser.except_clause_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token EXCEPT173=null;
Token set174=null;
Token COLON175=null;
PythonParser.test_return t1 = null;
PythonParser.test_return t2 = null;
PythonParser.suite_return suite176 = null;
PythonTree EXCEPT173_tree=null;
PythonTree set174_tree=null;
PythonTree COLON175_tree=null;
excepthandler extype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:5: ( EXCEPT (t1= test[expr_contextType.Load] ( ( COMMA | AS ) t2= test[expr_contextType.Store] )? )? COLON suite[!$suite.isEmpty() && $suite::continueIllegal] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:7: EXCEPT (t1= test[expr_contextType.Load] ( ( COMMA | AS ) t2= test[expr_contextType.Store] )? )? COLON suite[!$suite.isEmpty() && $suite::continueIllegal]
{
root_0 = (PythonTree)adaptor.nil();
EXCEPT173=(Token)match(input,EXCEPT,FOLLOW_EXCEPT_in_except_clause4045); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EXCEPT173_tree = (PythonTree)adaptor.create(EXCEPT173);
adaptor.addChild(root_0, EXCEPT173_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:14: (t1= test[expr_contextType.Load] ( ( COMMA | AS ) t2= test[expr_contextType.Store] )? )?
int alt75=2;
int LA75_0 = input.LA(1);
if ( (LA75_0==NAME||(LA75_0>=LAMBDA && LA75_0<=NOT)||LA75_0==LPAREN||(LA75_0>=PLUS && LA75_0<=MINUS)||(LA75_0>=TILDE && LA75_0<=LBRACK)||LA75_0==LCURLY||(LA75_0>=BACKQUOTE && LA75_0<=STRING)) ) {
alt75=1;
}
switch (alt75) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:15: t1= test[expr_contextType.Load] ( ( COMMA | AS ) t2= test[expr_contextType.Store] )?
{
pushFollow(FOLLOW_test_in_except_clause4050);
t1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:46: ( ( COMMA | AS ) t2= test[expr_contextType.Store] )?
int alt74=2;
int LA74_0 = input.LA(1);
if ( (LA74_0==AS||LA74_0==COMMA) ) {
alt74=1;
}
switch (alt74) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1174:47: ( COMMA | AS ) t2= test[expr_contextType.Store]
{
set174=(Token)input.LT(1);
if ( input.LA(1)==AS||input.LA(1)==COMMA ) {
input.consume();
if ( state.backtracking==0 ) adaptor.addChild(root_0, (PythonTree)adaptor.create(set174));
state.errorRecovery=false;state.failed=false;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
pushFollow(FOLLOW_test_in_except_clause4064);
t2=test(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
}
break;
}
}
break;
}
COLON175=(Token)match(input,COLON,FOLLOW_COLON_in_except_clause4071); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON175_tree = (PythonTree)adaptor.create(COLON175);
adaptor.addChild(root_0, COLON175_tree);
}
pushFollow(FOLLOW_suite_in_except_clause4073);
suite176=suite(!suite_stack.isEmpty() && ((suite_scope)suite_stack.peek()).continueIllegal);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, suite176.getTree());
if ( state.backtracking==0 ) {
extype = new ExceptHandler(EXCEPT173, actions.castExpr((t1!=null?((PythonTree)t1.tree):null)), actions.castExpr((t2!=null?((PythonTree)t2.tree):null)),
actions.castStmts((suite176!=null?suite176.stypes:null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = extype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "except_clause"
protected static class suite_scope {
boolean continueIllegal;
}
protected Stack suite_stack = new Stack();
public static class suite_return extends ParserRuleReturnScope {
public List stypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "suite"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1182:1: suite[boolean fromFinally] returns [List stypes] : ( simple_stmt | NEWLINE INDENT ( stmt )+ DEDENT );
public final PythonParser.suite_return suite(boolean fromFinally) throws RecognitionException {
suite_stack.push(new suite_scope());
PythonParser.suite_return retval = new PythonParser.suite_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NEWLINE178=null;
Token INDENT179=null;
Token DEDENT181=null;
PythonParser.simple_stmt_return simple_stmt177 = null;
PythonParser.stmt_return stmt180 = null;
PythonTree NEWLINE178_tree=null;
PythonTree INDENT179_tree=null;
PythonTree DEDENT181_tree=null;
if (((suite_scope)suite_stack.peek()).continueIllegal || fromFinally) {
((suite_scope)suite_stack.peek()).continueIllegal = true;
} else {
((suite_scope)suite_stack.peek()).continueIllegal = false;
}
retval.stypes = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1195:5: ( simple_stmt | NEWLINE INDENT ( stmt )+ DEDENT )
int alt77=2;
int LA77_0 = input.LA(1);
if ( (LA77_0==NAME||(LA77_0>=ASSERT && LA77_0<=BREAK)||LA77_0==CONTINUE||LA77_0==DELETE||LA77_0==EXEC||LA77_0==FROM||LA77_0==GLOBAL||LA77_0==IMPORT||(LA77_0>=LAMBDA && LA77_0<=NOT)||(LA77_0>=PASS && LA77_0<=RETURN)||LA77_0==YIELD||LA77_0==LPAREN||(LA77_0>=PLUS && LA77_0<=MINUS)||(LA77_0>=TILDE && LA77_0<=LBRACK)||LA77_0==LCURLY||(LA77_0>=BACKQUOTE && LA77_0<=STRING)) ) {
alt77=1;
}
else if ( (LA77_0==NEWLINE) ) {
alt77=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 77, 0, input);
throw nvae;
}
switch (alt77) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1195:7: simple_stmt
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_simple_stmt_in_suite4119);
simple_stmt177=simple_stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, simple_stmt177.getTree());
if ( state.backtracking==0 ) {
retval.stypes = (simple_stmt177!=null?simple_stmt177.stypes:null);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1199:7: NEWLINE INDENT ( stmt )+ DEDENT
{
root_0 = (PythonTree)adaptor.nil();
NEWLINE178=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_suite4135); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NEWLINE178_tree = (PythonTree)adaptor.create(NEWLINE178);
adaptor.addChild(root_0, NEWLINE178_tree);
}
INDENT179=(Token)match(input,INDENT,FOLLOW_INDENT_in_suite4137); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INDENT179_tree = (PythonTree)adaptor.create(INDENT179);
adaptor.addChild(root_0, INDENT179_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1200:7: ( stmt )+
int cnt76=0;
loop76:
do {
int alt76=2;
int LA76_0 = input.LA(1);
if ( (LA76_0==NAME||(LA76_0>=ASSERT && LA76_0<=DELETE)||LA76_0==EXEC||(LA76_0>=FROM && LA76_0<=IMPORT)||(LA76_0>=LAMBDA && LA76_0<=NOT)||(LA76_0>=PASS && LA76_0<=LPAREN)||(LA76_0>=PLUS && LA76_0<=MINUS)||(LA76_0>=TILDE && LA76_0<=LBRACK)||LA76_0==LCURLY||(LA76_0>=BACKQUOTE && LA76_0<=STRING)) ) {
alt76=1;
}
switch (alt76) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1200:8: stmt
{
pushFollow(FOLLOW_stmt_in_suite4146);
stmt180=stmt();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, stmt180.getTree());
if ( state.backtracking==0 ) {
if ((stmt180!=null?stmt180.stypes:null) != null) {
retval.stypes.addAll((stmt180!=null?stmt180.stypes:null));
}
}
}
break;
default :
if ( cnt76 >= 1 ) break loop76;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(76, input);
throw eee;
}
cnt76++;
} while (true);
DEDENT181=(Token)match(input,DEDENT,FOLLOW_DEDENT_in_suite4166); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DEDENT181_tree = (PythonTree)adaptor.create(DEDENT181);
adaptor.addChild(root_0, DEDENT181_tree);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
suite_stack.pop();
}
return retval;
}
// $ANTLR end "suite"
public static class test_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "test"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1210:1: test[expr_contextType ctype] : (o1= or_test[ctype] ( ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load] | -> or_test ) | lambdef );
public final PythonParser.test_return test(expr_contextType ctype) throws RecognitionException {
PythonParser.test_return retval = new PythonParser.test_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token IF182=null;
Token ORELSE183=null;
PythonParser.or_test_return o1 = null;
PythonParser.or_test_return o2 = null;
PythonParser.test_return e = null;
PythonParser.lambdef_return lambdef184 = null;
PythonTree IF182_tree=null;
PythonTree ORELSE183_tree=null;
RewriteRuleTokenStream stream_ORELSE=new RewriteRuleTokenStream(adaptor,"token ORELSE");
RewriteRuleTokenStream stream_IF=new RewriteRuleTokenStream(adaptor,"token IF");
RewriteRuleSubtreeStream stream_test=new RewriteRuleSubtreeStream(adaptor,"rule test");
RewriteRuleSubtreeStream stream_or_test=new RewriteRuleSubtreeStream(adaptor,"rule or_test");
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1219:5: (o1= or_test[ctype] ( ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load] | -> or_test ) | lambdef )
int alt79=2;
int LA79_0 = input.LA(1);
if ( (LA79_0==NAME||LA79_0==NOT||LA79_0==LPAREN||(LA79_0>=PLUS && LA79_0<=MINUS)||(LA79_0>=TILDE && LA79_0<=LBRACK)||LA79_0==LCURLY||(LA79_0>=BACKQUOTE && LA79_0<=STRING)) ) {
alt79=1;
}
else if ( (LA79_0==LAMBDA) ) {
alt79=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 79, 0, input);
throw nvae;
}
switch (alt79) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1219:6: o1= or_test[ctype] ( ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load] | -> or_test )
{
pushFollow(FOLLOW_or_test_in_test4196);
o1=or_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_or_test.add(o1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1220:7: ( ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load] | -> or_test )
int alt78=2;
alt78 = dfa78.predict(input);
switch (alt78) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1220:9: ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load]
{
IF182=(Token)match(input,IF,FOLLOW_IF_in_test4218); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_IF.add(IF182);
pushFollow(FOLLOW_or_test_in_test4222);
o2=or_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_or_test.add(o2.getTree());
ORELSE183=(Token)match(input,ORELSE,FOLLOW_ORELSE_in_test4225); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_ORELSE.add(ORELSE183);
pushFollow(FOLLOW_test_in_test4229);
e=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_test.add(e.getTree());
if ( state.backtracking==0 ) {
etype = new IfExp((o1!=null?((Token)o1.start):null), actions.castExpr((o2!=null?((PythonTree)o2.tree):null)), actions.castExpr((o1!=null?((PythonTree)o1.tree):null)), actions.castExpr((e!=null?((PythonTree)e.tree):null)));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1225:6:
{
// AST REWRITE
// elements: or_test
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1225:6: -> or_test
{
adaptor.addChild(root_0, stream_or_test.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1227:7: lambdef
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_lambdef_in_test4274);
lambdef184=lambdef();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lambdef184.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "test"
public static class or_test_return extends ParserRuleReturnScope {
public Token leftTok;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "or_test"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1231:1: or_test[expr_contextType ctype] returns [Token leftTok] : left= and_test[ctype] ( (or= OR right+= and_test[ctype] )+ | -> $left) ;
public final PythonParser.or_test_return or_test(expr_contextType ctype) throws RecognitionException {
PythonParser.or_test_return retval = new PythonParser.or_test_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token or=null;
List list_right=null;
PythonParser.and_test_return left = null;
PythonParser.and_test_return right = null;
right = null;
PythonTree or_tree=null;
RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
RewriteRuleSubtreeStream stream_and_test=new RewriteRuleSubtreeStream(adaptor,"rule and_test");
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1242:5: (left= and_test[ctype] ( (or= OR right+= and_test[ctype] )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1242:7: left= and_test[ctype] ( (or= OR right+= and_test[ctype] )+ | -> $left)
{
pushFollow(FOLLOW_and_test_in_or_test4309);
left=and_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_and_test.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1243:9: ( (or= OR right+= and_test[ctype] )+ | -> $left)
int alt81=2;
int LA81_0 = input.LA(1);
if ( (LA81_0==OR) ) {
alt81=1;
}
else if ( (LA81_0==EOF||LA81_0==NEWLINE||LA81_0==NAME||LA81_0==AS||LA81_0==FOR||LA81_0==IF||LA81_0==ORELSE||(LA81_0>=RPAREN && LA81_0<=COMMA)||(LA81_0>=SEMI && LA81_0<=DOUBLESLASHEQUAL)||LA81_0==RBRACK||(LA81_0>=RCURLY && LA81_0<=BACKQUOTE)) ) {
alt81=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 81, 0, input);
throw nvae;
}
switch (alt81) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1243:11: (or= OR right+= and_test[ctype] )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1243:11: (or= OR right+= and_test[ctype] )+
int cnt80=0;
loop80:
do {
int alt80=2;
int LA80_0 = input.LA(1);
if ( (LA80_0==OR) ) {
alt80=1;
}
switch (alt80) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1243:12: or= OR right+= and_test[ctype]
{
or=(Token)match(input,OR,FOLLOW_OR_in_or_test4325); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_OR.add(or);
pushFollow(FOLLOW_and_test_in_or_test4329);
right=and_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_and_test.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
}
break;
default :
if ( cnt80 >= 1 ) break loop80;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(80, input);
throw eee;
}
cnt80++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1246:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1246:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (or != null) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.leftTok:null) != null) {
tok = (left!=null?left.leftTok:null);
}
retval.tree = actions.makeBoolOp(tok, (left!=null?((PythonTree)left.tree):null), boolopType.Or, list_right);
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "or_test"
public static class and_test_return extends ParserRuleReturnScope {
public Token leftTok;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "and_test"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1251:1: and_test[expr_contextType ctype] returns [Token leftTok] : left= not_test[ctype] ( (and= AND right+= not_test[ctype] )+ | -> $left) ;
public final PythonParser.and_test_return and_test(expr_contextType ctype) throws RecognitionException {
PythonParser.and_test_return retval = new PythonParser.and_test_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token and=null;
List list_right=null;
PythonParser.not_test_return left = null;
PythonParser.not_test_return right = null;
right = null;
PythonTree and_tree=null;
RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
RewriteRuleSubtreeStream stream_not_test=new RewriteRuleSubtreeStream(adaptor,"rule not_test");
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1262:5: (left= not_test[ctype] ( (and= AND right+= not_test[ctype] )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1262:7: left= not_test[ctype] ( (and= AND right+= not_test[ctype] )+ | -> $left)
{
pushFollow(FOLLOW_not_test_in_and_test4410);
left=not_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_not_test.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1263:9: ( (and= AND right+= not_test[ctype] )+ | -> $left)
int alt83=2;
int LA83_0 = input.LA(1);
if ( (LA83_0==AND) ) {
alt83=1;
}
else if ( (LA83_0==EOF||LA83_0==NEWLINE||LA83_0==NAME||LA83_0==AS||LA83_0==FOR||LA83_0==IF||(LA83_0>=OR && LA83_0<=ORELSE)||(LA83_0>=RPAREN && LA83_0<=COMMA)||(LA83_0>=SEMI && LA83_0<=DOUBLESLASHEQUAL)||LA83_0==RBRACK||(LA83_0>=RCURLY && LA83_0<=BACKQUOTE)) ) {
alt83=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 83, 0, input);
throw nvae;
}
switch (alt83) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1263:11: (and= AND right+= not_test[ctype] )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1263:11: (and= AND right+= not_test[ctype] )+
int cnt82=0;
loop82:
do {
int alt82=2;
int LA82_0 = input.LA(1);
if ( (LA82_0==AND) ) {
alt82=1;
}
switch (alt82) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1263:12: and= AND right+= not_test[ctype]
{
and=(Token)match(input,AND,FOLLOW_AND_in_and_test4426); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AND.add(and);
pushFollow(FOLLOW_not_test_in_and_test4430);
right=not_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_not_test.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
}
break;
default :
if ( cnt82 >= 1 ) break loop82;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(82, input);
throw eee;
}
cnt82++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1266:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1266:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (and != null) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.leftTok:null) != null) {
tok = (left!=null?left.leftTok:null);
}
retval.tree = actions.makeBoolOp(tok, (left!=null?((PythonTree)left.tree):null), boolopType.And, list_right);
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "and_test"
public static class not_test_return extends ParserRuleReturnScope {
public Token leftTok;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "not_test"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1271:1: not_test[expr_contextType ctype] returns [Token leftTok] : ( NOT nt= not_test[ctype] | comparison[ctype] );
public final PythonParser.not_test_return not_test(expr_contextType ctype) throws RecognitionException {
PythonParser.not_test_return retval = new PythonParser.not_test_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token NOT185=null;
PythonParser.not_test_return nt = null;
PythonParser.comparison_return comparison186 = null;
PythonTree NOT185_tree=null;
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1281:5: ( NOT nt= not_test[ctype] | comparison[ctype] )
int alt84=2;
int LA84_0 = input.LA(1);
if ( (LA84_0==NOT) ) {
alt84=1;
}
else if ( (LA84_0==NAME||LA84_0==LPAREN||(LA84_0>=PLUS && LA84_0<=MINUS)||(LA84_0>=TILDE && LA84_0<=LBRACK)||LA84_0==LCURLY||(LA84_0>=BACKQUOTE && LA84_0<=STRING)) ) {
alt84=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 84, 0, input);
throw nvae;
}
switch (alt84) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1281:7: NOT nt= not_test[ctype]
{
root_0 = (PythonTree)adaptor.nil();
NOT185=(Token)match(input,NOT,FOLLOW_NOT_in_not_test4514); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT185_tree = (PythonTree)adaptor.create(NOT185);
adaptor.addChild(root_0, NOT185_tree);
}
pushFollow(FOLLOW_not_test_in_not_test4518);
nt=not_test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, nt.getTree());
if ( state.backtracking==0 ) {
etype = new UnaryOp(NOT185, unaryopType.Not, actions.castExpr((nt!=null?((PythonTree)nt.tree):null)));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1285:7: comparison[ctype]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_comparison_in_not_test4535);
comparison186=comparison(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, comparison186.getTree());
if ( state.backtracking==0 ) {
retval.leftTok = (comparison186!=null?comparison186.leftTok:null);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "not_test"
public static class comparison_return extends ParserRuleReturnScope {
public Token leftTok;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "comparison"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1292:1: comparison[expr_contextType ctype] returns [Token leftTok] : left= expr[ctype] ( ( comp_op right+= expr[ctype] )+ | -> $left) ;
public final PythonParser.comparison_return comparison(expr_contextType ctype) throws RecognitionException {
PythonParser.comparison_return retval = new PythonParser.comparison_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
List list_right=null;
PythonParser.expr_return left = null;
PythonParser.comp_op_return comp_op187 = null;
PythonParser.expr_return right = null;
right = null;
RewriteRuleSubtreeStream stream_expr=new RewriteRuleSubtreeStream(adaptor,"rule expr");
RewriteRuleSubtreeStream stream_comp_op=new RewriteRuleSubtreeStream(adaptor,"rule comp_op");
List cmps = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1304:5: (left= expr[ctype] ( ( comp_op right+= expr[ctype] )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1304:7: left= expr[ctype] ( ( comp_op right+= expr[ctype] )+ | -> $left)
{
pushFollow(FOLLOW_expr_in_comparison4584);
left=expr(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1305:8: ( ( comp_op right+= expr[ctype] )+ | -> $left)
int alt86=2;
int LA86_0 = input.LA(1);
if ( ((LA86_0>=IN && LA86_0<=IS)||LA86_0==NOT||(LA86_0>=LESS && LA86_0<=NOTEQUAL)) ) {
alt86=1;
}
else if ( (LA86_0==EOF||LA86_0==NEWLINE||LA86_0==NAME||(LA86_0>=AND && LA86_0<=AS)||LA86_0==FOR||LA86_0==IF||(LA86_0>=OR && LA86_0<=ORELSE)||(LA86_0>=RPAREN && LA86_0<=COMMA)||(LA86_0>=SEMI && LA86_0<=DOUBLESLASHEQUAL)||LA86_0==RBRACK||(LA86_0>=RCURLY && LA86_0<=BACKQUOTE)) ) {
alt86=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 86, 0, input);
throw nvae;
}
switch (alt86) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1305:10: ( comp_op right+= expr[ctype] )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1305:10: ( comp_op right+= expr[ctype] )+
int cnt85=0;
loop85:
do {
int alt85=2;
int LA85_0 = input.LA(1);
if ( ((LA85_0>=IN && LA85_0<=IS)||LA85_0==NOT||(LA85_0>=LESS && LA85_0<=NOTEQUAL)) ) {
alt85=1;
}
switch (alt85) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1305:12: comp_op right+= expr[ctype]
{
pushFollow(FOLLOW_comp_op_in_comparison4598);
comp_op187=comp_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_comp_op.add(comp_op187.getTree());
pushFollow(FOLLOW_expr_in_comparison4602);
right=expr(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_expr.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
if ( state.backtracking==0 ) {
cmps.add((comp_op187!=null?comp_op187.op:null));
}
}
break;
default :
if ( cnt85 >= 1 ) break loop85;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(85, input);
throw eee;
}
cnt85++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1311:7:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1311:7: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.leftTok = (left!=null?left.leftTok:null);
if (!cmps.isEmpty()) {
retval.tree = new Compare((left!=null?((Token)left.start):null), actions.castExpr((left!=null?((PythonTree)left.tree):null)), actions.makeCmpOps(cmps),
actions.castExprs(list_right));
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "comparison"
public static class comp_op_return extends ParserRuleReturnScope {
public cmpopType op;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "comp_op"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1316:1: comp_op returns [cmpopType op] : ( LESS | GREATER | EQUAL | GREATEREQUAL | LESSEQUAL | ALT_NOTEQUAL | NOTEQUAL | IN | NOT IN | IS | IS NOT );
public final PythonParser.comp_op_return comp_op() throws RecognitionException {
PythonParser.comp_op_return retval = new PythonParser.comp_op_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LESS188=null;
Token GREATER189=null;
Token EQUAL190=null;
Token GREATEREQUAL191=null;
Token LESSEQUAL192=null;
Token ALT_NOTEQUAL193=null;
Token NOTEQUAL194=null;
Token IN195=null;
Token NOT196=null;
Token IN197=null;
Token IS198=null;
Token IS199=null;
Token NOT200=null;
PythonTree LESS188_tree=null;
PythonTree GREATER189_tree=null;
PythonTree EQUAL190_tree=null;
PythonTree GREATEREQUAL191_tree=null;
PythonTree LESSEQUAL192_tree=null;
PythonTree ALT_NOTEQUAL193_tree=null;
PythonTree NOTEQUAL194_tree=null;
PythonTree IN195_tree=null;
PythonTree NOT196_tree=null;
PythonTree IN197_tree=null;
PythonTree IS198_tree=null;
PythonTree IS199_tree=null;
PythonTree NOT200_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1318:5: ( LESS | GREATER | EQUAL | GREATEREQUAL | LESSEQUAL | ALT_NOTEQUAL | NOTEQUAL | IN | NOT IN | IS | IS NOT )
int alt87=11;
alt87 = dfa87.predict(input);
switch (alt87) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1318:7: LESS
{
root_0 = (PythonTree)adaptor.nil();
LESS188=(Token)match(input,LESS,FOLLOW_LESS_in_comp_op4683); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LESS188_tree = (PythonTree)adaptor.create(LESS188);
adaptor.addChild(root_0, LESS188_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.Lt;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1322:7: GREATER
{
root_0 = (PythonTree)adaptor.nil();
GREATER189=(Token)match(input,GREATER,FOLLOW_GREATER_in_comp_op4699); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GREATER189_tree = (PythonTree)adaptor.create(GREATER189);
adaptor.addChild(root_0, GREATER189_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.Gt;
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1326:7: EQUAL
{
root_0 = (PythonTree)adaptor.nil();
EQUAL190=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_comp_op4715); if (state.failed) return retval;
if ( state.backtracking==0 ) {
EQUAL190_tree = (PythonTree)adaptor.create(EQUAL190);
adaptor.addChild(root_0, EQUAL190_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.Eq;
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1330:7: GREATEREQUAL
{
root_0 = (PythonTree)adaptor.nil();
GREATEREQUAL191=(Token)match(input,GREATEREQUAL,FOLLOW_GREATEREQUAL_in_comp_op4731); if (state.failed) return retval;
if ( state.backtracking==0 ) {
GREATEREQUAL191_tree = (PythonTree)adaptor.create(GREATEREQUAL191);
adaptor.addChild(root_0, GREATEREQUAL191_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.GtE;
}
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1334:7: LESSEQUAL
{
root_0 = (PythonTree)adaptor.nil();
LESSEQUAL192=(Token)match(input,LESSEQUAL,FOLLOW_LESSEQUAL_in_comp_op4747); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LESSEQUAL192_tree = (PythonTree)adaptor.create(LESSEQUAL192);
adaptor.addChild(root_0, LESSEQUAL192_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.LtE;
}
}
break;
case 6 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1338:7: ALT_NOTEQUAL
{
root_0 = (PythonTree)adaptor.nil();
ALT_NOTEQUAL193=(Token)match(input,ALT_NOTEQUAL,FOLLOW_ALT_NOTEQUAL_in_comp_op4763); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ALT_NOTEQUAL193_tree = (PythonTree)adaptor.create(ALT_NOTEQUAL193);
adaptor.addChild(root_0, ALT_NOTEQUAL193_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.NotEq;
}
}
break;
case 7 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1342:7: NOTEQUAL
{
root_0 = (PythonTree)adaptor.nil();
NOTEQUAL194=(Token)match(input,NOTEQUAL,FOLLOW_NOTEQUAL_in_comp_op4779); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOTEQUAL194_tree = (PythonTree)adaptor.create(NOTEQUAL194);
adaptor.addChild(root_0, NOTEQUAL194_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.NotEq;
}
}
break;
case 8 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1346:7: IN
{
root_0 = (PythonTree)adaptor.nil();
IN195=(Token)match(input,IN,FOLLOW_IN_in_comp_op4795); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN195_tree = (PythonTree)adaptor.create(IN195);
adaptor.addChild(root_0, IN195_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.In;
}
}
break;
case 9 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1350:7: NOT IN
{
root_0 = (PythonTree)adaptor.nil();
NOT196=(Token)match(input,NOT,FOLLOW_NOT_in_comp_op4811); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT196_tree = (PythonTree)adaptor.create(NOT196);
adaptor.addChild(root_0, NOT196_tree);
}
IN197=(Token)match(input,IN,FOLLOW_IN_in_comp_op4813); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN197_tree = (PythonTree)adaptor.create(IN197);
adaptor.addChild(root_0, IN197_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.NotIn;
}
}
break;
case 10 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1354:7: IS
{
root_0 = (PythonTree)adaptor.nil();
IS198=(Token)match(input,IS,FOLLOW_IS_in_comp_op4829); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IS198_tree = (PythonTree)adaptor.create(IS198);
adaptor.addChild(root_0, IS198_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.Is;
}
}
break;
case 11 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1358:7: IS NOT
{
root_0 = (PythonTree)adaptor.nil();
IS199=(Token)match(input,IS,FOLLOW_IS_in_comp_op4845); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IS199_tree = (PythonTree)adaptor.create(IS199);
adaptor.addChild(root_0, IS199_tree);
}
NOT200=(Token)match(input,NOT,FOLLOW_NOT_in_comp_op4847); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NOT200_tree = (PythonTree)adaptor.create(NOT200);
adaptor.addChild(root_0, NOT200_tree);
}
if ( state.backtracking==0 ) {
retval.op = cmpopType.IsNot;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "comp_op"
protected static class expr_scope {
expr_contextType ctype;
}
protected Stack expr_stack = new Stack();
public static class expr_return extends ParserRuleReturnScope {
public Token leftTok;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1365:1: expr[expr_contextType ect] returns [Token leftTok] : left= xor_expr ( (op= VBAR right+= xor_expr )+ | -> $left) ;
public final PythonParser.expr_return expr(expr_contextType ect) throws RecognitionException {
expr_stack.push(new expr_scope());
PythonParser.expr_return retval = new PythonParser.expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token op=null;
List list_right=null;
PythonParser.xor_expr_return left = null;
PythonParser.xor_expr_return right = null;
right = null;
PythonTree op_tree=null;
RewriteRuleTokenStream stream_VBAR=new RewriteRuleTokenStream(adaptor,"token VBAR");
RewriteRuleSubtreeStream stream_xor_expr=new RewriteRuleSubtreeStream(adaptor,"rule xor_expr");
((expr_scope)expr_stack.peek()).ctype = ect;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1383:5: (left= xor_expr ( (op= VBAR right+= xor_expr )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1383:7: left= xor_expr ( (op= VBAR right+= xor_expr )+ | -> $left)
{
pushFollow(FOLLOW_xor_expr_in_expr4899);
left=xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_xor_expr.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1384:9: ( (op= VBAR right+= xor_expr )+ | -> $left)
int alt89=2;
int LA89_0 = input.LA(1);
if ( (LA89_0==VBAR) ) {
alt89=1;
}
else if ( (LA89_0==EOF||LA89_0==NEWLINE||LA89_0==NAME||(LA89_0>=AND && LA89_0<=AS)||LA89_0==FOR||LA89_0==IF||(LA89_0>=IN && LA89_0<=IS)||(LA89_0>=NOT && LA89_0<=ORELSE)||(LA89_0>=RPAREN && LA89_0<=COMMA)||(LA89_0>=SEMI && LA89_0<=DOUBLESLASHEQUAL)||(LA89_0>=LESS && LA89_0<=NOTEQUAL)||LA89_0==RBRACK||(LA89_0>=RCURLY && LA89_0<=BACKQUOTE)) ) {
alt89=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 89, 0, input);
throw nvae;
}
switch (alt89) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1384:11: (op= VBAR right+= xor_expr )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1384:11: (op= VBAR right+= xor_expr )+
int cnt88=0;
loop88:
do {
int alt88=2;
int LA88_0 = input.LA(1);
if ( (LA88_0==VBAR) ) {
alt88=1;
}
switch (alt88) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1384:12: op= VBAR right+= xor_expr
{
op=(Token)match(input,VBAR,FOLLOW_VBAR_in_expr4914); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_VBAR.add(op);
pushFollow(FOLLOW_xor_expr_in_expr4918);
right=xor_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_xor_expr.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
}
break;
default :
if ( cnt88 >= 1 ) break loop88;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(88, input);
throw eee;
}
cnt88++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1387:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1387:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.leftTok = (left!=null?left.lparen:null);
if (op != null) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), operatorType.BitOr, list_right);
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
expr_stack.pop();
}
return retval;
}
// $ANTLR end "expr"
public static class xor_expr_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "xor_expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1393:1: xor_expr returns [Token lparen = null] : left= and_expr ( (op= CIRCUMFLEX right+= and_expr )+ | -> $left) ;
public final PythonParser.xor_expr_return xor_expr() throws RecognitionException {
PythonParser.xor_expr_return retval = new PythonParser.xor_expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token op=null;
List list_right=null;
PythonParser.and_expr_return left = null;
PythonParser.and_expr_return right = null;
right = null;
PythonTree op_tree=null;
RewriteRuleTokenStream stream_CIRCUMFLEX=new RewriteRuleTokenStream(adaptor,"token CIRCUMFLEX");
RewriteRuleSubtreeStream stream_and_expr=new RewriteRuleSubtreeStream(adaptor,"rule and_expr");
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1405:5: (left= and_expr ( (op= CIRCUMFLEX right+= and_expr )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1405:7: left= and_expr ( (op= CIRCUMFLEX right+= and_expr )+ | -> $left)
{
pushFollow(FOLLOW_and_expr_in_xor_expr4997);
left=and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_and_expr.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1406:9: ( (op= CIRCUMFLEX right+= and_expr )+ | -> $left)
int alt91=2;
int LA91_0 = input.LA(1);
if ( (LA91_0==CIRCUMFLEX) ) {
alt91=1;
}
else if ( (LA91_0==EOF||LA91_0==NEWLINE||LA91_0==NAME||(LA91_0>=AND && LA91_0<=AS)||LA91_0==FOR||LA91_0==IF||(LA91_0>=IN && LA91_0<=IS)||(LA91_0>=NOT && LA91_0<=ORELSE)||(LA91_0>=RPAREN && LA91_0<=COMMA)||(LA91_0>=SEMI && LA91_0<=DOUBLESLASHEQUAL)||(LA91_0>=LESS && LA91_0<=VBAR)||LA91_0==RBRACK||(LA91_0>=RCURLY && LA91_0<=BACKQUOTE)) ) {
alt91=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 91, 0, input);
throw nvae;
}
switch (alt91) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1406:11: (op= CIRCUMFLEX right+= and_expr )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1406:11: (op= CIRCUMFLEX right+= and_expr )+
int cnt90=0;
loop90:
do {
int alt90=2;
int LA90_0 = input.LA(1);
if ( (LA90_0==CIRCUMFLEX) ) {
alt90=1;
}
switch (alt90) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1406:12: op= CIRCUMFLEX right+= and_expr
{
op=(Token)match(input,CIRCUMFLEX,FOLLOW_CIRCUMFLEX_in_xor_expr5012); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_CIRCUMFLEX.add(op);
pushFollow(FOLLOW_and_expr_in_xor_expr5016);
right=and_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_and_expr.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
}
break;
default :
if ( cnt90 >= 1 ) break loop90;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(90, input);
throw eee;
}
cnt90++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1409:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1409:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (op != null) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), operatorType.BitXor, list_right);
}
retval.lparen = (left!=null?left.lparen:null);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "xor_expr"
public static class and_expr_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "and_expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1414:1: and_expr returns [Token lparen = null] : left= shift_expr ( (op= AMPER right+= shift_expr )+ | -> $left) ;
public final PythonParser.and_expr_return and_expr() throws RecognitionException {
PythonParser.and_expr_return retval = new PythonParser.and_expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token op=null;
List list_right=null;
PythonParser.shift_expr_return left = null;
PythonParser.shift_expr_return right = null;
right = null;
PythonTree op_tree=null;
RewriteRuleTokenStream stream_AMPER=new RewriteRuleTokenStream(adaptor,"token AMPER");
RewriteRuleSubtreeStream stream_shift_expr=new RewriteRuleSubtreeStream(adaptor,"rule shift_expr");
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1426:5: (left= shift_expr ( (op= AMPER right+= shift_expr )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1426:7: left= shift_expr ( (op= AMPER right+= shift_expr )+ | -> $left)
{
pushFollow(FOLLOW_shift_expr_in_and_expr5094);
left=shift_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shift_expr.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1427:9: ( (op= AMPER right+= shift_expr )+ | -> $left)
int alt93=2;
int LA93_0 = input.LA(1);
if ( (LA93_0==AMPER) ) {
alt93=1;
}
else if ( (LA93_0==EOF||LA93_0==NEWLINE||LA93_0==NAME||(LA93_0>=AND && LA93_0<=AS)||LA93_0==FOR||LA93_0==IF||(LA93_0>=IN && LA93_0<=IS)||(LA93_0>=NOT && LA93_0<=ORELSE)||(LA93_0>=RPAREN && LA93_0<=COMMA)||(LA93_0>=SEMI && LA93_0<=DOUBLESLASHEQUAL)||(LA93_0>=LESS && LA93_0<=CIRCUMFLEX)||LA93_0==RBRACK||(LA93_0>=RCURLY && LA93_0<=BACKQUOTE)) ) {
alt93=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 93, 0, input);
throw nvae;
}
switch (alt93) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1427:11: (op= AMPER right+= shift_expr )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1427:11: (op= AMPER right+= shift_expr )+
int cnt92=0;
loop92:
do {
int alt92=2;
int LA92_0 = input.LA(1);
if ( (LA92_0==AMPER) ) {
alt92=1;
}
switch (alt92) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1427:12: op= AMPER right+= shift_expr
{
op=(Token)match(input,AMPER,FOLLOW_AMPER_in_and_expr5109); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_AMPER.add(op);
pushFollow(FOLLOW_shift_expr_in_and_expr5113);
right=shift_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shift_expr.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
}
break;
default :
if ( cnt92 >= 1 ) break loop92;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(92, input);
throw eee;
}
cnt92++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1430:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1430:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (op != null) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), operatorType.BitAnd, list_right);
}
retval.lparen = (left!=null?left.lparen:null);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "and_expr"
public static class shift_expr_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "shift_expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1435:1: shift_expr returns [Token lparen = null] : left= arith_expr ( ( shift_op right+= arith_expr )+ | -> $left) ;
public final PythonParser.shift_expr_return shift_expr() throws RecognitionException {
PythonParser.shift_expr_return retval = new PythonParser.shift_expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
List list_right=null;
PythonParser.arith_expr_return left = null;
PythonParser.shift_op_return shift_op201 = null;
PythonParser.arith_expr_return right = null;
right = null;
RewriteRuleSubtreeStream stream_arith_expr=new RewriteRuleSubtreeStream(adaptor,"rule arith_expr");
RewriteRuleSubtreeStream stream_shift_op=new RewriteRuleSubtreeStream(adaptor,"rule shift_op");
List ops = new ArrayList();
List toks = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1451:5: (left= arith_expr ( ( shift_op right+= arith_expr )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1451:7: left= arith_expr ( ( shift_op right+= arith_expr )+ | -> $left)
{
pushFollow(FOLLOW_arith_expr_in_shift_expr5196);
left=arith_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arith_expr.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1452:9: ( ( shift_op right+= arith_expr )+ | -> $left)
int alt95=2;
int LA95_0 = input.LA(1);
if ( (LA95_0==RIGHTSHIFT||LA95_0==LEFTSHIFT) ) {
alt95=1;
}
else if ( (LA95_0==EOF||LA95_0==NEWLINE||LA95_0==NAME||(LA95_0>=AND && LA95_0<=AS)||LA95_0==FOR||LA95_0==IF||(LA95_0>=IN && LA95_0<=IS)||(LA95_0>=NOT && LA95_0<=ORELSE)||(LA95_0>=RPAREN && LA95_0<=COMMA)||(LA95_0>=SEMI && LA95_0<=DOUBLESLASHEQUAL)||(LA95_0>=LESS && LA95_0<=AMPER)||LA95_0==RBRACK||(LA95_0>=RCURLY && LA95_0<=BACKQUOTE)) ) {
alt95=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 95, 0, input);
throw nvae;
}
switch (alt95) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1452:11: ( shift_op right+= arith_expr )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1452:11: ( shift_op right+= arith_expr )+
int cnt94=0;
loop94:
do {
int alt94=2;
int LA94_0 = input.LA(1);
if ( (LA94_0==RIGHTSHIFT||LA94_0==LEFTSHIFT) ) {
alt94=1;
}
switch (alt94) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1452:13: shift_op right+= arith_expr
{
pushFollow(FOLLOW_shift_op_in_shift_expr5210);
shift_op201=shift_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_shift_op.add(shift_op201.getTree());
pushFollow(FOLLOW_arith_expr_in_shift_expr5214);
right=arith_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arith_expr.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
if ( state.backtracking==0 ) {
ops.add((shift_op201!=null?shift_op201.op:null));
toks.add((shift_op201!=null?((Token)shift_op201.start):null));
}
}
break;
default :
if ( cnt94 >= 1 ) break loop94;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(94, input);
throw eee;
}
cnt94++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1459:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1459:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (!ops.isEmpty()) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), ops, list_right, toks);
}
retval.lparen = (left!=null?left.lparen:null);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "shift_expr"
public static class shift_op_return extends ParserRuleReturnScope {
public operatorType op;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "shift_op"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1463:1: shift_op returns [operatorType op] : ( LEFTSHIFT | RIGHTSHIFT );
public final PythonParser.shift_op_return shift_op() throws RecognitionException {
PythonParser.shift_op_return retval = new PythonParser.shift_op_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LEFTSHIFT202=null;
Token RIGHTSHIFT203=null;
PythonTree LEFTSHIFT202_tree=null;
PythonTree RIGHTSHIFT203_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1465:5: ( LEFTSHIFT | RIGHTSHIFT )
int alt96=2;
int LA96_0 = input.LA(1);
if ( (LA96_0==LEFTSHIFT) ) {
alt96=1;
}
else if ( (LA96_0==RIGHTSHIFT) ) {
alt96=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 96, 0, input);
throw nvae;
}
switch (alt96) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1465:7: LEFTSHIFT
{
root_0 = (PythonTree)adaptor.nil();
LEFTSHIFT202=(Token)match(input,LEFTSHIFT,FOLLOW_LEFTSHIFT_in_shift_op5298); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LEFTSHIFT202_tree = (PythonTree)adaptor.create(LEFTSHIFT202);
adaptor.addChild(root_0, LEFTSHIFT202_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.LShift;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1469:7: RIGHTSHIFT
{
root_0 = (PythonTree)adaptor.nil();
RIGHTSHIFT203=(Token)match(input,RIGHTSHIFT,FOLLOW_RIGHTSHIFT_in_shift_op5314); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RIGHTSHIFT203_tree = (PythonTree)adaptor.create(RIGHTSHIFT203);
adaptor.addChild(root_0, RIGHTSHIFT203_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.RShift;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "shift_op"
public static class arith_expr_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1476:1: arith_expr returns [Token lparen = null] : left= term ( ( arith_op right+= term )+ | -> $left) ;
public final PythonParser.arith_expr_return arith_expr() throws RecognitionException {
PythonParser.arith_expr_return retval = new PythonParser.arith_expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
List list_right=null;
PythonParser.term_return left = null;
PythonParser.arith_op_return arith_op204 = null;
PythonParser.term_return right = null;
right = null;
RewriteRuleSubtreeStream stream_arith_op=new RewriteRuleSubtreeStream(adaptor,"rule arith_op");
RewriteRuleSubtreeStream stream_term=new RewriteRuleSubtreeStream(adaptor,"rule term");
List ops = new ArrayList();
List toks = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1492:5: (left= term ( ( arith_op right+= term )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1492:7: left= term ( ( arith_op right+= term )+ | -> $left)
{
pushFollow(FOLLOW_term_in_arith_expr5360);
left=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1493:9: ( ( arith_op right+= term )+ | -> $left)
int alt98=2;
int LA98_0 = input.LA(1);
if ( ((LA98_0>=PLUS && LA98_0<=MINUS)) ) {
alt98=1;
}
else if ( (LA98_0==EOF||LA98_0==NEWLINE||LA98_0==NAME||(LA98_0>=AND && LA98_0<=AS)||LA98_0==FOR||LA98_0==IF||(LA98_0>=IN && LA98_0<=IS)||(LA98_0>=NOT && LA98_0<=ORELSE)||(LA98_0>=RPAREN && LA98_0<=COMMA)||(LA98_0>=SEMI && LA98_0<=LEFTSHIFT)||LA98_0==RBRACK||(LA98_0>=RCURLY && LA98_0<=BACKQUOTE)) ) {
alt98=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 98, 0, input);
throw nvae;
}
switch (alt98) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1493:11: ( arith_op right+= term )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1493:11: ( arith_op right+= term )+
int cnt97=0;
loop97:
do {
int alt97=2;
int LA97_0 = input.LA(1);
if ( ((LA97_0>=PLUS && LA97_0<=MINUS)) ) {
alt97=1;
}
switch (alt97) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1493:12: arith_op right+= term
{
pushFollow(FOLLOW_arith_op_in_arith_expr5373);
arith_op204=arith_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_arith_op.add(arith_op204.getTree());
pushFollow(FOLLOW_term_in_arith_expr5377);
right=term();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
if ( state.backtracking==0 ) {
ops.add((arith_op204!=null?arith_op204.op:null));
toks.add((arith_op204!=null?((Token)arith_op204.start):null));
}
}
break;
default :
if ( cnt97 >= 1 ) break loop97;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(97, input);
throw eee;
}
cnt97++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1500:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1500:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (!ops.isEmpty()) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), ops, list_right, toks);
}
retval.lparen = (left!=null?left.lparen:null);
}
}
catch (RewriteCardinalityException rce) {
PythonTree badNode = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), null);
retval.tree = badNode;
errorHandler.error("Internal Parser Error", badNode);
}
finally {
}
return retval;
}
// $ANTLR end "arith_expr"
public static class arith_op_return extends ParserRuleReturnScope {
public operatorType op;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arith_op"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1512:1: arith_op returns [operatorType op] : ( PLUS | MINUS );
public final PythonParser.arith_op_return arith_op() throws RecognitionException {
PythonParser.arith_op_return retval = new PythonParser.arith_op_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token PLUS205=null;
Token MINUS206=null;
PythonTree PLUS205_tree=null;
PythonTree MINUS206_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1514:5: ( PLUS | MINUS )
int alt99=2;
int LA99_0 = input.LA(1);
if ( (LA99_0==PLUS) ) {
alt99=1;
}
else if ( (LA99_0==MINUS) ) {
alt99=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 99, 0, input);
throw nvae;
}
switch (alt99) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1514:7: PLUS
{
root_0 = (PythonTree)adaptor.nil();
PLUS205=(Token)match(input,PLUS,FOLLOW_PLUS_in_arith_op5485); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUS205_tree = (PythonTree)adaptor.create(PLUS205);
adaptor.addChild(root_0, PLUS205_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Add;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1518:7: MINUS
{
root_0 = (PythonTree)adaptor.nil();
MINUS206=(Token)match(input,MINUS,FOLLOW_MINUS_in_arith_op5501); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUS206_tree = (PythonTree)adaptor.create(MINUS206);
adaptor.addChild(root_0, MINUS206_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Sub;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arith_op"
public static class term_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "term"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1525:1: term returns [Token lparen = null] : left= factor ( ( term_op right+= factor )+ | -> $left) ;
public final PythonParser.term_return term() throws RecognitionException {
PythonParser.term_return retval = new PythonParser.term_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
List list_right=null;
PythonParser.factor_return left = null;
PythonParser.term_op_return term_op207 = null;
PythonParser.factor_return right = null;
right = null;
RewriteRuleSubtreeStream stream_term_op=new RewriteRuleSubtreeStream(adaptor,"rule term_op");
RewriteRuleSubtreeStream stream_factor=new RewriteRuleSubtreeStream(adaptor,"rule factor");
List ops = new ArrayList();
List toks = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1541:5: (left= factor ( ( term_op right+= factor )+ | -> $left) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1541:7: left= factor ( ( term_op right+= factor )+ | -> $left)
{
pushFollow(FOLLOW_factor_in_term5547);
left=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_factor.add(left.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1542:9: ( ( term_op right+= factor )+ | -> $left)
int alt101=2;
int LA101_0 = input.LA(1);
if ( (LA101_0==STAR||(LA101_0>=SLASH && LA101_0<=DOUBLESLASH)) ) {
alt101=1;
}
else if ( (LA101_0==EOF||LA101_0==NEWLINE||LA101_0==NAME||(LA101_0>=AND && LA101_0<=AS)||LA101_0==FOR||LA101_0==IF||(LA101_0>=IN && LA101_0<=IS)||(LA101_0>=NOT && LA101_0<=ORELSE)||(LA101_0>=RPAREN && LA101_0<=COMMA)||(LA101_0>=SEMI && LA101_0<=MINUS)||LA101_0==RBRACK||(LA101_0>=RCURLY && LA101_0<=BACKQUOTE)) ) {
alt101=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 101, 0, input);
throw nvae;
}
switch (alt101) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1542:11: ( term_op right+= factor )+
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1542:11: ( term_op right+= factor )+
int cnt100=0;
loop100:
do {
int alt100=2;
int LA100_0 = input.LA(1);
if ( (LA100_0==STAR||(LA100_0>=SLASH && LA100_0<=DOUBLESLASH)) ) {
alt100=1;
}
switch (alt100) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1542:12: term_op right+= factor
{
pushFollow(FOLLOW_term_op_in_term5560);
term_op207=term_op();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_term_op.add(term_op207.getTree());
pushFollow(FOLLOW_factor_in_term5564);
right=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_factor.add(right.getTree());
if (list_right==null) list_right=new ArrayList();
list_right.add(right.getTree());
if ( state.backtracking==0 ) {
ops.add((term_op207!=null?term_op207.op:null));
toks.add((term_op207!=null?((Token)term_op207.start):null));
}
}
break;
default :
if ( cnt100 >= 1 ) break loop100;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(100, input);
throw eee;
}
cnt100++;
} while (true);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1549:8:
{
// AST REWRITE
// elements: left
// token labels:
// rule labels: retval, left
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
RewriteRuleSubtreeStream stream_left=new RewriteRuleSubtreeStream(adaptor,"rule left",left!=null?left.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1549:8: -> $left
{
adaptor.addChild(root_0, stream_left.nextTree());
}
retval.tree = root_0;}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.lparen = (left!=null?left.lparen:null);
if (!ops.isEmpty()) {
Token tok = (left!=null?((Token)left.start):null);
if ((left!=null?left.lparen:null) != null) {
tok = (left!=null?left.lparen:null);
}
retval.tree = actions.makeBinOp(tok, (left!=null?((PythonTree)left.tree):null), ops, list_right, toks);
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "term"
public static class term_op_return extends ParserRuleReturnScope {
public operatorType op;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "term_op"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1553:1: term_op returns [operatorType op] : ( STAR | SLASH | PERCENT | DOUBLESLASH );
public final PythonParser.term_op_return term_op() throws RecognitionException {
PythonParser.term_op_return retval = new PythonParser.term_op_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token STAR208=null;
Token SLASH209=null;
Token PERCENT210=null;
Token DOUBLESLASH211=null;
PythonTree STAR208_tree=null;
PythonTree SLASH209_tree=null;
PythonTree PERCENT210_tree=null;
PythonTree DOUBLESLASH211_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1555:5: ( STAR | SLASH | PERCENT | DOUBLESLASH )
int alt102=4;
switch ( input.LA(1) ) {
case STAR:
{
alt102=1;
}
break;
case SLASH:
{
alt102=2;
}
break;
case PERCENT:
{
alt102=3;
}
break;
case DOUBLESLASH:
{
alt102=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 102, 0, input);
throw nvae;
}
switch (alt102) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1555:7: STAR
{
root_0 = (PythonTree)adaptor.nil();
STAR208=(Token)match(input,STAR,FOLLOW_STAR_in_term_op5646); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR208_tree = (PythonTree)adaptor.create(STAR208);
adaptor.addChild(root_0, STAR208_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Mult;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1559:7: SLASH
{
root_0 = (PythonTree)adaptor.nil();
SLASH209=(Token)match(input,SLASH,FOLLOW_SLASH_in_term_op5662); if (state.failed) return retval;
if ( state.backtracking==0 ) {
SLASH209_tree = (PythonTree)adaptor.create(SLASH209);
adaptor.addChild(root_0, SLASH209_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Div;
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1563:7: PERCENT
{
root_0 = (PythonTree)adaptor.nil();
PERCENT210=(Token)match(input,PERCENT,FOLLOW_PERCENT_in_term_op5678); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PERCENT210_tree = (PythonTree)adaptor.create(PERCENT210);
adaptor.addChild(root_0, PERCENT210_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.Mod;
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1567:7: DOUBLESLASH
{
root_0 = (PythonTree)adaptor.nil();
DOUBLESLASH211=(Token)match(input,DOUBLESLASH,FOLLOW_DOUBLESLASH_in_term_op5694); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESLASH211_tree = (PythonTree)adaptor.create(DOUBLESLASH211);
adaptor.addChild(root_0, DOUBLESLASH211_tree);
}
if ( state.backtracking==0 ) {
retval.op = operatorType.FloorDiv;
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "term_op"
public static class factor_return extends ParserRuleReturnScope {
public expr etype;
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "factor"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1574:1: factor returns [expr etype, Token lparen = null] : ( PLUS p= factor | MINUS m= factor | TILDE t= factor | power );
public final PythonParser.factor_return factor() throws RecognitionException {
PythonParser.factor_return retval = new PythonParser.factor_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token PLUS212=null;
Token MINUS213=null;
Token TILDE214=null;
PythonParser.factor_return p = null;
PythonParser.factor_return m = null;
PythonParser.factor_return t = null;
PythonParser.power_return power215 = null;
PythonTree PLUS212_tree=null;
PythonTree MINUS213_tree=null;
PythonTree TILDE214_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1579:5: ( PLUS p= factor | MINUS m= factor | TILDE t= factor | power )
int alt103=4;
switch ( input.LA(1) ) {
case PLUS:
{
alt103=1;
}
break;
case MINUS:
{
alt103=2;
}
break;
case TILDE:
{
alt103=3;
}
break;
case NAME:
case LPAREN:
case LBRACK:
case LCURLY:
case BACKQUOTE:
case INT:
case LONGINT:
case FLOAT:
case COMPLEX:
case STRING:
{
alt103=4;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 103, 0, input);
throw nvae;
}
switch (alt103) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1579:7: PLUS p= factor
{
root_0 = (PythonTree)adaptor.nil();
PLUS212=(Token)match(input,PLUS,FOLLOW_PLUS_in_factor5733); if (state.failed) return retval;
if ( state.backtracking==0 ) {
PLUS212_tree = (PythonTree)adaptor.create(PLUS212);
adaptor.addChild(root_0, PLUS212_tree);
}
pushFollow(FOLLOW_factor_in_factor5737);
p=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, p.getTree());
if ( state.backtracking==0 ) {
retval.etype = new UnaryOp(PLUS212, unaryopType.UAdd, (p!=null?p.etype:null));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1583:7: MINUS m= factor
{
root_0 = (PythonTree)adaptor.nil();
MINUS213=(Token)match(input,MINUS,FOLLOW_MINUS_in_factor5753); if (state.failed) return retval;
if ( state.backtracking==0 ) {
MINUS213_tree = (PythonTree)adaptor.create(MINUS213);
adaptor.addChild(root_0, MINUS213_tree);
}
pushFollow(FOLLOW_factor_in_factor5757);
m=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, m.getTree());
if ( state.backtracking==0 ) {
retval.etype = actions.negate(MINUS213, (m!=null?m.etype:null));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1587:7: TILDE t= factor
{
root_0 = (PythonTree)adaptor.nil();
TILDE214=(Token)match(input,TILDE,FOLLOW_TILDE_in_factor5773); if (state.failed) return retval;
if ( state.backtracking==0 ) {
TILDE214_tree = (PythonTree)adaptor.create(TILDE214);
adaptor.addChild(root_0, TILDE214_tree);
}
pushFollow(FOLLOW_factor_in_factor5777);
t=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if ( state.backtracking==0 ) {
retval.etype = new UnaryOp(TILDE214, unaryopType.Invert, (t!=null?t.etype:null));
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1591:7: power
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_power_in_factor5793);
power215=power();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, power215.getTree());
if ( state.backtracking==0 ) {
retval.etype = actions.castExpr((power215!=null?((PythonTree)power215.tree):null));
retval.lparen = (power215!=null?power215.lparen:null);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "factor"
public static class power_return extends ParserRuleReturnScope {
public expr etype;
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "power"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1599:1: power returns [expr etype, Token lparen = null] : atom (t+= trailer[$atom.start, $atom.tree] )* ( options {greedy=true; } : d= DOUBLESTAR factor )? ;
public final PythonParser.power_return power() throws RecognitionException {
PythonParser.power_return retval = new PythonParser.power_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token d=null;
List list_t=null;
PythonParser.atom_return atom216 = null;
PythonParser.factor_return factor217 = null;
PythonParser.trailer_return t = null;
t = null;
PythonTree d_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:5: ( atom (t+= trailer[$atom.start, $atom.tree] )* ( options {greedy=true; } : d= DOUBLESTAR factor )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:7: atom (t+= trailer[$atom.start, $atom.tree] )* ( options {greedy=true; } : d= DOUBLESTAR factor )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_atom_in_power5832);
atom216=atom();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, atom216.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:12: (t+= trailer[$atom.start, $atom.tree] )*
loop104:
do {
int alt104=2;
int LA104_0 = input.LA(1);
if ( (LA104_0==DOT||LA104_0==LPAREN||LA104_0==LBRACK) ) {
alt104=1;
}
switch (alt104) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:13: t+= trailer[$atom.start, $atom.tree]
{
pushFollow(FOLLOW_trailer_in_power5837);
t=trailer((atom216!=null?((Token)atom216.start):null), (atom216!=null?((PythonTree)atom216.tree):null));
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop104;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:51: ( options {greedy=true; } : d= DOUBLESTAR factor )?
int alt105=2;
int LA105_0 = input.LA(1);
if ( (LA105_0==DOUBLESTAR) ) {
alt105=1;
}
switch (alt105) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1604:75: d= DOUBLESTAR factor
{
d=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_power5852); if (state.failed) return retval;
if ( state.backtracking==0 ) {
d_tree = (PythonTree)adaptor.create(d);
adaptor.addChild(root_0, d_tree);
}
pushFollow(FOLLOW_factor_in_power5854);
factor217=factor();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, factor217.getTree());
}
break;
}
if ( state.backtracking==0 ) {
retval.lparen = (atom216!=null?atom216.lparen:null);
//XXX: This could be better.
retval.etype = actions.castExpr((atom216!=null?((PythonTree)atom216.tree):null));
if (list_t != null) {
for(Object o : list_t) {
if (retval.etype instanceof Context) {
((Context)retval.etype).setContext(expr_contextType.Load);
}
if (o instanceof Call) {
Call c = (Call)o;
c.setFunc((PyObject)retval.etype);
retval.etype = c;
} else if (o instanceof Subscript) {
Subscript c = (Subscript)o;
c.setValue((PyObject)retval.etype);
retval.etype = c;
} else if (o instanceof Attribute) {
Attribute c = (Attribute)o;
c.setCharStartIndex(retval.etype.getCharStartIndex());
c.setValue((PyObject)retval.etype);
retval.etype = c;
}
}
}
if (d != null) {
List right = new ArrayList();
right.add((factor217!=null?((PythonTree)factor217.tree):null));
retval.etype = actions.makeBinOp((atom216!=null?((Token)atom216.start):null), retval.etype, operatorType.Pow, right);
}
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "power"
public static class atom_return extends ParserRuleReturnScope {
public Token lparen = null;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "atom"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1643:1: atom returns [Token lparen = null] : ( LPAREN ( yield_expr | testlist_gexp -> testlist_gexp | ) RPAREN | LBRACK ( listmaker[$LBRACK] -> listmaker | ) RBRACK | LCURLY ( dictmaker | ) RCURLY | lb= BACKQUOTE testlist[expr_contextType.Load] rb= BACKQUOTE | NAME | INT | LONGINT | FLOAT | COMPLEX | (S+= STRING )+ );
public final PythonParser.atom_return atom() throws RecognitionException {
PythonParser.atom_return retval = new PythonParser.atom_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token lb=null;
Token rb=null;
Token LPAREN218=null;
Token RPAREN221=null;
Token LBRACK222=null;
Token RBRACK224=null;
Token LCURLY225=null;
Token RCURLY227=null;
Token NAME229=null;
Token INT230=null;
Token LONGINT231=null;
Token FLOAT232=null;
Token COMPLEX233=null;
Token S=null;
List list_S=null;
PythonParser.yield_expr_return yield_expr219 = null;
PythonParser.testlist_gexp_return testlist_gexp220 = null;
PythonParser.listmaker_return listmaker223 = null;
PythonParser.dictmaker_return dictmaker226 = null;
PythonParser.testlist_return testlist228 = null;
PythonTree lb_tree=null;
PythonTree rb_tree=null;
PythonTree LPAREN218_tree=null;
PythonTree RPAREN221_tree=null;
PythonTree LBRACK222_tree=null;
PythonTree RBRACK224_tree=null;
PythonTree LCURLY225_tree=null;
PythonTree RCURLY227_tree=null;
PythonTree NAME229_tree=null;
PythonTree INT230_tree=null;
PythonTree LONGINT231_tree=null;
PythonTree FLOAT232_tree=null;
PythonTree COMPLEX233_tree=null;
PythonTree S_tree=null;
RewriteRuleTokenStream stream_RBRACK=new RewriteRuleTokenStream(adaptor,"token RBRACK");
RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
RewriteRuleTokenStream stream_LBRACK=new RewriteRuleTokenStream(adaptor,"token LBRACK");
RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
RewriteRuleSubtreeStream stream_testlist_gexp=new RewriteRuleSubtreeStream(adaptor,"rule testlist_gexp");
RewriteRuleSubtreeStream stream_yield_expr=new RewriteRuleSubtreeStream(adaptor,"rule yield_expr");
RewriteRuleSubtreeStream stream_listmaker=new RewriteRuleSubtreeStream(adaptor,"rule listmaker");
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1653:5: ( LPAREN ( yield_expr | testlist_gexp -> testlist_gexp | ) RPAREN | LBRACK ( listmaker[$LBRACK] -> listmaker | ) RBRACK | LCURLY ( dictmaker | ) RCURLY | lb= BACKQUOTE testlist[expr_contextType.Load] rb= BACKQUOTE | NAME | INT | LONGINT | FLOAT | COMPLEX | (S+= STRING )+ )
int alt110=10;
switch ( input.LA(1) ) {
case LPAREN:
{
alt110=1;
}
break;
case LBRACK:
{
alt110=2;
}
break;
case LCURLY:
{
alt110=3;
}
break;
case BACKQUOTE:
{
alt110=4;
}
break;
case NAME:
{
alt110=5;
}
break;
case INT:
{
alt110=6;
}
break;
case LONGINT:
{
alt110=7;
}
break;
case FLOAT:
{
alt110=8;
}
break;
case COMPLEX:
{
alt110=9;
}
break;
case STRING:
{
alt110=10;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 110, 0, input);
throw nvae;
}
switch (alt110) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1653:7: LPAREN ( yield_expr | testlist_gexp -> testlist_gexp | ) RPAREN
{
LPAREN218=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_atom5904); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LPAREN.add(LPAREN218);
if ( state.backtracking==0 ) {
retval.lparen = LPAREN218;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1657:7: ( yield_expr | testlist_gexp -> testlist_gexp | )
int alt106=3;
switch ( input.LA(1) ) {
case YIELD:
{
alt106=1;
}
break;
case NAME:
case LAMBDA:
case NOT:
case LPAREN:
case PLUS:
case MINUS:
case TILDE:
case LBRACK:
case LCURLY:
case BACKQUOTE:
case INT:
case LONGINT:
case FLOAT:
case COMPLEX:
case STRING:
{
alt106=2;
}
break;
case RPAREN:
{
alt106=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 106, 0, input);
throw nvae;
}
switch (alt106) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1657:9: yield_expr
{
pushFollow(FOLLOW_yield_expr_in_atom5922);
yield_expr219=yield_expr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_yield_expr.add(yield_expr219.getTree());
if ( state.backtracking==0 ) {
etype = (yield_expr219!=null?yield_expr219.etype:null);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1661:9: testlist_gexp
{
pushFollow(FOLLOW_testlist_gexp_in_atom5942);
testlist_gexp220=testlist_gexp();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_testlist_gexp.add(testlist_gexp220.getTree());
// AST REWRITE
// elements: testlist_gexp
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1662:6: -> testlist_gexp
{
adaptor.addChild(root_0, stream_testlist_gexp.nextTree());
}
retval.tree = root_0;}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1664:9:
{
if ( state.backtracking==0 ) {
etype = new Tuple(LPAREN218, new ArrayList<expr>(), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
}
RPAREN221=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_atom5985); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RPAREN.add(RPAREN221);
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1669:7: LBRACK ( listmaker[$LBRACK] -> listmaker | ) RBRACK
{
LBRACK222=(Token)match(input,LBRACK,FOLLOW_LBRACK_in_atom5993); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_LBRACK.add(LBRACK222);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1670:7: ( listmaker[$LBRACK] -> listmaker | )
int alt107=2;
int LA107_0 = input.LA(1);
if ( (LA107_0==NAME||(LA107_0>=LAMBDA && LA107_0<=NOT)||LA107_0==LPAREN||(LA107_0>=PLUS && LA107_0<=MINUS)||(LA107_0>=TILDE && LA107_0<=LBRACK)||LA107_0==LCURLY||(LA107_0>=BACKQUOTE && LA107_0<=STRING)) ) {
alt107=1;
}
else if ( (LA107_0==RBRACK) ) {
alt107=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 107, 0, input);
throw nvae;
}
switch (alt107) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1670:8: listmaker[$LBRACK]
{
pushFollow(FOLLOW_listmaker_in_atom6002);
listmaker223=listmaker(LBRACK222);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_listmaker.add(listmaker223.getTree());
// AST REWRITE
// elements: listmaker
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1671:6: -> listmaker
{
adaptor.addChild(root_0, stream_listmaker.nextTree());
}
retval.tree = root_0;}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1673:8:
{
if ( state.backtracking==0 ) {
etype = new org.python.antlr.ast.List(LBRACK222, new ArrayList<expr>(), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
}
RBRACK224=(Token)match(input,RBRACK,FOLLOW_RBRACK_in_atom6045); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_RBRACK.add(RBRACK224);
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1678:7: LCURLY ( dictmaker | ) RCURLY
{
root_0 = (PythonTree)adaptor.nil();
LCURLY225=(Token)match(input,LCURLY,FOLLOW_LCURLY_in_atom6053); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LCURLY225_tree = (PythonTree)adaptor.create(LCURLY225);
adaptor.addChild(root_0, LCURLY225_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1679:8: ( dictmaker | )
int alt108=2;
int LA108_0 = input.LA(1);
if ( (LA108_0==NAME||(LA108_0>=LAMBDA && LA108_0<=NOT)||LA108_0==LPAREN||(LA108_0>=PLUS && LA108_0<=MINUS)||(LA108_0>=TILDE && LA108_0<=LBRACK)||LA108_0==LCURLY||(LA108_0>=BACKQUOTE && LA108_0<=STRING)) ) {
alt108=1;
}
else if ( (LA108_0==RCURLY) ) {
alt108=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 108, 0, input);
throw nvae;
}
switch (alt108) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1679:9: dictmaker
{
pushFollow(FOLLOW_dictmaker_in_atom6063);
dictmaker226=dictmaker();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, dictmaker226.getTree());
if ( state.backtracking==0 ) {
etype = new Dict(LCURLY225, actions.castExprs((dictmaker226!=null?dictmaker226.keys:null)),
actions.castExprs((dictmaker226!=null?dictmaker226.values:null)));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1685:9:
{
if ( state.backtracking==0 ) {
etype = new Dict(LCURLY225, new ArrayList<expr>(), new ArrayList<expr>());
}
}
break;
}
RCURLY227=(Token)match(input,RCURLY,FOLLOW_RCURLY_in_atom6110); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RCURLY227_tree = (PythonTree)adaptor.create(RCURLY227);
adaptor.addChild(root_0, RCURLY227_tree);
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1690:8: lb= BACKQUOTE testlist[expr_contextType.Load] rb= BACKQUOTE
{
root_0 = (PythonTree)adaptor.nil();
lb=(Token)match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom6121); if (state.failed) return retval;
if ( state.backtracking==0 ) {
lb_tree = (PythonTree)adaptor.create(lb);
adaptor.addChild(root_0, lb_tree);
}
pushFollow(FOLLOW_testlist_in_atom6123);
testlist228=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist228.getTree());
rb=(Token)match(input,BACKQUOTE,FOLLOW_BACKQUOTE_in_atom6128); if (state.failed) return retval;
if ( state.backtracking==0 ) {
rb_tree = (PythonTree)adaptor.create(rb);
adaptor.addChild(root_0, rb_tree);
}
if ( state.backtracking==0 ) {
etype = new Repr(lb, actions.castExpr((testlist228!=null?((PythonTree)testlist228.tree):null)));
}
}
break;
case 5 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1694:8: NAME
{
root_0 = (PythonTree)adaptor.nil();
NAME229=(Token)match(input,NAME,FOLLOW_NAME_in_atom6146); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME229_tree = (PythonTree)adaptor.create(NAME229);
adaptor.addChild(root_0, NAME229_tree);
}
if ( state.backtracking==0 ) {
etype = new Name(NAME229, (NAME229!=null?NAME229.getText():null), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
case 6 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1698:8: INT
{
root_0 = (PythonTree)adaptor.nil();
INT230=(Token)match(input,INT,FOLLOW_INT_in_atom6164); if (state.failed) return retval;
if ( state.backtracking==0 ) {
INT230_tree = (PythonTree)adaptor.create(INT230);
adaptor.addChild(root_0, INT230_tree);
}
if ( state.backtracking==0 ) {
etype = new Num(INT230, actions.makeInt(INT230));
}
}
break;
case 7 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1702:8: LONGINT
{
root_0 = (PythonTree)adaptor.nil();
LONGINT231=(Token)match(input,LONGINT,FOLLOW_LONGINT_in_atom6182); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LONGINT231_tree = (PythonTree)adaptor.create(LONGINT231);
adaptor.addChild(root_0, LONGINT231_tree);
}
if ( state.backtracking==0 ) {
etype = new Num(LONGINT231, actions.makeInt(LONGINT231));
}
}
break;
case 8 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1706:8: FLOAT
{
root_0 = (PythonTree)adaptor.nil();
FLOAT232=(Token)match(input,FLOAT,FOLLOW_FLOAT_in_atom6200); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FLOAT232_tree = (PythonTree)adaptor.create(FLOAT232);
adaptor.addChild(root_0, FLOAT232_tree);
}
if ( state.backtracking==0 ) {
etype = new Num(FLOAT232, actions.makeFloat(FLOAT232));
}
}
break;
case 9 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1710:8: COMPLEX
{
root_0 = (PythonTree)adaptor.nil();
COMPLEX233=(Token)match(input,COMPLEX,FOLLOW_COMPLEX_in_atom6218); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMPLEX233_tree = (PythonTree)adaptor.create(COMPLEX233);
adaptor.addChild(root_0, COMPLEX233_tree);
}
if ( state.backtracking==0 ) {
etype = new Num(COMPLEX233, actions.makeComplex(COMPLEX233));
}
}
break;
case 10 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1714:8: (S+= STRING )+
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1714:8: (S+= STRING )+
int cnt109=0;
loop109:
do {
int alt109=2;
int LA109_0 = input.LA(1);
if ( (LA109_0==STRING) ) {
alt109=1;
}
switch (alt109) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1714:9: S+= STRING
{
S=(Token)match(input,STRING,FOLLOW_STRING_in_atom6239); if (state.failed) return retval;
if ( state.backtracking==0 ) {
S_tree = (PythonTree)adaptor.create(S);
adaptor.addChild(root_0, S_tree);
}
if (list_S==null) list_S=new ArrayList();
list_S.add(S);
}
break;
default :
if ( cnt109 >= 1 ) break loop109;
if (state.backtracking>0) {state.failed=true; return retval;}
EarlyExitException eee =
new EarlyExitException(109, input);
throw eee;
}
cnt109++;
} while (true);
if ( state.backtracking==0 ) {
etype = new Str(actions.extractStringToken(list_S), actions.extractStrings(list_S, encoding));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "atom"
public static class listmaker_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "listmaker"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1721:1: listmaker[Token lbrack] : t+= test[$expr::ctype] ( list_for[gens] | ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )* ) ( COMMA )? ;
public final PythonParser.listmaker_return listmaker(Token lbrack) throws RecognitionException {
PythonParser.listmaker_return retval = new PythonParser.listmaker_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA235=null;
Token COMMA236=null;
List list_t=null;
PythonParser.list_for_return list_for234 = null;
PythonParser.test_return t = null;
t = null;
PythonTree COMMA235_tree=null;
PythonTree COMMA236_tree=null;
List gens = new ArrayList();
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1729:5: (t+= test[$expr::ctype] ( list_for[gens] | ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )* ) ( COMMA )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1729:7: t+= test[$expr::ctype] ( list_for[gens] | ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )* ) ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_listmaker6282);
t=test(((expr_scope)expr_stack.peek()).ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1730:9: ( list_for[gens] | ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )* )
int alt112=2;
int LA112_0 = input.LA(1);
if ( (LA112_0==FOR) ) {
alt112=1;
}
else if ( (LA112_0==COMMA||LA112_0==RBRACK) ) {
alt112=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 112, 0, input);
throw nvae;
}
switch (alt112) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1730:10: list_for[gens]
{
pushFollow(FOLLOW_list_for_in_listmaker6294);
list_for234=list_for(gens);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_for234.getTree());
if ( state.backtracking==0 ) {
Collections.reverse(gens);
List<comprehension> c = gens;
etype = new ListComp(((Token)retval.start), actions.castExpr(list_t.get(0)), c);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1736:11: ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )*
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1736:11: ( options {greedy=true; } : COMMA t+= test[$expr::ctype] )*
loop111:
do {
int alt111=2;
int LA111_0 = input.LA(1);
if ( (LA111_0==COMMA) ) {
int LA111_1 = input.LA(2);
if ( (LA111_1==NAME||(LA111_1>=LAMBDA && LA111_1<=NOT)||LA111_1==LPAREN||(LA111_1>=PLUS && LA111_1<=MINUS)||(LA111_1>=TILDE && LA111_1<=LBRACK)||LA111_1==LCURLY||(LA111_1>=BACKQUOTE && LA111_1<=STRING)) ) {
alt111=1;
}
}
switch (alt111) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1736:35: COMMA t+= test[$expr::ctype]
{
COMMA235=(Token)match(input,COMMA,FOLLOW_COMMA_in_listmaker6326); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA235_tree = (PythonTree)adaptor.create(COMMA235);
adaptor.addChild(root_0, COMMA235_tree);
}
pushFollow(FOLLOW_test_in_listmaker6330);
t=test(((expr_scope)expr_stack.peek()).ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop111;
}
} while (true);
if ( state.backtracking==0 ) {
etype = new org.python.antlr.ast.List(lbrack, actions.castExprs(list_t), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1740:11: ( COMMA )?
int alt113=2;
int LA113_0 = input.LA(1);
if ( (LA113_0==COMMA) ) {
alt113=1;
}
switch (alt113) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1740:12: COMMA
{
COMMA236=(Token)match(input,COMMA,FOLLOW_COMMA_in_listmaker6359); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA236_tree = (PythonTree)adaptor.create(COMMA236);
adaptor.addChild(root_0, COMMA236_tree);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "listmaker"
public static class testlist_gexp_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "testlist_gexp"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1744:1: testlist_gexp : t+= test[$expr::ctype] ( ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )* (c2= COMMA )? {...}? | -> test | ( gen_for[gens] ) ) ;
public final PythonParser.testlist_gexp_return testlist_gexp() throws RecognitionException {
PythonParser.testlist_gexp_return retval = new PythonParser.testlist_gexp_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token c1=null;
Token c2=null;
List list_t=null;
PythonParser.gen_for_return gen_for237 = null;
PythonParser.test_return t = null;
t = null;
PythonTree c1_tree=null;
PythonTree c2_tree=null;
RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
RewriteRuleSubtreeStream stream_test=new RewriteRuleSubtreeStream(adaptor,"rule test");
RewriteRuleSubtreeStream stream_gen_for=new RewriteRuleSubtreeStream(adaptor,"rule gen_for");
expr etype = null;
List gens = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1754:5: (t+= test[$expr::ctype] ( ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )* (c2= COMMA )? {...}? | -> test | ( gen_for[gens] ) ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1754:7: t+= test[$expr::ctype] ( ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )* (c2= COMMA )? {...}? | -> test | ( gen_for[gens] ) )
{
pushFollow(FOLLOW_test_in_testlist_gexp6391);
t=test(((expr_scope)expr_stack.peek()).ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_test.add(t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:9: ( ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )* (c2= COMMA )? {...}? | -> test | ( gen_for[gens] ) )
int alt116=3;
switch ( input.LA(1) ) {
case COMMA:
{
alt116=1;
}
break;
case RPAREN:
{
int LA116_2 = input.LA(2);
if ( (( c1 != null || c2 != null )) ) {
alt116=1;
}
else if ( (true) ) {
alt116=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 116, 2, input);
throw nvae;
}
}
break;
case FOR:
{
alt116=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 116, 0, input);
throw nvae;
}
switch (alt116) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:11: ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )* (c2= COMMA )? {...}?
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:11: ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )*
loop114:
do {
int alt114=2;
alt114 = dfa114.predict(input);
switch (alt114) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:28: c1= COMMA t+= test[$expr::ctype]
{
c1=(Token)match(input,COMMA,FOLLOW_COMMA_in_testlist_gexp6415); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(c1);
pushFollow(FOLLOW_test_in_testlist_gexp6419);
t=test(((expr_scope)expr_stack.peek()).ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_test.add(t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop114;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:61: (c2= COMMA )?
int alt115=2;
int LA115_0 = input.LA(1);
if ( (LA115_0==COMMA) ) {
alt115=1;
}
switch (alt115) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1755:62: c2= COMMA
{
c2=(Token)match(input,COMMA,FOLLOW_COMMA_in_testlist_gexp6427); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COMMA.add(c2);
}
break;
}
if ( !(( c1 != null || c2 != null )) ) {
if (state.backtracking>0) {state.failed=true; return retval;}
throw new FailedPredicateException(input, "testlist_gexp", " $c1 != null || $c2 != null ");
}
if ( state.backtracking==0 ) {
etype = new Tuple(((Token)retval.start), actions.castExprs(list_t), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1760:11:
{
// AST REWRITE
// elements: test
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1760:11: -> test
{
adaptor.addChild(root_0, stream_test.nextTree());
}
retval.tree = root_0;}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1761:11: ( gen_for[gens] )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1761:11: ( gen_for[gens] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1761:12: gen_for[gens]
{
pushFollow(FOLLOW_gen_for_in_testlist_gexp6481);
gen_for237=gen_for(gens);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_gen_for.add(gen_for237.getTree());
if ( state.backtracking==0 ) {
Collections.reverse(gens);
List<comprehension> c = gens;
expr e = actions.castExpr(list_t.get(0));
if (e instanceof Context) {
((Context)e).setContext(expr_contextType.Load);
}
etype = new GeneratorExp(((Token)retval.start), actions.castExpr(list_t.get(0)), c);
}
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "testlist_gexp"
public static class lambdef_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "lambdef"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1776:1: lambdef : LAMBDA ( varargslist )? COLON test[expr_contextType.Load] ;
public final PythonParser.lambdef_return lambdef() throws RecognitionException {
PythonParser.lambdef_return retval = new PythonParser.lambdef_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LAMBDA238=null;
Token COLON240=null;
PythonParser.varargslist_return varargslist239 = null;
PythonParser.test_return test241 = null;
PythonTree LAMBDA238_tree=null;
PythonTree COLON240_tree=null;
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1783:5: ( LAMBDA ( varargslist )? COLON test[expr_contextType.Load] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1783:7: LAMBDA ( varargslist )? COLON test[expr_contextType.Load]
{
root_0 = (PythonTree)adaptor.nil();
LAMBDA238=(Token)match(input,LAMBDA,FOLLOW_LAMBDA_in_lambdef6545); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LAMBDA238_tree = (PythonTree)adaptor.create(LAMBDA238);
adaptor.addChild(root_0, LAMBDA238_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1783:14: ( varargslist )?
int alt117=2;
int LA117_0 = input.LA(1);
if ( (LA117_0==NAME||LA117_0==LPAREN||(LA117_0>=STAR && LA117_0<=DOUBLESTAR)) ) {
alt117=1;
}
switch (alt117) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1783:15: varargslist
{
pushFollow(FOLLOW_varargslist_in_lambdef6548);
varargslist239=varargslist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, varargslist239.getTree());
}
break;
}
COLON240=(Token)match(input,COLON,FOLLOW_COLON_in_lambdef6552); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON240_tree = (PythonTree)adaptor.create(COLON240);
adaptor.addChild(root_0, COLON240_tree);
}
pushFollow(FOLLOW_test_in_lambdef6554);
test241=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test241.getTree());
if ( state.backtracking==0 ) {
arguments a = (varargslist239!=null?varargslist239.args:null);
if (a == null) {
a = new arguments(LAMBDA238, new ArrayList<expr>(), null, null, new ArrayList<expr>());
}
etype = new Lambda(LAMBDA238, a, actions.castExpr((test241!=null?((PythonTree)test241.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "lambdef"
public static class trailer_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "trailer"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1794:1: trailer[Token begin, PythonTree ptree] : ( LPAREN ( arglist | ) RPAREN | LBRACK subscriptlist[$begin] RBRACK | DOT attr );
public final PythonParser.trailer_return trailer(Token begin, PythonTree ptree) throws RecognitionException {
PythonParser.trailer_return retval = new PythonParser.trailer_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token LPAREN242=null;
Token RPAREN244=null;
Token LBRACK245=null;
Token RBRACK247=null;
Token DOT248=null;
PythonParser.arglist_return arglist243 = null;
PythonParser.subscriptlist_return subscriptlist246 = null;
PythonParser.attr_return attr249 = null;
PythonTree LPAREN242_tree=null;
PythonTree RPAREN244_tree=null;
PythonTree LBRACK245_tree=null;
PythonTree RBRACK247_tree=null;
PythonTree DOT248_tree=null;
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1803:5: ( LPAREN ( arglist | ) RPAREN | LBRACK subscriptlist[$begin] RBRACK | DOT attr )
int alt119=3;
switch ( input.LA(1) ) {
case LPAREN:
{
alt119=1;
}
break;
case LBRACK:
{
alt119=2;
}
break;
case DOT:
{
alt119=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 119, 0, input);
throw nvae;
}
switch (alt119) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1803:7: LPAREN ( arglist | ) RPAREN
{
root_0 = (PythonTree)adaptor.nil();
LPAREN242=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_trailer6593); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN242_tree = (PythonTree)adaptor.create(LPAREN242);
adaptor.addChild(root_0, LPAREN242_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1804:7: ( arglist | )
int alt118=2;
int LA118_0 = input.LA(1);
if ( (LA118_0==NAME||(LA118_0>=LAMBDA && LA118_0<=NOT)||LA118_0==LPAREN||(LA118_0>=STAR && LA118_0<=DOUBLESTAR)||(LA118_0>=PLUS && LA118_0<=MINUS)||(LA118_0>=TILDE && LA118_0<=LBRACK)||LA118_0==LCURLY||(LA118_0>=BACKQUOTE && LA118_0<=STRING)) ) {
alt118=1;
}
else if ( (LA118_0==RPAREN) ) {
alt118=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 118, 0, input);
throw nvae;
}
switch (alt118) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1804:8: arglist
{
pushFollow(FOLLOW_arglist_in_trailer6602);
arglist243=arglist();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, arglist243.getTree());
if ( state.backtracking==0 ) {
etype = new Call(begin, actions.castExpr(ptree), actions.castExprs((arglist243!=null?arglist243.args:null)),
actions.makeKeywords((arglist243!=null?arglist243.keywords:null)), (arglist243!=null?arglist243.starargs:null), (arglist243!=null?arglist243.kwargs:null));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1810:8:
{
if ( state.backtracking==0 ) {
etype = new Call(begin, actions.castExpr(ptree), new ArrayList<expr>(), new ArrayList<keyword>(), null, null);
}
}
break;
}
RPAREN244=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_trailer6644); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN244_tree = (PythonTree)adaptor.create(RPAREN244);
adaptor.addChild(root_0, RPAREN244_tree);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1815:7: LBRACK subscriptlist[$begin] RBRACK
{
root_0 = (PythonTree)adaptor.nil();
LBRACK245=(Token)match(input,LBRACK,FOLLOW_LBRACK_in_trailer6652); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LBRACK245_tree = (PythonTree)adaptor.create(LBRACK245);
adaptor.addChild(root_0, LBRACK245_tree);
}
pushFollow(FOLLOW_subscriptlist_in_trailer6654);
subscriptlist246=subscriptlist(begin);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, subscriptlist246.getTree());
RBRACK247=(Token)match(input,RBRACK,FOLLOW_RBRACK_in_trailer6657); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RBRACK247_tree = (PythonTree)adaptor.create(RBRACK247);
adaptor.addChild(root_0, RBRACK247_tree);
}
if ( state.backtracking==0 ) {
etype = new Subscript(begin, actions.castExpr(ptree), actions.castSlice((subscriptlist246!=null?((PythonTree)subscriptlist246.tree):null)), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1819:7: DOT attr
{
root_0 = (PythonTree)adaptor.nil();
DOT248=(Token)match(input,DOT,FOLLOW_DOT_in_trailer6673); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT248_tree = (PythonTree)adaptor.create(DOT248);
adaptor.addChild(root_0, DOT248_tree);
}
pushFollow(FOLLOW_attr_in_trailer6675);
attr249=attr();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, attr249.getTree());
if ( state.backtracking==0 ) {
etype = new Attribute(begin, actions.castExpr(ptree), new Name((attr249!=null?((PythonTree)attr249.tree):null), (attr249!=null?input.toString(attr249.start,attr249.stop):null), expr_contextType.Load), ((expr_scope)expr_stack.peek()).ctype);
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "trailer"
public static class subscriptlist_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "subscriptlist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1826:1: subscriptlist[Token begin] : sub+= subscript ( options {greedy=true; } : c1= COMMA sub+= subscript )* (c2= COMMA )? ;
public final PythonParser.subscriptlist_return subscriptlist(Token begin) throws RecognitionException {
PythonParser.subscriptlist_return retval = new PythonParser.subscriptlist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token c1=null;
Token c2=null;
List list_sub=null;
PythonParser.subscript_return sub = null;
sub = null;
PythonTree c1_tree=null;
PythonTree c2_tree=null;
slice sltype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:5: (sub+= subscript ( options {greedy=true; } : c1= COMMA sub+= subscript )* (c2= COMMA )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:7: sub+= subscript ( options {greedy=true; } : c1= COMMA sub+= subscript )* (c2= COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_subscript_in_subscriptlist6714);
sub=subscript();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, sub.getTree());
if (list_sub==null) list_sub=new ArrayList();
list_sub.add(sub.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:22: ( options {greedy=true; } : c1= COMMA sub+= subscript )*
loop120:
do {
int alt120=2;
int LA120_0 = input.LA(1);
if ( (LA120_0==COMMA) ) {
int LA120_1 = input.LA(2);
if ( ((LA120_1>=NAME && LA120_1<=DOT)||(LA120_1>=LAMBDA && LA120_1<=NOT)||LA120_1==LPAREN||LA120_1==COLON||(LA120_1>=PLUS && LA120_1<=MINUS)||(LA120_1>=TILDE && LA120_1<=LBRACK)||LA120_1==LCURLY||(LA120_1>=BACKQUOTE && LA120_1<=STRING)) ) {
alt120=1;
}
}
switch (alt120) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:46: c1= COMMA sub+= subscript
{
c1=(Token)match(input,COMMA,FOLLOW_COMMA_in_subscriptlist6726); if (state.failed) return retval;
if ( state.backtracking==0 ) {
c1_tree = (PythonTree)adaptor.create(c1);
adaptor.addChild(root_0, c1_tree);
}
pushFollow(FOLLOW_subscript_in_subscriptlist6730);
sub=subscript();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, sub.getTree());
if (list_sub==null) list_sub=new ArrayList();
list_sub.add(sub.getTree());
}
break;
default :
break loop120;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:72: (c2= COMMA )?
int alt121=2;
int LA121_0 = input.LA(1);
if ( (LA121_0==COMMA) ) {
alt121=1;
}
switch (alt121) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1833:73: c2= COMMA
{
c2=(Token)match(input,COMMA,FOLLOW_COMMA_in_subscriptlist6737); if (state.failed) return retval;
if ( state.backtracking==0 ) {
c2_tree = (PythonTree)adaptor.create(c2);
adaptor.addChild(root_0, c2_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
sltype = actions.makeSliceType(begin, c1, c2, list_sub);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = sltype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "subscriptlist"
public static class subscript_return extends ParserRuleReturnScope {
public slice sltype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "subscript"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1840:1: subscript returns [slice sltype] : (d1= DOT DOT DOT | ( test[null] COLON )=>lower= test[expr_contextType.Load] (c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )? )? | ( COLON )=>c2= COLON (upper2= test[expr_contextType.Load] )? ( sliceop )? | test[expr_contextType.Load] );
public final PythonParser.subscript_return subscript() throws RecognitionException {
PythonParser.subscript_return retval = new PythonParser.subscript_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token d1=null;
Token c1=null;
Token c2=null;
Token DOT250=null;
Token DOT251=null;
PythonParser.test_return lower = null;
PythonParser.test_return upper1 = null;
PythonParser.test_return upper2 = null;
PythonParser.sliceop_return sliceop252 = null;
PythonParser.sliceop_return sliceop253 = null;
PythonParser.test_return test254 = null;
PythonTree d1_tree=null;
PythonTree c1_tree=null;
PythonTree c2_tree=null;
PythonTree DOT250_tree=null;
PythonTree DOT251_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1845:5: (d1= DOT DOT DOT | ( test[null] COLON )=>lower= test[expr_contextType.Load] (c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )? )? | ( COLON )=>c2= COLON (upper2= test[expr_contextType.Load] )? ( sliceop )? | test[expr_contextType.Load] )
int alt127=4;
alt127 = dfa127.predict(input);
switch (alt127) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1845:7: d1= DOT DOT DOT
{
root_0 = (PythonTree)adaptor.nil();
d1=(Token)match(input,DOT,FOLLOW_DOT_in_subscript6780); if (state.failed) return retval;
if ( state.backtracking==0 ) {
d1_tree = (PythonTree)adaptor.create(d1);
adaptor.addChild(root_0, d1_tree);
}
DOT250=(Token)match(input,DOT,FOLLOW_DOT_in_subscript6782); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT250_tree = (PythonTree)adaptor.create(DOT250);
adaptor.addChild(root_0, DOT250_tree);
}
DOT251=(Token)match(input,DOT,FOLLOW_DOT_in_subscript6784); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOT251_tree = (PythonTree)adaptor.create(DOT251);
adaptor.addChild(root_0, DOT251_tree);
}
if ( state.backtracking==0 ) {
retval.sltype = new Ellipsis(d1);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1849:7: ( test[null] COLON )=>lower= test[expr_contextType.Load] (c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )? )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_subscript6814);
lower=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, lower.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:41: (c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )? )?
int alt124=2;
int LA124_0 = input.LA(1);
if ( (LA124_0==COLON) ) {
alt124=1;
}
switch (alt124) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:42: c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )?
{
c1=(Token)match(input,COLON,FOLLOW_COLON_in_subscript6820); if (state.failed) return retval;
if ( state.backtracking==0 ) {
c1_tree = (PythonTree)adaptor.create(c1);
adaptor.addChild(root_0, c1_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:51: (upper1= test[expr_contextType.Load] )?
int alt122=2;
int LA122_0 = input.LA(1);
if ( (LA122_0==NAME||(LA122_0>=LAMBDA && LA122_0<=NOT)||LA122_0==LPAREN||(LA122_0>=PLUS && LA122_0<=MINUS)||(LA122_0>=TILDE && LA122_0<=LBRACK)||LA122_0==LCURLY||(LA122_0>=BACKQUOTE && LA122_0<=STRING)) ) {
alt122=1;
}
switch (alt122) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:52: upper1= test[expr_contextType.Load]
{
pushFollow(FOLLOW_test_in_subscript6825);
upper1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, upper1.getTree());
}
break;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:89: ( sliceop )?
int alt123=2;
int LA123_0 = input.LA(1);
if ( (LA123_0==COLON) ) {
alt123=1;
}
switch (alt123) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1850:90: sliceop
{
pushFollow(FOLLOW_sliceop_in_subscript6831);
sliceop252=sliceop();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, sliceop252.getTree());
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {
retval.sltype = actions.makeSubscript((lower!=null?((PythonTree)lower.tree):null), c1, (upper1!=null?((PythonTree)upper1.tree):null), (sliceop252!=null?((PythonTree)sliceop252.tree):null));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1854:7: ( COLON )=>c2= COLON (upper2= test[expr_contextType.Load] )? ( sliceop )?
{
root_0 = (PythonTree)adaptor.nil();
c2=(Token)match(input,COLON,FOLLOW_COLON_in_subscript6862); if (state.failed) return retval;
if ( state.backtracking==0 ) {
c2_tree = (PythonTree)adaptor.create(c2);
adaptor.addChild(root_0, c2_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1855:16: (upper2= test[expr_contextType.Load] )?
int alt125=2;
int LA125_0 = input.LA(1);
if ( (LA125_0==NAME||(LA125_0>=LAMBDA && LA125_0<=NOT)||LA125_0==LPAREN||(LA125_0>=PLUS && LA125_0<=MINUS)||(LA125_0>=TILDE && LA125_0<=LBRACK)||LA125_0==LCURLY||(LA125_0>=BACKQUOTE && LA125_0<=STRING)) ) {
alt125=1;
}
switch (alt125) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1855:17: upper2= test[expr_contextType.Load]
{
pushFollow(FOLLOW_test_in_subscript6867);
upper2=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, upper2.getTree());
}
break;
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1855:54: ( sliceop )?
int alt126=2;
int LA126_0 = input.LA(1);
if ( (LA126_0==COLON) ) {
alt126=1;
}
switch (alt126) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1855:55: sliceop
{
pushFollow(FOLLOW_sliceop_in_subscript6873);
sliceop253=sliceop();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, sliceop253.getTree());
}
break;
}
if ( state.backtracking==0 ) {
retval.sltype = actions.makeSubscript(null, c2, (upper2!=null?((PythonTree)upper2.tree):null), (sliceop253!=null?((PythonTree)sliceop253.tree):null));
}
}
break;
case 4 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1859:7: test[expr_contextType.Load]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_subscript6891);
test254=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test254.getTree());
if ( state.backtracking==0 ) {
retval.sltype = new Index((test254!=null?((Token)test254.start):null), actions.castExpr((test254!=null?((PythonTree)test254.tree):null)));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = retval.sltype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "subscript"
public static class sliceop_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "sliceop"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1866:1: sliceop : COLON ( test[expr_contextType.Load] -> test | ) ;
public final PythonParser.sliceop_return sliceop() throws RecognitionException {
PythonParser.sliceop_return retval = new PythonParser.sliceop_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COLON255=null;
PythonParser.test_return test256 = null;
PythonTree COLON255_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleSubtreeStream stream_test=new RewriteRuleSubtreeStream(adaptor,"rule test");
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1875:5: ( COLON ( test[expr_contextType.Load] -> test | ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1875:7: COLON ( test[expr_contextType.Load] -> test | )
{
COLON255=(Token)match(input,COLON,FOLLOW_COLON_in_sliceop6928); if (state.failed) return retval;
if ( state.backtracking==0 ) stream_COLON.add(COLON255);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1876:6: ( test[expr_contextType.Load] -> test | )
int alt128=2;
int LA128_0 = input.LA(1);
if ( (LA128_0==NAME||(LA128_0>=LAMBDA && LA128_0<=NOT)||LA128_0==LPAREN||(LA128_0>=PLUS && LA128_0<=MINUS)||(LA128_0>=TILDE && LA128_0<=LBRACK)||LA128_0==LCURLY||(LA128_0>=BACKQUOTE && LA128_0<=STRING)) ) {
alt128=1;
}
else if ( (LA128_0==COMMA||LA128_0==RBRACK) ) {
alt128=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 128, 0, input);
throw nvae;
}
switch (alt128) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1876:7: test[expr_contextType.Load]
{
pushFollow(FOLLOW_test_in_sliceop6936);
test256=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) stream_test.add(test256.getTree());
// AST REWRITE
// elements: test
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
if ( state.backtracking==0 ) {
retval.tree = root_0;
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);
root_0 = (PythonTree)adaptor.nil();
// 1877:5: -> test
{
adaptor.addChild(root_0, stream_test.nextTree());
}
retval.tree = root_0;}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1879:8:
{
if ( state.backtracking==0 ) {
etype = new Name(COLON255, "None", expr_contextType.Load);
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "sliceop"
public static class exprlist_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "exprlist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1886:1: exprlist[expr_contextType ctype] returns [expr etype] : ( ( expr[null] COMMA )=>e+= expr[ctype] ( options {k=2; } : COMMA e+= expr[ctype] )* ( COMMA )? | expr[ctype] );
public final PythonParser.exprlist_return exprlist(expr_contextType ctype) throws RecognitionException {
PythonParser.exprlist_return retval = new PythonParser.exprlist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA257=null;
Token COMMA258=null;
List list_e=null;
PythonParser.expr_return expr259 = null;
PythonParser.expr_return e = null;
e = null;
PythonTree COMMA257_tree=null;
PythonTree COMMA258_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:5: ( ( expr[null] COMMA )=>e+= expr[ctype] ( options {k=2; } : COMMA e+= expr[ctype] )* ( COMMA )? | expr[ctype] )
int alt131=2;
alt131 = dfa131.predict(input);
switch (alt131) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:7: ( expr[null] COMMA )=>e+= expr[ctype] ( options {k=2; } : COMMA e+= expr[ctype] )* ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_expr_in_exprlist7007);
e=expr(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree());
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:44: ( options {k=2; } : COMMA e+= expr[ctype] )*
loop129:
do {
int alt129=2;
alt129 = dfa129.predict(input);
switch (alt129) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:61: COMMA e+= expr[ctype]
{
COMMA257=(Token)match(input,COMMA,FOLLOW_COMMA_in_exprlist7019); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA257_tree = (PythonTree)adaptor.create(COMMA257);
adaptor.addChild(root_0, COMMA257_tree);
}
pushFollow(FOLLOW_expr_in_exprlist7023);
e=expr(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree());
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTree());
}
break;
default :
break loop129;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:84: ( COMMA )?
int alt130=2;
int LA130_0 = input.LA(1);
if ( (LA130_0==COMMA) ) {
alt130=1;
}
switch (alt130) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:85: COMMA
{
COMMA258=(Token)match(input,COMMA,FOLLOW_COMMA_in_exprlist7029); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA258_tree = (PythonTree)adaptor.create(COMMA258);
adaptor.addChild(root_0, COMMA258_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.etype = new Tuple(((Token)retval.start), actions.castExprs(list_e), ctype);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1892:7: expr[ctype]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_expr_in_exprlist7048);
expr259=expr(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, expr259.getTree());
if ( state.backtracking==0 ) {
retval.etype = actions.castExpr((expr259!=null?((PythonTree)expr259.tree):null));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "exprlist"
public static class del_list_return extends ParserRuleReturnScope {
public List<expr> etypes;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "del_list"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1900:1: del_list returns [List<expr> etypes] : e+= expr[expr_contextType.Del] ( options {k=2; } : COMMA e+= expr[expr_contextType.Del] )* ( COMMA )? ;
public final PythonParser.del_list_return del_list() throws RecognitionException {
PythonParser.del_list_return retval = new PythonParser.del_list_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA260=null;
Token COMMA261=null;
List list_e=null;
PythonParser.expr_return e = null;
e = null;
PythonTree COMMA260_tree=null;
PythonTree COMMA261_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:5: (e+= expr[expr_contextType.Del] ( options {k=2; } : COMMA e+= expr[expr_contextType.Del] )* ( COMMA )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:7: e+= expr[expr_contextType.Del] ( options {k=2; } : COMMA e+= expr[expr_contextType.Del] )* ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_expr_in_del_list7086);
e=expr(expr_contextType.Del);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree());
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:37: ( options {k=2; } : COMMA e+= expr[expr_contextType.Del] )*
loop132:
do {
int alt132=2;
alt132 = dfa132.predict(input);
switch (alt132) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:54: COMMA e+= expr[expr_contextType.Del]
{
COMMA260=(Token)match(input,COMMA,FOLLOW_COMMA_in_del_list7098); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA260_tree = (PythonTree)adaptor.create(COMMA260);
adaptor.addChild(root_0, COMMA260_tree);
}
pushFollow(FOLLOW_expr_in_del_list7102);
e=expr(expr_contextType.Del);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree());
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTree());
}
break;
default :
break loop132;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:92: ( COMMA )?
int alt133=2;
int LA133_0 = input.LA(1);
if ( (LA133_0==COMMA) ) {
alt133=1;
}
switch (alt133) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1902:93: COMMA
{
COMMA261=(Token)match(input,COMMA,FOLLOW_COMMA_in_del_list7108); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA261_tree = (PythonTree)adaptor.create(COMMA261);
adaptor.addChild(root_0, COMMA261_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.etypes = actions.makeDeleteList(list_e);
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "del_list"
public static class testlist_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "testlist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1909:1: testlist[expr_contextType ctype] : ( ( test[null] COMMA )=>t+= test[ctype] ( options {k=2; } : COMMA t+= test[ctype] )* ( COMMA )? | test[ctype] );
public final PythonParser.testlist_return testlist(expr_contextType ctype) throws RecognitionException {
PythonParser.testlist_return retval = new PythonParser.testlist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA262=null;
Token COMMA263=null;
List list_t=null;
PythonParser.test_return test264 = null;
PythonParser.test_return t = null;
t = null;
PythonTree COMMA262_tree=null;
PythonTree COMMA263_tree=null;
expr etype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1918:5: ( ( test[null] COMMA )=>t+= test[ctype] ( options {k=2; } : COMMA t+= test[ctype] )* ( COMMA )? | test[ctype] )
int alt136=2;
alt136 = dfa136.predict(input);
switch (alt136) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1918:7: ( test[null] COMMA )=>t+= test[ctype] ( options {k=2; } : COMMA t+= test[ctype] )* ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_testlist7161);
t=test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1919:22: ( options {k=2; } : COMMA t+= test[ctype] )*
loop134:
do {
int alt134=2;
alt134 = dfa134.predict(input);
switch (alt134) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1919:39: COMMA t+= test[ctype]
{
COMMA262=(Token)match(input,COMMA,FOLLOW_COMMA_in_testlist7173); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA262_tree = (PythonTree)adaptor.create(COMMA262);
adaptor.addChild(root_0, COMMA262_tree);
}
pushFollow(FOLLOW_test_in_testlist7177);
t=test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t.getTree());
if (list_t==null) list_t=new ArrayList();
list_t.add(t.getTree());
}
break;
default :
break loop134;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1919:62: ( COMMA )?
int alt135=2;
int LA135_0 = input.LA(1);
if ( (LA135_0==COMMA) ) {
alt135=1;
}
switch (alt135) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1919:63: COMMA
{
COMMA263=(Token)match(input,COMMA,FOLLOW_COMMA_in_testlist7183); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA263_tree = (PythonTree)adaptor.create(COMMA263);
adaptor.addChild(root_0, COMMA263_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
etype = new Tuple(((Token)retval.start), actions.castExprs(list_t), ctype);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1923:7: test[ctype]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_testlist7201);
test264=test(ctype);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test264.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
if (etype != null) {
retval.tree = etype;
}
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "testlist"
public static class dictmaker_return extends ParserRuleReturnScope {
public List keys;
public List values;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "dictmaker"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1927:1: dictmaker returns [List keys, List values] : k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] ( options {k=2; } : COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] )* ( COMMA )? ;
public final PythonParser.dictmaker_return dictmaker() throws RecognitionException {
PythonParser.dictmaker_return retval = new PythonParser.dictmaker_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COLON265=null;
Token COMMA266=null;
Token COLON267=null;
Token COMMA268=null;
List list_k=null;
List list_v=null;
PythonParser.test_return k = null;
k = null;
PythonParser.test_return v = null;
v = null;
PythonTree COLON265_tree=null;
PythonTree COMMA266_tree=null;
PythonTree COLON267_tree=null;
PythonTree COMMA268_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1929:5: (k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] ( options {k=2; } : COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] )* ( COMMA )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1929:7: k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] ( options {k=2; } : COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] )* ( COMMA )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_dictmaker7230);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
if (list_k==null) list_k=new ArrayList();
list_k.add(k.getTree());
COLON265=(Token)match(input,COLON,FOLLOW_COLON_in_dictmaker7233); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON265_tree = (PythonTree)adaptor.create(COLON265);
adaptor.addChild(root_0, COLON265_tree);
}
pushFollow(FOLLOW_test_in_dictmaker7237);
v=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, v.getTree());
if (list_v==null) list_v=new ArrayList();
list_v.add(v.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1930:9: ( options {k=2; } : COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] )*
loop137:
do {
int alt137=2;
alt137 = dfa137.predict(input);
switch (alt137) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1930:25: COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load]
{
COMMA266=(Token)match(input,COMMA,FOLLOW_COMMA_in_dictmaker7256); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA266_tree = (PythonTree)adaptor.create(COMMA266);
adaptor.addChild(root_0, COMMA266_tree);
}
pushFollow(FOLLOW_test_in_dictmaker7260);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
if (list_k==null) list_k=new ArrayList();
list_k.add(k.getTree());
COLON267=(Token)match(input,COLON,FOLLOW_COLON_in_dictmaker7263); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON267_tree = (PythonTree)adaptor.create(COLON267);
adaptor.addChild(root_0, COLON267_tree);
}
pushFollow(FOLLOW_test_in_dictmaker7267);
v=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, v.getTree());
if (list_v==null) list_v=new ArrayList();
list_v.add(v.getTree());
}
break;
default :
break loop137;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1931:9: ( COMMA )?
int alt138=2;
int LA138_0 = input.LA(1);
if ( (LA138_0==COMMA) ) {
alt138=1;
}
switch (alt138) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1931:10: COMMA
{
COMMA268=(Token)match(input,COMMA,FOLLOW_COMMA_in_dictmaker7281); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA268_tree = (PythonTree)adaptor.create(COMMA268);
adaptor.addChild(root_0, COMMA268_tree);
}
}
break;
}
if ( state.backtracking==0 ) {
retval.keys = list_k;
retval.values = list_v;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "dictmaker"
public static class classdef_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "classdef"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1939:1: classdef : ( decorators )? CLASS NAME ( LPAREN ( testlist[expr_contextType.Load] )? RPAREN )? COLON suite[false] ;
public final PythonParser.classdef_return classdef() throws RecognitionException {
PythonParser.classdef_return retval = new PythonParser.classdef_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token CLASS270=null;
Token NAME271=null;
Token LPAREN272=null;
Token RPAREN274=null;
Token COLON275=null;
PythonParser.decorators_return decorators269 = null;
PythonParser.testlist_return testlist273 = null;
PythonParser.suite_return suite276 = null;
PythonTree CLASS270_tree=null;
PythonTree NAME271_tree=null;
PythonTree LPAREN272_tree=null;
PythonTree RPAREN274_tree=null;
PythonTree COLON275_tree=null;
stmt stype = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:5: ( ( decorators )? CLASS NAME ( LPAREN ( testlist[expr_contextType.Load] )? RPAREN )? COLON suite[false] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:7: ( decorators )? CLASS NAME ( LPAREN ( testlist[expr_contextType.Load] )? RPAREN )? COLON suite[false]
{
root_0 = (PythonTree)adaptor.nil();
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:7: ( decorators )?
int alt139=2;
int LA139_0 = input.LA(1);
if ( (LA139_0==AT) ) {
alt139=1;
}
switch (alt139) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:7: decorators
{
pushFollow(FOLLOW_decorators_in_classdef7319);
decorators269=decorators();
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, decorators269.getTree());
}
break;
}
CLASS270=(Token)match(input,CLASS,FOLLOW_CLASS_in_classdef7322); if (state.failed) return retval;
if ( state.backtracking==0 ) {
CLASS270_tree = (PythonTree)adaptor.create(CLASS270);
adaptor.addChild(root_0, CLASS270_tree);
}
NAME271=(Token)match(input,NAME,FOLLOW_NAME_in_classdef7324); if (state.failed) return retval;
if ( state.backtracking==0 ) {
NAME271_tree = (PythonTree)adaptor.create(NAME271);
adaptor.addChild(root_0, NAME271_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:30: ( LPAREN ( testlist[expr_contextType.Load] )? RPAREN )?
int alt141=2;
int LA141_0 = input.LA(1);
if ( (LA141_0==LPAREN) ) {
alt141=1;
}
switch (alt141) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:31: LPAREN ( testlist[expr_contextType.Load] )? RPAREN
{
LPAREN272=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_classdef7327); if (state.failed) return retval;
if ( state.backtracking==0 ) {
LPAREN272_tree = (PythonTree)adaptor.create(LPAREN272);
adaptor.addChild(root_0, LPAREN272_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:38: ( testlist[expr_contextType.Load] )?
int alt140=2;
int LA140_0 = input.LA(1);
if ( (LA140_0==NAME||(LA140_0>=LAMBDA && LA140_0<=NOT)||LA140_0==LPAREN||(LA140_0>=PLUS && LA140_0<=MINUS)||(LA140_0>=TILDE && LA140_0<=LBRACK)||LA140_0==LCURLY||(LA140_0>=BACKQUOTE && LA140_0<=STRING)) ) {
alt140=1;
}
switch (alt140) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1946:38: testlist[expr_contextType.Load]
{
pushFollow(FOLLOW_testlist_in_classdef7329);
testlist273=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist273.getTree());
}
break;
}
RPAREN274=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_classdef7333); if (state.failed) return retval;
if ( state.backtracking==0 ) {
RPAREN274_tree = (PythonTree)adaptor.create(RPAREN274);
adaptor.addChild(root_0, RPAREN274_tree);
}
}
break;
}
COLON275=(Token)match(input,COLON,FOLLOW_COLON_in_classdef7337); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COLON275_tree = (PythonTree)adaptor.create(COLON275);
adaptor.addChild(root_0, COLON275_tree);
}
pushFollow(FOLLOW_suite_in_classdef7339);
suite276=suite(false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, suite276.getTree());
if ( state.backtracking==0 ) {
Token t = CLASS270;
if ((decorators269!=null?((Token)decorators269.start):null) != null) {
t = (decorators269!=null?((Token)decorators269.start):null);
}
stype = new ClassDef(t, actions.cantBeNoneName(NAME271),
actions.makeBases(actions.castExpr((testlist273!=null?((PythonTree)testlist273.tree):null))),
actions.castStmts((suite276!=null?suite276.stypes:null)),
actions.castExprs((decorators269!=null?decorators269.etypes:null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
retval.tree = stype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "classdef"
public static class arglist_return extends ParserRuleReturnScope {
public List args;
public List keywords;
public expr starargs;
public expr kwargs;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "arglist"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1962:1: arglist returns [List args, List keywords, expr starargs, expr kwargs] : ( argument[arguments, kws, gens, true, false] ( COMMA argument[arguments, kws, gens, false, false] )* ( COMMA ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )? )? | STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] );
public final PythonParser.arglist_return arglist() throws RecognitionException {
PythonParser.arglist_return retval = new PythonParser.arglist_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token COMMA278=null;
Token COMMA280=null;
Token STAR281=null;
Token COMMA282=null;
Token COMMA284=null;
Token DOUBLESTAR285=null;
Token DOUBLESTAR286=null;
Token STAR287=null;
Token COMMA288=null;
Token COMMA290=null;
Token DOUBLESTAR291=null;
Token DOUBLESTAR292=null;
PythonParser.test_return s = null;
PythonParser.test_return k = null;
PythonParser.argument_return argument277 = null;
PythonParser.argument_return argument279 = null;
PythonParser.argument_return argument283 = null;
PythonParser.argument_return argument289 = null;
PythonTree COMMA278_tree=null;
PythonTree COMMA280_tree=null;
PythonTree STAR281_tree=null;
PythonTree COMMA282_tree=null;
PythonTree COMMA284_tree=null;
PythonTree DOUBLESTAR285_tree=null;
PythonTree DOUBLESTAR286_tree=null;
PythonTree STAR287_tree=null;
PythonTree COMMA288_tree=null;
PythonTree COMMA290_tree=null;
PythonTree DOUBLESTAR291_tree=null;
PythonTree DOUBLESTAR292_tree=null;
List arguments = new ArrayList();
List kws = new ArrayList();
List gens = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1969:5: ( argument[arguments, kws, gens, true, false] ( COMMA argument[arguments, kws, gens, false, false] )* ( COMMA ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )? )? | STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )
int alt149=3;
switch ( input.LA(1) ) {
case NAME:
case LAMBDA:
case NOT:
case LPAREN:
case PLUS:
case MINUS:
case TILDE:
case LBRACK:
case LCURLY:
case BACKQUOTE:
case INT:
case LONGINT:
case FLOAT:
case COMPLEX:
case STRING:
{
alt149=1;
}
break;
case STAR:
{
alt149=2;
}
break;
case DOUBLESTAR:
{
alt149=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 149, 0, input);
throw nvae;
}
switch (alt149) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1969:7: argument[arguments, kws, gens, true, false] ( COMMA argument[arguments, kws, gens, false, false] )* ( COMMA ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )? )?
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_argument_in_arglist7381);
argument277=argument(arguments, kws, gens, true, false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument277.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1969:51: ( COMMA argument[arguments, kws, gens, false, false] )*
loop142:
do {
int alt142=2;
int LA142_0 = input.LA(1);
if ( (LA142_0==COMMA) ) {
int LA142_1 = input.LA(2);
if ( (LA142_1==NAME||(LA142_1>=LAMBDA && LA142_1<=NOT)||LA142_1==LPAREN||(LA142_1>=PLUS && LA142_1<=MINUS)||(LA142_1>=TILDE && LA142_1<=LBRACK)||LA142_1==LCURLY||(LA142_1>=BACKQUOTE && LA142_1<=STRING)) ) {
alt142=1;
}
}
switch (alt142) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1969:52: COMMA argument[arguments, kws, gens, false, false]
{
COMMA278=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7385); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA278_tree = (PythonTree)adaptor.create(COMMA278);
adaptor.addChild(root_0, COMMA278_tree);
}
pushFollow(FOLLOW_argument_in_arglist7387);
argument279=argument(arguments, kws, gens, false, false);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument279.getTree());
}
break;
default :
break loop142;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1970:11: ( COMMA ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )? )?
int alt146=2;
int LA146_0 = input.LA(1);
if ( (LA146_0==COMMA) ) {
alt146=1;
}
switch (alt146) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1970:12: COMMA ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )?
{
COMMA280=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7403); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA280_tree = (PythonTree)adaptor.create(COMMA280);
adaptor.addChild(root_0, COMMA280_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:15: ( STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )? | DOUBLESTAR k= test[expr_contextType.Load] )?
int alt145=3;
int LA145_0 = input.LA(1);
if ( (LA145_0==STAR) ) {
alt145=1;
}
else if ( (LA145_0==DOUBLESTAR) ) {
alt145=2;
}
switch (alt145) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:17: STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )?
{
STAR281=(Token)match(input,STAR,FOLLOW_STAR_in_arglist7421); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR281_tree = (PythonTree)adaptor.create(STAR281);
adaptor.addChild(root_0, STAR281_tree);
}
pushFollow(FOLLOW_test_in_arglist7425);
s=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:52: ( COMMA argument[arguments, kws, gens, false, true] )*
loop143:
do {
int alt143=2;
int LA143_0 = input.LA(1);
if ( (LA143_0==COMMA) ) {
int LA143_1 = input.LA(2);
if ( (LA143_1==NAME||(LA143_1>=LAMBDA && LA143_1<=NOT)||LA143_1==LPAREN||(LA143_1>=PLUS && LA143_1<=MINUS)||(LA143_1>=TILDE && LA143_1<=LBRACK)||LA143_1==LCURLY||(LA143_1>=BACKQUOTE && LA143_1<=STRING)) ) {
alt143=1;
}
}
switch (alt143) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:53: COMMA argument[arguments, kws, gens, false, true]
{
COMMA282=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7429); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA282_tree = (PythonTree)adaptor.create(COMMA282);
adaptor.addChild(root_0, COMMA282_tree);
}
pushFollow(FOLLOW_argument_in_arglist7431);
argument283=argument(arguments, kws, gens, false, true);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument283.getTree());
}
break;
default :
break loop143;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:105: ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )?
int alt144=2;
int LA144_0 = input.LA(1);
if ( (LA144_0==COMMA) ) {
alt144=1;
}
switch (alt144) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1971:106: COMMA DOUBLESTAR k= test[expr_contextType.Load]
{
COMMA284=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7437); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA284_tree = (PythonTree)adaptor.create(COMMA284);
adaptor.addChild(root_0, COMMA284_tree);
}
DOUBLESTAR285=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist7439); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR285_tree = (PythonTree)adaptor.create(DOUBLESTAR285);
adaptor.addChild(root_0, DOUBLESTAR285_tree);
}
pushFollow(FOLLOW_test_in_arglist7443);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
}
break;
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1972:17: DOUBLESTAR k= test[expr_contextType.Load]
{
DOUBLESTAR286=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist7464); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR286_tree = (PythonTree)adaptor.create(DOUBLESTAR286);
adaptor.addChild(root_0, DOUBLESTAR286_tree);
}
pushFollow(FOLLOW_test_in_arglist7468);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
}
break;
}
}
break;
}
if ( state.backtracking==0 ) {
if (arguments.size() > 1 && gens.size() > 0) {
actions.errorGenExpNotSoleArg(new PythonTree(((Token)retval.start)));
}
retval.args =arguments;
retval.keywords =kws;
retval.starargs =actions.castExpr((s!=null?((PythonTree)s.tree):null));
retval.kwargs =actions.castExpr((k!=null?((PythonTree)k.tree):null));
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1984:7: STAR s= test[expr_contextType.Load] ( COMMA argument[arguments, kws, gens, false, true] )* ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )?
{
root_0 = (PythonTree)adaptor.nil();
STAR287=(Token)match(input,STAR,FOLLOW_STAR_in_arglist7515); if (state.failed) return retval;
if ( state.backtracking==0 ) {
STAR287_tree = (PythonTree)adaptor.create(STAR287);
adaptor.addChild(root_0, STAR287_tree);
}
pushFollow(FOLLOW_test_in_arglist7519);
s=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1984:42: ( COMMA argument[arguments, kws, gens, false, true] )*
loop147:
do {
int alt147=2;
int LA147_0 = input.LA(1);
if ( (LA147_0==COMMA) ) {
int LA147_1 = input.LA(2);
if ( (LA147_1==NAME||(LA147_1>=LAMBDA && LA147_1<=NOT)||LA147_1==LPAREN||(LA147_1>=PLUS && LA147_1<=MINUS)||(LA147_1>=TILDE && LA147_1<=LBRACK)||LA147_1==LCURLY||(LA147_1>=BACKQUOTE && LA147_1<=STRING)) ) {
alt147=1;
}
}
switch (alt147) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1984:43: COMMA argument[arguments, kws, gens, false, true]
{
COMMA288=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7523); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA288_tree = (PythonTree)adaptor.create(COMMA288);
adaptor.addChild(root_0, COMMA288_tree);
}
pushFollow(FOLLOW_argument_in_arglist7525);
argument289=argument(arguments, kws, gens, false, true);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, argument289.getTree());
}
break;
default :
break loop147;
}
} while (true);
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1984:95: ( COMMA DOUBLESTAR k= test[expr_contextType.Load] )?
int alt148=2;
int LA148_0 = input.LA(1);
if ( (LA148_0==COMMA) ) {
alt148=1;
}
switch (alt148) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1984:96: COMMA DOUBLESTAR k= test[expr_contextType.Load]
{
COMMA290=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist7531); if (state.failed) return retval;
if ( state.backtracking==0 ) {
COMMA290_tree = (PythonTree)adaptor.create(COMMA290);
adaptor.addChild(root_0, COMMA290_tree);
}
DOUBLESTAR291=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist7533); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR291_tree = (PythonTree)adaptor.create(DOUBLESTAR291);
adaptor.addChild(root_0, DOUBLESTAR291_tree);
}
pushFollow(FOLLOW_test_in_arglist7537);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
}
break;
}
if ( state.backtracking==0 ) {
retval.starargs =actions.castExpr((s!=null?((PythonTree)s.tree):null));
retval.keywords =kws;
retval.kwargs =actions.castExpr((k!=null?((PythonTree)k.tree):null));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1990:7: DOUBLESTAR k= test[expr_contextType.Load]
{
root_0 = (PythonTree)adaptor.nil();
DOUBLESTAR292=(Token)match(input,DOUBLESTAR,FOLLOW_DOUBLESTAR_in_arglist7556); if (state.failed) return retval;
if ( state.backtracking==0 ) {
DOUBLESTAR292_tree = (PythonTree)adaptor.create(DOUBLESTAR292);
adaptor.addChild(root_0, DOUBLESTAR292_tree);
}
pushFollow(FOLLOW_test_in_arglist7560);
k=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, k.getTree());
if ( state.backtracking==0 ) {
retval.kwargs =actions.castExpr((k!=null?((PythonTree)k.tree):null));
}
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "arglist"
public static class argument_return extends ParserRuleReturnScope {
public boolean genarg;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "argument"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1997:1: argument[List arguments, List kws, List gens, boolean first, boolean afterStar] returns [boolean genarg] : t1= test[expr_contextType.Load] ( ( ASSIGN t2= test[expr_contextType.Load] ) | gen_for[$gens] | ) ;
public final PythonParser.argument_return argument(List arguments, List kws, List gens, boolean first, boolean afterStar) throws RecognitionException {
PythonParser.argument_return retval = new PythonParser.argument_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token ASSIGN293=null;
PythonParser.test_return t1 = null;
PythonParser.test_return t2 = null;
PythonParser.gen_for_return gen_for294 = null;
PythonTree ASSIGN293_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1999:5: (t1= test[expr_contextType.Load] ( ( ASSIGN t2= test[expr_contextType.Load] ) | gen_for[$gens] | ) )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1999:7: t1= test[expr_contextType.Load] ( ( ASSIGN t2= test[expr_contextType.Load] ) | gen_for[$gens] | )
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_test_in_argument7599);
t1=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t1.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2000:9: ( ( ASSIGN t2= test[expr_contextType.Load] ) | gen_for[$gens] | )
int alt150=3;
switch ( input.LA(1) ) {
case ASSIGN:
{
alt150=1;
}
break;
case FOR:
{
alt150=2;
}
break;
case RPAREN:
case COMMA:
{
alt150=3;
}
break;
default:
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 150, 0, input);
throw nvae;
}
switch (alt150) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2000:10: ( ASSIGN t2= test[expr_contextType.Load] )
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2000:10: ( ASSIGN t2= test[expr_contextType.Load] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2000:11: ASSIGN t2= test[expr_contextType.Load]
{
ASSIGN293=(Token)match(input,ASSIGN,FOLLOW_ASSIGN_in_argument7612); if (state.failed) return retval;
if ( state.backtracking==0 ) {
ASSIGN293_tree = (PythonTree)adaptor.create(ASSIGN293);
adaptor.addChild(root_0, ASSIGN293_tree);
}
pushFollow(FOLLOW_test_in_argument7616);
t2=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, t2.getTree());
}
if ( state.backtracking==0 ) {
expr newkey = actions.castExpr((t1!=null?((PythonTree)t1.tree):null));
//Loop through all current keys and fail on duplicate.
for(Object o: kws) {
List list = (List)o;
Object oldkey = list.get(0);
if (oldkey instanceof Name && newkey instanceof Name) {
if (((Name)oldkey).getId().equals(((Name)newkey).getId())) {
errorHandler.error("keyword arguments repeated", (t1!=null?((PythonTree)t1.tree):null));
}
}
}
List<expr> exprs = new ArrayList<expr>();
exprs.add(newkey);
exprs.add(actions.castExpr((t2!=null?((PythonTree)t2.tree):null)));
kws.add(exprs);
}
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2018:11: gen_for[$gens]
{
pushFollow(FOLLOW_gen_for_in_argument7642);
gen_for294=gen_for(gens);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gen_for294.getTree());
if ( state.backtracking==0 ) {
if (!first) {
actions.errorGenExpNotSoleArg((gen_for294!=null?((PythonTree)gen_for294.tree):null));
}
retval.genarg = true;
Collections.reverse(gens);
List<comprehension> c = gens;
arguments.add(new GeneratorExp((t1!=null?((Token)t1.start):null), actions.castExpr((t1!=null?((PythonTree)t1.tree):null)), c));
}
}
break;
case 3 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2029:11:
{
if ( state.backtracking==0 ) {
if (kws.size() > 0) {
errorHandler.error("non-keyword arg after keyword arg", (t1!=null?((PythonTree)t1.tree):null));
} else if (afterStar) {
errorHandler.error("only named arguments may follow *expression", (t1!=null?((PythonTree)t1.tree):null));
}
arguments.add((t1!=null?((PythonTree)t1.tree):null));
}
}
break;
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "argument"
public static class list_iter_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "list_iter"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2041:1: list_iter[List gens, List ifs] : ( list_for[gens] | list_if[gens, ifs] );
public final PythonParser.list_iter_return list_iter(List gens, List ifs) throws RecognitionException {
PythonParser.list_iter_return retval = new PythonParser.list_iter_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.list_for_return list_for295 = null;
PythonParser.list_if_return list_if296 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2042:5: ( list_for[gens] | list_if[gens, ifs] )
int alt151=2;
int LA151_0 = input.LA(1);
if ( (LA151_0==FOR) ) {
alt151=1;
}
else if ( (LA151_0==IF) ) {
alt151=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 151, 0, input);
throw nvae;
}
switch (alt151) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2042:7: list_for[gens]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_list_for_in_list_iter7707);
list_for295=list_for(gens);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_for295.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2043:7: list_if[gens, ifs]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_list_if_in_list_iter7716);
list_if296=list_if(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_if296.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "list_iter"
public static class list_for_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "list_for"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2047:1: list_for[List gens] : FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] ( list_iter[gens, ifs] )? ;
public final PythonParser.list_for_return list_for(List gens) throws RecognitionException {
PythonParser.list_for_return retval = new PythonParser.list_for_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token FOR297=null;
Token IN299=null;
PythonParser.exprlist_return exprlist298 = null;
PythonParser.testlist_return testlist300 = null;
PythonParser.list_iter_return list_iter301 = null;
PythonTree FOR297_tree=null;
PythonTree IN299_tree=null;
List ifs = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2051:5: ( FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] ( list_iter[gens, ifs] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2051:7: FOR exprlist[expr_contextType.Store] IN testlist[expr_contextType.Load] ( list_iter[gens, ifs] )?
{
root_0 = (PythonTree)adaptor.nil();
FOR297=(Token)match(input,FOR,FOLLOW_FOR_in_list_for7742); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR297_tree = (PythonTree)adaptor.create(FOR297);
adaptor.addChild(root_0, FOR297_tree);
}
pushFollow(FOLLOW_exprlist_in_list_for7744);
exprlist298=exprlist(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exprlist298.getTree());
IN299=(Token)match(input,IN,FOLLOW_IN_in_list_for7747); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN299_tree = (PythonTree)adaptor.create(IN299);
adaptor.addChild(root_0, IN299_tree);
}
pushFollow(FOLLOW_testlist_in_list_for7749);
testlist300=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist300.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2051:79: ( list_iter[gens, ifs] )?
int alt152=2;
int LA152_0 = input.LA(1);
if ( (LA152_0==FOR||LA152_0==IF) ) {
alt152=1;
}
switch (alt152) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2051:80: list_iter[gens, ifs]
{
pushFollow(FOLLOW_list_iter_in_list_for7753);
list_iter301=list_iter(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_iter301.getTree());
}
break;
}
if ( state.backtracking==0 ) {
Collections.reverse(ifs);
gens.add(new comprehension(FOR297, (exprlist298!=null?exprlist298.etype:null), actions.castExpr((testlist300!=null?((PythonTree)testlist300.tree):null)), ifs));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "list_for"
public static class list_if_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "list_if"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2059:1: list_if[List gens, List ifs] : IF test[expr_contextType.Load] ( list_iter[gens, ifs] )? ;
public final PythonParser.list_if_return list_if(List gens, List ifs) throws RecognitionException {
PythonParser.list_if_return retval = new PythonParser.list_if_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token IF302=null;
PythonParser.test_return test303 = null;
PythonParser.list_iter_return list_iter304 = null;
PythonTree IF302_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2060:5: ( IF test[expr_contextType.Load] ( list_iter[gens, ifs] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2060:7: IF test[expr_contextType.Load] ( list_iter[gens, ifs] )?
{
root_0 = (PythonTree)adaptor.nil();
IF302=(Token)match(input,IF,FOLLOW_IF_in_list_if7783); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IF302_tree = (PythonTree)adaptor.create(IF302);
adaptor.addChild(root_0, IF302_tree);
}
pushFollow(FOLLOW_test_in_list_if7785);
test303=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test303.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2060:38: ( list_iter[gens, ifs] )?
int alt153=2;
int LA153_0 = input.LA(1);
if ( (LA153_0==FOR||LA153_0==IF) ) {
alt153=1;
}
switch (alt153) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2060:39: list_iter[gens, ifs]
{
pushFollow(FOLLOW_list_iter_in_list_if7789);
list_iter304=list_iter(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, list_iter304.getTree());
}
break;
}
if ( state.backtracking==0 ) {
ifs.add(actions.castExpr((test303!=null?((PythonTree)test303.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "list_if"
public static class gen_iter_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gen_iter"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2067:1: gen_iter[List gens, List ifs] : ( gen_for[gens] | gen_if[gens, ifs] );
public final PythonParser.gen_iter_return gen_iter(List gens, List ifs) throws RecognitionException {
PythonParser.gen_iter_return retval = new PythonParser.gen_iter_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
PythonParser.gen_for_return gen_for305 = null;
PythonParser.gen_if_return gen_if306 = null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2068:5: ( gen_for[gens] | gen_if[gens, ifs] )
int alt154=2;
int LA154_0 = input.LA(1);
if ( (LA154_0==FOR) ) {
alt154=1;
}
else if ( (LA154_0==IF) ) {
alt154=2;
}
else {
if (state.backtracking>0) {state.failed=true; return retval;}
NoViableAltException nvae =
new NoViableAltException("", 154, 0, input);
throw nvae;
}
switch (alt154) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2068:7: gen_for[gens]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_gen_for_in_gen_iter7820);
gen_for305=gen_for(gens);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gen_for305.getTree());
}
break;
case 2 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2069:7: gen_if[gens, ifs]
{
root_0 = (PythonTree)adaptor.nil();
pushFollow(FOLLOW_gen_if_in_gen_iter7829);
gen_if306=gen_if(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gen_if306.getTree());
}
break;
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "gen_iter"
public static class gen_for_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gen_for"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2073:1: gen_for[List gens] : FOR exprlist[expr_contextType.Store] IN or_test[expr_contextType.Load] ( gen_iter[gens, ifs] )? ;
public final PythonParser.gen_for_return gen_for(List gens) throws RecognitionException {
PythonParser.gen_for_return retval = new PythonParser.gen_for_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token FOR307=null;
Token IN309=null;
PythonParser.exprlist_return exprlist308 = null;
PythonParser.or_test_return or_test310 = null;
PythonParser.gen_iter_return gen_iter311 = null;
PythonTree FOR307_tree=null;
PythonTree IN309_tree=null;
List ifs = new ArrayList();
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2077:5: ( FOR exprlist[expr_contextType.Store] IN or_test[expr_contextType.Load] ( gen_iter[gens, ifs] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2077:7: FOR exprlist[expr_contextType.Store] IN or_test[expr_contextType.Load] ( gen_iter[gens, ifs] )?
{
root_0 = (PythonTree)adaptor.nil();
FOR307=(Token)match(input,FOR,FOLLOW_FOR_in_gen_for7855); if (state.failed) return retval;
if ( state.backtracking==0 ) {
FOR307_tree = (PythonTree)adaptor.create(FOR307);
adaptor.addChild(root_0, FOR307_tree);
}
pushFollow(FOLLOW_exprlist_in_gen_for7857);
exprlist308=exprlist(expr_contextType.Store);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, exprlist308.getTree());
IN309=(Token)match(input,IN,FOLLOW_IN_in_gen_for7860); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IN309_tree = (PythonTree)adaptor.create(IN309);
adaptor.addChild(root_0, IN309_tree);
}
pushFollow(FOLLOW_or_test_in_gen_for7862);
or_test310=or_test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, or_test310.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2077:78: ( gen_iter[gens, ifs] )?
int alt155=2;
int LA155_0 = input.LA(1);
if ( (LA155_0==FOR||LA155_0==IF) ) {
alt155=1;
}
switch (alt155) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2077:78: gen_iter[gens, ifs]
{
pushFollow(FOLLOW_gen_iter_in_gen_for7865);
gen_iter311=gen_iter(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gen_iter311.getTree());
}
break;
}
if ( state.backtracking==0 ) {
Collections.reverse(ifs);
gens.add(new comprehension(FOR307, (exprlist308!=null?exprlist308.etype:null), actions.castExpr((or_test310!=null?((PythonTree)or_test310.tree):null)), ifs));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "gen_for"
public static class gen_if_return extends ParserRuleReturnScope {
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "gen_if"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2085:1: gen_if[List gens, List ifs] : IF test[expr_contextType.Load] ( gen_iter[gens, ifs] )? ;
public final PythonParser.gen_if_return gen_if(List gens, List ifs) throws RecognitionException {
PythonParser.gen_if_return retval = new PythonParser.gen_if_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token IF312=null;
PythonParser.test_return test313 = null;
PythonParser.gen_iter_return gen_iter314 = null;
PythonTree IF312_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2086:5: ( IF test[expr_contextType.Load] ( gen_iter[gens, ifs] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2086:7: IF test[expr_contextType.Load] ( gen_iter[gens, ifs] )?
{
root_0 = (PythonTree)adaptor.nil();
IF312=(Token)match(input,IF,FOLLOW_IF_in_gen_if7894); if (state.failed) return retval;
if ( state.backtracking==0 ) {
IF312_tree = (PythonTree)adaptor.create(IF312);
adaptor.addChild(root_0, IF312_tree);
}
pushFollow(FOLLOW_test_in_gen_if7896);
test313=test(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, test313.getTree());
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2086:38: ( gen_iter[gens, ifs] )?
int alt156=2;
int LA156_0 = input.LA(1);
if ( (LA156_0==FOR||LA156_0==IF) ) {
alt156=1;
}
switch (alt156) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2086:38: gen_iter[gens, ifs]
{
pushFollow(FOLLOW_gen_iter_in_gen_if7899);
gen_iter314=gen_iter(gens, ifs);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, gen_iter314.getTree());
}
break;
}
if ( state.backtracking==0 ) {
ifs.add(actions.castExpr((test313!=null?((PythonTree)test313.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "gen_if"
public static class yield_expr_return extends ParserRuleReturnScope {
public expr etype;
PythonTree tree;
public Object getTree() { return tree; }
};
// $ANTLR start "yield_expr"
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2093:1: yield_expr returns [expr etype] : YIELD ( testlist[expr_contextType.Load] )? ;
public final PythonParser.yield_expr_return yield_expr() throws RecognitionException {
PythonParser.yield_expr_return retval = new PythonParser.yield_expr_return();
retval.start = input.LT(1);
PythonTree root_0 = null;
Token YIELD315=null;
PythonParser.testlist_return testlist316 = null;
PythonTree YIELD315_tree=null;
try {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2099:5: ( YIELD ( testlist[expr_contextType.Load] )? )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2099:7: YIELD ( testlist[expr_contextType.Load] )?
{
root_0 = (PythonTree)adaptor.nil();
YIELD315=(Token)match(input,YIELD,FOLLOW_YIELD_in_yield_expr7940); if (state.failed) return retval;
if ( state.backtracking==0 ) {
YIELD315_tree = (PythonTree)adaptor.create(YIELD315);
adaptor.addChild(root_0, YIELD315_tree);
}
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2099:13: ( testlist[expr_contextType.Load] )?
int alt157=2;
int LA157_0 = input.LA(1);
if ( (LA157_0==NAME||(LA157_0>=LAMBDA && LA157_0<=NOT)||LA157_0==LPAREN||(LA157_0>=PLUS && LA157_0<=MINUS)||(LA157_0>=TILDE && LA157_0<=LBRACK)||LA157_0==LCURLY||(LA157_0>=BACKQUOTE && LA157_0<=STRING)) ) {
alt157=1;
}
switch (alt157) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:2099:13: testlist[expr_contextType.Load]
{
pushFollow(FOLLOW_testlist_in_yield_expr7942);
testlist316=testlist(expr_contextType.Load);
state._fsp--;
if (state.failed) return retval;
if ( state.backtracking==0 ) adaptor.addChild(root_0, testlist316.getTree());
}
break;
}
if ( state.backtracking==0 ) {
retval.etype = new Yield(YIELD315, actions.castExpr((testlist316!=null?((PythonTree)testlist316.tree):null)));
}
}
retval.stop = input.LT(-1);
if ( state.backtracking==0 ) {
retval.tree = (PythonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
if ( state.backtracking==0 ) {
//needed for y2+=yield_expr
retval.tree = retval.etype;
}
}
catch (RecognitionException re) {
errorHandler.reportError(this, re);
errorHandler.recover(this, input,re);
retval.tree = (PythonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
}
return retval;
}
// $ANTLR end "yield_expr"
// $ANTLR start synpred1_Python
public final void synpred1_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:544:7: ( LPAREN fpdef[null] COMMA )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:544:8: LPAREN fpdef[null] COMMA
{
match(input,LPAREN,FOLLOW_LPAREN_in_synpred1_Python1252); if (state.failed) return ;
pushFollow(FOLLOW_fpdef_in_synpred1_Python1254);
fpdef(null);
state._fsp--;
if (state.failed) return ;
match(input,COMMA,FOLLOW_COMMA_in_synpred1_Python1257); if (state.failed) return ;
}
}
// $ANTLR end synpred1_Python
// $ANTLR start synpred2_Python
public final void synpred2_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:8: ( testlist[null] augassign )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:608:9: testlist[null] augassign
{
pushFollow(FOLLOW_testlist_in_synpred2_Python1635);
testlist(null);
state._fsp--;
if (state.failed) return ;
pushFollow(FOLLOW_augassign_in_synpred2_Python1638);
augassign();
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred2_Python
// $ANTLR start synpred3_Python
public final void synpred3_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:622:7: ( testlist[null] ASSIGN )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:622:8: testlist[null] ASSIGN
{
pushFollow(FOLLOW_testlist_in_synpred3_Python1754);
testlist(null);
state._fsp--;
if (state.failed) return ;
match(input,ASSIGN,FOLLOW_ASSIGN_in_synpred3_Python1757); if (state.failed) return ;
}
}
// $ANTLR end synpred3_Python
// $ANTLR start synpred4_Python
public final void synpred4_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:727:7: ( test[null] COMMA )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:727:8: test[null] COMMA
{
pushFollow(FOLLOW_test_in_synpred4_Python2269);
test(null);
state._fsp--;
if (state.failed) return ;
match(input,COMMA,FOLLOW_COMMA_in_synpred4_Python2272); if (state.failed) return ;
}
}
// $ANTLR end synpred4_Python
// $ANTLR start synpred5_Python
public final void synpred5_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:748:7: ( test[null] COMMA test[null] )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:748:8: test[null] COMMA test[null]
{
pushFollow(FOLLOW_test_in_synpred5_Python2368);
test(null);
state._fsp--;
if (state.failed) return ;
match(input,COMMA,FOLLOW_COMMA_in_synpred5_Python2371); if (state.failed) return ;
pushFollow(FOLLOW_test_in_synpred5_Python2373);
test(null);
state._fsp--;
if (state.failed) return ;
}
}
// $ANTLR end synpred5_Python
// $ANTLR start synpred6_Python
public final void synpred6_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1033:7: ( ( decorators )? DEF )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1033:8: ( decorators )? DEF
{
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1033:8: ( decorators )?
int alt158=2;
int LA158_0 = input.LA(1);
if ( (LA158_0==AT) ) {
alt158=1;
}
switch (alt158) {
case 1 :
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1033:8: decorators
{
pushFollow(FOLLOW_decorators_in_synpred6_Python3462);
decorators();
state._fsp--;
if (state.failed) return ;
}
break;
}
match(input,DEF,FOLLOW_DEF_in_synpred6_Python3465); if (state.failed) return ;
}
}
// $ANTLR end synpred6_Python
// $ANTLR start synpred7_Python
public final void synpred7_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1220:9: ( IF or_test[null] ORELSE )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1220:10: IF or_test[null] ORELSE
{
match(input,IF,FOLLOW_IF_in_synpred7_Python4208); if (state.failed) return ;
pushFollow(FOLLOW_or_test_in_synpred7_Python4210);
or_test(null);
state._fsp--;
if (state.failed) return ;
match(input,ORELSE,FOLLOW_ORELSE_in_synpred7_Python4213); if (state.failed) return ;
}
}
// $ANTLR end synpred7_Python
// $ANTLR start synpred8_Python
public final void synpred8_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1849:7: ( test[null] COLON )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1849:8: test[null] COLON
{
pushFollow(FOLLOW_test_in_synpred8_Python6801);
test(null);
state._fsp--;
if (state.failed) return ;
match(input,COLON,FOLLOW_COLON_in_synpred8_Python6804); if (state.failed) return ;
}
}
// $ANTLR end synpred8_Python
// $ANTLR start synpred9_Python
public final void synpred9_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1854:7: ( COLON )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1854:8: COLON
{
match(input,COLON,FOLLOW_COLON_in_synpred9_Python6852); if (state.failed) return ;
}
}
// $ANTLR end synpred9_Python
// $ANTLR start synpred10_Python
public final void synpred10_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:7: ( expr[null] COMMA )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1888:8: expr[null] COMMA
{
pushFollow(FOLLOW_expr_in_synpred10_Python6997);
expr(null);
state._fsp--;
if (state.failed) return ;
match(input,COMMA,FOLLOW_COMMA_in_synpred10_Python7000); if (state.failed) return ;
}
}
// $ANTLR end synpred10_Python
// $ANTLR start synpred11_Python
public final void synpred11_Python_fragment() throws RecognitionException {
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1918:7: ( test[null] COMMA )
// /home/alson/tmp/full_build/work/checkout/jython/grammar/Python.g:1918:8: test[null] COMMA
{
pushFollow(FOLLOW_test_in_synpred11_Python7148);
test(null);
state._fsp--;
if (state.failed) return ;
match(input,COMMA,FOLLOW_COMMA_in_synpred11_Python7151); if (state.failed) return ;
}
}
// $ANTLR end synpred11_Python
// Delegated rules
public final boolean synpred5_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred5_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred7_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred7_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred11_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred11_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred4_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred4_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred3_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred3_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred1_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred1_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred10_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred10_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred9_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred9_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred6_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred6_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred2_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred2_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
public final boolean synpred8_Python() {
state.backtracking++;
int start = input.mark();
try {
synpred8_Python_fragment(); // can never throw exception
} catch (RecognitionException re) {
System.err.println("impossible: "+re);
}
boolean success = !state.failed;
input.rewind(start);
state.backtracking--;
state.failed=false;
return success;
}
protected DFA29 dfa29 = new DFA29(this);
protected DFA34 dfa34 = new DFA34(this);
protected DFA30 dfa30 = new DFA30(this);
protected DFA39 dfa39 = new DFA39(this);
protected DFA37 dfa37 = new DFA37(this);
protected DFA42 dfa42 = new DFA42(this);
protected DFA40 dfa40 = new DFA40(this);
protected DFA51 dfa51 = new DFA51(this);
protected DFA78 dfa78 = new DFA78(this);
protected DFA87 dfa87 = new DFA87(this);
protected DFA114 dfa114 = new DFA114(this);
protected DFA127 dfa127 = new DFA127(this);
protected DFA131 dfa131 = new DFA131(this);
protected DFA129 dfa129 = new DFA129(this);
protected DFA132 dfa132 = new DFA132(this);
protected DFA136 dfa136 = new DFA136(this);
protected DFA134 dfa134 = new DFA134(this);
protected DFA137 dfa137 = new DFA137(this);
static final String DFA29_eotS =
"\12\uffff";
static final String DFA29_eofS =
"\12\uffff";
static final String DFA29_minS =
"\1\11\11\uffff";
static final String DFA29_maxS =
"\1\132\11\uffff";
static final String DFA29_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11";
static final String DFA29_specialS =
"\12\uffff}>";
static final String[] DFA29_transitionS = {
"\1\1\3\uffff\1\11\1\5\1\uffff\1\5\1\uffff\1\3\2\uffff\1\10\1"+
"\uffff\1\6\1\uffff\1\7\1\uffff\1\6\2\uffff\2\1\2\uffff\1\4\1"+
"\2\2\5\3\uffff\1\5\1\uffff\1\1\37\uffff\2\1\3\uffff\2\1\1\uffff"+
"\1\1\1\uffff\6\1",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA29_eot = DFA.unpackEncodedString(DFA29_eotS);
static final short[] DFA29_eof = DFA.unpackEncodedString(DFA29_eofS);
static final char[] DFA29_min = DFA.unpackEncodedStringToUnsignedChars(DFA29_minS);
static final char[] DFA29_max = DFA.unpackEncodedStringToUnsignedChars(DFA29_maxS);
static final short[] DFA29_accept = DFA.unpackEncodedString(DFA29_acceptS);
static final short[] DFA29_special = DFA.unpackEncodedString(DFA29_specialS);
static final short[][] DFA29_transition;
static {
int numStates = DFA29_transitionS.length;
DFA29_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA29_transition[i] = DFA.unpackEncodedString(DFA29_transitionS[i]);
}
}
class DFA29 extends DFA {
public DFA29(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 29;
this.eot = DFA29_eot;
this.eof = DFA29_eof;
this.min = DFA29_min;
this.max = DFA29_max;
this.accept = DFA29_accept;
this.special = DFA29_special;
this.transition = DFA29_transition;
}
public String getDescription() {
return "586:1: small_stmt : ( expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | exec_stmt | assert_stmt );";
}
}
static final String DFA34_eotS =
"\23\uffff";
static final String DFA34_eofS =
"\23\uffff";
static final String DFA34_minS =
"\1\11\17\0\3\uffff";
static final String DFA34_maxS =
"\1\132\17\0\3\uffff";
static final String DFA34_acceptS =
"\20\uffff\1\1\1\2\1\3";
static final String DFA34_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\3\uffff}>";
static final String[] DFA34_transitionS = {
"\1\11\24\uffff\1\17\1\1\13\uffff\1\5\37\uffff\1\2\1\3\3\uffff"+
"\1\4\1\6\1\uffff\1\7\1\uffff\1\10\1\12\1\13\1\14\1\15\1\16",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
""
};
static final short[] DFA34_eot = DFA.unpackEncodedString(DFA34_eotS);
static final short[] DFA34_eof = DFA.unpackEncodedString(DFA34_eofS);
static final char[] DFA34_min = DFA.unpackEncodedStringToUnsignedChars(DFA34_minS);
static final char[] DFA34_max = DFA.unpackEncodedStringToUnsignedChars(DFA34_maxS);
static final short[] DFA34_accept = DFA.unpackEncodedString(DFA34_acceptS);
static final short[] DFA34_special = DFA.unpackEncodedString(DFA34_specialS);
static final short[][] DFA34_transition;
static {
int numStates = DFA34_transitionS.length;
DFA34_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA34_transition[i] = DFA.unpackEncodedString(DFA34_transitionS[i]);
}
}
class DFA34 extends DFA {
public DFA34(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 34;
this.eot = DFA34_eot;
this.eof = DFA34_eof;
this.min = DFA34_min;
this.max = DFA34_max;
this.accept = DFA34_accept;
this.special = DFA34_special;
this.transition = DFA34_transition;
}
public String getDescription() {
return "608:7: ( ( testlist[null] augassign )=>lhs= testlist[expr_contextType.AugStore] ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) ) | ( testlist[null] ASSIGN )=>lhs= testlist[expr_contextType.Store] ( | ( (at= ASSIGN t+= testlist[expr_contextType.Store] )+ ) | ( (ay= ASSIGN y2+= yield_expr )+ ) ) | lhs= testlist[expr_contextType.Load] )";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA34_1 = input.LA(1);
int index34_1 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA34_2 = input.LA(1);
int index34_2 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA34_3 = input.LA(1);
int index34_3 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA34_4 = input.LA(1);
int index34_4 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA34_5 = input.LA(1);
int index34_5 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA34_6 = input.LA(1);
int index34_6 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA34_7 = input.LA(1);
int index34_7 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA34_8 = input.LA(1);
int index34_8 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA34_9 = input.LA(1);
int index34_9 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA34_10 = input.LA(1);
int index34_10 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA34_11 = input.LA(1);
int index34_11 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA34_12 = input.LA(1);
int index34_12 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA34_13 = input.LA(1);
int index34_13 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA34_14 = input.LA(1);
int index34_14 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA34_15 = input.LA(1);
int index34_15 = input.index();
input.rewind();
s = -1;
if ( (synpred2_Python()) ) {s = 16;}
else if ( (synpred3_Python()) ) {s = 17;}
else if ( (true) ) {s = 18;}
input.seek(index34_15);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 34, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA30_eotS =
"\17\uffff";
static final String DFA30_eofS =
"\17\uffff";
static final String DFA30_minS =
"\1\63\14\11\2\uffff";
static final String DFA30_maxS =
"\1\76\14\132\2\uffff";
static final String DFA30_acceptS =
"\15\uffff\1\2\1\1";
static final String DFA30_specialS =
"\17\uffff}>";
static final String[] DFA30_transitionS = {
"\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"\1\15\24\uffff\2\15\11\uffff\1\16\1\uffff\1\15\37\uffff\2\15"+
"\3\uffff\2\15\1\uffff\1\15\1\uffff\6\15",
"",
""
};
static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS);
static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS);
static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS);
static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS);
static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS);
static final short[][] DFA30_transition;
static {
int numStates = DFA30_transitionS.length;
DFA30_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]);
}
}
class DFA30 extends DFA {
public DFA30(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 30;
this.eot = DFA30_eot;
this.eof = DFA30_eof;
this.min = DFA30_min;
this.max = DFA30_max;
this.accept = DFA30_accept;
this.special = DFA30_special;
this.transition = DFA30_transition;
}
public String getDescription() {
return "609:9: ( (aay= augassign y1= yield_expr ) | (aat= augassign rhs= testlist[expr_contextType.Load] ) )";
}
}
static final String DFA39_eotS =
"\22\uffff";
static final String DFA39_eofS =
"\22\uffff";
static final String DFA39_minS =
"\1\11\17\0\2\uffff";
static final String DFA39_maxS =
"\1\132\17\0\2\uffff";
static final String DFA39_acceptS =
"\20\uffff\1\1\1\2";
static final String DFA39_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\2\uffff}>";
static final String[] DFA39_transitionS = {
"\1\11\24\uffff\1\17\1\1\13\uffff\1\5\37\uffff\1\2\1\3\3\uffff"+
"\1\4\1\6\1\uffff\1\7\1\uffff\1\10\1\12\1\13\1\14\1\15\1\16",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA39_eot = DFA.unpackEncodedString(DFA39_eotS);
static final short[] DFA39_eof = DFA.unpackEncodedString(DFA39_eofS);
static final char[] DFA39_min = DFA.unpackEncodedStringToUnsignedChars(DFA39_minS);
static final char[] DFA39_max = DFA.unpackEncodedStringToUnsignedChars(DFA39_maxS);
static final short[] DFA39_accept = DFA.unpackEncodedString(DFA39_acceptS);
static final short[] DFA39_special = DFA.unpackEncodedString(DFA39_specialS);
static final short[][] DFA39_transition;
static {
int numStates = DFA39_transitionS.length;
DFA39_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA39_transition[i] = DFA.unpackEncodedString(DFA39_transitionS[i]);
}
}
class DFA39 extends DFA {
public DFA39(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 39;
this.eot = DFA39_eot;
this.eof = DFA39_eof;
this.min = DFA39_min;
this.max = DFA39_max;
this.accept = DFA39_accept;
this.special = DFA39_special;
this.transition = DFA39_transition;
}
public String getDescription() {
return "725:1: printlist returns [boolean newline, List elts] : ( ( test[null] COMMA )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA39_1 = input.LA(1);
int index39_1 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA39_2 = input.LA(1);
int index39_2 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA39_3 = input.LA(1);
int index39_3 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA39_4 = input.LA(1);
int index39_4 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA39_5 = input.LA(1);
int index39_5 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA39_6 = input.LA(1);
int index39_6 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA39_7 = input.LA(1);
int index39_7 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA39_8 = input.LA(1);
int index39_8 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA39_9 = input.LA(1);
int index39_9 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA39_10 = input.LA(1);
int index39_10 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA39_11 = input.LA(1);
int index39_11 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA39_12 = input.LA(1);
int index39_12 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA39_13 = input.LA(1);
int index39_13 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA39_14 = input.LA(1);
int index39_14 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA39_15 = input.LA(1);
int index39_15 = input.index();
input.rewind();
s = -1;
if ( (synpred4_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index39_15);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 39, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA37_eotS =
"\25\uffff";
static final String DFA37_eofS =
"\25\uffff";
static final String DFA37_minS =
"\2\7\23\uffff";
static final String DFA37_maxS =
"\1\62\1\132\23\uffff";
static final String DFA37_acceptS =
"\2\uffff\1\2\1\uffff\1\1\20\uffff";
static final String DFA37_specialS =
"\25\uffff}>";
static final String[] DFA37_transitionS = {
"\1\2\47\uffff\1\1\2\uffff\1\2",
"\1\2\1\uffff\1\4\24\uffff\2\4\13\uffff\1\4\6\uffff\1\2\30\uffff"+
"\2\4\3\uffff\2\4\1\uffff\1\4\1\uffff\6\4",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA37_eot = DFA.unpackEncodedString(DFA37_eotS);
static final short[] DFA37_eof = DFA.unpackEncodedString(DFA37_eofS);
static final char[] DFA37_min = DFA.unpackEncodedStringToUnsignedChars(DFA37_minS);
static final char[] DFA37_max = DFA.unpackEncodedStringToUnsignedChars(DFA37_maxS);
static final short[] DFA37_accept = DFA.unpackEncodedString(DFA37_acceptS);
static final short[] DFA37_special = DFA.unpackEncodedString(DFA37_specialS);
static final short[][] DFA37_transition;
static {
int numStates = DFA37_transitionS.length;
DFA37_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA37_transition[i] = DFA.unpackEncodedString(DFA37_transitionS[i]);
}
}
class DFA37 extends DFA {
public DFA37(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 37;
this.eot = DFA37_eot;
this.eof = DFA37_eof;
this.min = DFA37_min;
this.max = DFA37_max;
this.accept = DFA37_accept;
this.special = DFA37_special;
this.transition = DFA37_transition;
}
public String getDescription() {
return "()* loopback of 728:39: ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )*";
}
}
static final String DFA42_eotS =
"\22\uffff";
static final String DFA42_eofS =
"\22\uffff";
static final String DFA42_minS =
"\1\11\17\0\2\uffff";
static final String DFA42_maxS =
"\1\132\17\0\2\uffff";
static final String DFA42_acceptS =
"\20\uffff\1\1\1\2";
static final String DFA42_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\2\uffff}>";
static final String[] DFA42_transitionS = {
"\1\11\24\uffff\1\17\1\1\13\uffff\1\5\37\uffff\1\2\1\3\3\uffff"+
"\1\4\1\6\1\uffff\1\7\1\uffff\1\10\1\12\1\13\1\14\1\15\1\16",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA42_eot = DFA.unpackEncodedString(DFA42_eotS);
static final short[] DFA42_eof = DFA.unpackEncodedString(DFA42_eofS);
static final char[] DFA42_min = DFA.unpackEncodedStringToUnsignedChars(DFA42_minS);
static final char[] DFA42_max = DFA.unpackEncodedStringToUnsignedChars(DFA42_maxS);
static final short[] DFA42_accept = DFA.unpackEncodedString(DFA42_acceptS);
static final short[] DFA42_special = DFA.unpackEncodedString(DFA42_specialS);
static final short[][] DFA42_transition;
static {
int numStates = DFA42_transitionS.length;
DFA42_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA42_transition[i] = DFA.unpackEncodedString(DFA42_transitionS[i]);
}
}
class DFA42 extends DFA {
public DFA42(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 42;
this.eot = DFA42_eot;
this.eof = DFA42_eof;
this.min = DFA42_min;
this.max = DFA42_max;
this.accept = DFA42_accept;
this.special = DFA42_special;
this.transition = DFA42_transition;
}
public String getDescription() {
return "746:1: printlist2 returns [boolean newline, List elts] : ( ( test[null] COMMA test[null] )=>t+= test[expr_contextType.Load] ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )* (trailcomma= COMMA )? | t+= test[expr_contextType.Load] );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA42_1 = input.LA(1);
int index42_1 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA42_2 = input.LA(1);
int index42_2 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA42_3 = input.LA(1);
int index42_3 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA42_4 = input.LA(1);
int index42_4 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA42_5 = input.LA(1);
int index42_5 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA42_6 = input.LA(1);
int index42_6 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA42_7 = input.LA(1);
int index42_7 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA42_8 = input.LA(1);
int index42_8 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA42_9 = input.LA(1);
int index42_9 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA42_10 = input.LA(1);
int index42_10 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA42_11 = input.LA(1);
int index42_11 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA42_12 = input.LA(1);
int index42_12 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA42_13 = input.LA(1);
int index42_13 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA42_14 = input.LA(1);
int index42_14 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA42_15 = input.LA(1);
int index42_15 = input.index();
input.rewind();
s = -1;
if ( (synpred5_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index42_15);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 42, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA40_eotS =
"\25\uffff";
static final String DFA40_eofS =
"\25\uffff";
static final String DFA40_minS =
"\2\7\23\uffff";
static final String DFA40_maxS =
"\1\62\1\132\23\uffff";
static final String DFA40_acceptS =
"\2\uffff\1\2\1\uffff\1\1\20\uffff";
static final String DFA40_specialS =
"\25\uffff}>";
static final String[] DFA40_transitionS = {
"\1\2\47\uffff\1\1\2\uffff\1\2",
"\1\2\1\uffff\1\4\24\uffff\2\4\13\uffff\1\4\6\uffff\1\2\30\uffff"+
"\2\4\3\uffff\2\4\1\uffff\1\4\1\uffff\6\4",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA40_eot = DFA.unpackEncodedString(DFA40_eotS);
static final short[] DFA40_eof = DFA.unpackEncodedString(DFA40_eofS);
static final char[] DFA40_min = DFA.unpackEncodedStringToUnsignedChars(DFA40_minS);
static final char[] DFA40_max = DFA.unpackEncodedStringToUnsignedChars(DFA40_maxS);
static final short[] DFA40_accept = DFA.unpackEncodedString(DFA40_acceptS);
static final short[] DFA40_special = DFA.unpackEncodedString(DFA40_specialS);
static final short[][] DFA40_transition;
static {
int numStates = DFA40_transitionS.length;
DFA40_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA40_transition[i] = DFA.unpackEncodedString(DFA40_transitionS[i]);
}
}
class DFA40 extends DFA {
public DFA40(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 40;
this.eot = DFA40_eot;
this.eof = DFA40_eof;
this.min = DFA40_min;
this.max = DFA40_max;
this.accept = DFA40_accept;
this.special = DFA40_special;
this.transition = DFA40_transition;
}
public String getDescription() {
return "()* loopback of 749:39: ( options {k=2; } : COMMA t+= test[expr_contextType.Load] )*";
}
}
static final String DFA51_eotS =
"\4\uffff";
static final String DFA51_eofS =
"\4\uffff";
static final String DFA51_minS =
"\2\11\2\uffff";
static final String DFA51_maxS =
"\1\12\1\33\2\uffff";
static final String DFA51_acceptS =
"\2\uffff\1\1\1\2";
static final String DFA51_specialS =
"\4\uffff}>";
static final String[] DFA51_transitionS = {
"\1\2\1\1",
"\1\2\1\1\20\uffff\1\3",
"",
""
};
static final short[] DFA51_eot = DFA.unpackEncodedString(DFA51_eotS);
static final short[] DFA51_eof = DFA.unpackEncodedString(DFA51_eofS);
static final char[] DFA51_min = DFA.unpackEncodedStringToUnsignedChars(DFA51_minS);
static final char[] DFA51_max = DFA.unpackEncodedStringToUnsignedChars(DFA51_maxS);
static final short[] DFA51_accept = DFA.unpackEncodedString(DFA51_acceptS);
static final short[] DFA51_special = DFA.unpackEncodedString(DFA51_specialS);
static final short[][] DFA51_transition;
static {
int numStates = DFA51_transitionS.length;
DFA51_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA51_transition[i] = DFA.unpackEncodedString(DFA51_transitionS[i]);
}
}
class DFA51 extends DFA {
public DFA51(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 51;
this.eot = DFA51_eot;
this.eof = DFA51_eof;
this.min = DFA51_min;
this.max = DFA51_max;
this.accept = DFA51_accept;
this.special = DFA51_special;
this.transition = DFA51_transition;
}
public String getDescription() {
return "910:12: ( (d+= DOT )* dotted_name | (d+= DOT )+ )";
}
}
static final String DFA78_eotS =
"\34\uffff";
static final String DFA78_eofS =
"\1\2\33\uffff";
static final String DFA78_minS =
"\1\7\1\0\32\uffff";
static final String DFA78_maxS =
"\1\125\1\0\32\uffff";
static final String DFA78_acceptS =
"\2\uffff\1\2\30\uffff\1\1";
static final String DFA78_specialS =
"\1\uffff\1\0\32\uffff}>";
static final String[] DFA78_transitionS = {
"\1\2\1\uffff\1\2\2\uffff\1\2\13\uffff\1\2\1\uffff\1\1\21\uffff"+
"\4\2\2\uffff\15\2\23\uffff\1\2\1\uffff\2\2",
"\1\uffff",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA78_eot = DFA.unpackEncodedString(DFA78_eotS);
static final short[] DFA78_eof = DFA.unpackEncodedString(DFA78_eofS);
static final char[] DFA78_min = DFA.unpackEncodedStringToUnsignedChars(DFA78_minS);
static final char[] DFA78_max = DFA.unpackEncodedStringToUnsignedChars(DFA78_maxS);
static final short[] DFA78_accept = DFA.unpackEncodedString(DFA78_acceptS);
static final short[] DFA78_special = DFA.unpackEncodedString(DFA78_specialS);
static final short[][] DFA78_transition;
static {
int numStates = DFA78_transitionS.length;
DFA78_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA78_transition[i] = DFA.unpackEncodedString(DFA78_transitionS[i]);
}
}
class DFA78 extends DFA {
public DFA78(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 78;
this.eot = DFA78_eot;
this.eof = DFA78_eof;
this.min = DFA78_min;
this.max = DFA78_max;
this.accept = DFA78_accept;
this.special = DFA78_special;
this.transition = DFA78_transition;
}
public String getDescription() {
return "1220:7: ( ( IF or_test[null] ORELSE )=> IF o2= or_test[ctype] ORELSE e= test[expr_contextType.Load] | -> or_test )";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA78_1 = input.LA(1);
int index78_1 = input.index();
input.rewind();
s = -1;
if ( (synpred7_Python()) ) {s = 27;}
else if ( (true) ) {s = 2;}
input.seek(index78_1);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 78, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA87_eotS =
"\15\uffff";
static final String DFA87_eofS =
"\15\uffff";
static final String DFA87_minS =
"\1\34\11\uffff\1\11\2\uffff";
static final String DFA87_maxS =
"\1\106\11\uffff\1\132\2\uffff";
static final String DFA87_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\1\12";
static final String DFA87_specialS =
"\15\uffff}>";
static final String[] DFA87_transitionS = {
"\1\10\1\12\1\uffff\1\11\40\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"\1\14\25\uffff\1\13\13\uffff\1\14\37\uffff\2\14\3\uffff\2\14"+
"\1\uffff\1\14\1\uffff\6\14",
"",
""
};
static final short[] DFA87_eot = DFA.unpackEncodedString(DFA87_eotS);
static final short[] DFA87_eof = DFA.unpackEncodedString(DFA87_eofS);
static final char[] DFA87_min = DFA.unpackEncodedStringToUnsignedChars(DFA87_minS);
static final char[] DFA87_max = DFA.unpackEncodedStringToUnsignedChars(DFA87_maxS);
static final short[] DFA87_accept = DFA.unpackEncodedString(DFA87_acceptS);
static final short[] DFA87_special = DFA.unpackEncodedString(DFA87_specialS);
static final short[][] DFA87_transition;
static {
int numStates = DFA87_transitionS.length;
DFA87_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA87_transition[i] = DFA.unpackEncodedString(DFA87_transitionS[i]);
}
}
class DFA87 extends DFA {
public DFA87(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 87;
this.eot = DFA87_eot;
this.eof = DFA87_eof;
this.min = DFA87_min;
this.max = DFA87_max;
this.accept = DFA87_accept;
this.special = DFA87_special;
this.transition = DFA87_transition;
}
public String getDescription() {
return "1316:1: comp_op returns [cmpopType op] : ( LESS | GREATER | EQUAL | GREATEREQUAL | LESSEQUAL | ALT_NOTEQUAL | NOTEQUAL | IN | NOT IN | IS | IS NOT );";
}
}
static final String DFA114_eotS =
"\23\uffff";
static final String DFA114_eofS =
"\23\uffff";
static final String DFA114_minS =
"\1\54\1\11\21\uffff";
static final String DFA114_maxS =
"\1\57\1\132\21\uffff";
static final String DFA114_acceptS =
"\2\uffff\1\2\1\1\17\uffff";
static final String DFA114_specialS =
"\23\uffff}>";
static final String[] DFA114_transitionS = {
"\1\2\2\uffff\1\1",
"\1\3\24\uffff\2\3\13\uffff\1\3\1\2\36\uffff\2\3\3\uffff\2\3"+
"\1\uffff\1\3\1\uffff\6\3",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA114_eot = DFA.unpackEncodedString(DFA114_eotS);
static final short[] DFA114_eof = DFA.unpackEncodedString(DFA114_eofS);
static final char[] DFA114_min = DFA.unpackEncodedStringToUnsignedChars(DFA114_minS);
static final char[] DFA114_max = DFA.unpackEncodedStringToUnsignedChars(DFA114_maxS);
static final short[] DFA114_accept = DFA.unpackEncodedString(DFA114_acceptS);
static final short[] DFA114_special = DFA.unpackEncodedString(DFA114_specialS);
static final short[][] DFA114_transition;
static {
int numStates = DFA114_transitionS.length;
DFA114_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA114_transition[i] = DFA.unpackEncodedString(DFA114_transitionS[i]);
}
}
class DFA114 extends DFA {
public DFA114(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 114;
this.eot = DFA114_eot;
this.eof = DFA114_eof;
this.min = DFA114_min;
this.max = DFA114_max;
this.accept = DFA114_accept;
this.special = DFA114_special;
this.transition = DFA114_transition;
}
public String getDescription() {
return "()* loopback of 1755:11: ( options {k=2; } : c1= COMMA t+= test[$expr::ctype] )*";
}
}
static final String DFA127_eotS =
"\24\uffff";
static final String DFA127_eofS =
"\24\uffff";
static final String DFA127_minS =
"\1\11\1\uffff\17\0\3\uffff";
static final String DFA127_maxS =
"\1\132\1\uffff\17\0\3\uffff";
static final String DFA127_acceptS =
"\1\uffff\1\1\17\uffff\1\3\1\2\1\4";
static final String DFA127_specialS =
"\1\0\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\1\17\3\uffff}>";
static final String[] DFA127_transitionS = {
"\1\12\1\1\23\uffff\1\20\1\2\13\uffff\1\6\1\uffff\1\21\35\uffff"+
"\1\3\1\4\3\uffff\1\5\1\7\1\uffff\1\10\1\uffff\1\11\1\13\1\14"+
"\1\15\1\16\1\17",
"",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
"",
""
};
static final short[] DFA127_eot = DFA.unpackEncodedString(DFA127_eotS);
static final short[] DFA127_eof = DFA.unpackEncodedString(DFA127_eofS);
static final char[] DFA127_min = DFA.unpackEncodedStringToUnsignedChars(DFA127_minS);
static final char[] DFA127_max = DFA.unpackEncodedStringToUnsignedChars(DFA127_maxS);
static final short[] DFA127_accept = DFA.unpackEncodedString(DFA127_acceptS);
static final short[] DFA127_special = DFA.unpackEncodedString(DFA127_specialS);
static final short[][] DFA127_transition;
static {
int numStates = DFA127_transitionS.length;
DFA127_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA127_transition[i] = DFA.unpackEncodedString(DFA127_transitionS[i]);
}
}
class DFA127 extends DFA {
public DFA127(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 127;
this.eot = DFA127_eot;
this.eof = DFA127_eof;
this.min = DFA127_min;
this.max = DFA127_max;
this.accept = DFA127_accept;
this.special = DFA127_special;
this.transition = DFA127_transition;
}
public String getDescription() {
return "1840:1: subscript returns [slice sltype] : (d1= DOT DOT DOT | ( test[null] COLON )=>lower= test[expr_contextType.Load] (c1= COLON (upper1= test[expr_contextType.Load] )? ( sliceop )? )? | ( COLON )=>c2= COLON (upper2= test[expr_contextType.Load] )? ( sliceop )? | test[expr_contextType.Load] );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA127_0 = input.LA(1);
int index127_0 = input.index();
input.rewind();
s = -1;
if ( (LA127_0==DOT) ) {s = 1;}
else if ( (LA127_0==NOT) ) {s = 2;}
else if ( (LA127_0==PLUS) ) {s = 3;}
else if ( (LA127_0==MINUS) ) {s = 4;}
else if ( (LA127_0==TILDE) ) {s = 5;}
else if ( (LA127_0==LPAREN) ) {s = 6;}
else if ( (LA127_0==LBRACK) ) {s = 7;}
else if ( (LA127_0==LCURLY) ) {s = 8;}
else if ( (LA127_0==BACKQUOTE) ) {s = 9;}
else if ( (LA127_0==NAME) ) {s = 10;}
else if ( (LA127_0==INT) ) {s = 11;}
else if ( (LA127_0==LONGINT) ) {s = 12;}
else if ( (LA127_0==FLOAT) ) {s = 13;}
else if ( (LA127_0==COMPLEX) ) {s = 14;}
else if ( (LA127_0==STRING) ) {s = 15;}
else if ( (LA127_0==LAMBDA) ) {s = 16;}
else if ( (LA127_0==COLON) && (synpred9_Python())) {s = 17;}
input.seek(index127_0);
if ( s>=0 ) return s;
break;
case 1 :
int LA127_2 = input.LA(1);
int index127_2 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA127_3 = input.LA(1);
int index127_3 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA127_4 = input.LA(1);
int index127_4 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA127_5 = input.LA(1);
int index127_5 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA127_6 = input.LA(1);
int index127_6 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA127_7 = input.LA(1);
int index127_7 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA127_8 = input.LA(1);
int index127_8 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA127_9 = input.LA(1);
int index127_9 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA127_10 = input.LA(1);
int index127_10 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA127_11 = input.LA(1);
int index127_11 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA127_12 = input.LA(1);
int index127_12 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA127_13 = input.LA(1);
int index127_13 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA127_14 = input.LA(1);
int index127_14 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA127_15 = input.LA(1);
int index127_15 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_15);
if ( s>=0 ) return s;
break;
case 15 :
int LA127_16 = input.LA(1);
int index127_16 = input.index();
input.rewind();
s = -1;
if ( (synpred8_Python()) ) {s = 18;}
else if ( (true) ) {s = 19;}
input.seek(index127_16);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 127, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA131_eotS =
"\20\uffff";
static final String DFA131_eofS =
"\20\uffff";
static final String DFA131_minS =
"\1\11\15\0\2\uffff";
static final String DFA131_maxS =
"\1\132\15\0\2\uffff";
static final String DFA131_acceptS =
"\16\uffff\1\1\1\2";
static final String DFA131_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\2\uffff}>";
static final String[] DFA131_transitionS = {
"\1\10\41\uffff\1\4\37\uffff\1\1\1\2\3\uffff\1\3\1\5\1\uffff"+
"\1\6\1\uffff\1\7\1\11\1\12\1\13\1\14\1\15",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA131_eot = DFA.unpackEncodedString(DFA131_eotS);
static final short[] DFA131_eof = DFA.unpackEncodedString(DFA131_eofS);
static final char[] DFA131_min = DFA.unpackEncodedStringToUnsignedChars(DFA131_minS);
static final char[] DFA131_max = DFA.unpackEncodedStringToUnsignedChars(DFA131_maxS);
static final short[] DFA131_accept = DFA.unpackEncodedString(DFA131_acceptS);
static final short[] DFA131_special = DFA.unpackEncodedString(DFA131_specialS);
static final short[][] DFA131_transition;
static {
int numStates = DFA131_transitionS.length;
DFA131_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA131_transition[i] = DFA.unpackEncodedString(DFA131_transitionS[i]);
}
}
class DFA131 extends DFA {
public DFA131(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 131;
this.eot = DFA131_eot;
this.eof = DFA131_eof;
this.min = DFA131_min;
this.max = DFA131_max;
this.accept = DFA131_accept;
this.special = DFA131_special;
this.transition = DFA131_transition;
}
public String getDescription() {
return "1886:1: exprlist[expr_contextType ctype] returns [expr etype] : ( ( expr[null] COMMA )=>e+= expr[ctype] ( options {k=2; } : COMMA e+= expr[ctype] )* ( COMMA )? | expr[ctype] );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA131_1 = input.LA(1);
int index131_1 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA131_2 = input.LA(1);
int index131_2 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA131_3 = input.LA(1);
int index131_3 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA131_4 = input.LA(1);
int index131_4 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA131_5 = input.LA(1);
int index131_5 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA131_6 = input.LA(1);
int index131_6 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA131_7 = input.LA(1);
int index131_7 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA131_8 = input.LA(1);
int index131_8 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA131_9 = input.LA(1);
int index131_9 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA131_10 = input.LA(1);
int index131_10 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA131_11 = input.LA(1);
int index131_11 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA131_12 = input.LA(1);
int index131_12 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA131_13 = input.LA(1);
int index131_13 = input.index();
input.rewind();
s = -1;
if ( (synpred10_Python()) ) {s = 14;}
else if ( (true) ) {s = 15;}
input.seek(index131_13);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 131, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA129_eotS =
"\21\uffff";
static final String DFA129_eofS =
"\21\uffff";
static final String DFA129_minS =
"\1\34\1\11\17\uffff";
static final String DFA129_maxS =
"\1\57\1\132\17\uffff";
static final String DFA129_acceptS =
"\2\uffff\1\2\1\uffff\1\1\14\uffff";
static final String DFA129_specialS =
"\21\uffff}>";
static final String[] DFA129_transitionS = {
"\1\2\22\uffff\1\1",
"\1\4\22\uffff\1\2\16\uffff\1\4\37\uffff\2\4\3\uffff\2\4\1\uffff"+
"\1\4\1\uffff\6\4",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA129_eot = DFA.unpackEncodedString(DFA129_eotS);
static final short[] DFA129_eof = DFA.unpackEncodedString(DFA129_eofS);
static final char[] DFA129_min = DFA.unpackEncodedStringToUnsignedChars(DFA129_minS);
static final char[] DFA129_max = DFA.unpackEncodedStringToUnsignedChars(DFA129_maxS);
static final short[] DFA129_accept = DFA.unpackEncodedString(DFA129_acceptS);
static final short[] DFA129_special = DFA.unpackEncodedString(DFA129_specialS);
static final short[][] DFA129_transition;
static {
int numStates = DFA129_transitionS.length;
DFA129_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA129_transition[i] = DFA.unpackEncodedString(DFA129_transitionS[i]);
}
}
class DFA129 extends DFA {
public DFA129(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 129;
this.eot = DFA129_eot;
this.eof = DFA129_eof;
this.min = DFA129_min;
this.max = DFA129_max;
this.accept = DFA129_accept;
this.special = DFA129_special;
this.transition = DFA129_transition;
}
public String getDescription() {
return "()* loopback of 1888:44: ( options {k=2; } : COMMA e+= expr[ctype] )*";
}
}
static final String DFA132_eotS =
"\23\uffff";
static final String DFA132_eofS =
"\23\uffff";
static final String DFA132_minS =
"\2\7\21\uffff";
static final String DFA132_maxS =
"\1\62\1\132\21\uffff";
static final String DFA132_acceptS =
"\2\uffff\1\2\3\uffff\1\1\14\uffff";
static final String DFA132_specialS =
"\23\uffff}>";
static final String[] DFA132_transitionS = {
"\1\2\47\uffff\1\1\2\uffff\1\2",
"\1\2\1\uffff\1\6\41\uffff\1\6\6\uffff\1\2\30\uffff\2\6\3\uffff"+
"\2\6\1\uffff\1\6\1\uffff\6\6",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA132_eot = DFA.unpackEncodedString(DFA132_eotS);
static final short[] DFA132_eof = DFA.unpackEncodedString(DFA132_eofS);
static final char[] DFA132_min = DFA.unpackEncodedStringToUnsignedChars(DFA132_minS);
static final char[] DFA132_max = DFA.unpackEncodedStringToUnsignedChars(DFA132_maxS);
static final short[] DFA132_accept = DFA.unpackEncodedString(DFA132_acceptS);
static final short[] DFA132_special = DFA.unpackEncodedString(DFA132_specialS);
static final short[][] DFA132_transition;
static {
int numStates = DFA132_transitionS.length;
DFA132_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA132_transition[i] = DFA.unpackEncodedString(DFA132_transitionS[i]);
}
}
class DFA132 extends DFA {
public DFA132(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 132;
this.eot = DFA132_eot;
this.eof = DFA132_eof;
this.min = DFA132_min;
this.max = DFA132_max;
this.accept = DFA132_accept;
this.special = DFA132_special;
this.transition = DFA132_transition;
}
public String getDescription() {
return "()* loopback of 1902:37: ( options {k=2; } : COMMA e+= expr[expr_contextType.Del] )*";
}
}
static final String DFA136_eotS =
"\22\uffff";
static final String DFA136_eofS =
"\22\uffff";
static final String DFA136_minS =
"\1\11\17\0\2\uffff";
static final String DFA136_maxS =
"\1\132\17\0\2\uffff";
static final String DFA136_acceptS =
"\20\uffff\1\1\1\2";
static final String DFA136_specialS =
"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
"\1\15\1\16\2\uffff}>";
static final String[] DFA136_transitionS = {
"\1\11\24\uffff\1\17\1\1\13\uffff\1\5\37\uffff\1\2\1\3\3\uffff"+
"\1\4\1\6\1\uffff\1\7\1\uffff\1\10\1\12\1\13\1\14\1\15\1\16",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"\1\uffff",
"",
""
};
static final short[] DFA136_eot = DFA.unpackEncodedString(DFA136_eotS);
static final short[] DFA136_eof = DFA.unpackEncodedString(DFA136_eofS);
static final char[] DFA136_min = DFA.unpackEncodedStringToUnsignedChars(DFA136_minS);
static final char[] DFA136_max = DFA.unpackEncodedStringToUnsignedChars(DFA136_maxS);
static final short[] DFA136_accept = DFA.unpackEncodedString(DFA136_acceptS);
static final short[] DFA136_special = DFA.unpackEncodedString(DFA136_specialS);
static final short[][] DFA136_transition;
static {
int numStates = DFA136_transitionS.length;
DFA136_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA136_transition[i] = DFA.unpackEncodedString(DFA136_transitionS[i]);
}
}
class DFA136 extends DFA {
public DFA136(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 136;
this.eot = DFA136_eot;
this.eof = DFA136_eof;
this.min = DFA136_min;
this.max = DFA136_max;
this.accept = DFA136_accept;
this.special = DFA136_special;
this.transition = DFA136_transition;
}
public String getDescription() {
return "1909:1: testlist[expr_contextType ctype] : ( ( test[null] COMMA )=>t+= test[ctype] ( options {k=2; } : COMMA t+= test[ctype] )* ( COMMA )? | test[ctype] );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
TokenStream input = (TokenStream)_input;
int _s = s;
switch ( s ) {
case 0 :
int LA136_1 = input.LA(1);
int index136_1 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_1);
if ( s>=0 ) return s;
break;
case 1 :
int LA136_2 = input.LA(1);
int index136_2 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_2);
if ( s>=0 ) return s;
break;
case 2 :
int LA136_3 = input.LA(1);
int index136_3 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_3);
if ( s>=0 ) return s;
break;
case 3 :
int LA136_4 = input.LA(1);
int index136_4 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_4);
if ( s>=0 ) return s;
break;
case 4 :
int LA136_5 = input.LA(1);
int index136_5 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_5);
if ( s>=0 ) return s;
break;
case 5 :
int LA136_6 = input.LA(1);
int index136_6 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_6);
if ( s>=0 ) return s;
break;
case 6 :
int LA136_7 = input.LA(1);
int index136_7 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_7);
if ( s>=0 ) return s;
break;
case 7 :
int LA136_8 = input.LA(1);
int index136_8 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_8);
if ( s>=0 ) return s;
break;
case 8 :
int LA136_9 = input.LA(1);
int index136_9 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_9);
if ( s>=0 ) return s;
break;
case 9 :
int LA136_10 = input.LA(1);
int index136_10 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_10);
if ( s>=0 ) return s;
break;
case 10 :
int LA136_11 = input.LA(1);
int index136_11 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_11);
if ( s>=0 ) return s;
break;
case 11 :
int LA136_12 = input.LA(1);
int index136_12 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_12);
if ( s>=0 ) return s;
break;
case 12 :
int LA136_13 = input.LA(1);
int index136_13 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_13);
if ( s>=0 ) return s;
break;
case 13 :
int LA136_14 = input.LA(1);
int index136_14 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_14);
if ( s>=0 ) return s;
break;
case 14 :
int LA136_15 = input.LA(1);
int index136_15 = input.index();
input.rewind();
s = -1;
if ( (synpred11_Python()) ) {s = 16;}
else if ( (true) ) {s = 17;}
input.seek(index136_15);
if ( s>=0 ) return s;
break;
}
if (state.backtracking>0) {state.failed=true; return -1;}
NoViableAltException nvae =
new NoViableAltException(getDescription(), 136, _s, input);
error(nvae);
throw nvae;
}
}
static final String DFA134_eotS =
"\75\uffff";
static final String DFA134_eofS =
"\2\2\73\uffff";
static final String DFA134_minS =
"\2\7\73\uffff";
static final String DFA134_maxS =
"\1\125\1\132\73\uffff";
static final String DFA134_acceptS =
"\2\uffff\1\2\25\uffff\1\1\6\uffff\1\1\35\uffff";
static final String DFA134_specialS =
"\75\uffff}>";
static final String[] DFA134_transitionS = {
"\1\2\20\uffff\1\2\1\uffff\1\2\21\uffff\3\2\1\1\2\uffff\15\2"+
"\23\uffff\1\2\2\uffff\1\2",
"\1\2\1\uffff\1\30\16\uffff\1\2\1\uffff\1\2\3\uffff\2\30\13"+
"\uffff\1\30\4\2\2\uffff\15\2\14\uffff\2\30\3\uffff\2\30\1\2"+
"\1\30\1\uffff\1\37\5\30",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA134_eot = DFA.unpackEncodedString(DFA134_eotS);
static final short[] DFA134_eof = DFA.unpackEncodedString(DFA134_eofS);
static final char[] DFA134_min = DFA.unpackEncodedStringToUnsignedChars(DFA134_minS);
static final char[] DFA134_max = DFA.unpackEncodedStringToUnsignedChars(DFA134_maxS);
static final short[] DFA134_accept = DFA.unpackEncodedString(DFA134_acceptS);
static final short[] DFA134_special = DFA.unpackEncodedString(DFA134_specialS);
static final short[][] DFA134_transition;
static {
int numStates = DFA134_transitionS.length;
DFA134_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA134_transition[i] = DFA.unpackEncodedString(DFA134_transitionS[i]);
}
}
class DFA134 extends DFA {
public DFA134(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 134;
this.eot = DFA134_eot;
this.eof = DFA134_eof;
this.min = DFA134_min;
this.max = DFA134_max;
this.accept = DFA134_accept;
this.special = DFA134_special;
this.transition = DFA134_transition;
}
public String getDescription() {
return "()* loopback of 1919:22: ( options {k=2; } : COMMA t+= test[ctype] )*";
}
}
static final String DFA137_eotS =
"\23\uffff";
static final String DFA137_eofS =
"\23\uffff";
static final String DFA137_minS =
"\1\57\1\11\21\uffff";
static final String DFA137_maxS =
"\1\124\1\132\21\uffff";
static final String DFA137_acceptS =
"\2\uffff\1\2\1\1\17\uffff";
static final String DFA137_specialS =
"\23\uffff}>";
static final String[] DFA137_transitionS = {
"\1\1\44\uffff\1\2",
"\1\3\24\uffff\2\3\13\uffff\1\3\37\uffff\2\3\3\uffff\2\3\1\uffff"+
"\1\3\1\2\6\3",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
};
static final short[] DFA137_eot = DFA.unpackEncodedString(DFA137_eotS);
static final short[] DFA137_eof = DFA.unpackEncodedString(DFA137_eofS);
static final char[] DFA137_min = DFA.unpackEncodedStringToUnsignedChars(DFA137_minS);
static final char[] DFA137_max = DFA.unpackEncodedStringToUnsignedChars(DFA137_maxS);
static final short[] DFA137_accept = DFA.unpackEncodedString(DFA137_acceptS);
static final short[] DFA137_special = DFA.unpackEncodedString(DFA137_specialS);
static final short[][] DFA137_transition;
static {
int numStates = DFA137_transitionS.length;
DFA137_transition = new short[numStates][];
for (int i=0; i<numStates; i++) {
DFA137_transition[i] = DFA.unpackEncodedString(DFA137_transitionS[i]);
}
}
class DFA137 extends DFA {
public DFA137(BaseRecognizer recognizer) {
this.recognizer = recognizer;
this.decisionNumber = 137;
this.eot = DFA137_eot;
this.eof = DFA137_eof;
this.min = DFA137_min;
this.max = DFA137_max;
this.accept = DFA137_accept;
this.special = DFA137_special;
this.transition = DFA137_transition;
}
public String getDescription() {
return "()* loopback of 1930:9: ( options {k=2; } : COMMA k+= test[expr_contextType.Load] COLON v+= test[expr_contextType.Load] )*";
}
}
public static final BitSet FOLLOW_NEWLINE_in_single_input118 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_EOF_in_single_input121 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_stmt_in_single_input137 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_NEWLINE_in_single_input139 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_EOF_in_single_input142 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compound_stmt_in_single_input158 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_NEWLINE_in_single_input160 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_EOF_in_single_input163 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEWLINE_in_file_input215 = new BitSet(new long[]{0x00000FFCCFA7E280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_stmt_in_file_input225 = new BitSet(new long[]{0x00000FFCCFA7E280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_EOF_in_file_input244 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEADING_WS_in_eval_input298 = new BitSet(new long[]{0x00000800C0000280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_NEWLINE_in_eval_input302 = new BitSet(new long[]{0x00000800C0000280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_eval_input306 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_NEWLINE_in_eval_input310 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_EOF_in_eval_input314 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_dotted_attr366 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_DOT_in_dotted_attr377 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_dotted_attr381 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_set_in_attr0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AT_in_decorator718 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_dotted_attr_in_decorator720 = new BitSet(new long[]{0x0000080000000080L});
public static final BitSet FOLLOW_LPAREN_in_decorator728 = new BitSet(new long[]{0x00031800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_arglist_in_decorator738 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_decorator782 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_NEWLINE_in_decorator804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_decorator_in_decorators832 = new BitSet(new long[]{0x0000040000000002L});
public static final BitSet FOLLOW_decorators_in_funcdef870 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_DEF_in_funcdef873 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_funcdef875 = new BitSet(new long[]{0x0000080000000000L});
public static final BitSet FOLLOW_parameters_in_funcdef877 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_funcdef879 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_funcdef881 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_parameters914 = new BitSet(new long[]{0x0003180000000200L});
public static final BitSet FOLLOW_varargslist_in_parameters923 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_parameters967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fpdef_in_defparameter1000 = new BitSet(new long[]{0x0000400000000002L});
public static final BitSet FOLLOW_ASSIGN_in_defparameter1004 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_defparameter1006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_defparameter_in_varargslist1052 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_varargslist1063 = new BitSet(new long[]{0x0000080000000200L});
public static final BitSet FOLLOW_defparameter_in_varargslist1067 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_varargslist1079 = new BitSet(new long[]{0x0003000000000002L});
public static final BitSet FOLLOW_STAR_in_varargslist1092 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1096 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_varargslist1099 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_DOUBLESTAR_in_varargslist1101 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1105 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESTAR_in_varargslist1121 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1125 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_varargslist1163 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1167 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_varargslist1170 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_DOUBLESTAR_in_varargslist1172 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1176 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESTAR_in_varargslist1194 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_varargslist1198 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_fpdef1235 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_fpdef1262 = new BitSet(new long[]{0x0000080000000200L});
public static final BitSet FOLLOW_fplist_in_fpdef1264 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_fpdef1266 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_fpdef1282 = new BitSet(new long[]{0x0000080000000200L});
public static final BitSet FOLLOW_fplist_in_fpdef1285 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_fpdef1287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_fpdef_in_fplist1316 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_fplist1333 = new BitSet(new long[]{0x0000080000000200L});
public static final BitSet FOLLOW_fpdef_in_fplist1337 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_fplist1343 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_stmt_in_stmt1379 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_compound_stmt_in_stmt1395 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_small_stmt_in_simple_stmt1431 = new BitSet(new long[]{0x0004000000000080L});
public static final BitSet FOLLOW_SEMI_in_simple_stmt1441 = new BitSet(new long[]{0x00000A3CCAA56200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_small_stmt_in_simple_stmt1445 = new BitSet(new long[]{0x0004000000000080L});
public static final BitSet FOLLOW_SEMI_in_simple_stmt1450 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_NEWLINE_in_simple_stmt1454 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_stmt_in_small_stmt1477 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_print_stmt_in_small_stmt1492 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_del_stmt_in_small_stmt1507 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_pass_stmt_in_small_stmt1522 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_flow_stmt_in_small_stmt1537 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_import_stmt_in_small_stmt1552 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_global_stmt_in_small_stmt1567 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_exec_stmt_in_small_stmt1582 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assert_stmt_in_small_stmt1597 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_testlist_in_expr_stmt1645 = new BitSet(new long[]{0x7FF8000000000000L});
public static final BitSet FOLLOW_augassign_in_expr_stmt1661 = new BitSet(new long[]{0x0000023000014000L});
public static final BitSet FOLLOW_yield_expr_in_expr_stmt1665 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_augassign_in_expr_stmt1705 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_expr_stmt1709 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_testlist_in_expr_stmt1764 = new BitSet(new long[]{0x0000400000000002L});
public static final BitSet FOLLOW_ASSIGN_in_expr_stmt1791 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_expr_stmt1795 = new BitSet(new long[]{0x0000400000000002L});
public static final BitSet FOLLOW_ASSIGN_in_expr_stmt1840 = new BitSet(new long[]{0x0000023000014000L});
public static final BitSet FOLLOW_yield_expr_in_expr_stmt1844 = new BitSet(new long[]{0x0000400000000002L});
public static final BitSet FOLLOW_testlist_in_expr_stmt1892 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUSEQUAL_in_augassign1934 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUSEQUAL_in_augassign1952 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAREQUAL_in_augassign1970 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASHEQUAL_in_augassign1988 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERCENTEQUAL_in_augassign2006 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_AMPEREQUAL_in_augassign2024 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VBAREQUAL_in_augassign2042 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CIRCUMFLEXEQUAL_in_augassign2060 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LEFTSHIFTEQUAL_in_augassign2078 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RIGHTSHIFTEQUAL_in_augassign2096 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESTAREQUAL_in_augassign2114 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESLASHEQUAL_in_augassign2132 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PRINT_in_print_stmt2172 = new BitSet(new long[]{0x80000800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_printlist_in_print_stmt2183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RIGHTSHIFT_in_print_stmt2202 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_printlist2_in_print_stmt2206 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_printlist2286 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_printlist2298 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_printlist2302 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_printlist2310 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_printlist2331 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_printlist22388 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_printlist22400 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_printlist22404 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_printlist22412 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_printlist22433 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DELETE_in_del_stmt2470 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_del_list_in_del_stmt2472 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PASS_in_pass_stmt2508 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_break_stmt_in_flow_stmt2534 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_continue_stmt_in_flow_stmt2542 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_return_stmt_in_flow_stmt2550 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_raise_stmt_in_flow_stmt2558 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_yield_stmt_in_flow_stmt2566 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAK_in_break_stmt2594 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONTINUE_in_continue_stmt2630 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RETURN_in_return_stmt2666 = new BitSet(new long[]{0x00000800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_return_stmt2675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_yield_expr_in_yield_stmt2740 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RAISE_in_raise_stmt2776 = new BitSet(new long[]{0x00000800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_raise_stmt2781 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_raise_stmt2785 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_raise_stmt2789 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_raise_stmt2801 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_raise_stmt2805 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_import_name_in_import_stmt2838 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_import_from_in_import_stmt2846 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMPORT_in_import_name2874 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_dotted_as_names_in_import_name2876 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FROM_in_import_from2913 = new BitSet(new long[]{0x0000000000000600L});
public static final BitSet FOLLOW_DOT_in_import_from2918 = new BitSet(new long[]{0x0000000000000600L});
public static final BitSet FOLLOW_dotted_name_in_import_from2921 = new BitSet(new long[]{0x0000000008000000L});
public static final BitSet FOLLOW_DOT_in_import_from2927 = new BitSet(new long[]{0x0000000008000400L});
public static final BitSet FOLLOW_IMPORT_in_import_from2931 = new BitSet(new long[]{0x0001080000000200L});
public static final BitSet FOLLOW_STAR_in_import_from2942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_import_as_names_in_import_from2967 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_import_from2990 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_import_as_names_in_import_from2994 = new BitSet(new long[]{0x0000900000000000L});
public static final BitSet FOLLOW_COMMA_in_import_from2996 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_import_from2999 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_import_as_name_in_import_as_names3048 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_import_as_names3051 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_import_as_name_in_import_as_names3056 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_NAME_in_import_as_name3097 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_AS_in_import_as_name3100 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_import_as_name3104 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dotted_name_in_dotted_as_name3144 = new BitSet(new long[]{0x0000000000001002L});
public static final BitSet FOLLOW_AS_in_dotted_as_name3147 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_dotted_as_name3151 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_dotted_as_name_in_dotted_as_names3187 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_dotted_as_names3190 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_dotted_as_name_in_dotted_as_names3195 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_NAME_in_dotted_name3229 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_DOT_in_dotted_name3232 = new BitSet(new long[]{0x000003FFFFFFFA00L});
public static final BitSet FOLLOW_attr_in_dotted_name3236 = new BitSet(new long[]{0x0000000000000402L});
public static final BitSet FOLLOW_GLOBAL_in_global_stmt3272 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_global_stmt3276 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_global_stmt3279 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_global_stmt3283 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_EXEC_in_exec_stmt3321 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_expr_in_exec_stmt3323 = new BitSet(new long[]{0x0000000010000002L});
public static final BitSet FOLLOW_IN_in_exec_stmt3327 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_exec_stmt3331 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_exec_stmt3335 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_exec_stmt3339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ASSERT_in_assert_stmt3380 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_assert_stmt3384 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_assert_stmt3388 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_assert_stmt3392 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_if_stmt_in_compound_stmt3421 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_while_stmt_in_compound_stmt3429 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_for_stmt_in_compound_stmt3437 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_try_stmt_in_compound_stmt3445 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_with_stmt_in_compound_stmt3453 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_funcdef_in_compound_stmt3470 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_classdef_in_compound_stmt3478 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_if_stmt3506 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_if_stmt3508 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_if_stmt3511 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_if_stmt3515 = new BitSet(new long[]{0x0000000200080002L});
public static final BitSet FOLLOW_elif_clause_in_if_stmt3518 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_else_clause_in_elif_clause3563 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELIF_in_elif_clause3579 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_elif_clause3581 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_elif_clause3584 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_elif_clause3586 = new BitSet(new long[]{0x0000000200080002L});
public static final BitSet FOLLOW_elif_clause_in_elif_clause3598 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ORELSE_in_else_clause3658 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_else_clause3660 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_else_clause3664 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_while_stmt3701 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_while_stmt3703 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_while_stmt3706 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_while_stmt3710 = new BitSet(new long[]{0x0000000200000002L});
public static final BitSet FOLLOW_ORELSE_in_while_stmt3714 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_while_stmt3716 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_while_stmt3720 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_for_stmt3759 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_exprlist_in_for_stmt3761 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_IN_in_for_stmt3764 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_for_stmt3766 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_for_stmt3769 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_for_stmt3773 = new BitSet(new long[]{0x0000000200000002L});
public static final BitSet FOLLOW_ORELSE_in_for_stmt3785 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_for_stmt3787 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_for_stmt3791 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TRY_in_try_stmt3834 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_try_stmt3836 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_try_stmt3840 = new BitSet(new long[]{0x0000000000500000L});
public static final BitSet FOLLOW_except_clause_in_try_stmt3853 = new BitSet(new long[]{0x0000000200500002L});
public static final BitSet FOLLOW_ORELSE_in_try_stmt3857 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_try_stmt3859 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_try_stmt3863 = new BitSet(new long[]{0x0000000000400002L});
public static final BitSet FOLLOW_FINALLY_in_try_stmt3869 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_try_stmt3871 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_try_stmt3875 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FINALLY_in_try_stmt3898 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_try_stmt3900 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_try_stmt3904 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WITH_in_with_stmt3953 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_with_stmt3955 = new BitSet(new long[]{0x0000200000001200L});
public static final BitSet FOLLOW_with_var_in_with_stmt3959 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_with_stmt3963 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_with_stmt3965 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_with_var4000 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_expr_in_with_var4008 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXCEPT_in_except_clause4045 = new BitSet(new long[]{0x00002800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_except_clause4050 = new BitSet(new long[]{0x0000A00000001000L});
public static final BitSet FOLLOW_set_in_except_clause4054 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_except_clause4064 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_except_clause4071 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_except_clause4073 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_simple_stmt_in_suite4119 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NEWLINE_in_suite4135 = new BitSet(new long[]{0x0000000000000010L});
public static final BitSet FOLLOW_INDENT_in_suite4137 = new BitSet(new long[]{0x00000FFCCFA7E280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_stmt_in_suite4146 = new BitSet(new long[]{0x00000FFCCFA7E2A0L,0x0000000007EB1800L});
public static final BitSet FOLLOW_DEDENT_in_suite4166 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_or_test_in_test4196 = new BitSet(new long[]{0x0000000004000002L});
public static final BitSet FOLLOW_IF_in_test4218 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_or_test_in_test4222 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ORELSE_in_test4225 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_test4229 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_lambdef_in_test4274 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_and_test_in_or_test4309 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_OR_in_or_test4325 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_and_test_in_or_test4329 = new BitSet(new long[]{0x0000000100000002L});
public static final BitSet FOLLOW_not_test_in_and_test4410 = new BitSet(new long[]{0x0000000000000802L});
public static final BitSet FOLLOW_AND_in_and_test4426 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_not_test_in_and_test4430 = new BitSet(new long[]{0x0000000000000802L});
public static final BitSet FOLLOW_NOT_in_not_test4514 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_not_test_in_not_test4518 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_comparison_in_not_test4535 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_comparison4584 = new BitSet(new long[]{0x00000000B0000002L,0x000000000000007FL});
public static final BitSet FOLLOW_comp_op_in_comparison4598 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_expr_in_comparison4602 = new BitSet(new long[]{0x00000000B0000002L,0x000000000000007FL});
public static final BitSet FOLLOW_LESS_in_comp_op4683 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATER_in_comp_op4699 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUAL_in_comp_op4715 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_GREATEREQUAL_in_comp_op4731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LESSEQUAL_in_comp_op4747 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ALT_NOTEQUAL_in_comp_op4763 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOTEQUAL_in_comp_op4779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IN_in_comp_op4795 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_comp_op4811 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_IN_in_comp_op4813 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_comp_op4829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IS_in_comp_op4845 = new BitSet(new long[]{0x0000000080000000L});
public static final BitSet FOLLOW_NOT_in_comp_op4847 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_xor_expr_in_expr4899 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
public static final BitSet FOLLOW_VBAR_in_expr4914 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_xor_expr_in_expr4918 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
public static final BitSet FOLLOW_and_expr_in_xor_expr4997 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
public static final BitSet FOLLOW_CIRCUMFLEX_in_xor_expr5012 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_and_expr_in_xor_expr5016 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
public static final BitSet FOLLOW_shift_expr_in_and_expr5094 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_AMPER_in_and_expr5109 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_shift_expr_in_and_expr5113 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
public static final BitSet FOLLOW_arith_expr_in_shift_expr5196 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000400L});
public static final BitSet FOLLOW_shift_op_in_shift_expr5210 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_arith_expr_in_shift_expr5214 = new BitSet(new long[]{0x8000000000000002L,0x0000000000000400L});
public static final BitSet FOLLOW_LEFTSHIFT_in_shift_op5298 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_RIGHTSHIFT_in_shift_op5314 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_term_in_arith_expr5360 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001800L});
public static final BitSet FOLLOW_arith_op_in_arith_expr5373 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_term_in_arith_expr5377 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001800L});
public static final BitSet FOLLOW_PLUS_in_arith_op5485 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_arith_op5501 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_factor_in_term5547 = new BitSet(new long[]{0x0001000000000002L,0x000000000000E000L});
public static final BitSet FOLLOW_term_op_in_term5560 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_factor_in_term5564 = new BitSet(new long[]{0x0001000000000002L,0x000000000000E000L});
public static final BitSet FOLLOW_STAR_in_term_op5646 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SLASH_in_term_op5662 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PERCENT_in_term_op5678 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESLASH_in_term_op5694 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_factor5733 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_factor_in_factor5737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_factor5753 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_factor_in_factor5757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_TILDE_in_factor5773 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_factor_in_factor5777 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_power_in_factor5793 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_atom_in_power5832 = new BitSet(new long[]{0x0002080000000402L,0x0000000000020000L});
public static final BitSet FOLLOW_trailer_in_power5837 = new BitSet(new long[]{0x0002080000000402L,0x0000000000020000L});
public static final BitSet FOLLOW_DOUBLESTAR_in_power5852 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_factor_in_power5854 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_atom5904 = new BitSet(new long[]{0x00001A30C0014200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_yield_expr_in_atom5922 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_testlist_gexp_in_atom5942 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_atom5985 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACK_in_atom5993 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EF1800L});
public static final BitSet FOLLOW_listmaker_in_atom6002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_RBRACK_in_atom6045 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LCURLY_in_atom6053 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007FB1800L});
public static final BitSet FOLLOW_dictmaker_in_atom6063 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
public static final BitSet FOLLOW_RCURLY_in_atom6110 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BACKQUOTE_in_atom6121 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_atom6123 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
public static final BitSet FOLLOW_BACKQUOTE_in_atom6128 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NAME_in_atom6146 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_in_atom6164 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LONGINT_in_atom6182 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_in_atom6200 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COMPLEX_in_atom6218 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_atom6239 = new BitSet(new long[]{0x0000000000000002L,0x0000000004000000L});
public static final BitSet FOLLOW_test_in_listmaker6282 = new BitSet(new long[]{0x0000800001000002L});
public static final BitSet FOLLOW_list_for_in_listmaker6294 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_listmaker6326 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_listmaker6330 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_listmaker6359 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_testlist_gexp6391 = new BitSet(new long[]{0x0000800001000002L});
public static final BitSet FOLLOW_COMMA_in_testlist_gexp6415 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_testlist_gexp6419 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_testlist_gexp6427 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gen_for_in_testlist_gexp6481 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LAMBDA_in_lambdef6545 = new BitSet(new long[]{0x0003280000000200L});
public static final BitSet FOLLOW_varargslist_in_lambdef6548 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_lambdef6552 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_lambdef6554 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_trailer6593 = new BitSet(new long[]{0x00031800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_arglist_in_trailer6602 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_trailer6644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACK_in_trailer6652 = new BitSet(new long[]{0x00002800C0000600L,0x0000000007EB1800L});
public static final BitSet FOLLOW_subscriptlist_in_trailer6654 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
public static final BitSet FOLLOW_RBRACK_in_trailer6657 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_trailer6673 = new BitSet(new long[]{0x000003FFFFFFFA00L});
public static final BitSet FOLLOW_attr_in_trailer6675 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_subscript_in_subscriptlist6714 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_subscriptlist6726 = new BitSet(new long[]{0x00002800C0000600L,0x0000000007EB1800L});
public static final BitSet FOLLOW_subscript_in_subscriptlist6730 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_subscriptlist6737 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOT_in_subscript6780 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_DOT_in_subscript6782 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_DOT_in_subscript6784 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_subscript6814 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_COLON_in_subscript6820 = new BitSet(new long[]{0x00002800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_subscript6825 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_sliceop_in_subscript6831 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_subscript6862 = new BitSet(new long[]{0x00002800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_subscript6867 = new BitSet(new long[]{0x0000200000000002L});
public static final BitSet FOLLOW_sliceop_in_subscript6873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_subscript6891 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_sliceop6928 = new BitSet(new long[]{0x00000800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_sliceop6936 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_exprlist7007 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_exprlist7019 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_expr_in_exprlist7023 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_exprlist7029 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_exprlist7048 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_del_list7086 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_del_list7098 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_expr_in_del_list7102 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_del_list7108 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_testlist7161 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_testlist7173 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_testlist7177 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_testlist7183 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_testlist7201 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_dictmaker7230 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_dictmaker7233 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_dictmaker7237 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_dictmaker7256 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_dictmaker7260 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_dictmaker7263 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_dictmaker7267 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_dictmaker7281 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_decorators_in_classdef7319 = new BitSet(new long[]{0x0000000000008000L});
public static final BitSet FOLLOW_CLASS_in_classdef7322 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_NAME_in_classdef7324 = new BitSet(new long[]{0x0000280000000000L});
public static final BitSet FOLLOW_LPAREN_in_classdef7327 = new BitSet(new long[]{0x00001800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_classdef7329 = new BitSet(new long[]{0x0000100000000000L});
public static final BitSet FOLLOW_RPAREN_in_classdef7333 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_classdef7337 = new BitSet(new long[]{0x00000A3CCAA56280L,0x0000000007EB1800L});
public static final BitSet FOLLOW_suite_in_classdef7339 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_argument_in_arglist7381 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7385 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_argument_in_arglist7387 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7403 = new BitSet(new long[]{0x0003000000000002L});
public static final BitSet FOLLOW_STAR_in_arglist7421 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7425 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7429 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_argument_in_arglist7431 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7437 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_DOUBLESTAR_in_arglist7439 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7443 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESTAR_in_arglist7464 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7468 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STAR_in_arglist7515 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7519 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7523 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_argument_in_arglist7525 = new BitSet(new long[]{0x0000800000000002L});
public static final BitSet FOLLOW_COMMA_in_arglist7531 = new BitSet(new long[]{0x0002000000000000L});
public static final BitSet FOLLOW_DOUBLESTAR_in_arglist7533 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7537 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DOUBLESTAR_in_arglist7556 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_arglist7560 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_argument7599 = new BitSet(new long[]{0x0000C00001000000L});
public static final BitSet FOLLOW_ASSIGN_in_argument7612 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_argument7616 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gen_for_in_argument7642 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_list_for_in_list_iter7707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_list_if_in_list_iter7716 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_list_for7742 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_exprlist_in_list_for7744 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_IN_in_list_for7747 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_list_for7749 = new BitSet(new long[]{0x0000000005000002L});
public static final BitSet FOLLOW_list_iter_in_list_for7753 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_list_if7783 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_list_if7785 = new BitSet(new long[]{0x0000000005000002L});
public static final BitSet FOLLOW_list_iter_in_list_if7789 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gen_for_in_gen_iter7820 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_gen_if_in_gen_iter7829 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOR_in_gen_for7855 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_exprlist_in_gen_for7857 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_IN_in_gen_for7860 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_or_test_in_gen_for7862 = new BitSet(new long[]{0x0000800005000002L});
public static final BitSet FOLLOW_gen_iter_in_gen_for7865 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_gen_if7894 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_gen_if7896 = new BitSet(new long[]{0x0000800005000002L});
public static final BitSet FOLLOW_gen_iter_in_gen_if7899 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_YIELD_in_yield_expr7940 = new BitSet(new long[]{0x00000800C0000202L,0x0000000007EB1800L});
public static final BitSet FOLLOW_testlist_in_yield_expr7942 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LPAREN_in_synpred1_Python1252 = new BitSet(new long[]{0x0000080000000200L});
public static final BitSet FOLLOW_fpdef_in_synpred1_Python1254 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred1_Python1257 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_testlist_in_synpred2_Python1635 = new BitSet(new long[]{0x7FF8000000000000L});
public static final BitSet FOLLOW_augassign_in_synpred2_Python1638 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_testlist_in_synpred3_Python1754 = new BitSet(new long[]{0x0000400000000000L});
public static final BitSet FOLLOW_ASSIGN_in_synpred3_Python1757 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_synpred4_Python2269 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred4_Python2272 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_synpred5_Python2368 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred5_Python2371 = new BitSet(new long[]{0x00000800C0000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_test_in_synpred5_Python2373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_decorators_in_synpred6_Python3462 = new BitSet(new long[]{0x0000000000020000L});
public static final BitSet FOLLOW_DEF_in_synpred6_Python3465 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IF_in_synpred7_Python4208 = new BitSet(new long[]{0x0000080080000200L,0x0000000007EB1800L});
public static final BitSet FOLLOW_or_test_in_synpred7_Python4210 = new BitSet(new long[]{0x0000000200000000L});
public static final BitSet FOLLOW_ORELSE_in_synpred7_Python4213 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_synpred8_Python6801 = new BitSet(new long[]{0x0000200000000000L});
public static final BitSet FOLLOW_COLON_in_synpred8_Python6804 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_COLON_in_synpred9_Python6852 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expr_in_synpred10_Python6997 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred10_Python7000 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_test_in_synpred11_Python7148 = new BitSet(new long[]{0x0000800000000000L});
public static final BitSet FOLLOW_COMMA_in_synpred11_Python7151 = new BitSet(new long[]{0x0000000000000002L});
}