def func()

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


    def func(self):

        localctx = PSParser.FuncContext(self, self._ctx, self.state)
        self.enterRule(localctx, 102, self.RULE_func)
        self._la = 0  # Token type
        try:
            self.state = 971
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input, 84, self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 805
                self.func_normal_single_arg()
                self.state = 818
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 56, self._ctx)
                if la_ == 1:
                    self.state = 807
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 167:
                        self.state = 806
                        self.subexpr()

                    self.state = 810
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 168:
                        self.state = 809
                        self.supexpr()

                    pass

                elif la_ == 2:
                    self.state = 813
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 168:
                        self.state = 812
                        self.supexpr()

                    self.state = 816
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 167:
                        self.state = 815
                        self.subexpr()

                    pass

                self.state = 841
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 61, self._ctx)
                if la_ == 1:
                    self.state = 821
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 78:
                        self.state = 820
                        self.match(PSParser.L_LEFT)

                    self.state = 823
                    self.match(PSParser.L_PAREN)
                    self.state = 824
                    self.func_single_arg()
                    self.state = 826
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 79:
                        self.state = 825
                        self.match(PSParser.R_RIGHT)

                    self.state = 828
                    self.match(PSParser.R_PAREN)
                    pass

                elif la_ == 2:
                    self.state = 831
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 80:
                        self.state = 830
                        self.match(PSParser.ML_LEFT)

                    self.state = 833
                    self.match(PSParser.L_PAREN)
                    self.state = 834
                    self.func_single_arg()
                    self.state = 836
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 81:
                        self.state = 835
                        self.match(PSParser.MR_RIGHT)

                    self.state = 838
                    self.match(PSParser.R_PAREN)
                    pass

                elif la_ == 3:
                    self.state = 840
                    self.func_single_arg_noparens()
                    pass

                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 843
                self.func_normal_multi_arg()
                self.state = 856
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 66, self._ctx)
                if la_ == 1:
                    self.state = 845
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 167:
                        self.state = 844
                        self.subexpr()

                    self.state = 848
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 168:
                        self.state = 847
                        self.supexpr()

                    pass

                elif la_ == 2:
                    self.state = 851
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 168:
                        self.state = 850
                        self.supexpr()

                    self.state = 854
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 167:
                        self.state = 853
                        self.subexpr()

                    pass

                self.state = 879
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 71, self._ctx)
                if la_ == 1:
                    self.state = 859
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 78:
                        self.state = 858
                        self.match(PSParser.L_LEFT)

                    self.state = 861
                    self.match(PSParser.L_PAREN)
                    self.state = 862
                    self.func_multi_arg()
                    self.state = 864
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 79:
                        self.state = 863
                        self.match(PSParser.R_RIGHT)

                    self.state = 866
                    self.match(PSParser.R_PAREN)
                    pass

                elif la_ == 2:
                    self.state = 869
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 80:
                        self.state = 868
                        self.match(PSParser.ML_LEFT)

                    self.state = 871
                    self.match(PSParser.L_PAREN)
                    self.state = 872
                    self.func_multi_arg()
                    self.state = 874
                    self._errHandler.sync(self)
                    _la = self._input.LA(1)
                    if _la == 81:
                        self.state = 873
                        self.match(PSParser.MR_RIGHT)

                    self.state = 876
                    self.match(PSParser.R_PAREN)
                    pass

                elif la_ == 3:
                    self.state = 878
                    self.func_multi_arg_noparens()
                    pass

                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 881
                self.atom_expr_no_supexpr()
                self.state = 883
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 168:
                    self.state = 882
                    self.supexpr()

                self.state = 886
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 78:
                    self.state = 885
                    self.match(PSParser.L_LEFT)

                self.state = 888
                _la = self._input.LA(1)
                if not(_la == 51 or _la == 61):
                    self._errHandler.recoverInline(self)
                else:
                    self._errHandler.reportMatch(self)
                    self.consume()
                self.state = 889
                self.func_common_args()
                self.state = 890
                _la = self._input.LA(1)
                if not(_la == 52 or _la == 62):
                    self._errHandler.recoverInline(self)
                else:
                    self._errHandler.reportMatch(self)
                    self.consume()
                self.state = 892
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 74, self._ctx)
                if la_ == 1:
                    self.state = 891
                    self.match(PSParser.R_RIGHT)

                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 894
                self.atom_expr_no_supexpr()
                self.state = 896
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 168:
                    self.state = 895
                    self.supexpr()

                self.state = 898
                self.match(PSParser.L_BRACE)
                self.state = 900
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 78:
                    self.state = 899
                    self.match(PSParser.L_LEFT)

                self.state = 902
                _la = self._input.LA(1)
                if not(_la == 51 or _la == 61):
                    self._errHandler.recoverInline(self)
                else:
                    self._errHandler.reportMatch(self)
                    self.consume()
                self.state = 903
                self.func_common_args()
                self.state = 904
                _la = self._input.LA(1)
                if not(_la == 52 or _la == 62):
                    self._errHandler.recoverInline(self)
                else:
                    self._errHandler.reportMatch(self)
                    self.consume()
                self.state = 906
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 79:
                    self.state = 905
                    self.match(PSParser.R_RIGHT)

                self.state = 908
                self.match(PSParser.R_BRACE)
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 910
                self.match(PSParser.FUNC_INT)
                self.state = 931
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 78, self._ctx)
                if la_ == 1:
                    self.state = 911
                    self.subexpr()
                    self.state = 912
                    self.supexpr()

                elif la_ == 2:
                    self.state = 914
                    self.supexpr()
                    self.state = 915
                    self.subexpr()

                elif la_ == 3:
                    self.state = 917
                    self.match(PSParser.UNDERSCORE)
                    self.state = 918
                    self.match(PSParser.L_BRACE)
                    self.state = 919
                    self.match(PSParser.R_BRACE)

                    self.state = 921
                    self.match(PSParser.CARET)
                    self.state = 922
                    self.match(PSParser.L_BRACE)
                    self.state = 923
                    self.match(PSParser.R_BRACE)

                elif la_ == 4:
                    self.state = 924
                    self.match(PSParser.CARET)
                    self.state = 925
                    self.match(PSParser.L_BRACE)
                    self.state = 926
                    self.match(PSParser.R_BRACE)

                    self.state = 928
                    self.match(PSParser.UNDERSCORE)
                    self.state = 929
                    self.match(PSParser.L_BRACE)
                    self.state = 930
                    self.match(PSParser.R_BRACE)

                self.state = 939
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 80, self._ctx)
                if la_ == 1:
                    self.state = 934
                    self._errHandler.sync(self)
                    la_ = self._interp.adaptivePredict(self._input, 79, self._ctx)
                    if la_ == 1:
                        self.state = 933
                        self.additive(0)

                    self.state = 936
                    self.match(PSParser.DIFFERENTIAL)
                    pass

                elif la_ == 2:
                    self.state = 937
                    self.frac()
                    pass

                elif la_ == 3:
                    self.state = 938
                    self.additive(0)
                    pass

                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 941
                self.match(PSParser.FUNC_SQRT)
                self.state = 946
                self._errHandler.sync(self)
                _la = self._input.LA(1)
                if _la == 61:
                    self.state = 942
                    self.match(PSParser.L_BRACKET)
                    self.state = 943
                    localctx.root = self.expr()
                    self.state = 944
                    self.match(PSParser.R_BRACKET)

                self.state = 948
                self.match(PSParser.L_BRACE)
                self.state = 949
                localctx.base = self.expr()
                self.state = 950
                self.match(PSParser.R_BRACE)
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 952
                _la = self._input.LA(1)
                if not(_la == 85 or _la == 86):
                    self._errHandler.recoverInline(self)
                else:
                    self._errHandler.reportMatch(self)
                    self.consume()
                self.state = 959
                self._errHandler.sync(self)
                token = self._input.LA(1)
                if token in [167]:
                    self.state = 953
                    self.subeq()
                    self.state = 954
                    self.supexpr()
                    pass
                elif token in [168]:
                    self.state = 956
                    self.supexpr()
                    self.state = 957
                    self.subeq()
                    pass
                else:
                    raise NoViableAltException(self)

                self.state = 961
                self.mp(0)
                pass

            elif la_ == 8:
                self.enterOuterAlt(localctx, 8)
                self.state = 963
                self.match(PSParser.FUNC_LIM)
                self.state = 964
                self.limit_sub()
                self.state = 965
                self.mp(0)
                pass

            elif la_ == 9:
                self.enterOuterAlt(localctx, 9)
                self.state = 967
                self.match(PSParser.EXP_E)
                self.state = 969
                self._errHandler.sync(self)
                la_ = self._interp.adaptivePredict(self._input, 83, self._ctx)
                if la_ == 1:
                    self.state = 968
                    self.supexpr()

                pass

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