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