in modules/lang-painless/src/main/java/org/elasticsearch/painless/antlr/PainlessParser.java [2417:2650]
private NoncondexpressionContext noncondexpression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
NoncondexpressionContext _localctx = new NoncondexpressionContext(_ctx, _parentState);
NoncondexpressionContext _prevctx = _localctx;
int _startState = 32;
enterRecursionRule(_localctx, 32, RULE_noncondexpression, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new SingleContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(266);
unary();
}
_ctx.stop = _input.LT(-1);
setState(309);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 25, _ctx);
while (_alt != 2 && _alt != org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER) {
if (_alt == 1) {
if (_parseListeners != null) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(307);
_errHandler.sync(this);
switch (getInterpreter().adaptivePredict(_input, 24, _ctx)) {
case 1: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(268);
if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
setState(269);
_la = _input.LA(1);
if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & 15032385536L) != 0))) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(270);
noncondexpression(14);
}
break;
case 2: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(271);
if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
setState(272);
_la = _input.LA(1);
if (!(_la == ADD || _la == SUB)) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(273);
noncondexpression(13);
}
break;
case 3: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(274);
if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
setState(275);
_la = _input.LA(1);
if (!(_la == FIND || _la == MATCH)) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(276);
noncondexpression(12);
}
break;
case 4: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(277);
if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
setState(278);
_la = _input.LA(1);
if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & 481036337152L) != 0))) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(279);
noncondexpression(11);
}
break;
case 5: {
_localctx = new CompContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(280);
if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
setState(281);
_la = _input.LA(1);
if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & 8246337208320L) != 0))) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(282);
noncondexpression(10);
}
break;
case 6: {
_localctx = new CompContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(283);
if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
setState(284);
_la = _input.LA(1);
if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & 131941395333120L) != 0))) {
_errHandler.recoverInline(this);
} else {
if (_input.LA(1) == Token.EOF) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(285);
noncondexpression(8);
}
break;
case 7: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(286);
if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
setState(287);
match(BWAND);
setState(288);
noncondexpression(7);
}
break;
case 8: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(289);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
setState(290);
match(XOR);
setState(291);
noncondexpression(6);
}
break;
case 9: {
_localctx = new BinaryContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(292);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
setState(293);
match(BWOR);
setState(294);
noncondexpression(5);
}
break;
case 10: {
_localctx = new BoolContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(295);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(296);
match(BOOLAND);
setState(297);
noncondexpression(4);
}
break;
case 11: {
_localctx = new BoolContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(298);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(299);
match(BOOLOR);
setState(300);
noncondexpression(3);
}
break;
case 12: {
_localctx = new ElvisContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(301);
if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
setState(302);
match(ELVIS);
setState(303);
noncondexpression(1);
}
break;
case 13: {
_localctx = new InstanceofContext(new NoncondexpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_noncondexpression);
setState(304);
if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
setState(305);
match(INSTANCEOF);
setState(306);
decltype();
}
break;
}
}
}
setState(311);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input, 25, _ctx);
}
}
} catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
} finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}