private RelExprContext relExpr(int _p) { ParserRuleContext _parentctx = _ctx; int _parentState = State; RelExprContext _localctx = new RelExprContext(_ctx, _parentState); RelExprContext _prevctx = _localctx; int _startState = 16; EnterRecursionRule(_localctx, 16, RULE_relExpr, _p); try { int _alt; EnterOuterAlt(_localctx, 1); { { State = 138; _localctx._shiftExpr = shiftExpr(0); _localctx.retValue = _localctx._shiftExpr.retValue; } _ctx.stop = _input.Lt(-1); State = 163; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,9,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { State = 161; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { _localctx = new RelExprContext(_parentctx, _parentState); _localctx.first = _prevctx; PushNewRecursionContext(_localctx, _startState, RULE_relExpr); State = 141; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); State = 142; Match(T__13); State = 143; _localctx._shiftExpr = shiftExpr(0); _localctx.retValue = new BinaryExpression(BinaryExpressionType.Lesser, _localctx.first.retValue, _localctx._shiftExpr.retValue); } break; case 2: { _localctx = new RelExprContext(_parentctx, _parentState); _localctx.first = _prevctx; PushNewRecursionContext(_localctx, _startState, RULE_relExpr); State = 146; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); State = 147; Match(T__20); State = 148; _localctx._shiftExpr = shiftExpr(0); _localctx.retValue = new BinaryExpression(BinaryExpressionType.LesserOrEqual, _localctx.first.retValue, _localctx._shiftExpr.retValue); } break; case 3: { _localctx = new RelExprContext(_parentctx, _parentState); _localctx.first = _prevctx; PushNewRecursionContext(_localctx, _startState, RULE_relExpr); State = 151; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); State = 152; Match(T__9); State = 153; _localctx._shiftExpr = shiftExpr(0); _localctx.retValue = new BinaryExpression(BinaryExpressionType.Greater, _localctx.first.retValue, _localctx._shiftExpr.retValue); } break; case 4: { _localctx = new RelExprContext(_parentctx, _parentState); _localctx.first = _prevctx; PushNewRecursionContext(_localctx, _startState, RULE_relExpr); State = 156; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); State = 157; Match(T__14); State = 158; _localctx._shiftExpr = shiftExpr(0); _localctx.retValue = new BinaryExpression(BinaryExpressionType.GreaterOrEqual, _localctx.first.retValue, _localctx._shiftExpr.retValue); } break; } } } State = 165; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,9,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.ReportError(this, re); _errHandler.Recover(this, re); } finally { UnrollRecursionContexts(_parentctx); } return _localctx; }
private bool relExpr_sempred(RelExprContext _localctx, int predIndex) { switch (predIndex) { case 7: return Precpred(_ctx, 5); case 8: return Precpred(_ctx, 4); case 9: return Precpred(_ctx, 3); case 10: return Precpred(_ctx, 2); } return true; }