public EqualExprContext equalExpr()
        {
            EqualExprContext _localctx = new EqualExprContext(_ctx, State);

            EnterRule(_localctx, 10, RULE_equalExpr);
            int _la;

            try {
                EnterOuterAlt(_localctx, 1);
                {
                    State = 68; addExpr();
                    State = 73;
                    _errHandler.Sync(this);
                    _la = _input.La(1);
                    while (_la == EQUAL || _la == NOT_EQUAL)
                    {
                        {
                            {
                                State = 69;
                                _la   = _input.La(1);
                                if (!(_la == EQUAL || _la == NOT_EQUAL))
                                {
                                    _errHandler.RecoverInline(this);
                                }
                                else
                                {
                                    if (_input.La(1) == TokenConstants.Eof)
                                    {
                                        matchedEOF = true;
                                    }

                                    _errHandler.ReportMatch(this);
                                    Consume();
                                }
                                State = 70; addExpr();
                            }
                        }
                        State = 75;
                        _errHandler.Sync(this);
                        _la = _input.La(1);
                    }
                }
            }
            catch (RecognitionException re) {
                _localctx.exception = re;
                _errHandler.ReportError(this, re);
                _errHandler.Recover(this, re);
            }
            finally {
                ExitRule();
            }
            return(_localctx);
        }
        public EqualExprContext equalExpr()
        {
            EqualExprContext _localctx = new EqualExprContext(Context, State);

            EnterRule(_localctx, 10, RULE_equalExpr);
            int _la;

            try {
                EnterOuterAlt(_localctx, 1);
                {
                    State = 68; addExpr();
                    State = 73;
                    ErrorHandler.Sync(this);
                    _la = TokenStream.LA(1);
                    while (_la == EQUAL || _la == NOT_EQUAL)
                    {
                        {
                            {
                                State = 69;
                                _la   = TokenStream.LA(1);
                                if (!(_la == EQUAL || _la == NOT_EQUAL))
                                {
                                    ErrorHandler.RecoverInline(this);
                                }
                                else
                                {
                                    ErrorHandler.ReportMatch(this);
                                    Consume();
                                }
                                State = 70; addExpr();
                            }
                        }
                        State = 75;
                        ErrorHandler.Sync(this);
                        _la = TokenStream.LA(1);
                    }
                }
            }
            catch (RecognitionException re) {
                _localctx.exception = re;
                ErrorHandler.ReportError(this, re);
                ErrorHandler.Recover(this, re);
            }
            finally {
                ExitRule();
            }
            return(_localctx);
        }