def exp()

in evaluation/latex2sympy/gen/PSParser.py [0:0]


    def exp(self, _p=0):
        _parentctx = self._ctx
        _parentState = self.state
        localctx = PSParser.ExpContext(self, self._ctx, _parentState)
        _prevctx = localctx
        _startState = 56
        self.enterRecursionRule(localctx, 56, self.RULE_exp, _p)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 393
            self.comp()
            self._ctx.stop = self._input.LT(-1)
            self.state = 409
            self._errHandler.sync(self)
            _alt = self._interp.adaptivePredict(self._input, 32, self._ctx)
            while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
                if _alt == 1:
                    if self._parseListeners is not None:
                        self.triggerExitRuleEvent()
                    _prevctx = localctx
                    localctx = PSParser.ExpContext(self, _parentctx, _parentState)
                    self.pushNewRecursionContext(localctx, _startState, self.RULE_exp)
                    self.state = 395
                    if not self.precpred(self._ctx, 2):
                        from antlr4.error.Errors import FailedPredicateException
                        raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
                    self.state = 396
                    self.match(PSParser.CARET)
                    self.state = 402
                    self._errHandler.sync(self)
                    token = self._input.LA(1)
                    if token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 154, 173, 176, 179, 180, 190, 191, 192, 193, 194]:
                        self.state = 397
                        self.atom()
                        pass
                    elif token in [55]:
                        self.state = 398
                        self.match(PSParser.L_BRACE)
                        self.state = 399
                        self.expr()
                        self.state = 400
                        self.match(PSParser.R_BRACE)
                        pass
                    else:
                        raise NoViableAltException(self)

                    self.state = 405
                    self._errHandler.sync(self)
                    la_ = self._interp.adaptivePredict(self._input, 31, self._ctx)
                    if la_ == 1:
                        self.state = 404
                        self.subexpr()

                self.state = 411
                self._errHandler.sync(self)
                _alt = self._interp.adaptivePredict(self._input, 32, self._ctx)

        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.unrollRecursionContexts(_parentctx)
        return localctx