// $ANTLR start "relationalExpression" // AS3_ex.g3:2310:1: relationalExpression : shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ; public AS3_exParser.relationalExpression_return relationalExpression() // throws RecognitionException [1] { AS3_exParser.relationalExpression_return retval = new AS3_exParser.relationalExpression_return(); retval.Start = input.LT(1); int relationalExpression_StartIndex = input.Index(); object root_0 = null; IToken g = null; IToken assign = null; IToken eq = null; AS3_exParser.shiftExpression_return shiftExpression285 = null; AS3_exParser.shiftExpression_return shiftExpression286 = null; object g_tree=null; object assign_tree=null; object eq_tree=null; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 120) ) { return retval; } // AS3_ex.g3:2311:5: ( shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ) // AS3_ex.g3:2311:9: shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_shiftExpression_in_relationalExpression11132); shiftExpression285 = shiftExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression285.Tree); // AS3_ex.g3:2312:6: ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* do { int alt133 = 2; alt133 = dfa133.Predict(input); switch (alt133) { case 1 : // AS3_ex.g3:2313:7: (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression { // AS3_ex.g3:2313:7: (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) int alt132 = 2; int LA132_0 = input.LA(1); if ( (LA132_0 == GT) ) { alt132 = 1; } else if ( (LA132_0 == AS || (LA132_0 >= IN && LA132_0 <= INSTANCEOF) || LA132_0 == IS || LA132_0 == LT || LA132_0 == LTE) ) { alt132 = 2; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d132s0 = new NoViableAltException("", 132, 0, input); throw nvae_d132s0; } switch (alt132) { case 1 : // AS3_ex.g3:2313:9: g= GT (assign= ASSIGN )? { g=(IToken)Match(input,GT,FOLLOW_GT_in_relationalExpression11152); if (state.failed) return retval; if ( state.backtracking == 0 ) {g_tree = (object)adaptor.Create(g); adaptor.AddChild(root_0, g_tree); } // AS3_ex.g3:2313:14: (assign= ASSIGN )? int alt131 = 2; int LA131_0 = input.LA(1); if ( (LA131_0 == ASSIGN) ) { alt131 = 1; } switch (alt131) { case 1 : // AS3_ex.g3:2313:15: assign= ASSIGN { assign=(IToken)Match(input,ASSIGN,FOLLOW_ASSIGN_in_relationalExpression11157); if (state.failed) return retval; if ( state.backtracking == 0 ) {assign_tree = (object)adaptor.Create(assign); adaptor.AddChild(root_0, assign_tree); } } break; } if ( state.backtracking == 0 ) { if (assign!=null) { g.Text = ">="; g.Type = GTE; } IndentEmit((CommonToken)g); } } break; case 2 : // AS3_ex.g3:2321:14: eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) { eq = (IToken)input.LT(1); if ( input.LA(1) == AS || (input.LA(1) >= IN && input.LA(1) <= INSTANCEOF) || input.LA(1) == IS || input.LA(1) == LT || input.LA(1) == LTE ) { input.Consume(); if ( state.backtracking == 0 ) adaptor.AddChild(root_0, (object)adaptor.Create(eq)); state.errorRecovery = false;state.failed = false; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } if ( state.backtracking == 0 ) { IndentEmit((CommonToken)eq); } } break; } PushFollow(FOLLOW_shiftExpression_in_relationalExpression11228); shiftExpression286 = shiftExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression286.Tree); if ( state.backtracking == 0 ) { PopIndent(); } } break; default: goto loop133; } } while (true); loop133: ; // Stops C# compiler whining that label 'loop133' has no statements } retval.Stop = input.LT(-1); if ( state.backtracking==0 ) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);} } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { if ( state.backtracking > 0 ) { Memoize(input, 120, relationalExpression_StartIndex); } } return retval; }
// $ANTLR start "relationalExpression" // AS3_ex.g3:3236:1: relationalExpression : shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ; public AS3_exParser.relationalExpression_return relationalExpression() // throws RecognitionException [1] { AS3_exParser.relationalExpression_return retval = new AS3_exParser.relationalExpression_return(); retval.Start = input.LT(1); int relationalExpression_StartIndex = input.Index(); object root_0 = null; IToken g = null; IToken assign = null; IToken eq = null; AS3_exParser.shiftExpression_return shiftExpression296 = null; AS3_exParser.shiftExpression_return shiftExpression297 = null; object g_tree=null; object assign_tree=null; object eq_tree=null; WrapOptions options=mPrinter.getExpressionWrapOptions(); bool pushedWrapInfo=false; try { if ( (state.backtracking > 0) && AlreadyParsedRule(input, 120) ) { return retval; } // AS3_ex.g3:3241:5: ( shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* ) // AS3_ex.g3:3241:9: shiftExpression ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* { root_0 = (object)adaptor.GetNilNode(); if ( state.backtracking == 0 ) { pushedWrapInfo=pushWrapInfo(options, true); } PushFollow(FOLLOW_shiftExpression_in_relationalExpression12784); shiftExpression296 = shiftExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression296.Tree); // AS3_ex.g3:3243:6: ( (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression )* do { int alt140 = 2; switch ( input.LA(1) ) { case LT: { int LA140_2 = input.LA(2); if ( (synpred282_AS3_ex()) ) { alt140 = 1; } } break; case IN: { int LA140_3 = input.LA(2); if ( (synpred282_AS3_ex()) ) { alt140 = 1; } } break; case AS: case INSTANCEOF: case IS: { int LA140_4 = input.LA(2); if ( (synpred282_AS3_ex()) ) { alt140 = 1; } } break; case GT: { int LA140_5 = input.LA(2); if ( (synpred282_AS3_ex()) ) { alt140 = 1; } } break; case LTE: { int LA140_6 = input.LA(2); if ( (synpred282_AS3_ex()) ) { alt140 = 1; } } break; } switch (alt140) { case 1 : // AS3_ex.g3:3244:7: (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) shiftExpression { // AS3_ex.g3:3244:7: (g= GT (assign= ASSIGN )? | eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) ) int alt139 = 2; int LA139_0 = input.LA(1); if ( (LA139_0 == GT) ) { alt139 = 1; } else if ( (LA139_0 == AS || (LA139_0 >= IN && LA139_0 <= INSTANCEOF) || LA139_0 == IS || LA139_0 == LT || LA139_0 == LTE) ) { alt139 = 2; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} NoViableAltException nvae_d139s0 = new NoViableAltException("", 139, 0, input); throw nvae_d139s0; } switch (alt139) { case 1 : // AS3_ex.g3:3244:9: g= GT (assign= ASSIGN )? { g=(IToken)Match(input,GT,FOLLOW_GT_in_relationalExpression12804); if (state.failed) return retval; if ( state.backtracking == 0 ) {g_tree = (object)adaptor.Create(g); adaptor.AddChild(root_0, g_tree); } // AS3_ex.g3:3244:14: (assign= ASSIGN )? int alt138 = 2; int LA138_0 = input.LA(1); if ( (LA138_0 == ASSIGN) ) { alt138 = 1; } switch (alt138) { case 1 : // AS3_ex.g3:3244:15: assign= ASSIGN { assign=(IToken)Match(input,ASSIGN,FOLLOW_ASSIGN_in_relationalExpression12809); if (state.failed) return retval; if ( state.backtracking == 0 ) {assign_tree = (object)adaptor.Create(assign); adaptor.AddChild(root_0, assign_tree); } } break; } if ( state.backtracking == 0 ) { if (assign!=null) { g.Text = ">="; g.Type = GTE; } indentEmit(g, ASPrettyPrinter.Break_Arithmetic_Ops_code); } } break; case 2 : // AS3_ex.g3:3252:14: eq= ( IN | LT | LTE | INSTANCEOF | IS | AS ) { eq = (IToken)input.LT(1); if ( input.LA(1) == AS || (input.LA(1) >= IN && input.LA(1) <= INSTANCEOF) || input.LA(1) == IS || input.LA(1) == LT || input.LA(1) == LTE ) { input.Consume(); if ( state.backtracking == 0 ) adaptor.AddChild(root_0, (object)adaptor.Create(eq)); state.errorRecovery = false;state.failed = false; } else { if ( state.backtracking > 0 ) {state.failed = true; return retval;} MismatchedSetException mse = new MismatchedSetException(null,input); throw mse; } if ( state.backtracking == 0 ) { indentEmit(eq, ASPrettyPrinter.Break_Arithmetic_Ops_code); } } break; } PushFollow(FOLLOW_shiftExpression_in_relationalExpression12880); shiftExpression297 = shiftExpression(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, shiftExpression297.Tree); if ( state.backtracking == 0 ) { popIndent(); } } break; default: goto loop140; } } while (true); loop140: ; // Stops C# compiler whining that label 'loop140' has no statements if ( state.backtracking == 0 ) { if (pushedWrapInfo) mPrinter.popWrapContext(); } } retval.Stop = input.LT(-1); if ( state.backtracking==0 ) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);} } catch (RecognitionException re) { ReportError(re); Recover(input,re); // Conversion of the second argument necessary, but harmless retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re); } finally { if ( state.backtracking > 0 ) { Memoize(input, 120, relationalExpression_StartIndex); } } return retval; }