in src/platform/packages/shared/kbn-monaco/src/languages/painless/antlr/painless_parser.ts [1326:1610]
public noncondexpression(_p?: number): NoncondexpressionContext {
if (_p === undefined) {
_p = 0;
}
let _parentctx: ParserRuleContext = this._ctx;
let _parentState: number = this.state;
let localctx: NoncondexpressionContext = new NoncondexpressionContext(this, this._ctx, _parentState);
let _prevctx: NoncondexpressionContext = localctx;
let _startState: number = 32;
this.enterRecursionRule(localctx, 32, painless_parser.RULE_noncondexpression, _p);
let _la: number;
try {
let _alt: number;
this.enterOuterAlt(localctx, 1);
{
{
localctx = new SingleContext(this, localctx);
this._ctx = localctx;
_prevctx = localctx;
this.state = 266;
this.unary();
}
this._ctx.stop = this._input.LT(-1);
this.state = 309;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
if (_alt === 1) {
if (this._parseListeners != null) {
this.triggerExitRuleEvent();
}
_prevctx = localctx;
{
this.state = 307;
this._errHandler.sync(this);
switch ( this._interp.adaptivePredict(this._input, 24, this._ctx) ) {
case 1:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 268;
if (!(this.precpred(this._ctx, 13))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 13)");
}
this.state = 269;
_la = this._input.LA(1);
if(!(((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & 7) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 270;
this.noncondexpression(14);
}
break;
case 2:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 271;
if (!(this.precpred(this._ctx, 12))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 12)");
}
this.state = 272;
_la = this._input.LA(1);
if(!(_la===34 || _la===35)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 273;
this.noncondexpression(13);
}
break;
case 3:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 274;
if (!(this.precpred(this._ctx, 11))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 11)");
}
this.state = 275;
_la = this._input.LA(1);
if(!(_la===57 || _la===58)) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 276;
this.noncondexpression(12);
}
break;
case 4:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 277;
if (!(this.precpred(this._ctx, 10))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 10)");
}
this.state = 278;
_la = this._input.LA(1);
if(!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 7) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 279;
this.noncondexpression(11);
}
break;
case 5:
{
localctx = new CompContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 280;
if (!(this.precpred(this._ctx, 9))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 9)");
}
this.state = 281;
_la = this._input.LA(1);
if(!(((((_la - 39)) & ~0x1F) === 0 && ((1 << (_la - 39)) & 15) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 282;
this.noncondexpression(10);
}
break;
case 6:
{
localctx = new CompContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 283;
if (!(this.precpred(this._ctx, 7))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 7)");
}
this.state = 284;
_la = this._input.LA(1);
if(!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 15) !== 0))) {
this._errHandler.recoverInline(this);
}
else {
this._errHandler.reportMatch(this);
this.consume();
}
this.state = 285;
this.noncondexpression(8);
}
break;
case 7:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 286;
if (!(this.precpred(this._ctx, 6))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 6)");
}
this.state = 287;
this.match(painless_parser.BWAND);
this.state = 288;
this.noncondexpression(7);
}
break;
case 8:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 289;
if (!(this.precpred(this._ctx, 5))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 5)");
}
this.state = 290;
this.match(painless_parser.XOR);
this.state = 291;
this.noncondexpression(6);
}
break;
case 9:
{
localctx = new BinaryContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 292;
if (!(this.precpred(this._ctx, 4))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 4)");
}
this.state = 293;
this.match(painless_parser.BWOR);
this.state = 294;
this.noncondexpression(5);
}
break;
case 10:
{
localctx = new BoolContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 295;
if (!(this.precpred(this._ctx, 3))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");
}
this.state = 296;
this.match(painless_parser.BOOLAND);
this.state = 297;
this.noncondexpression(4);
}
break;
case 11:
{
localctx = new BoolContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 298;
if (!(this.precpred(this._ctx, 2))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 2)");
}
this.state = 299;
this.match(painless_parser.BOOLOR);
this.state = 300;
this.noncondexpression(3);
}
break;
case 12:
{
localctx = new ElvisContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 301;
if (!(this.precpred(this._ctx, 1))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
}
this.state = 302;
this.match(painless_parser.ELVIS);
this.state = 303;
this.noncondexpression(1);
}
break;
case 13:
{
localctx = new InstanceofContext(this, new NoncondexpressionContext(this, _parentctx, _parentState));
this.pushNewRecursionContext(localctx, _startState, painless_parser.RULE_noncondexpression);
this.state = 304;
if (!(this.precpred(this._ctx, 8))) {
throw this.createFailedPredicateException("this.precpred(this._ctx, 8)");
}
this.state = 305;
this.match(painless_parser.INSTANCEOF);
this.state = 306;
this.decltype();
}
break;
}
}
}
this.state = 311;
this._errHandler.sync(this);
_alt = this._interp.adaptivePredict(this._input, 25, this._ctx);
}
}
}
catch (re) {
if (re instanceof RecognitionException) {
localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.unrollRecursionContexts(_parentctx);
}
return localctx;
}