relation method

RelationContext relation([
  1. int _p = 0
])

Implementation

RelationContext relation([int _p = 0]) {
  final _parentctx = context;
  final _parentState = state;
  dynamic _localctx = RelationContext(context, _parentState);
  var _prevctx = _localctx;
  var _startState = 8;
  enterRecursionRule(_localctx, 8, RULE_relation, _p);
  int _la;
  try {
    int _alt;
    enterOuterAlt(_localctx, 1);
    state = 60;
    calc(0);
    context!.stop = tokenStream.LT(-1);
    state = 67;
    errorHandler.sync(this);
    _alt = interpreter!.adaptivePredict(tokenStream, 3, context);
    while (_alt != 2 && _alt != ATN.INVALID_ALT_NUMBER) {
      if (_alt == 1) {
        if (parseListeners != null) triggerExitRuleEvent();
        _prevctx = _localctx;
        _localctx = RelationContext(_parentctx, _parentState);
        pushNewRecursionContext(_localctx, _startState, RULE_relation);
        state = 62;
        if (!(precpred(context, 1))) {
          throw FailedPredicateException(this, "precpred(context, 1)");
        }
        state = 63;
        _localctx.op = tokenStream.LT(1);
        _la = tokenStream.LA(1)!;
        if (!(((_la) & ~0x3f) == 0 && bitwiseAnd(pow(2, _la), 254) != 0)) {
          _localctx.op = errorHandler.recoverInline(this);
        } else {
          if (tokenStream.LA(1)! == IntStream.EOF) matchedEOF = true;
          errorHandler.reportMatch(this);
          consume();
        }
        state = 64;
        relation(2);
      }
      state = 69;
      errorHandler.sync(this);
      _alt = interpreter!.adaptivePredict(tokenStream, 3, context);
    }
  } on RecognitionException catch (re) {
    _localctx.exception = re;
    errorHandler.reportError(this, re);
    errorHandler.recover(this, re);
  } finally {
    unrollRecursionContexts(_parentctx);
  }
  return _localctx;
}