private BitXorExprContext bitXorExpr(int _p) { ParserRuleContext _parentctx = _ctx; int _parentState = State; BitXorExprContext _localctx = new BitXorExprContext(_ctx, _parentState); BitXorExprContext _prevctx = _localctx; int _startState = 10; EnterRecursionRule(_localctx, 10, RULE_bitXorExpr, _p); try { int _alt; EnterOuterAlt(_localctx, 1); { { State = 91; _localctx._bitAndExpr = bitAndExpr(0); _localctx.retValue = _localctx._bitAndExpr.retValue; } _ctx.stop = _input.Lt(-1); State = 101; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,4,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { { _localctx = new BitXorExprContext(_parentctx, _parentState); _localctx.first = _prevctx; PushNewRecursionContext(_localctx, _startState, RULE_bitXorExpr); State = 94; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); State = 95; Match(T__22); State = 96; _localctx._bitAndExpr = bitAndExpr(0); _localctx.retValue = new BinaryExpression(BinaryExpressionType.BitwiseXOr, _localctx.first.retValue, _localctx._bitAndExpr.retValue); } } } State = 103; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,4,_ctx); } } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.ReportError(this, re); _errHandler.Recover(this, re); } finally { UnrollRecursionContexts(_parentctx); } return _localctx; }
private bool bitXorExpr_sempred(BitXorExprContext _localctx, int predIndex) { switch (predIndex) { case 3: return Precpred(_ctx, 2); } return true; }