Files
mcDandy-more_math/more_math/Parser/MathExprParser.py
T
mcDandy 5072b191b7 Add tensor ops and parser support
Expose new tensor operations (softmax, softmin, argmin, argmax, unique, flatten, matmul, cross, and related tensor helpers) in the README and add corresponding grammar rules/tokens. Updated MathExpr.g4 to include new func productions and token definitions, and regenerated parser artifacts (MathExprLexer/Parser/Listener/Visitor/UnifiedMathVisitor and .interp/.tokens files). Also includes minor README formatting/typo fixes.
2026-02-10 15:38:47 +01:00

9899 lines
363 KiB
Python

# Generated from MathExpr.g4 by ANTLR 4.13.2
# encoding: utf-8
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
from typing import TextIO
else:
from typing.io import TextIO
def serializedATN():
return [
4,1,153,1108,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,
7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,
13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,
20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,
26,2,27,7,27,2,28,7,28,2,29,7,29,1,0,1,0,1,0,5,0,64,8,0,10,0,12,
0,67,9,0,1,0,1,0,3,0,71,8,0,1,0,1,0,1,1,1,1,1,1,3,1,78,8,1,1,1,1,
1,1,1,1,1,3,1,84,8,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,5,2,93,8,2,10,2,
12,2,96,9,2,1,2,1,2,5,2,100,8,2,10,2,12,2,103,9,2,1,2,1,2,1,2,1,
2,1,3,1,3,1,3,5,3,112,8,3,10,3,12,3,115,9,3,1,4,1,4,1,4,1,4,1,4,
1,4,1,4,1,4,1,4,1,4,1,4,3,4,128,8,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,
3,5,137,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,
1,7,1,8,1,8,5,8,155,8,8,10,8,12,8,158,9,8,1,8,1,8,1,9,1,9,1,9,1,
10,1,10,1,10,1,11,1,11,3,11,170,8,11,1,11,1,11,1,12,1,12,1,12,3,
12,177,8,12,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,
14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,
14,1,14,1,14,1,14,5,14,206,8,14,10,14,12,14,209,9,14,1,15,1,15,1,
15,1,15,1,15,1,15,1,15,1,15,1,15,5,15,220,8,15,10,15,12,15,223,9,
15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,5,
16,237,8,16,10,16,12,16,240,9,16,1,17,1,17,1,17,1,17,1,17,3,17,247,
8,17,1,18,1,18,1,18,1,18,1,18,3,18,254,8,18,1,19,1,19,1,19,1,19,
1,19,1,19,1,19,1,19,5,19,264,8,19,10,19,12,19,267,9,19,1,19,1,19,
5,19,271,8,19,10,19,12,19,274,9,19,1,20,1,20,1,20,1,20,1,20,1,20,
1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,
1,20,1,20,1,20,1,20,5,20,299,8,20,10,20,12,20,302,9,20,1,20,1,20,
1,20,1,20,1,20,3,20,309,8,20,1,20,1,20,1,20,1,20,3,20,315,8,20,1,
21,1,21,1,21,5,21,320,8,21,10,21,12,21,323,9,21,1,22,1,22,1,22,1,
22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,534,8,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,3,23,588,8,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,622,8,23,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,3,24,736,8,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,3,24,780,8,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,
24,3,24,805,8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,902,8,25,1,25,1,25,3,
25,906,8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,
26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,
26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,3,26,941,8,26,1,
27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,
28,1,28,1,28,1,28,1,28,5,28,961,8,28,10,28,12,28,964,9,28,1,28,1,
28,1,28,1,28,1,28,1,28,1,28,5,28,973,8,28,10,28,12,28,976,9,28,1,
28,1,28,1,28,1,28,1,28,1,28,1,28,4,28,985,8,28,11,28,12,28,986,1,
28,1,28,1,28,1,28,1,28,1,28,1,28,4,28,996,8,28,11,28,12,28,997,1,
28,1,28,1,28,1,28,1,28,1,28,1,28,4,28,1007,8,28,11,28,12,28,1008,
1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,
1,28,1,28,1,28,3,28,1027,8,28,1,29,1,29,1,29,1,29,1,29,3,29,1034,
8,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,1043,8,29,1,29,1,29,
1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,1054,8,29,1,29,1,29,1,29,
1,29,1,29,1,29,1,29,1,29,1,29,3,29,1065,8,29,1,29,1,29,1,29,1,29,
1,29,1,29,1,29,1,29,1,29,3,29,1076,8,29,1,29,1,29,1,29,1,29,1,29,
1,29,1,29,1,29,1,29,1,29,1,29,3,29,1089,8,29,1,29,1,29,1,29,1,29,
1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,1102,8,29,1,29,1,29,3,29,
1106,8,29,1,29,0,4,28,30,32,38,30,0,2,4,6,8,10,12,14,16,18,20,22,
24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,0,0,1256,0,
65,1,0,0,0,2,74,1,0,0,0,4,87,1,0,0,0,6,108,1,0,0,0,8,127,1,0,0,0,
10,129,1,0,0,0,12,138,1,0,0,0,14,144,1,0,0,0,16,152,1,0,0,0,18,161,
1,0,0,0,20,164,1,0,0,0,22,167,1,0,0,0,24,176,1,0,0,0,26,178,1,0,
0,0,28,184,1,0,0,0,30,210,1,0,0,0,32,224,1,0,0,0,34,246,1,0,0,0,
36,253,1,0,0,0,38,255,1,0,0,0,40,314,1,0,0,0,42,316,1,0,0,0,44,324,
1,0,0,0,46,621,1,0,0,0,48,804,1,0,0,0,50,905,1,0,0,0,52,940,1,0,
0,0,54,942,1,0,0,0,56,1026,1,0,0,0,58,1105,1,0,0,0,60,64,3,2,1,0,
61,64,3,4,2,0,62,64,3,8,4,0,63,60,1,0,0,0,63,61,1,0,0,0,63,62,1,
0,0,0,64,67,1,0,0,0,65,63,1,0,0,0,65,66,1,0,0,0,66,68,1,0,0,0,67,
65,1,0,0,0,68,70,3,24,12,0,69,71,5,140,0,0,70,69,1,0,0,0,70,71,1,
0,0,0,71,72,1,0,0,0,72,73,5,0,0,1,73,1,1,0,0,0,74,75,5,150,0,0,75,
77,5,137,0,0,76,78,3,6,3,0,77,76,1,0,0,0,77,78,1,0,0,0,78,79,1,0,
0,0,79,80,5,138,0,0,80,83,5,141,0,0,81,84,3,16,8,0,82,84,3,24,12,
0,83,81,1,0,0,0,83,82,1,0,0,0,84,85,1,0,0,0,85,86,5,140,0,0,86,3,
1,0,0,0,87,101,5,150,0,0,88,89,5,142,0,0,89,94,3,24,12,0,90,91,5,
139,0,0,91,93,3,24,12,0,92,90,1,0,0,0,93,96,1,0,0,0,94,92,1,0,0,
0,94,95,1,0,0,0,95,97,1,0,0,0,96,94,1,0,0,0,97,98,5,143,0,0,98,100,
1,0,0,0,99,88,1,0,0,0,100,103,1,0,0,0,101,99,1,0,0,0,101,102,1,0,
0,0,102,104,1,0,0,0,103,101,1,0,0,0,104,105,5,134,0,0,105,106,3,
24,12,0,106,107,5,140,0,0,107,5,1,0,0,0,108,113,5,150,0,0,109,110,
5,139,0,0,110,112,5,150,0,0,111,109,1,0,0,0,112,115,1,0,0,0,113,
111,1,0,0,0,113,114,1,0,0,0,114,7,1,0,0,0,115,113,1,0,0,0,116,128,
3,10,5,0,117,128,3,12,6,0,118,128,3,16,8,0,119,128,3,18,9,0,120,
128,3,20,10,0,121,128,3,22,11,0,122,128,3,4,2,0,123,128,3,14,7,0,
124,125,3,24,12,0,125,126,5,140,0,0,126,128,1,0,0,0,127,116,1,0,
0,0,127,117,1,0,0,0,127,118,1,0,0,0,127,119,1,0,0,0,127,120,1,0,
0,0,127,121,1,0,0,0,127,122,1,0,0,0,127,123,1,0,0,0,127,124,1,0,
0,0,128,9,1,0,0,0,129,130,5,81,0,0,130,131,5,137,0,0,131,132,3,24,
12,0,132,133,5,138,0,0,133,136,3,8,4,0,134,135,5,82,0,0,135,137,
3,8,4,0,136,134,1,0,0,0,136,137,1,0,0,0,137,11,1,0,0,0,138,139,5,
83,0,0,139,140,5,137,0,0,140,141,3,24,12,0,141,142,5,138,0,0,142,
143,3,8,4,0,143,13,1,0,0,0,144,145,5,108,0,0,145,146,5,137,0,0,146,
147,5,150,0,0,147,148,5,109,0,0,148,149,3,24,12,0,149,150,5,138,
0,0,150,151,3,8,4,0,151,15,1,0,0,0,152,156,5,146,0,0,153,155,3,8,
4,0,154,153,1,0,0,0,155,158,1,0,0,0,156,154,1,0,0,0,156,157,1,0,
0,0,157,159,1,0,0,0,158,156,1,0,0,0,159,160,5,147,0,0,160,17,1,0,
0,0,161,162,5,120,0,0,162,163,5,140,0,0,163,19,1,0,0,0,164,165,5,
121,0,0,165,166,5,140,0,0,166,21,1,0,0,0,167,169,5,84,0,0,168,170,
3,24,12,0,169,168,1,0,0,0,169,170,1,0,0,0,170,171,1,0,0,0,171,172,
5,140,0,0,172,23,1,0,0,0,173,177,3,26,13,0,174,177,3,40,20,0,175,
177,3,28,14,0,176,173,1,0,0,0,176,174,1,0,0,0,176,175,1,0,0,0,177,
25,1,0,0,0,178,179,3,28,14,0,179,180,5,144,0,0,180,181,3,24,12,0,
181,182,5,145,0,0,182,183,3,24,12,0,183,27,1,0,0,0,184,185,6,14,
-1,0,185,186,3,30,15,0,186,207,1,0,0,0,187,188,10,7,0,0,188,189,
5,130,0,0,189,206,3,30,15,0,190,191,10,6,0,0,191,192,5,129,0,0,192,
206,3,30,15,0,193,194,10,5,0,0,194,195,5,132,0,0,195,206,3,30,15,
0,196,197,10,4,0,0,197,198,5,131,0,0,198,206,3,30,15,0,199,200,10,
3,0,0,200,201,5,133,0,0,201,206,3,30,15,0,202,203,10,2,0,0,203,204,
5,135,0,0,204,206,3,30,15,0,205,187,1,0,0,0,205,190,1,0,0,0,205,
193,1,0,0,0,205,196,1,0,0,0,205,199,1,0,0,0,205,202,1,0,0,0,206,
209,1,0,0,0,207,205,1,0,0,0,207,208,1,0,0,0,208,29,1,0,0,0,209,207,
1,0,0,0,210,211,6,15,-1,0,211,212,3,32,16,0,212,221,1,0,0,0,213,
214,10,3,0,0,214,215,5,123,0,0,215,220,3,32,16,0,216,217,10,2,0,
0,217,218,5,124,0,0,218,220,3,32,16,0,219,213,1,0,0,0,219,216,1,
0,0,0,220,223,1,0,0,0,221,219,1,0,0,0,221,222,1,0,0,0,222,31,1,0,
0,0,223,221,1,0,0,0,224,225,6,16,-1,0,225,226,3,34,17,0,226,238,
1,0,0,0,227,228,10,4,0,0,228,229,5,125,0,0,229,237,3,34,17,0,230,
231,10,3,0,0,231,232,5,126,0,0,232,237,3,34,17,0,233,234,10,2,0,
0,234,235,5,127,0,0,235,237,3,34,17,0,236,227,1,0,0,0,236,230,1,
0,0,0,236,233,1,0,0,0,237,240,1,0,0,0,238,236,1,0,0,0,238,239,1,
0,0,0,239,33,1,0,0,0,240,238,1,0,0,0,241,242,3,36,18,0,242,243,5,
128,0,0,243,244,3,34,17,0,244,247,1,0,0,0,245,247,3,36,18,0,246,
241,1,0,0,0,246,245,1,0,0,0,247,35,1,0,0,0,248,249,5,123,0,0,249,
254,3,36,18,0,250,251,5,124,0,0,251,254,3,36,18,0,252,254,3,38,19,
0,253,248,1,0,0,0,253,250,1,0,0,0,253,252,1,0,0,0,254,37,1,0,0,0,
255,256,6,19,-1,0,256,257,3,40,20,0,257,272,1,0,0,0,258,259,10,2,
0,0,259,260,5,142,0,0,260,265,3,24,12,0,261,262,5,139,0,0,262,264,
3,24,12,0,263,261,1,0,0,0,264,267,1,0,0,0,265,263,1,0,0,0,265,266,
1,0,0,0,266,268,1,0,0,0,267,265,1,0,0,0,268,269,5,143,0,0,269,271,
1,0,0,0,270,258,1,0,0,0,271,274,1,0,0,0,272,270,1,0,0,0,272,273,
1,0,0,0,273,39,1,0,0,0,274,272,1,0,0,0,275,315,3,44,22,0,276,315,
3,46,23,0,277,315,3,48,24,0,278,315,3,50,25,0,279,315,3,52,26,0,
280,315,3,54,27,0,281,315,3,56,28,0,282,315,3,58,29,0,283,315,5,
150,0,0,284,315,5,148,0,0,285,315,5,149,0,0,286,287,5,137,0,0,287,
288,3,24,12,0,288,289,5,138,0,0,289,315,1,0,0,0,290,291,5,136,0,
0,291,292,3,24,12,0,292,293,5,136,0,0,293,315,1,0,0,0,294,295,5,
142,0,0,295,300,3,24,12,0,296,297,5,139,0,0,297,299,3,24,12,0,298,
296,1,0,0,0,299,302,1,0,0,0,300,298,1,0,0,0,300,301,1,0,0,0,301,
303,1,0,0,0,302,300,1,0,0,0,303,304,5,143,0,0,304,315,1,0,0,0,305,
306,5,150,0,0,306,308,5,137,0,0,307,309,3,42,21,0,308,307,1,0,0,
0,308,309,1,0,0,0,309,310,1,0,0,0,310,315,5,138,0,0,311,315,5,119,
0,0,312,315,5,120,0,0,313,315,5,121,0,0,314,275,1,0,0,0,314,276,
1,0,0,0,314,277,1,0,0,0,314,278,1,0,0,0,314,279,1,0,0,0,314,280,
1,0,0,0,314,281,1,0,0,0,314,282,1,0,0,0,314,283,1,0,0,0,314,284,
1,0,0,0,314,285,1,0,0,0,314,286,1,0,0,0,314,290,1,0,0,0,314,294,
1,0,0,0,314,305,1,0,0,0,314,311,1,0,0,0,314,312,1,0,0,0,314,313,
1,0,0,0,315,41,1,0,0,0,316,321,3,24,12,0,317,318,5,139,0,0,318,320,
3,24,12,0,319,317,1,0,0,0,320,323,1,0,0,0,321,319,1,0,0,0,321,322,
1,0,0,0,322,43,1,0,0,0,323,321,1,0,0,0,324,325,5,118,0,0,325,326,
5,137,0,0,326,327,5,138,0,0,327,45,1,0,0,0,328,329,5,1,0,0,329,330,
5,137,0,0,330,331,3,24,12,0,331,332,5,138,0,0,332,622,1,0,0,0,333,
334,5,2,0,0,334,335,5,137,0,0,335,336,3,24,12,0,336,337,5,138,0,
0,337,622,1,0,0,0,338,339,5,3,0,0,339,340,5,137,0,0,340,341,3,24,
12,0,341,342,5,138,0,0,342,622,1,0,0,0,343,344,5,4,0,0,344,345,5,
137,0,0,345,346,3,24,12,0,346,347,5,138,0,0,347,622,1,0,0,0,348,
349,5,5,0,0,349,350,5,137,0,0,350,351,3,24,12,0,351,352,5,138,0,
0,352,622,1,0,0,0,353,354,5,6,0,0,354,355,5,137,0,0,355,356,3,24,
12,0,356,357,5,138,0,0,357,622,1,0,0,0,358,359,5,8,0,0,359,360,5,
137,0,0,360,361,3,24,12,0,361,362,5,138,0,0,362,622,1,0,0,0,363,
364,5,9,0,0,364,365,5,137,0,0,365,366,3,24,12,0,366,367,5,138,0,
0,367,622,1,0,0,0,368,369,5,10,0,0,369,370,5,137,0,0,370,371,3,24,
12,0,371,372,5,138,0,0,372,622,1,0,0,0,373,374,5,11,0,0,374,375,
5,137,0,0,375,376,3,24,12,0,376,377,5,138,0,0,377,622,1,0,0,0,378,
379,5,12,0,0,379,380,5,137,0,0,380,381,3,24,12,0,381,382,5,138,0,
0,382,622,1,0,0,0,383,384,5,13,0,0,384,385,5,137,0,0,385,386,3,24,
12,0,386,387,5,138,0,0,387,622,1,0,0,0,388,389,5,14,0,0,389,390,
5,137,0,0,390,391,3,24,12,0,391,392,5,138,0,0,392,622,1,0,0,0,393,
394,5,15,0,0,394,395,5,137,0,0,395,396,3,24,12,0,396,397,5,138,0,
0,397,622,1,0,0,0,398,399,5,16,0,0,399,400,5,137,0,0,400,401,3,24,
12,0,401,402,5,138,0,0,402,622,1,0,0,0,403,404,5,17,0,0,404,405,
5,137,0,0,405,406,3,24,12,0,406,407,5,138,0,0,407,622,1,0,0,0,408,
409,5,18,0,0,409,410,5,137,0,0,410,411,3,24,12,0,411,412,5,138,0,
0,412,622,1,0,0,0,413,414,5,23,0,0,414,415,5,137,0,0,415,416,3,24,
12,0,416,417,5,138,0,0,417,622,1,0,0,0,418,419,5,24,0,0,419,420,
5,137,0,0,420,421,3,24,12,0,421,422,5,138,0,0,422,622,1,0,0,0,423,
424,5,25,0,0,424,425,5,137,0,0,425,426,3,24,12,0,426,427,5,138,0,
0,427,622,1,0,0,0,428,429,5,26,0,0,429,430,5,137,0,0,430,431,3,24,
12,0,431,432,5,138,0,0,432,622,1,0,0,0,433,434,5,27,0,0,434,435,
5,137,0,0,435,436,3,24,12,0,436,437,5,138,0,0,437,622,1,0,0,0,438,
439,5,28,0,0,439,440,5,137,0,0,440,441,3,24,12,0,441,442,5,138,0,
0,442,622,1,0,0,0,443,444,5,30,0,0,444,445,5,137,0,0,445,446,3,24,
12,0,446,447,5,138,0,0,447,622,1,0,0,0,448,449,5,34,0,0,449,450,
5,137,0,0,450,451,3,24,12,0,451,452,5,138,0,0,452,622,1,0,0,0,453,
454,5,35,0,0,454,455,5,137,0,0,455,456,3,24,12,0,456,457,5,138,0,
0,457,622,1,0,0,0,458,459,5,41,0,0,459,460,5,137,0,0,460,461,3,24,
12,0,461,462,5,138,0,0,462,622,1,0,0,0,463,464,5,42,0,0,464,465,
5,137,0,0,465,466,3,24,12,0,466,467,5,138,0,0,467,622,1,0,0,0,468,
469,5,43,0,0,469,470,5,137,0,0,470,471,3,24,12,0,471,472,5,138,0,
0,472,622,1,0,0,0,473,474,5,44,0,0,474,475,5,137,0,0,475,476,3,24,
12,0,476,477,5,138,0,0,477,622,1,0,0,0,478,479,5,45,0,0,479,480,
5,137,0,0,480,481,3,24,12,0,481,482,5,138,0,0,482,622,1,0,0,0,483,
484,5,36,0,0,484,485,5,137,0,0,485,486,3,24,12,0,486,487,5,138,0,
0,487,622,1,0,0,0,488,489,5,55,0,0,489,490,5,137,0,0,490,491,3,24,
12,0,491,492,5,138,0,0,492,622,1,0,0,0,493,494,5,56,0,0,494,495,
5,137,0,0,495,496,3,24,12,0,496,497,5,138,0,0,497,622,1,0,0,0,498,
499,5,57,0,0,499,500,5,137,0,0,500,501,3,24,12,0,501,502,5,138,0,
0,502,622,1,0,0,0,503,504,5,58,0,0,504,505,5,137,0,0,505,506,3,24,
12,0,506,507,5,138,0,0,507,622,1,0,0,0,508,509,5,59,0,0,509,510,
5,137,0,0,510,511,3,24,12,0,511,512,5,138,0,0,512,622,1,0,0,0,513,
514,5,100,0,0,514,515,5,137,0,0,515,516,3,24,12,0,516,517,5,138,
0,0,517,622,1,0,0,0,518,519,5,65,0,0,519,520,5,137,0,0,520,521,3,
24,12,0,521,522,5,138,0,0,522,622,1,0,0,0,523,524,5,66,0,0,524,525,
5,137,0,0,525,526,3,24,12,0,526,527,5,138,0,0,527,622,1,0,0,0,528,
529,5,67,0,0,529,530,5,137,0,0,530,533,3,24,12,0,531,532,5,139,0,
0,532,534,3,24,12,0,533,531,1,0,0,0,533,534,1,0,0,0,534,535,1,0,
0,0,535,536,5,138,0,0,536,622,1,0,0,0,537,538,5,69,0,0,538,539,5,
137,0,0,539,540,3,24,12,0,540,541,5,138,0,0,541,622,1,0,0,0,542,
543,5,70,0,0,543,544,5,137,0,0,544,545,3,24,12,0,545,546,5,138,0,
0,546,622,1,0,0,0,547,548,5,71,0,0,548,549,5,137,0,0,549,550,3,24,
12,0,550,551,5,138,0,0,551,622,1,0,0,0,552,553,5,101,0,0,553,554,
5,137,0,0,554,555,3,24,12,0,555,556,5,138,0,0,556,622,1,0,0,0,557,
558,5,72,0,0,558,559,5,137,0,0,559,560,3,24,12,0,560,561,5,138,0,
0,561,622,1,0,0,0,562,563,5,86,0,0,563,564,5,137,0,0,564,565,3,24,
12,0,565,566,5,138,0,0,566,622,1,0,0,0,567,568,5,87,0,0,568,569,
5,137,0,0,569,570,3,24,12,0,570,571,5,138,0,0,571,622,1,0,0,0,572,
573,5,88,0,0,573,574,5,137,0,0,574,575,3,24,12,0,575,576,5,138,0,
0,576,622,1,0,0,0,577,578,5,89,0,0,578,579,5,137,0,0,579,580,3,24,
12,0,580,581,5,138,0,0,581,622,1,0,0,0,582,583,5,107,0,0,583,584,
5,137,0,0,584,587,3,24,12,0,585,586,5,139,0,0,586,588,3,24,12,0,
587,585,1,0,0,0,587,588,1,0,0,0,588,589,1,0,0,0,589,590,5,138,0,
0,590,622,1,0,0,0,591,592,5,110,0,0,592,593,5,137,0,0,593,594,3,
24,12,0,594,595,5,138,0,0,595,622,1,0,0,0,596,597,5,111,0,0,597,
598,5,137,0,0,598,599,3,24,12,0,599,600,5,138,0,0,600,622,1,0,0,
0,601,602,5,113,0,0,602,603,5,137,0,0,603,604,3,24,12,0,604,605,
5,138,0,0,605,622,1,0,0,0,606,607,5,114,0,0,607,608,5,137,0,0,608,
609,3,24,12,0,609,610,5,138,0,0,610,622,1,0,0,0,611,612,5,112,0,
0,612,613,5,137,0,0,613,614,3,24,12,0,614,615,5,138,0,0,615,622,
1,0,0,0,616,617,5,115,0,0,617,618,5,137,0,0,618,619,3,24,12,0,619,
620,5,138,0,0,620,622,1,0,0,0,621,328,1,0,0,0,621,333,1,0,0,0,621,
338,1,0,0,0,621,343,1,0,0,0,621,348,1,0,0,0,621,353,1,0,0,0,621,
358,1,0,0,0,621,363,1,0,0,0,621,368,1,0,0,0,621,373,1,0,0,0,621,
378,1,0,0,0,621,383,1,0,0,0,621,388,1,0,0,0,621,393,1,0,0,0,621,
398,1,0,0,0,621,403,1,0,0,0,621,408,1,0,0,0,621,413,1,0,0,0,621,
418,1,0,0,0,621,423,1,0,0,0,621,428,1,0,0,0,621,433,1,0,0,0,621,
438,1,0,0,0,621,443,1,0,0,0,621,448,1,0,0,0,621,453,1,0,0,0,621,
458,1,0,0,0,621,463,1,0,0,0,621,468,1,0,0,0,621,473,1,0,0,0,621,
478,1,0,0,0,621,483,1,0,0,0,621,488,1,0,0,0,621,493,1,0,0,0,621,
498,1,0,0,0,621,503,1,0,0,0,621,508,1,0,0,0,621,513,1,0,0,0,621,
518,1,0,0,0,621,523,1,0,0,0,621,528,1,0,0,0,621,537,1,0,0,0,621,
542,1,0,0,0,621,547,1,0,0,0,621,552,1,0,0,0,621,557,1,0,0,0,621,
562,1,0,0,0,621,567,1,0,0,0,621,572,1,0,0,0,621,577,1,0,0,0,621,
582,1,0,0,0,621,591,1,0,0,0,621,596,1,0,0,0,621,601,1,0,0,0,621,
606,1,0,0,0,621,611,1,0,0,0,621,616,1,0,0,0,622,47,1,0,0,0,623,624,
5,29,0,0,624,625,5,137,0,0,625,626,3,24,12,0,626,627,5,139,0,0,627,
628,3,24,12,0,628,629,5,138,0,0,629,805,1,0,0,0,630,631,5,7,0,0,
631,632,5,137,0,0,632,633,3,24,12,0,633,634,5,139,0,0,634,635,3,
24,12,0,635,636,5,138,0,0,636,805,1,0,0,0,637,638,5,21,0,0,638,639,
5,137,0,0,639,640,3,24,12,0,640,641,5,139,0,0,641,642,3,24,12,0,
642,643,5,138,0,0,643,805,1,0,0,0,644,645,5,22,0,0,645,646,5,137,
0,0,646,647,3,24,12,0,647,648,5,139,0,0,648,649,3,24,12,0,649,650,
5,138,0,0,650,805,1,0,0,0,651,652,5,39,0,0,652,653,5,137,0,0,653,
654,3,24,12,0,654,655,5,139,0,0,655,656,3,24,12,0,656,657,5,138,
0,0,657,805,1,0,0,0,658,659,5,53,0,0,659,660,5,137,0,0,660,661,3,
24,12,0,661,662,5,139,0,0,662,663,3,24,12,0,663,664,5,138,0,0,664,
805,1,0,0,0,665,666,5,54,0,0,666,667,5,137,0,0,667,668,3,24,12,0,
668,669,5,139,0,0,669,670,3,24,12,0,670,671,5,138,0,0,671,805,1,
0,0,0,672,673,5,60,0,0,673,674,5,137,0,0,674,675,3,24,12,0,675,676,
5,139,0,0,676,677,3,24,12,0,677,678,5,138,0,0,678,805,1,0,0,0,679,
680,5,61,0,0,680,681,5,137,0,0,681,682,3,24,12,0,682,683,5,139,0,
0,683,684,3,24,12,0,684,685,5,138,0,0,685,805,1,0,0,0,686,687,5,
62,0,0,687,688,5,137,0,0,688,689,3,24,12,0,689,690,5,139,0,0,690,
691,3,24,12,0,691,692,5,138,0,0,692,805,1,0,0,0,693,694,5,63,0,0,
694,695,5,137,0,0,695,696,3,24,12,0,696,697,5,139,0,0,697,698,3,
24,12,0,698,699,5,138,0,0,699,805,1,0,0,0,700,701,5,97,0,0,701,702,
5,137,0,0,702,703,3,24,12,0,703,704,5,139,0,0,704,705,3,24,12,0,
705,706,5,138,0,0,706,805,1,0,0,0,707,708,5,98,0,0,708,709,5,137,
0,0,709,710,3,24,12,0,710,711,5,139,0,0,711,712,3,24,12,0,712,713,
5,138,0,0,713,805,1,0,0,0,714,715,5,99,0,0,715,716,5,137,0,0,716,
717,3,24,12,0,717,718,5,139,0,0,718,719,3,24,12,0,719,720,5,138,
0,0,720,805,1,0,0,0,721,722,5,102,0,0,722,723,5,137,0,0,723,724,
3,24,12,0,724,725,5,139,0,0,725,726,3,24,12,0,726,727,5,138,0,0,
727,805,1,0,0,0,728,729,5,68,0,0,729,730,5,137,0,0,730,731,3,24,
12,0,731,732,5,139,0,0,732,735,3,24,12,0,733,734,5,139,0,0,734,736,
3,24,12,0,735,733,1,0,0,0,735,736,1,0,0,0,736,737,1,0,0,0,737,738,
5,138,0,0,738,805,1,0,0,0,739,740,5,73,0,0,740,741,5,137,0,0,741,
742,3,24,12,0,742,743,5,139,0,0,743,744,3,24,12,0,744,745,5,138,
0,0,745,805,1,0,0,0,746,747,5,74,0,0,747,748,5,137,0,0,748,749,3,
24,12,0,749,750,5,139,0,0,750,751,3,24,12,0,751,752,5,138,0,0,752,
805,1,0,0,0,753,754,5,104,0,0,754,755,5,137,0,0,755,756,3,24,12,
0,756,757,5,139,0,0,757,758,3,24,12,0,758,759,5,138,0,0,759,805,
1,0,0,0,760,761,5,85,0,0,761,762,5,137,0,0,762,763,3,24,12,0,763,
764,5,139,0,0,764,765,3,24,12,0,765,766,5,138,0,0,766,805,1,0,0,
0,767,768,5,103,0,0,768,769,5,137,0,0,769,770,3,24,12,0,770,771,
5,139,0,0,771,772,3,24,12,0,772,773,5,138,0,0,773,805,1,0,0,0,774,
775,5,122,0,0,775,776,5,137,0,0,776,779,3,38,19,0,777,778,5,139,
0,0,778,780,3,24,12,0,779,777,1,0,0,0,779,780,1,0,0,0,780,781,1,
0,0,0,781,782,5,138,0,0,782,805,1,0,0,0,783,784,5,106,0,0,784,785,
5,137,0,0,785,786,3,24,12,0,786,787,5,139,0,0,787,788,3,24,12,0,
788,789,5,138,0,0,789,805,1,0,0,0,790,791,5,116,0,0,791,792,5,137,
0,0,792,793,3,24,12,0,793,794,5,139,0,0,794,795,3,24,12,0,795,796,
5,138,0,0,796,805,1,0,0,0,797,798,5,117,0,0,798,799,5,137,0,0,799,
800,3,24,12,0,800,801,5,139,0,0,801,802,3,24,12,0,802,803,5,138,
0,0,803,805,1,0,0,0,804,623,1,0,0,0,804,630,1,0,0,0,804,637,1,0,
0,0,804,644,1,0,0,0,804,651,1,0,0,0,804,658,1,0,0,0,804,665,1,0,
0,0,804,672,1,0,0,0,804,679,1,0,0,0,804,686,1,0,0,0,804,693,1,0,
0,0,804,700,1,0,0,0,804,707,1,0,0,0,804,714,1,0,0,0,804,721,1,0,
0,0,804,728,1,0,0,0,804,739,1,0,0,0,804,746,1,0,0,0,804,753,1,0,
0,0,804,760,1,0,0,0,804,767,1,0,0,0,804,774,1,0,0,0,804,783,1,0,
0,0,804,790,1,0,0,0,804,797,1,0,0,0,805,49,1,0,0,0,806,807,5,31,
0,0,807,808,5,137,0,0,808,809,3,24,12,0,809,810,5,139,0,0,810,811,
3,24,12,0,811,812,5,139,0,0,812,813,3,24,12,0,813,814,5,138,0,0,
814,906,1,0,0,0,815,816,5,38,0,0,816,817,5,137,0,0,817,818,3,24,
12,0,818,819,5,139,0,0,819,820,3,24,12,0,820,821,5,139,0,0,821,822,
3,24,12,0,822,823,5,138,0,0,823,906,1,0,0,0,824,825,5,40,0,0,825,
826,5,137,0,0,826,827,3,24,12,0,827,828,5,139,0,0,828,829,3,24,12,
0,829,830,5,139,0,0,830,831,3,24,12,0,831,832,5,138,0,0,832,906,
1,0,0,0,833,834,5,52,0,0,834,835,5,137,0,0,835,836,3,24,12,0,836,
837,5,139,0,0,837,838,3,24,12,0,838,839,5,139,0,0,839,840,3,24,12,
0,840,841,5,138,0,0,841,906,1,0,0,0,842,843,5,64,0,0,843,844,5,137,
0,0,844,845,3,24,12,0,845,846,5,139,0,0,846,847,3,24,12,0,847,848,
5,139,0,0,848,849,3,24,12,0,849,850,5,138,0,0,850,906,1,0,0,0,851,
852,5,75,0,0,852,853,5,137,0,0,853,854,3,24,12,0,854,855,5,139,0,
0,855,856,3,24,12,0,856,857,5,139,0,0,857,858,3,24,12,0,858,859,
5,138,0,0,859,906,1,0,0,0,860,861,5,76,0,0,861,862,5,137,0,0,862,
863,3,24,12,0,863,864,5,139,0,0,864,865,3,24,12,0,865,866,5,139,
0,0,866,867,3,24,12,0,867,868,5,138,0,0,868,906,1,0,0,0,869,870,
5,77,0,0,870,871,5,137,0,0,871,872,3,24,12,0,872,873,5,139,0,0,873,
874,3,24,12,0,874,875,5,139,0,0,875,876,3,24,12,0,876,877,5,138,
0,0,877,906,1,0,0,0,878,879,5,78,0,0,879,880,5,137,0,0,880,881,3,
24,12,0,881,882,5,139,0,0,882,883,3,24,12,0,883,884,5,139,0,0,884,
885,3,24,12,0,885,886,5,138,0,0,886,906,1,0,0,0,887,888,5,105,0,
0,888,889,5,137,0,0,889,890,3,24,12,0,890,891,5,139,0,0,891,892,
3,24,12,0,892,893,5,139,0,0,893,894,3,24,12,0,894,895,5,138,0,0,
895,906,1,0,0,0,896,897,5,33,0,0,897,898,5,137,0,0,898,901,3,24,
12,0,899,900,5,139,0,0,900,902,3,24,12,0,901,899,1,0,0,0,901,902,
1,0,0,0,902,903,1,0,0,0,903,904,5,138,0,0,904,906,1,0,0,0,905,806,
1,0,0,0,905,815,1,0,0,0,905,824,1,0,0,0,905,833,1,0,0,0,905,842,
1,0,0,0,905,851,1,0,0,0,905,860,1,0,0,0,905,869,1,0,0,0,905,878,
1,0,0,0,905,887,1,0,0,0,905,896,1,0,0,0,906,51,1,0,0,0,907,908,5,
49,0,0,908,909,5,137,0,0,909,910,3,24,12,0,910,911,5,139,0,0,911,
912,3,24,12,0,912,913,5,139,0,0,913,914,3,24,12,0,914,915,5,139,
0,0,915,916,3,24,12,0,916,917,5,138,0,0,917,941,1,0,0,0,918,919,
5,37,0,0,919,920,5,137,0,0,920,921,3,24,12,0,921,922,5,139,0,0,922,
923,3,24,12,0,923,924,5,139,0,0,924,925,3,24,12,0,925,926,5,139,
0,0,926,927,3,24,12,0,927,928,5,138,0,0,928,941,1,0,0,0,929,930,
5,79,0,0,930,931,5,137,0,0,931,932,3,24,12,0,932,933,5,139,0,0,933,
934,3,24,12,0,934,935,5,139,0,0,935,936,3,24,12,0,936,937,5,139,
0,0,937,938,3,24,12,0,938,939,5,138,0,0,939,941,1,0,0,0,940,907,
1,0,0,0,940,918,1,0,0,0,940,929,1,0,0,0,941,53,1,0,0,0,942,943,5,
80,0,0,943,944,5,137,0,0,944,945,3,24,12,0,945,946,5,139,0,0,946,
947,3,24,12,0,947,948,5,139,0,0,948,949,3,24,12,0,949,950,5,139,
0,0,950,951,3,24,12,0,951,952,5,139,0,0,952,953,3,24,12,0,953,954,
5,138,0,0,954,55,1,0,0,0,955,956,5,19,0,0,956,957,5,137,0,0,957,
962,3,24,12,0,958,959,5,139,0,0,959,961,3,24,12,0,960,958,1,0,0,
0,961,964,1,0,0,0,962,960,1,0,0,0,962,963,1,0,0,0,963,965,1,0,0,
0,964,962,1,0,0,0,965,966,5,138,0,0,966,1027,1,0,0,0,967,968,5,20,
0,0,968,969,5,137,0,0,969,974,3,24,12,0,970,971,5,139,0,0,971,973,
3,24,12,0,972,970,1,0,0,0,973,976,1,0,0,0,974,972,1,0,0,0,974,975,
1,0,0,0,975,977,1,0,0,0,976,974,1,0,0,0,977,978,5,138,0,0,978,1027,
1,0,0,0,979,980,5,46,0,0,980,981,5,137,0,0,981,984,3,24,12,0,982,
983,5,139,0,0,983,985,3,24,12,0,984,982,1,0,0,0,985,986,1,0,0,0,
986,984,1,0,0,0,986,987,1,0,0,0,987,988,1,0,0,0,988,989,5,138,0,
0,989,1027,1,0,0,0,990,991,5,47,0,0,991,992,5,137,0,0,992,995,3,
24,12,0,993,994,5,139,0,0,994,996,3,24,12,0,995,993,1,0,0,0,996,
997,1,0,0,0,997,995,1,0,0,0,997,998,1,0,0,0,998,999,1,0,0,0,999,
1000,5,138,0,0,1000,1027,1,0,0,0,1001,1002,5,48,0,0,1002,1003,5,
137,0,0,1003,1006,3,24,12,0,1004,1005,5,139,0,0,1005,1007,3,24,12,
0,1006,1004,1,0,0,0,1007,1008,1,0,0,0,1008,1006,1,0,0,0,1008,1009,
1,0,0,0,1009,1010,1,0,0,0,1010,1011,5,138,0,0,1011,1027,1,0,0,0,
1012,1013,5,50,0,0,1013,1014,5,137,0,0,1014,1015,3,24,12,0,1015,
1016,5,139,0,0,1016,1017,3,24,12,0,1017,1018,5,138,0,0,1018,1027,
1,0,0,0,1019,1020,5,51,0,0,1020,1021,5,137,0,0,1021,1022,3,24,12,
0,1022,1023,5,139,0,0,1023,1024,3,24,12,0,1024,1025,5,138,0,0,1025,
1027,1,0,0,0,1026,955,1,0,0,0,1026,967,1,0,0,0,1026,979,1,0,0,0,
1026,990,1,0,0,0,1026,1001,1,0,0,0,1026,1012,1,0,0,0,1026,1019,1,
0,0,0,1027,57,1,0,0,0,1028,1029,5,90,0,0,1029,1030,5,137,0,0,1030,
1033,3,24,12,0,1031,1032,5,139,0,0,1032,1034,3,24,12,0,1033,1031,
1,0,0,0,1033,1034,1,0,0,0,1034,1035,1,0,0,0,1035,1036,5,138,0,0,
1036,1106,1,0,0,0,1037,1038,5,91,0,0,1038,1039,5,137,0,0,1039,1042,
3,24,12,0,1040,1041,5,139,0,0,1041,1043,3,24,12,0,1042,1040,1,0,
0,0,1042,1043,1,0,0,0,1043,1044,1,0,0,0,1044,1045,5,138,0,0,1045,
1106,1,0,0,0,1046,1047,5,93,0,0,1047,1048,5,137,0,0,1048,1049,3,
24,12,0,1049,1050,5,139,0,0,1050,1053,3,24,12,0,1051,1052,5,139,
0,0,1052,1054,3,24,12,0,1053,1051,1,0,0,0,1053,1054,1,0,0,0,1054,
1055,1,0,0,0,1055,1056,5,138,0,0,1056,1106,1,0,0,0,1057,1058,5,95,
0,0,1058,1059,5,137,0,0,1059,1060,3,24,12,0,1060,1061,5,139,0,0,
1061,1064,3,24,12,0,1062,1063,5,139,0,0,1063,1065,3,24,12,0,1064,
1062,1,0,0,0,1064,1065,1,0,0,0,1065,1066,1,0,0,0,1066,1067,5,138,
0,0,1067,1106,1,0,0,0,1068,1069,5,96,0,0,1069,1070,5,137,0,0,1070,
1071,3,24,12,0,1071,1072,5,139,0,0,1072,1075,3,24,12,0,1073,1074,
5,139,0,0,1074,1076,3,24,12,0,1075,1073,1,0,0,0,1075,1076,1,0,0,
0,1076,1077,1,0,0,0,1077,1078,5,138,0,0,1078,1106,1,0,0,0,1079,1080,
5,92,0,0,1080,1081,5,137,0,0,1081,1082,3,24,12,0,1082,1083,5,139,
0,0,1083,1084,3,24,12,0,1084,1085,5,139,0,0,1085,1088,3,24,12,0,
1086,1087,5,139,0,0,1087,1089,3,24,12,0,1088,1086,1,0,0,0,1088,1089,
1,0,0,0,1089,1090,1,0,0,0,1090,1091,5,138,0,0,1091,1106,1,0,0,0,
1092,1093,5,94,0,0,1093,1094,5,137,0,0,1094,1095,3,24,12,0,1095,
1096,5,139,0,0,1096,1097,3,24,12,0,1097,1098,5,139,0,0,1098,1101,
3,24,12,0,1099,1100,5,139,0,0,1100,1102,3,24,12,0,1101,1099,1,0,
0,0,1101,1102,1,0,0,0,1102,1103,1,0,0,0,1103,1104,5,138,0,0,1104,
1106,1,0,0,0,1105,1028,1,0,0,0,1105,1037,1,0,0,0,1105,1046,1,0,0,
0,1105,1057,1,0,0,0,1105,1068,1,0,0,0,1105,1079,1,0,0,0,1105,1092,
1,0,0,0,1106,59,1,0,0,0,50,63,65,70,77,83,94,101,113,127,136,156,
169,176,205,207,219,221,236,238,246,253,265,272,300,308,314,321,
533,587,621,735,779,804,901,905,940,962,974,986,997,1008,1026,1033,
1042,1053,1064,1075,1088,1101,1105
]
class MathExprParser ( Parser ):
grammarFileName = "MathExpr.g4"
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
sharedContextCache = PredictionContextCache()
literalNames = [ "<INVALID>", "'sin'", "'cos'", "'tan'", "'asin'", "'acos'",
"'atan'", "'atan2'", "'sinh'", "'cosh'", "'tanh'",
"'asinh'", "'acosh'", "'atanh'", "'abs'", "'sqrt'",
"'ln'", "'log'", "'exp'", "'smin'", "'smax'", "'tmin'",
"'tmax'", "'tnorm'", "'snorm'", "'floor'", "'ceil'",
"'round'", "'gamma'", "'pow'", "'sigm'", "'clamp'",
"'fft'", "'ifft'", "'angle'", "'print'", "<INVALID>",
"<INVALID>", "'lerp'", "'step'", "'smoothstep'", "'fract'",
"'relu'", "'softplus'", "'gelu'", "'sign'", "'map'",
"<INVALID>", "<INVALID>", "'swap'", "<INVALID>", "<INVALID>",
"'range'", "'topk'", "'botk'", "'pinv'", "'sum'", "'mean'",
"'std'", "'var'", "<INVALID>", "<INVALID>", "'quantile'",
"'dot'", "'moment'", "'any'", "'all'", "'edge'", "<INVALID>",
"'median'", "'mode'", "'cumsum'", "'cumprod'", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"'smootherstep'", "<INVALID>", "'remap'", "'if'", "'else'",
"'while'", "'return'", "'stack_push'", "'stack_pop'",
"'stack_clear'", "'stack_has'", "'stack_get'", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "'cossim'", "'flip'", "'cov'",
"'sort'", "<INVALID>", "'append'", "'get_value'", "<INVALID>",
"'crop'", "'pad'", "'argsort'", "'for'", "'in'", "<INVALID>",
"<INVALID>", "'unique'", "'softmax'", "'softmin'",
"'flatten'", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "'break'", "'continue'", "'tensor'", "'+'",
"'-'", "'*'", "'/'", "'%'", "'^'", "'>='", "'>'", "'<='",
"'<'", "'=='", "'='", "'!='", "'|'", "'('", "')'",
"','", "';'", "'->'", "'['", "']'", "'?'", "':'", "'{'",
"'}'" ]
symbolicNames = [ "<INVALID>", "SIN", "COS", "TAN", "ASIN", "ACOS",
"ATAN", "ATAN2", "SINH", "COSH", "TANH", "ASINH",
"ACOSH", "ATANH", "ABS", "SQRT", "LN", "LOG", "EXP",
"SMIN", "SMAX", "TMIN", "TMAX", "TNORM", "SNORM",
"FLOOR", "CEIL", "ROUND", "GAMMA", "POWE", "SIGM",
"CLAMP", "SFFT", "SIFFT", "ANGL", "PRNT", "PRINT_SHAPE",
"NVL", "LERP", "STEP", "SMOOTHSTEP", "FRACT", "RELU",
"SOFTPLUS", "GELU", "SIGN", "MAP", "EZCONV", "CONV",
"SWAP", "PERM", "RESHAPE", "RANGE", "TOPK", "BOTK",
"PINV", "SUM", "MEAN", "STD", "VAR", "QUARTILE", "PERCENTILE",
"QUANTILE", "DOT", "MOMENT", "ANY", "ALL", "EDGE",
"GAUSSIAN", "MEDIAN", "MODE", "CUMSUM", "CUMPROD",
"TOPK_IND", "BOTK_IND", "CUBIC_EASE", "ELASTIC_EASE",
"SINE_EASE", "SMOOTHERSTEP", "DIST", "REMAP", "IF",
"ELSE", "WHILE", "RETURN", "PUSH", "POP", "CLEAR",
"HAS", "GET", "NOISE", "RAND", "CAUCHY", "EXPONENTIAL",
"LOGNORMAL", "BERNOULLI", "POISSON", "COSSIM", "FLIP",
"COV", "SORT", "COUNT", "APPEND", "GET_VALUE", "BATCH_SHUFFLE",
"CROP", "PAD", "ARGSORT", "FOR", "IN", "ARGMIN", "ARGMAX",
"UNIQUE", "SOFTMAX", "SOFTMIN", "FLATTEN", "CROSS",
"MATMUL", "TIMESTAMP", "NONE", "BREAK", "CONTINUE",
"TENSOR", "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW",
"GE", "GT", "LE", "LT", "EQ", "EQUEALS", "NE", "PIPE",
"LPAREN", "RPAREN", "COMMA", "SEMICOLON", "ARROW",
"LBRACKET", "RBRACKET", "QUESTION", "COLON", "LBRACE",
"RBRACE", "NUMBER", "CONSTANT", "VARIABLE", "SL_COMMENT",
"ML_COMMENT", "WS" ]
RULE_start = 0
RULE_funcDef = 1
RULE_varDef = 2
RULE_paramList = 3
RULE_stmt = 4
RULE_ifStmt = 5
RULE_whileStmt = 6
RULE_forStmt = 7
RULE_block = 8
RULE_breakStmt = 9
RULE_continueStmt = 10
RULE_returnStmt = 11
RULE_expr = 12
RULE_ternaryExpr = 13
RULE_compExpr = 14
RULE_addExpr = 15
RULE_mulExpr = 16
RULE_powExpr = 17
RULE_unaryExpr = 18
RULE_indexExpr = 19
RULE_atom = 20
RULE_exprList = 21
RULE_func0 = 22
RULE_func1 = 23
RULE_func2 = 24
RULE_func3 = 25
RULE_func4 = 26
RULE_func5 = 27
RULE_funcN = 28
RULE_funcNoise = 29
ruleNames = [ "start", "funcDef", "varDef", "paramList", "stmt", "ifStmt",
"whileStmt", "forStmt", "block", "breakStmt", "continueStmt",
"returnStmt", "expr", "ternaryExpr", "compExpr", "addExpr",
"mulExpr", "powExpr", "unaryExpr", "indexExpr", "atom",
"exprList", "func0", "func1", "func2", "func3", "func4",
"func5", "funcN", "funcNoise" ]
EOF = Token.EOF
SIN=1
COS=2
TAN=3
ASIN=4
ACOS=5
ATAN=6
ATAN2=7
SINH=8
COSH=9
TANH=10
ASINH=11
ACOSH=12
ATANH=13
ABS=14
SQRT=15
LN=16
LOG=17
EXP=18
SMIN=19
SMAX=20
TMIN=21
TMAX=22
TNORM=23
SNORM=24
FLOOR=25
CEIL=26
ROUND=27
GAMMA=28
POWE=29
SIGM=30
CLAMP=31
SFFT=32
SIFFT=33
ANGL=34
PRNT=35
PRINT_SHAPE=36
NVL=37
LERP=38
STEP=39
SMOOTHSTEP=40
FRACT=41
RELU=42
SOFTPLUS=43
GELU=44
SIGN=45
MAP=46
EZCONV=47
CONV=48
SWAP=49
PERM=50
RESHAPE=51
RANGE=52
TOPK=53
BOTK=54
PINV=55
SUM=56
MEAN=57
STD=58
VAR=59
QUARTILE=60
PERCENTILE=61
QUANTILE=62
DOT=63
MOMENT=64
ANY=65
ALL=66
EDGE=67
GAUSSIAN=68
MEDIAN=69
MODE=70
CUMSUM=71
CUMPROD=72
TOPK_IND=73
BOTK_IND=74
CUBIC_EASE=75
ELASTIC_EASE=76
SINE_EASE=77
SMOOTHERSTEP=78
DIST=79
REMAP=80
IF=81
ELSE=82
WHILE=83
RETURN=84
PUSH=85
POP=86
CLEAR=87
HAS=88
GET=89
NOISE=90
RAND=91
CAUCHY=92
EXPONENTIAL=93
LOGNORMAL=94
BERNOULLI=95
POISSON=96
COSSIM=97
FLIP=98
COV=99
SORT=100
COUNT=101
APPEND=102
GET_VALUE=103
BATCH_SHUFFLE=104
CROP=105
PAD=106
ARGSORT=107
FOR=108
IN=109
ARGMIN=110
ARGMAX=111
UNIQUE=112
SOFTMAX=113
SOFTMIN=114
FLATTEN=115
CROSS=116
MATMUL=117
TIMESTAMP=118
NONE=119
BREAK=120
CONTINUE=121
TENSOR=122
PLUS=123
MINUS=124
MULT=125
DIV=126
MOD=127
POW=128
GE=129
GT=130
LE=131
LT=132
EQ=133
EQUEALS=134
NE=135
PIPE=136
LPAREN=137
RPAREN=138
COMMA=139
SEMICOLON=140
ARROW=141
LBRACKET=142
RBRACKET=143
QUESTION=144
COLON=145
LBRACE=146
RBRACE=147
NUMBER=148
CONSTANT=149
VARIABLE=150
SL_COMMENT=151
ML_COMMENT=152
WS=153
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
super().__init__(input, output)
self.checkVersion("4.13.2")
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
self._predicates = None
class StartContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def EOF(self):
return self.getToken(MathExprParser.EOF, 0)
def funcDef(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.FuncDefContext)
else:
return self.getTypedRuleContext(MathExprParser.FuncDefContext,i)
def varDef(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.VarDefContext)
else:
return self.getTypedRuleContext(MathExprParser.VarDefContext,i)
def stmt(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.StmtContext)
else:
return self.getTypedRuleContext(MathExprParser.StmtContext,i)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def getRuleIndex(self):
return MathExprParser.RULE_start
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStart" ):
listener.enterStart(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStart" ):
listener.exitStart(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStart" ):
return visitor.visitStart(self)
else:
return visitor.visitChildren(self)
def start(self):
localctx = MathExprParser.StartContext(self, self._ctx, self.state)
self.enterRule(localctx, 0, self.RULE_start)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 65
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,1,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 63
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,0,self._ctx)
if la_ == 1:
self.state = 60
self.funcDef()
pass
elif la_ == 2:
self.state = 61
self.varDef()
pass
elif la_ == 3:
self.state = 62
self.stmt()
pass
self.state = 67
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,1,self._ctx)
self.state = 68
self.expr()
self.state = 70
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==140:
self.state = 69
self.match(MathExprParser.SEMICOLON)
self.state = 72
self.match(MathExprParser.EOF)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FuncDefContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_funcDef
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class FunctionDefContext(FuncDefContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncDefContext
super().__init__(parser)
self.copyFrom(ctx)
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def ARROW(self):
return self.getToken(MathExprParser.ARROW, 0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def block(self):
return self.getTypedRuleContext(MathExprParser.BlockContext,0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def paramList(self):
return self.getTypedRuleContext(MathExprParser.ParamListContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunctionDef" ):
listener.enterFunctionDef(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunctionDef" ):
listener.exitFunctionDef(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunctionDef" ):
return visitor.visitFunctionDef(self)
else:
return visitor.visitChildren(self)
def funcDef(self):
localctx = MathExprParser.FuncDefContext(self, self._ctx, self.state)
self.enterRule(localctx, 2, self.RULE_funcDef)
self._la = 0 # Token type
try:
localctx = MathExprParser.FunctionDefContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 74
self.match(MathExprParser.VARIABLE)
self.state = 75
self.match(MathExprParser.LPAREN)
self.state = 77
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==150:
self.state = 76
self.paramList()
self.state = 79
self.match(MathExprParser.RPAREN)
self.state = 80
self.match(MathExprParser.ARROW)
self.state = 83
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [146]:
self.state = 81
self.block()
pass
elif 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, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 136, 137, 142, 148, 149, 150]:
self.state = 82
self.expr()
pass
else:
raise NoViableAltException(self)
self.state = 85
self.match(MathExprParser.SEMICOLON)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class VarDefContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def EQUEALS(self):
return self.getToken(MathExprParser.EQUEALS, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def LBRACKET(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.LBRACKET)
else:
return self.getToken(MathExprParser.LBRACKET, i)
def RBRACKET(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.RBRACKET)
else:
return self.getToken(MathExprParser.RBRACKET, i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def getRuleIndex(self):
return MathExprParser.RULE_varDef
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVarDef" ):
listener.enterVarDef(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVarDef" ):
listener.exitVarDef(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVarDef" ):
return visitor.visitVarDef(self)
else:
return visitor.visitChildren(self)
def varDef(self):
localctx = MathExprParser.VarDefContext(self, self._ctx, self.state)
self.enterRule(localctx, 4, self.RULE_varDef)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 87
self.match(MathExprParser.VARIABLE)
self.state = 101
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==142:
self.state = 88
self.match(MathExprParser.LBRACKET)
self.state = 89
self.expr()
self.state = 94
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 90
self.match(MathExprParser.COMMA)
self.state = 91
self.expr()
self.state = 96
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 97
self.match(MathExprParser.RBRACKET)
self.state = 103
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 104
self.match(MathExprParser.EQUEALS)
self.state = 105
self.expr()
self.state = 106
self.match(MathExprParser.SEMICOLON)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ParamListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def VARIABLE(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.VARIABLE)
else:
return self.getToken(MathExprParser.VARIABLE, i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def getRuleIndex(self):
return MathExprParser.RULE_paramList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterParamList" ):
listener.enterParamList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitParamList" ):
listener.exitParamList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitParamList" ):
return visitor.visitParamList(self)
else:
return visitor.visitChildren(self)
def paramList(self):
localctx = MathExprParser.ParamListContext(self, self._ctx, self.state)
self.enterRule(localctx, 6, self.RULE_paramList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 108
self.match(MathExprParser.VARIABLE)
self.state = 113
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 109
self.match(MathExprParser.COMMA)
self.state = 110
self.match(MathExprParser.VARIABLE)
self.state = 115
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class StmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_stmt
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class BreakStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def breakStmt(self):
return self.getTypedRuleContext(MathExprParser.BreakStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBreakStatement" ):
listener.enterBreakStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBreakStatement" ):
listener.exitBreakStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBreakStatement" ):
return visitor.visitBreakStatement(self)
else:
return visitor.visitChildren(self)
class VarDefStmtContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def varDef(self):
return self.getTypedRuleContext(MathExprParser.VarDefContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVarDefStmt" ):
listener.enterVarDefStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVarDefStmt" ):
listener.exitVarDefStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVarDefStmt" ):
return visitor.visitVarDefStmt(self)
else:
return visitor.visitChildren(self)
class IfStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def ifStmt(self):
return self.getTypedRuleContext(MathExprParser.IfStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfStatement" ):
listener.enterIfStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfStatement" ):
listener.exitIfStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfStatement" ):
return visitor.visitIfStatement(self)
else:
return visitor.visitChildren(self)
class ReturnStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def returnStmt(self):
return self.getTypedRuleContext(MathExprParser.ReturnStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReturnStatement" ):
listener.enterReturnStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReturnStatement" ):
listener.exitReturnStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReturnStatement" ):
return visitor.visitReturnStatement(self)
else:
return visitor.visitChildren(self)
class ExprStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExprStatement" ):
listener.enterExprStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExprStatement" ):
listener.exitExprStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExprStatement" ):
return visitor.visitExprStatement(self)
else:
return visitor.visitChildren(self)
class BlockStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def block(self):
return self.getTypedRuleContext(MathExprParser.BlockContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBlockStatement" ):
listener.enterBlockStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBlockStatement" ):
listener.exitBlockStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBlockStatement" ):
return visitor.visitBlockStatement(self)
else:
return visitor.visitChildren(self)
class WhileStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def whileStmt(self):
return self.getTypedRuleContext(MathExprParser.WhileStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterWhileStatement" ):
listener.enterWhileStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitWhileStatement" ):
listener.exitWhileStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitWhileStatement" ):
return visitor.visitWhileStatement(self)
else:
return visitor.visitChildren(self)
class ForStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def forStmt(self):
return self.getTypedRuleContext(MathExprParser.ForStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterForStatement" ):
listener.enterForStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitForStatement" ):
listener.exitForStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitForStatement" ):
return visitor.visitForStatement(self)
else:
return visitor.visitChildren(self)
class ContinueStatementContext(StmtContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.StmtContext
super().__init__(parser)
self.copyFrom(ctx)
def continueStmt(self):
return self.getTypedRuleContext(MathExprParser.ContinueStmtContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContinueStatement" ):
listener.enterContinueStatement(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContinueStatement" ):
listener.exitContinueStatement(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContinueStatement" ):
return visitor.visitContinueStatement(self)
else:
return visitor.visitChildren(self)
def stmt(self):
localctx = MathExprParser.StmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 8, self.RULE_stmt)
try:
self.state = 127
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,8,self._ctx)
if la_ == 1:
localctx = MathExprParser.IfStatementContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 116
self.ifStmt()
pass
elif la_ == 2:
localctx = MathExprParser.WhileStatementContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 117
self.whileStmt()
pass
elif la_ == 3:
localctx = MathExprParser.BlockStatementContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 118
self.block()
pass
elif la_ == 4:
localctx = MathExprParser.BreakStatementContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 119
self.breakStmt()
pass
elif la_ == 5:
localctx = MathExprParser.ContinueStatementContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 120
self.continueStmt()
pass
elif la_ == 6:
localctx = MathExprParser.ReturnStatementContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 121
self.returnStmt()
pass
elif la_ == 7:
localctx = MathExprParser.VarDefStmtContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 122
self.varDef()
pass
elif la_ == 8:
localctx = MathExprParser.ForStatementContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 123
self.forStmt()
pass
elif la_ == 9:
localctx = MathExprParser.ExprStatementContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 124
self.expr()
self.state = 125
self.match(MathExprParser.SEMICOLON)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IfStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def IF(self):
return self.getToken(MathExprParser.IF, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def stmt(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.StmtContext)
else:
return self.getTypedRuleContext(MathExprParser.StmtContext,i)
def ELSE(self):
return self.getToken(MathExprParser.ELSE, 0)
def getRuleIndex(self):
return MathExprParser.RULE_ifStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIfStmt" ):
listener.enterIfStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIfStmt" ):
listener.exitIfStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIfStmt" ):
return visitor.visitIfStmt(self)
else:
return visitor.visitChildren(self)
def ifStmt(self):
localctx = MathExprParser.IfStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_ifStmt)
try:
self.enterOuterAlt(localctx, 1)
self.state = 129
self.match(MathExprParser.IF)
self.state = 130
self.match(MathExprParser.LPAREN)
self.state = 131
self.expr()
self.state = 132
self.match(MathExprParser.RPAREN)
self.state = 133
self.stmt()
self.state = 136
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,9,self._ctx)
if la_ == 1:
self.state = 134
self.match(MathExprParser.ELSE)
self.state = 135
self.stmt()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class WhileStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def WHILE(self):
return self.getToken(MathExprParser.WHILE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def stmt(self):
return self.getTypedRuleContext(MathExprParser.StmtContext,0)
def getRuleIndex(self):
return MathExprParser.RULE_whileStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterWhileStmt" ):
listener.enterWhileStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitWhileStmt" ):
listener.exitWhileStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitWhileStmt" ):
return visitor.visitWhileStmt(self)
else:
return visitor.visitChildren(self)
def whileStmt(self):
localctx = MathExprParser.WhileStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_whileStmt)
try:
self.enterOuterAlt(localctx, 1)
self.state = 138
self.match(MathExprParser.WHILE)
self.state = 139
self.match(MathExprParser.LPAREN)
self.state = 140
self.expr()
self.state = 141
self.match(MathExprParser.RPAREN)
self.state = 142
self.stmt()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ForStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def FOR(self):
return self.getToken(MathExprParser.FOR, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def IN(self):
return self.getToken(MathExprParser.IN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def stmt(self):
return self.getTypedRuleContext(MathExprParser.StmtContext,0)
def getRuleIndex(self):
return MathExprParser.RULE_forStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterForStmt" ):
listener.enterForStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitForStmt" ):
listener.exitForStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitForStmt" ):
return visitor.visitForStmt(self)
else:
return visitor.visitChildren(self)
def forStmt(self):
localctx = MathExprParser.ForStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_forStmt)
try:
self.enterOuterAlt(localctx, 1)
self.state = 144
self.match(MathExprParser.FOR)
self.state = 145
self.match(MathExprParser.LPAREN)
self.state = 146
self.match(MathExprParser.VARIABLE)
self.state = 147
self.match(MathExprParser.IN)
self.state = 148
self.expr()
self.state = 149
self.match(MathExprParser.RPAREN)
self.state = 150
self.stmt()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class BlockContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def LBRACE(self):
return self.getToken(MathExprParser.LBRACE, 0)
def RBRACE(self):
return self.getToken(MathExprParser.RBRACE, 0)
def stmt(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.StmtContext)
else:
return self.getTypedRuleContext(MathExprParser.StmtContext,i)
def getRuleIndex(self):
return MathExprParser.RULE_block
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBlock" ):
listener.enterBlock(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBlock" ):
listener.exitBlock(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBlock" ):
return visitor.visitBlock(self)
else:
return visitor.visitChildren(self)
def block(self):
localctx = MathExprParser.BlockContext(self, self._ctx, self.state)
self.enterRule(localctx, 16, self.RULE_block)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 152
self.match(MathExprParser.LBRACE)
self.state = 156
self._errHandler.sync(self)
_la = self._input.LA(1)
while (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 2305807824841342975) != 0) or ((((_la - 136)) & ~0x3f) == 0 and ((1 << (_la - 136)) & 29763) != 0):
self.state = 153
self.stmt()
self.state = 158
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 159
self.match(MathExprParser.RBRACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class BreakStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def BREAK(self):
return self.getToken(MathExprParser.BREAK, 0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def getRuleIndex(self):
return MathExprParser.RULE_breakStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBreakStmt" ):
listener.enterBreakStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBreakStmt" ):
listener.exitBreakStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBreakStmt" ):
return visitor.visitBreakStmt(self)
else:
return visitor.visitChildren(self)
def breakStmt(self):
localctx = MathExprParser.BreakStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 18, self.RULE_breakStmt)
try:
self.enterOuterAlt(localctx, 1)
self.state = 161
self.match(MathExprParser.BREAK)
self.state = 162
self.match(MathExprParser.SEMICOLON)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ContinueStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def CONTINUE(self):
return self.getToken(MathExprParser.CONTINUE, 0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def getRuleIndex(self):
return MathExprParser.RULE_continueStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContinueStmt" ):
listener.enterContinueStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContinueStmt" ):
listener.exitContinueStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContinueStmt" ):
return visitor.visitContinueStmt(self)
else:
return visitor.visitChildren(self)
def continueStmt(self):
localctx = MathExprParser.ContinueStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 20, self.RULE_continueStmt)
try:
self.enterOuterAlt(localctx, 1)
self.state = 164
self.match(MathExprParser.CONTINUE)
self.state = 165
self.match(MathExprParser.SEMICOLON)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ReturnStmtContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def RETURN(self):
return self.getToken(MathExprParser.RETURN, 0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def getRuleIndex(self):
return MathExprParser.RULE_returnStmt
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReturnStmt" ):
listener.enterReturnStmt(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReturnStmt" ):
listener.exitReturnStmt(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReturnStmt" ):
return visitor.visitReturnStmt(self)
else:
return visitor.visitChildren(self)
def returnStmt(self):
localctx = MathExprParser.ReturnStmtContext(self, self._ctx, self.state)
self.enterRule(localctx, 22, self.RULE_returnStmt)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 167
self.match(MathExprParser.RETURN)
self.state = 169
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 2305790232653594623) != 0) or ((((_la - 136)) & ~0x3f) == 0 and ((1 << (_la - 136)) & 28739) != 0):
self.state = 168
self.expr()
self.state = 171
self.match(MathExprParser.SEMICOLON)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def ternaryExpr(self):
return self.getTypedRuleContext(MathExprParser.TernaryExprContext,0)
def atom(self):
return self.getTypedRuleContext(MathExprParser.AtomContext,0)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def getRuleIndex(self):
return MathExprParser.RULE_expr
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExpr" ):
listener.enterExpr(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExpr" ):
listener.exitExpr(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpr" ):
return visitor.visitExpr(self)
else:
return visitor.visitChildren(self)
def expr(self):
localctx = MathExprParser.ExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 24, self.RULE_expr)
try:
self.state = 176
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,12,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 173
self.ternaryExpr()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 174
self.atom()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 175
self.compExpr(0)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TernaryExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_ternaryExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class TernaryExpContext(TernaryExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.TernaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def QUESTION(self):
return self.getToken(MathExprParser.QUESTION, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COLON(self):
return self.getToken(MathExprParser.COLON, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTernaryExp" ):
listener.enterTernaryExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTernaryExp" ):
listener.exitTernaryExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTernaryExp" ):
return visitor.visitTernaryExp(self)
else:
return visitor.visitChildren(self)
def ternaryExpr(self):
localctx = MathExprParser.TernaryExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 26, self.RULE_ternaryExpr)
try:
localctx = MathExprParser.TernaryExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 178
self.compExpr(0)
self.state = 179
self.match(MathExprParser.QUESTION)
self.state = 180
self.expr()
self.state = 181
self.match(MathExprParser.COLON)
self.state = 182
self.expr()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class CompExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_compExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class LtExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def LT(self):
return self.getToken(MathExprParser.LT, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLtExp" ):
listener.enterLtExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLtExp" ):
listener.exitLtExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLtExp" ):
return visitor.visitLtExp(self)
else:
return visitor.visitChildren(self)
class EqExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def EQ(self):
return self.getToken(MathExprParser.EQ, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEqExp" ):
listener.enterEqExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEqExp" ):
listener.exitEqExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEqExp" ):
return visitor.visitEqExp(self)
else:
return visitor.visitChildren(self)
class ToAddContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToAdd" ):
listener.enterToAdd(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToAdd" ):
listener.exitToAdd(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToAdd" ):
return visitor.visitToAdd(self)
else:
return visitor.visitChildren(self)
class GeExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def GE(self):
return self.getToken(MathExprParser.GE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGeExp" ):
listener.enterGeExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGeExp" ):
listener.exitGeExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGeExp" ):
return visitor.visitGeExp(self)
else:
return visitor.visitChildren(self)
class LeExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def LE(self):
return self.getToken(MathExprParser.LE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLeExp" ):
listener.enterLeExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLeExp" ):
listener.exitLeExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLeExp" ):
return visitor.visitLeExp(self)
else:
return visitor.visitChildren(self)
class NeExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def NE(self):
return self.getToken(MathExprParser.NE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNeExp" ):
listener.enterNeExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNeExp" ):
listener.exitNeExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNeExp" ):
return visitor.visitNeExp(self)
else:
return visitor.visitChildren(self)
class GtExpContext(CompExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext,0)
def GT(self):
return self.getToken(MathExprParser.GT, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGtExp" ):
listener.enterGtExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGtExp" ):
listener.exitGtExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGtExp" ):
return visitor.visitGtExp(self)
else:
return visitor.visitChildren(self)
def compExpr(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.CompExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 28
self.enterRecursionRule(localctx, 28, self.RULE_compExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToAddContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 185
self.addExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 207
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,14,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
self.state = 205
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,13,self._ctx)
if la_ == 1:
localctx = MathExprParser.GtExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 187
if not self.precpred(self._ctx, 7):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 7)")
self.state = 188
self.match(MathExprParser.GT)
self.state = 189
self.addExpr(0)
pass
elif la_ == 2:
localctx = MathExprParser.GeExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 190
if not self.precpred(self._ctx, 6):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 6)")
self.state = 191
self.match(MathExprParser.GE)
self.state = 192
self.addExpr(0)
pass
elif la_ == 3:
localctx = MathExprParser.LtExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 193
if not self.precpred(self._ctx, 5):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 5)")
self.state = 194
self.match(MathExprParser.LT)
self.state = 195
self.addExpr(0)
pass
elif la_ == 4:
localctx = MathExprParser.LeExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 196
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 197
self.match(MathExprParser.LE)
self.state = 198
self.addExpr(0)
pass
elif la_ == 5:
localctx = MathExprParser.EqExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 199
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 200
self.match(MathExprParser.EQ)
self.state = 201
self.addExpr(0)
pass
elif la_ == 6:
localctx = MathExprParser.NeExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 202
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 203
self.match(MathExprParser.NE)
self.state = 204
self.addExpr(0)
pass
self.state = 209
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,14,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
class AddExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_addExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class AddExpContext(AddExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def PLUS(self):
return self.getToken(MathExprParser.PLUS, 0)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAddExp" ):
listener.enterAddExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAddExp" ):
listener.exitAddExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAddExp" ):
return visitor.visitAddExp(self)
else:
return visitor.visitChildren(self)
class ToMulContext(AddExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToMul" ):
listener.enterToMul(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToMul" ):
listener.exitToMul(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToMul" ):
return visitor.visitToMul(self)
else:
return visitor.visitChildren(self)
class SubExpContext(AddExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext,0)
def MINUS(self):
return self.getToken(MathExprParser.MINUS, 0)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSubExp" ):
listener.enterSubExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSubExp" ):
listener.exitSubExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSubExp" ):
return visitor.visitSubExp(self)
else:
return visitor.visitChildren(self)
def addExpr(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.AddExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 30
self.enterRecursionRule(localctx, 30, self.RULE_addExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToMulContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 211
self.mulExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 221
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,16,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
self.state = 219
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,15,self._ctx)
if la_ == 1:
localctx = MathExprParser.AddExpContext(self, MathExprParser.AddExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_addExpr)
self.state = 213
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 214
self.match(MathExprParser.PLUS)
self.state = 215
self.mulExpr(0)
pass
elif la_ == 2:
localctx = MathExprParser.SubExpContext(self, MathExprParser.AddExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_addExpr)
self.state = 216
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 217
self.match(MathExprParser.MINUS)
self.state = 218
self.mulExpr(0)
pass
self.state = 223
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,16,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
class MulExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_mulExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class MulExpContext(MulExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def MULT(self):
return self.getToken(MathExprParser.MULT, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMulExp" ):
listener.enterMulExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMulExp" ):
listener.exitMulExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMulExp" ):
return visitor.visitMulExp(self)
else:
return visitor.visitChildren(self)
class ModExpContext(MulExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def MOD(self):
return self.getToken(MathExprParser.MOD, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterModExp" ):
listener.enterModExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitModExp" ):
listener.exitModExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitModExp" ):
return visitor.visitModExp(self)
else:
return visitor.visitChildren(self)
class DivExpContext(MulExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext,0)
def DIV(self):
return self.getToken(MathExprParser.DIV, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterDivExp" ):
listener.enterDivExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitDivExp" ):
listener.exitDivExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitDivExp" ):
return visitor.visitDivExp(self)
else:
return visitor.visitChildren(self)
class ToPowContext(MulExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToPow" ):
listener.enterToPow(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToPow" ):
listener.exitToPow(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToPow" ):
return visitor.visitToPow(self)
else:
return visitor.visitChildren(self)
def mulExpr(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.MulExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 32
self.enterRecursionRule(localctx, 32, self.RULE_mulExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToPowContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 225
self.powExpr()
self._ctx.stop = self._input.LT(-1)
self.state = 238
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,18,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
if self._parseListeners is not None:
self.triggerExitRuleEvent()
_prevctx = localctx
self.state = 236
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,17,self._ctx)
if la_ == 1:
localctx = MathExprParser.MulExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 227
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 228
self.match(MathExprParser.MULT)
self.state = 229
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.DivExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 230
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 231
self.match(MathExprParser.DIV)
self.state = 232
self.powExpr()
pass
elif la_ == 3:
localctx = MathExprParser.ModExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 233
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 234
self.match(MathExprParser.MOD)
self.state = 235
self.powExpr()
pass
self.state = 240
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,18,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
class PowExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_powExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class PowExpContext(PowExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.PowExprContext
super().__init__(parser)
self.copyFrom(ctx)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext,0)
def POW(self):
return self.getToken(MathExprParser.POW, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPowExp" ):
listener.enterPowExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPowExp" ):
listener.exitPowExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPowExp" ):
return visitor.visitPowExp(self)
else:
return visitor.visitChildren(self)
class ToUnaryContext(PowExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.PowExprContext
super().__init__(parser)
self.copyFrom(ctx)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToUnary" ):
listener.enterToUnary(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToUnary" ):
listener.exitToUnary(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToUnary" ):
return visitor.visitToUnary(self)
else:
return visitor.visitChildren(self)
def powExpr(self):
localctx = MathExprParser.PowExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 34, self.RULE_powExpr)
try:
self.state = 246
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,19,self._ctx)
if la_ == 1:
localctx = MathExprParser.PowExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 241
self.unaryExpr()
self.state = 242
self.match(MathExprParser.POW)
self.state = 243
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.ToUnaryContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 245
self.unaryExpr()
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class UnaryExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_unaryExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class UnaryPlusContext(UnaryExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def PLUS(self):
return self.getToken(MathExprParser.PLUS, 0)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUnaryPlus" ):
listener.enterUnaryPlus(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUnaryPlus" ):
listener.exitUnaryPlus(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUnaryPlus" ):
return visitor.visitUnaryPlus(self)
else:
return visitor.visitChildren(self)
class UnaryMinusContext(UnaryExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def MINUS(self):
return self.getToken(MathExprParser.MINUS, 0)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUnaryMinus" ):
listener.enterUnaryMinus(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUnaryMinus" ):
listener.exitUnaryMinus(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUnaryMinus" ):
return visitor.visitUnaryMinus(self)
else:
return visitor.visitChildren(self)
class ToIndexContext(UnaryExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def indexExpr(self):
return self.getTypedRuleContext(MathExprParser.IndexExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToIndex" ):
listener.enterToIndex(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToIndex" ):
listener.exitToIndex(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToIndex" ):
return visitor.visitToIndex(self)
else:
return visitor.visitChildren(self)
def unaryExpr(self):
localctx = MathExprParser.UnaryExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 36, self.RULE_unaryExpr)
try:
self.state = 253
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [123]:
localctx = MathExprParser.UnaryPlusContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 248
self.match(MathExprParser.PLUS)
self.state = 249
self.unaryExpr()
pass
elif token in [124]:
localctx = MathExprParser.UnaryMinusContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 250
self.match(MathExprParser.MINUS)
self.state = 251
self.unaryExpr()
pass
elif 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, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 136, 137, 142, 148, 149, 150]:
localctx = MathExprParser.ToIndexContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 252
self.indexExpr(0)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class IndexExprContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_indexExpr
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class IndexExpContext(IndexExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.IndexExprContext
super().__init__(parser)
self.copyFrom(ctx)
def indexExpr(self):
return self.getTypedRuleContext(MathExprParser.IndexExprContext,0)
def LBRACKET(self):
return self.getToken(MathExprParser.LBRACKET, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RBRACKET(self):
return self.getToken(MathExprParser.RBRACKET, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIndexExp" ):
listener.enterIndexExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIndexExp" ):
listener.exitIndexExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIndexExp" ):
return visitor.visitIndexExp(self)
else:
return visitor.visitChildren(self)
class ToAtomContext(IndexExprContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.IndexExprContext
super().__init__(parser)
self.copyFrom(ctx)
def atom(self):
return self.getTypedRuleContext(MathExprParser.AtomContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterToAtom" ):
listener.enterToAtom(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitToAtom" ):
listener.exitToAtom(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitToAtom" ):
return visitor.visitToAtom(self)
else:
return visitor.visitChildren(self)
def indexExpr(self, _p:int=0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.IndexExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 38
self.enterRecursionRule(localctx, 38, self.RULE_indexExpr, _p)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToAtomContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 256
self.atom()
self._ctx.stop = self._input.LT(-1)
self.state = 272
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,22,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 = MathExprParser.IndexExpContext(self, MathExprParser.IndexExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_indexExpr)
self.state = 258
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 259
self.match(MathExprParser.LBRACKET)
self.state = 260
self.expr()
self.state = 265
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 261
self.match(MathExprParser.COMMA)
self.state = 262
self.expr()
self.state = 267
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 268
self.match(MathExprParser.RBRACKET)
self.state = 274
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,22,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
class AtomContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_atom
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class Func5ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func5(self):
return self.getTypedRuleContext(MathExprParser.Func5Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc5Exp" ):
listener.enterFunc5Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc5Exp" ):
listener.exitFunc5Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc5Exp" ):
return visitor.visitFunc5Exp(self)
else:
return visitor.visitChildren(self)
class Func4ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func4(self):
return self.getTypedRuleContext(MathExprParser.Func4Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc4Exp" ):
listener.enterFunc4Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc4Exp" ):
listener.exitFunc4Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc4Exp" ):
return visitor.visitFunc4Exp(self)
else:
return visitor.visitChildren(self)
class Func2ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func2(self):
return self.getTypedRuleContext(MathExprParser.Func2Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc2Exp" ):
listener.enterFunc2Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc2Exp" ):
listener.exitFunc2Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc2Exp" ):
return visitor.visitFunc2Exp(self)
else:
return visitor.visitChildren(self)
class Func3ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func3(self):
return self.getTypedRuleContext(MathExprParser.Func3Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc3Exp" ):
listener.enterFunc3Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc3Exp" ):
listener.exitFunc3Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc3Exp" ):
return visitor.visitFunc3Exp(self)
else:
return visitor.visitChildren(self)
class ConstantExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def CONSTANT(self):
return self.getToken(MathExprParser.CONSTANT, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterConstantExp" ):
listener.enterConstantExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitConstantExp" ):
listener.exitConstantExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitConstantExp" ):
return visitor.visitConstantExp(self)
else:
return visitor.visitChildren(self)
class NoneExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def NONE(self):
return self.getToken(MathExprParser.NONE, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNoneExp" ):
listener.enterNoneExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNoneExp" ):
listener.exitNoneExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNoneExp" ):
return visitor.visitNoneExp(self)
else:
return visitor.visitChildren(self)
class BreakExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def BREAK(self):
return self.getToken(MathExprParser.BREAK, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBreakExp" ):
listener.enterBreakExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBreakExp" ):
listener.exitBreakExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBreakExp" ):
return visitor.visitBreakExp(self)
else:
return visitor.visitChildren(self)
class FuncNExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def funcN(self):
return self.getTypedRuleContext(MathExprParser.FuncNContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFuncNExp" ):
listener.enterFuncNExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFuncNExp" ):
listener.exitFuncNExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFuncNExp" ):
return visitor.visitFuncNExp(self)
else:
return visitor.visitChildren(self)
class AbsExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def PIPE(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.PIPE)
else:
return self.getToken(MathExprParser.PIPE, i)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAbsExp" ):
listener.enterAbsExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAbsExp" ):
listener.exitAbsExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAbsExp" ):
return visitor.visitAbsExp(self)
else:
return visitor.visitChildren(self)
class ListExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def LBRACKET(self):
return self.getToken(MathExprParser.LBRACKET, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RBRACKET(self):
return self.getToken(MathExprParser.RBRACKET, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterListExp" ):
listener.enterListExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitListExp" ):
listener.exitListExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitListExp" ):
return visitor.visitListExp(self)
else:
return visitor.visitChildren(self)
class ContinueExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def CONTINUE(self):
return self.getToken(MathExprParser.CONTINUE, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterContinueExp" ):
listener.enterContinueExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitContinueExp" ):
listener.exitContinueExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitContinueExp" ):
return visitor.visitContinueExp(self)
else:
return visitor.visitChildren(self)
class VariableExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVariableExp" ):
listener.enterVariableExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVariableExp" ):
listener.exitVariableExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVariableExp" ):
return visitor.visitVariableExp(self)
else:
return visitor.visitChildren(self)
class CallExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def exprList(self):
return self.getTypedRuleContext(MathExprParser.ExprListContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCallExp" ):
listener.enterCallExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCallExp" ):
listener.exitCallExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCallExp" ):
return visitor.visitCallExp(self)
else:
return visitor.visitChildren(self)
class ParenExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterParenExp" ):
listener.enterParenExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitParenExp" ):
listener.exitParenExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitParenExp" ):
return visitor.visitParenExp(self)
else:
return visitor.visitChildren(self)
class FuncNoiseExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def funcNoise(self):
return self.getTypedRuleContext(MathExprParser.FuncNoiseContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFuncNoiseExp" ):
listener.enterFuncNoiseExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFuncNoiseExp" ):
listener.exitFuncNoiseExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFuncNoiseExp" ):
return visitor.visitFuncNoiseExp(self)
else:
return visitor.visitChildren(self)
class Func1ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func1(self):
return self.getTypedRuleContext(MathExprParser.Func1Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc1Exp" ):
listener.enterFunc1Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc1Exp" ):
listener.exitFunc1Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc1Exp" ):
return visitor.visitFunc1Exp(self)
else:
return visitor.visitChildren(self)
class Func0ExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func0(self):
return self.getTypedRuleContext(MathExprParser.Func0Context,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFunc0Exp" ):
listener.enterFunc0Exp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFunc0Exp" ):
listener.exitFunc0Exp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc0Exp" ):
return visitor.visitFunc0Exp(self)
else:
return visitor.visitChildren(self)
class NumberExpContext(AtomContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def NUMBER(self):
return self.getToken(MathExprParser.NUMBER, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNumberExp" ):
listener.enterNumberExp(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNumberExp" ):
listener.exitNumberExp(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNumberExp" ):
return visitor.visitNumberExp(self)
else:
return visitor.visitChildren(self)
def atom(self):
localctx = MathExprParser.AtomContext(self, self._ctx, self.state)
self.enterRule(localctx, 40, self.RULE_atom)
self._la = 0 # Token type
try:
self.state = 314
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,25,self._ctx)
if la_ == 1:
localctx = MathExprParser.Func0ExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 275
self.func0()
pass
elif la_ == 2:
localctx = MathExprParser.Func1ExpContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 276
self.func1()
pass
elif la_ == 3:
localctx = MathExprParser.Func2ExpContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 277
self.func2()
pass
elif la_ == 4:
localctx = MathExprParser.Func3ExpContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 278
self.func3()
pass
elif la_ == 5:
localctx = MathExprParser.Func4ExpContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 279
self.func4()
pass
elif la_ == 6:
localctx = MathExprParser.Func5ExpContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 280
self.func5()
pass
elif la_ == 7:
localctx = MathExprParser.FuncNExpContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 281
self.funcN()
pass
elif la_ == 8:
localctx = MathExprParser.FuncNoiseExpContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 282
self.funcNoise()
pass
elif la_ == 9:
localctx = MathExprParser.VariableExpContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 283
self.match(MathExprParser.VARIABLE)
pass
elif la_ == 10:
localctx = MathExprParser.NumberExpContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 284
self.match(MathExprParser.NUMBER)
pass
elif la_ == 11:
localctx = MathExprParser.ConstantExpContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 285
self.match(MathExprParser.CONSTANT)
pass
elif la_ == 12:
localctx = MathExprParser.ParenExpContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 286
self.match(MathExprParser.LPAREN)
self.state = 287
self.expr()
self.state = 288
self.match(MathExprParser.RPAREN)
pass
elif la_ == 13:
localctx = MathExprParser.AbsExpContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 290
self.match(MathExprParser.PIPE)
self.state = 291
self.expr()
self.state = 292
self.match(MathExprParser.PIPE)
pass
elif la_ == 14:
localctx = MathExprParser.ListExpContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 294
self.match(MathExprParser.LBRACKET)
self.state = 295
self.expr()
self.state = 300
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 296
self.match(MathExprParser.COMMA)
self.state = 297
self.expr()
self.state = 302
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 303
self.match(MathExprParser.RBRACKET)
pass
elif la_ == 15:
localctx = MathExprParser.CallExpContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 305
self.match(MathExprParser.VARIABLE)
self.state = 306
self.match(MathExprParser.LPAREN)
self.state = 308
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & -4294967298) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 2305790232653594623) != 0) or ((((_la - 136)) & ~0x3f) == 0 and ((1 << (_la - 136)) & 28739) != 0):
self.state = 307
self.exprList()
self.state = 310
self.match(MathExprParser.RPAREN)
pass
elif la_ == 16:
localctx = MathExprParser.NoneExpContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 311
self.match(MathExprParser.NONE)
pass
elif la_ == 17:
localctx = MathExprParser.BreakExpContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 312
self.match(MathExprParser.BREAK)
pass
elif la_ == 18:
localctx = MathExprParser.ContinueExpContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 313
self.match(MathExprParser.CONTINUE)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ExprListContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def getRuleIndex(self):
return MathExprParser.RULE_exprList
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExprList" ):
listener.enterExprList(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExprList" ):
listener.exitExprList(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExprList" ):
return visitor.visitExprList(self)
else:
return visitor.visitChildren(self)
def exprList(self):
localctx = MathExprParser.ExprListContext(self, self._ctx, self.state)
self.enterRule(localctx, 42, self.RULE_exprList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 316
self.expr()
self.state = 321
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 317
self.match(MathExprParser.COMMA)
self.state = 318
self.expr()
self.state = 323
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func0Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func0
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class TimestampFuncContext(Func0Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func0Context
super().__init__(parser)
self.copyFrom(ctx)
def TIMESTAMP(self):
return self.getToken(MathExprParser.TIMESTAMP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTimestampFunc" ):
listener.enterTimestampFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTimestampFunc" ):
listener.exitTimestampFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTimestampFunc" ):
return visitor.visitTimestampFunc(self)
else:
return visitor.visitChildren(self)
def func0(self):
localctx = MathExprParser.Func0Context(self, self._ctx, self.state)
self.enterRule(localctx, 44, self.RULE_func0)
try:
localctx = MathExprParser.TimestampFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 324
self.match(MathExprParser.TIMESTAMP)
self.state = 325
self.match(MathExprParser.LPAREN)
self.state = 326
self.match(MathExprParser.RPAREN)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func1Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func1
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class SoftplusFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SOFTPLUS(self):
return self.getToken(MathExprParser.SOFTPLUS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSoftplusFunc" ):
listener.enterSoftplusFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSoftplusFunc" ):
listener.exitSoftplusFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSoftplusFunc" ):
return visitor.visitSoftplusFunc(self)
else:
return visitor.visitChildren(self)
class SoftminFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SOFTMIN(self):
return self.getToken(MathExprParser.SOFTMIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSoftminFunc" ):
listener.enterSoftminFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSoftminFunc" ):
listener.exitSoftminFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSoftminFunc" ):
return visitor.visitSoftminFunc(self)
else:
return visitor.visitChildren(self)
class AcoshFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ACOSH(self):
return self.getToken(MathExprParser.ACOSH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAcoshFunc" ):
listener.enterAcoshFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAcoshFunc" ):
listener.exitAcoshFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAcoshFunc" ):
return visitor.visitAcoshFunc(self)
else:
return visitor.visitChildren(self)
class SqrtFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SQRT(self):
return self.getToken(MathExprParser.SQRT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSqrtFunc" ):
listener.enterSqrtFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSqrtFunc" ):
listener.exitSqrtFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSqrtFunc" ):
return visitor.visitSqrtFunc(self)
else:
return visitor.visitChildren(self)
class FloorFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def FLOOR(self):
return self.getToken(MathExprParser.FLOOR, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFloorFunc" ):
listener.enterFloorFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFloorFunc" ):
listener.exitFloorFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFloorFunc" ):
return visitor.visitFloorFunc(self)
else:
return visitor.visitChildren(self)
class MeanFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def MEAN(self):
return self.getToken(MathExprParser.MEAN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMeanFunc" ):
listener.enterMeanFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMeanFunc" ):
listener.exitMeanFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMeanFunc" ):
return visitor.visitMeanFunc(self)
else:
return visitor.visitChildren(self)
class CeilFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def CEIL(self):
return self.getToken(MathExprParser.CEIL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCeilFunc" ):
listener.enterCeilFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCeilFunc" ):
listener.exitCeilFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCeilFunc" ):
return visitor.visitCeilFunc(self)
else:
return visitor.visitChildren(self)
class AbsFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ABS(self):
return self.getToken(MathExprParser.ABS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAbsFunc" ):
listener.enterAbsFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAbsFunc" ):
listener.exitAbsFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAbsFunc" ):
return visitor.visitAbsFunc(self)
else:
return visitor.visitChildren(self)
class AtanFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ATAN(self):
return self.getToken(MathExprParser.ATAN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAtanFunc" ):
listener.enterAtanFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAtanFunc" ):
listener.exitAtanFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAtanFunc" ):
return visitor.visitAtanFunc(self)
else:
return visitor.visitChildren(self)
class SinhFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SINH(self):
return self.getToken(MathExprParser.SINH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSinhFunc" ):
listener.enterSinhFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSinhFunc" ):
listener.exitSinhFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSinhFunc" ):
return visitor.visitSinhFunc(self)
else:
return visitor.visitChildren(self)
class SigmoidFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SIGM(self):
return self.getToken(MathExprParser.SIGM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSigmoidFunc" ):
listener.enterSigmoidFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSigmoidFunc" ):
listener.exitSigmoidFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSigmoidFunc" ):
return visitor.visitSigmoidFunc(self)
else:
return visitor.visitChildren(self)
class LogFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def LOG(self):
return self.getToken(MathExprParser.LOG, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLogFunc" ):
listener.enterLogFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLogFunc" ):
listener.exitLogFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLogFunc" ):
return visitor.visitLogFunc(self)
else:
return visitor.visitChildren(self)
class TNormFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def TNORM(self):
return self.getToken(MathExprParser.TNORM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTNormFunc" ):
listener.enterTNormFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTNormFunc" ):
listener.exitTNormFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTNormFunc" ):
return visitor.visitTNormFunc(self)
else:
return visitor.visitChildren(self)
class SinFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SIN(self):
return self.getToken(MathExprParser.SIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSinFunc" ):
listener.enterSinFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSinFunc" ):
listener.exitSinFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSinFunc" ):
return visitor.visitSinFunc(self)
else:
return visitor.visitChildren(self)
class FlattenFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def FLATTEN(self):
return self.getToken(MathExprParser.FLATTEN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFlattenFunc" ):
listener.enterFlattenFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFlattenFunc" ):
listener.exitFlattenFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFlattenFunc" ):
return visitor.visitFlattenFunc(self)
else:
return visitor.visitChildren(self)
class AcosFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ACOS(self):
return self.getToken(MathExprParser.ACOS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAcosFunc" ):
listener.enterAcosFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAcosFunc" ):
listener.exitAcosFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAcosFunc" ):
return visitor.visitAcosFunc(self)
else:
return visitor.visitChildren(self)
class CoshFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def COSH(self):
return self.getToken(MathExprParser.COSH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCoshFunc" ):
listener.enterCoshFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCoshFunc" ):
listener.exitCoshFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCoshFunc" ):
return visitor.visitCoshFunc(self)
else:
return visitor.visitChildren(self)
class AnglFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ANGL(self):
return self.getToken(MathExprParser.ANGL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAnglFunc" ):
listener.enterAnglFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAnglFunc" ):
listener.exitAnglFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAnglFunc" ):
return visitor.visitAnglFunc(self)
else:
return visitor.visitChildren(self)
class CumsumFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def CUMSUM(self):
return self.getToken(MathExprParser.CUMSUM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCumsumFunc" ):
listener.enterCumsumFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCumsumFunc" ):
listener.exitCumsumFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCumsumFunc" ):
return visitor.visitCumsumFunc(self)
else:
return visitor.visitChildren(self)
class GetFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def GET(self):
return self.getToken(MathExprParser.GET, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGetFunc" ):
listener.enterGetFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGetFunc" ):
listener.exitGetFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGetFunc" ):
return visitor.visitGetFunc(self)
else:
return visitor.visitChildren(self)
class SignFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SIGN(self):
return self.getToken(MathExprParser.SIGN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSignFunc" ):
listener.enterSignFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSignFunc" ):
listener.exitSignFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSignFunc" ):
return visitor.visitSignFunc(self)
else:
return visitor.visitChildren(self)
class TanFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def TAN(self):
return self.getToken(MathExprParser.TAN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTanFunc" ):
listener.enterTanFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTanFunc" ):
listener.exitTanFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTanFunc" ):
return visitor.visitTanFunc(self)
else:
return visitor.visitChildren(self)
class PinvFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def PINV(self):
return self.getToken(MathExprParser.PINV, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPinvFunc" ):
listener.enterPinvFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPinvFunc" ):
listener.exitPinvFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPinvFunc" ):
return visitor.visitPinvFunc(self)
else:
return visitor.visitChildren(self)
class FractFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def FRACT(self):
return self.getToken(MathExprParser.FRACT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFractFunc" ):
listener.enterFractFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFractFunc" ):
listener.exitFractFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFractFunc" ):
return visitor.visitFractFunc(self)
else:
return visitor.visitChildren(self)
class GammaFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def GAMMA(self):
return self.getToken(MathExprParser.GAMMA, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGammaFunc" ):
listener.enterGammaFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGammaFunc" ):
listener.exitGammaFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGammaFunc" ):
return visitor.visitGammaFunc(self)
else:
return visitor.visitChildren(self)
class SoftmaxFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SOFTMAX(self):
return self.getToken(MathExprParser.SOFTMAX, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSoftmaxFunc" ):
listener.enterSoftmaxFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSoftmaxFunc" ):
listener.exitSoftmaxFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSoftmaxFunc" ):
return visitor.visitSoftmaxFunc(self)
else:
return visitor.visitChildren(self)
class VarFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def VAR(self):
return self.getToken(MathExprParser.VAR, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterVarFunc" ):
listener.enterVarFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitVarFunc" ):
listener.exitVarFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitVarFunc" ):
return visitor.visitVarFunc(self)
else:
return visitor.visitChildren(self)
class AsinFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ASIN(self):
return self.getToken(MathExprParser.ASIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAsinFunc" ):
listener.enterAsinFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAsinFunc" ):
listener.exitAsinFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAsinFunc" ):
return visitor.visitAsinFunc(self)
else:
return visitor.visitChildren(self)
class CountFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def COUNT(self):
return self.getToken(MathExprParser.COUNT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCountFunc" ):
listener.enterCountFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCountFunc" ):
listener.exitCountFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCountFunc" ):
return visitor.visitCountFunc(self)
else:
return visitor.visitChildren(self)
class AsinhFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ASINH(self):
return self.getToken(MathExprParser.ASINH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAsinhFunc" ):
listener.enterAsinhFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAsinhFunc" ):
listener.exitAsinhFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAsinhFunc" ):
return visitor.visitAsinhFunc(self)
else:
return visitor.visitChildren(self)
class AllFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ALL(self):
return self.getToken(MathExprParser.ALL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAllFunc" ):
listener.enterAllFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAllFunc" ):
listener.exitAllFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAllFunc" ):
return visitor.visitAllFunc(self)
else:
return visitor.visitChildren(self)
class AtanhFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ATANH(self):
return self.getToken(MathExprParser.ATANH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAtanhFunc" ):
listener.enterAtanhFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAtanhFunc" ):
listener.exitAtanhFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAtanhFunc" ):
return visitor.visitAtanhFunc(self)
else:
return visitor.visitChildren(self)
class ClearFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def CLEAR(self):
return self.getToken(MathExprParser.CLEAR, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterClearFunc" ):
listener.enterClearFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitClearFunc" ):
listener.exitClearFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitClearFunc" ):
return visitor.visitClearFunc(self)
else:
return visitor.visitChildren(self)
class PopFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def POP(self):
return self.getToken(MathExprParser.POP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPopFunc" ):
listener.enterPopFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPopFunc" ):
listener.exitPopFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPopFunc" ):
return visitor.visitPopFunc(self)
else:
return visitor.visitChildren(self)
class MedianFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def MEDIAN(self):
return self.getToken(MathExprParser.MEDIAN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMedianFunc" ):
listener.enterMedianFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMedianFunc" ):
listener.exitMedianFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMedianFunc" ):
return visitor.visitMedianFunc(self)
else:
return visitor.visitChildren(self)
class PrintShapeFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def PRINT_SHAPE(self):
return self.getToken(MathExprParser.PRINT_SHAPE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPrintShapeFunc" ):
listener.enterPrintShapeFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPrintShapeFunc" ):
listener.exitPrintShapeFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPrintShapeFunc" ):
return visitor.visitPrintShapeFunc(self)
else:
return visitor.visitChildren(self)
class SortFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SORT(self):
return self.getToken(MathExprParser.SORT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSortFunc" ):
listener.enterSortFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSortFunc" ):
listener.exitSortFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSortFunc" ):
return visitor.visitSortFunc(self)
else:
return visitor.visitChildren(self)
class TanhFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def TANH(self):
return self.getToken(MathExprParser.TANH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTanhFunc" ):
listener.enterTanhFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTanhFunc" ):
listener.exitTanhFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTanhFunc" ):
return visitor.visitTanhFunc(self)
else:
return visitor.visitChildren(self)
class AnyFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ANY(self):
return self.getToken(MathExprParser.ANY, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAnyFunc" ):
listener.enterAnyFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAnyFunc" ):
listener.exitAnyFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAnyFunc" ):
return visitor.visitAnyFunc(self)
else:
return visitor.visitChildren(self)
class ModeFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def MODE(self):
return self.getToken(MathExprParser.MODE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterModeFunc" ):
listener.enterModeFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitModeFunc" ):
listener.exitModeFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitModeFunc" ):
return visitor.visitModeFunc(self)
else:
return visitor.visitChildren(self)
class UniqueFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def UNIQUE(self):
return self.getToken(MathExprParser.UNIQUE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterUniqueFunc" ):
listener.enterUniqueFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitUniqueFunc" ):
listener.exitUniqueFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitUniqueFunc" ):
return visitor.visitUniqueFunc(self)
else:
return visitor.visitChildren(self)
class RoundFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ROUND(self):
return self.getToken(MathExprParser.ROUND, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterRoundFunc" ):
listener.enterRoundFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitRoundFunc" ):
listener.exitRoundFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRoundFunc" ):
return visitor.visitRoundFunc(self)
else:
return visitor.visitChildren(self)
class GeluFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def GELU(self):
return self.getToken(MathExprParser.GELU, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGeluFunc" ):
listener.enterGeluFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGeluFunc" ):
listener.exitGeluFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGeluFunc" ):
return visitor.visitGeluFunc(self)
else:
return visitor.visitChildren(self)
class PrintFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def PRNT(self):
return self.getToken(MathExprParser.PRNT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPrintFunc" ):
listener.enterPrintFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPrintFunc" ):
listener.exitPrintFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPrintFunc" ):
return visitor.visitPrintFunc(self)
else:
return visitor.visitChildren(self)
class ArgmaxFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ARGMAX(self):
return self.getToken(MathExprParser.ARGMAX, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterArgmaxFunc" ):
listener.enterArgmaxFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitArgmaxFunc" ):
listener.exitArgmaxFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitArgmaxFunc" ):
return visitor.visitArgmaxFunc(self)
else:
return visitor.visitChildren(self)
class ReluFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def RELU(self):
return self.getToken(MathExprParser.RELU, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReluFunc" ):
listener.enterReluFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReluFunc" ):
listener.exitReluFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReluFunc" ):
return visitor.visitReluFunc(self)
else:
return visitor.visitChildren(self)
class EdgeFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def EDGE(self):
return self.getToken(MathExprParser.EDGE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEdgeFunc" ):
listener.enterEdgeFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEdgeFunc" ):
listener.exitEdgeFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEdgeFunc" ):
return visitor.visitEdgeFunc(self)
else:
return visitor.visitChildren(self)
class LnFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def LN(self):
return self.getToken(MathExprParser.LN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLnFunc" ):
listener.enterLnFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLnFunc" ):
listener.exitLnFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLnFunc" ):
return visitor.visitLnFunc(self)
else:
return visitor.visitChildren(self)
class SNormFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SNORM(self):
return self.getToken(MathExprParser.SNORM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSNormFunc" ):
listener.enterSNormFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSNormFunc" ):
listener.exitSNormFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSNormFunc" ):
return visitor.visitSNormFunc(self)
else:
return visitor.visitChildren(self)
class ArgminFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ARGMIN(self):
return self.getToken(MathExprParser.ARGMIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterArgminFunc" ):
listener.enterArgminFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitArgminFunc" ):
listener.exitArgminFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitArgminFunc" ):
return visitor.visitArgminFunc(self)
else:
return visitor.visitChildren(self)
class StdFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def STD(self):
return self.getToken(MathExprParser.STD, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStdFunc" ):
listener.enterStdFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStdFunc" ):
listener.exitStdFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStdFunc" ):
return visitor.visitStdFunc(self)
else:
return visitor.visitChildren(self)
class SumFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SUM(self):
return self.getToken(MathExprParser.SUM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSumFunc" ):
listener.enterSumFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSumFunc" ):
listener.exitSumFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSumFunc" ):
return visitor.visitSumFunc(self)
else:
return visitor.visitChildren(self)
class HasFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def HAS(self):
return self.getToken(MathExprParser.HAS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterHasFunc" ):
listener.enterHasFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitHasFunc" ):
listener.exitHasFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitHasFunc" ):
return visitor.visitHasFunc(self)
else:
return visitor.visitChildren(self)
class CosFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def COS(self):
return self.getToken(MathExprParser.COS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCosFunc" ):
listener.enterCosFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCosFunc" ):
listener.exitCosFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCosFunc" ):
return visitor.visitCosFunc(self)
else:
return visitor.visitChildren(self)
class ArgsortFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ARGSORT(self):
return self.getToken(MathExprParser.ARGSORT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterArgsortFunc" ):
listener.enterArgsortFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitArgsortFunc" ):
listener.exitArgsortFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitArgsortFunc" ):
return visitor.visitArgsortFunc(self)
else:
return visitor.visitChildren(self)
class CumprodFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def CUMPROD(self):
return self.getToken(MathExprParser.CUMPROD, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCumprodFunc" ):
listener.enterCumprodFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCumprodFunc" ):
listener.exitCumprodFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCumprodFunc" ):
return visitor.visitCumprodFunc(self)
else:
return visitor.visitChildren(self)
class ExpFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def EXP(self):
return self.getToken(MathExprParser.EXP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExpFunc" ):
listener.enterExpFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExpFunc" ):
listener.exitExpFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpFunc" ):
return visitor.visitExpFunc(self)
else:
return visitor.visitChildren(self)
def func1(self):
localctx = MathExprParser.Func1Context(self, self._ctx, self.state)
self.enterRule(localctx, 46, self.RULE_func1)
self._la = 0 # Token type
try:
self.state = 621
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [1]:
localctx = MathExprParser.SinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 328
self.match(MathExprParser.SIN)
self.state = 329
self.match(MathExprParser.LPAREN)
self.state = 330
self.expr()
self.state = 331
self.match(MathExprParser.RPAREN)
pass
elif token in [2]:
localctx = MathExprParser.CosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 333
self.match(MathExprParser.COS)
self.state = 334
self.match(MathExprParser.LPAREN)
self.state = 335
self.expr()
self.state = 336
self.match(MathExprParser.RPAREN)
pass
elif token in [3]:
localctx = MathExprParser.TanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 338
self.match(MathExprParser.TAN)
self.state = 339
self.match(MathExprParser.LPAREN)
self.state = 340
self.expr()
self.state = 341
self.match(MathExprParser.RPAREN)
pass
elif token in [4]:
localctx = MathExprParser.AsinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 343
self.match(MathExprParser.ASIN)
self.state = 344
self.match(MathExprParser.LPAREN)
self.state = 345
self.expr()
self.state = 346
self.match(MathExprParser.RPAREN)
pass
elif token in [5]:
localctx = MathExprParser.AcosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 348
self.match(MathExprParser.ACOS)
self.state = 349
self.match(MathExprParser.LPAREN)
self.state = 350
self.expr()
self.state = 351
self.match(MathExprParser.RPAREN)
pass
elif token in [6]:
localctx = MathExprParser.AtanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 353
self.match(MathExprParser.ATAN)
self.state = 354
self.match(MathExprParser.LPAREN)
self.state = 355
self.expr()
self.state = 356
self.match(MathExprParser.RPAREN)
pass
elif token in [8]:
localctx = MathExprParser.SinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 358
self.match(MathExprParser.SINH)
self.state = 359
self.match(MathExprParser.LPAREN)
self.state = 360
self.expr()
self.state = 361
self.match(MathExprParser.RPAREN)
pass
elif token in [9]:
localctx = MathExprParser.CoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 363
self.match(MathExprParser.COSH)
self.state = 364
self.match(MathExprParser.LPAREN)
self.state = 365
self.expr()
self.state = 366
self.match(MathExprParser.RPAREN)
pass
elif token in [10]:
localctx = MathExprParser.TanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 368
self.match(MathExprParser.TANH)
self.state = 369
self.match(MathExprParser.LPAREN)
self.state = 370
self.expr()
self.state = 371
self.match(MathExprParser.RPAREN)
pass
elif token in [11]:
localctx = MathExprParser.AsinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 373
self.match(MathExprParser.ASINH)
self.state = 374
self.match(MathExprParser.LPAREN)
self.state = 375
self.expr()
self.state = 376
self.match(MathExprParser.RPAREN)
pass
elif token in [12]:
localctx = MathExprParser.AcoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 378
self.match(MathExprParser.ACOSH)
self.state = 379
self.match(MathExprParser.LPAREN)
self.state = 380
self.expr()
self.state = 381
self.match(MathExprParser.RPAREN)
pass
elif token in [13]:
localctx = MathExprParser.AtanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 383
self.match(MathExprParser.ATANH)
self.state = 384
self.match(MathExprParser.LPAREN)
self.state = 385
self.expr()
self.state = 386
self.match(MathExprParser.RPAREN)
pass
elif token in [14]:
localctx = MathExprParser.AbsFuncContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 388
self.match(MathExprParser.ABS)
self.state = 389
self.match(MathExprParser.LPAREN)
self.state = 390
self.expr()
self.state = 391
self.match(MathExprParser.RPAREN)
pass
elif token in [15]:
localctx = MathExprParser.SqrtFuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 393
self.match(MathExprParser.SQRT)
self.state = 394
self.match(MathExprParser.LPAREN)
self.state = 395
self.expr()
self.state = 396
self.match(MathExprParser.RPAREN)
pass
elif token in [16]:
localctx = MathExprParser.LnFuncContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 398
self.match(MathExprParser.LN)
self.state = 399
self.match(MathExprParser.LPAREN)
self.state = 400
self.expr()
self.state = 401
self.match(MathExprParser.RPAREN)
pass
elif token in [17]:
localctx = MathExprParser.LogFuncContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 403
self.match(MathExprParser.LOG)
self.state = 404
self.match(MathExprParser.LPAREN)
self.state = 405
self.expr()
self.state = 406
self.match(MathExprParser.RPAREN)
pass
elif token in [18]:
localctx = MathExprParser.ExpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 408
self.match(MathExprParser.EXP)
self.state = 409
self.match(MathExprParser.LPAREN)
self.state = 410
self.expr()
self.state = 411
self.match(MathExprParser.RPAREN)
pass
elif token in [23]:
localctx = MathExprParser.TNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 413
self.match(MathExprParser.TNORM)
self.state = 414
self.match(MathExprParser.LPAREN)
self.state = 415
self.expr()
self.state = 416
self.match(MathExprParser.RPAREN)
pass
elif token in [24]:
localctx = MathExprParser.SNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 19)
self.state = 418
self.match(MathExprParser.SNORM)
self.state = 419
self.match(MathExprParser.LPAREN)
self.state = 420
self.expr()
self.state = 421
self.match(MathExprParser.RPAREN)
pass
elif token in [25]:
localctx = MathExprParser.FloorFuncContext(self, localctx)
self.enterOuterAlt(localctx, 20)
self.state = 423
self.match(MathExprParser.FLOOR)
self.state = 424
self.match(MathExprParser.LPAREN)
self.state = 425
self.expr()
self.state = 426
self.match(MathExprParser.RPAREN)
pass
elif token in [26]:
localctx = MathExprParser.CeilFuncContext(self, localctx)
self.enterOuterAlt(localctx, 21)
self.state = 428
self.match(MathExprParser.CEIL)
self.state = 429
self.match(MathExprParser.LPAREN)
self.state = 430
self.expr()
self.state = 431
self.match(MathExprParser.RPAREN)
pass
elif token in [27]:
localctx = MathExprParser.RoundFuncContext(self, localctx)
self.enterOuterAlt(localctx, 22)
self.state = 433
self.match(MathExprParser.ROUND)
self.state = 434
self.match(MathExprParser.LPAREN)
self.state = 435
self.expr()
self.state = 436
self.match(MathExprParser.RPAREN)
pass
elif token in [28]:
localctx = MathExprParser.GammaFuncContext(self, localctx)
self.enterOuterAlt(localctx, 23)
self.state = 438
self.match(MathExprParser.GAMMA)
self.state = 439
self.match(MathExprParser.LPAREN)
self.state = 440
self.expr()
self.state = 441
self.match(MathExprParser.RPAREN)
pass
elif token in [30]:
localctx = MathExprParser.SigmoidFuncContext(self, localctx)
self.enterOuterAlt(localctx, 24)
self.state = 443
self.match(MathExprParser.SIGM)
self.state = 444
self.match(MathExprParser.LPAREN)
self.state = 445
self.expr()
self.state = 446
self.match(MathExprParser.RPAREN)
pass
elif token in [34]:
localctx = MathExprParser.AnglFuncContext(self, localctx)
self.enterOuterAlt(localctx, 25)
self.state = 448
self.match(MathExprParser.ANGL)
self.state = 449
self.match(MathExprParser.LPAREN)
self.state = 450
self.expr()
self.state = 451
self.match(MathExprParser.RPAREN)
pass
elif token in [35]:
localctx = MathExprParser.PrintFuncContext(self, localctx)
self.enterOuterAlt(localctx, 26)
self.state = 453
self.match(MathExprParser.PRNT)
self.state = 454
self.match(MathExprParser.LPAREN)
self.state = 455
self.expr()
self.state = 456
self.match(MathExprParser.RPAREN)
pass
elif token in [41]:
localctx = MathExprParser.FractFuncContext(self, localctx)
self.enterOuterAlt(localctx, 27)
self.state = 458
self.match(MathExprParser.FRACT)
self.state = 459
self.match(MathExprParser.LPAREN)
self.state = 460
self.expr()
self.state = 461
self.match(MathExprParser.RPAREN)
pass
elif token in [42]:
localctx = MathExprParser.ReluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 28)
self.state = 463
self.match(MathExprParser.RELU)
self.state = 464
self.match(MathExprParser.LPAREN)
self.state = 465
self.expr()
self.state = 466
self.match(MathExprParser.RPAREN)
pass
elif token in [43]:
localctx = MathExprParser.SoftplusFuncContext(self, localctx)
self.enterOuterAlt(localctx, 29)
self.state = 468
self.match(MathExprParser.SOFTPLUS)
self.state = 469
self.match(MathExprParser.LPAREN)
self.state = 470
self.expr()
self.state = 471
self.match(MathExprParser.RPAREN)
pass
elif token in [44]:
localctx = MathExprParser.GeluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 30)
self.state = 473
self.match(MathExprParser.GELU)
self.state = 474
self.match(MathExprParser.LPAREN)
self.state = 475
self.expr()
self.state = 476
self.match(MathExprParser.RPAREN)
pass
elif token in [45]:
localctx = MathExprParser.SignFuncContext(self, localctx)
self.enterOuterAlt(localctx, 31)
self.state = 478
self.match(MathExprParser.SIGN)
self.state = 479
self.match(MathExprParser.LPAREN)
self.state = 480
self.expr()
self.state = 481
self.match(MathExprParser.RPAREN)
pass
elif token in [36]:
localctx = MathExprParser.PrintShapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 32)
self.state = 483
self.match(MathExprParser.PRINT_SHAPE)
self.state = 484
self.match(MathExprParser.LPAREN)
self.state = 485
self.expr()
self.state = 486
self.match(MathExprParser.RPAREN)
pass
elif token in [55]:
localctx = MathExprParser.PinvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 33)
self.state = 488
self.match(MathExprParser.PINV)
self.state = 489
self.match(MathExprParser.LPAREN)
self.state = 490
self.expr()
self.state = 491
self.match(MathExprParser.RPAREN)
pass
elif token in [56]:
localctx = MathExprParser.SumFuncContext(self, localctx)
self.enterOuterAlt(localctx, 34)
self.state = 493
self.match(MathExprParser.SUM)
self.state = 494
self.match(MathExprParser.LPAREN)
self.state = 495
self.expr()
self.state = 496
self.match(MathExprParser.RPAREN)
pass
elif token in [57]:
localctx = MathExprParser.MeanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 35)
self.state = 498
self.match(MathExprParser.MEAN)
self.state = 499
self.match(MathExprParser.LPAREN)
self.state = 500
self.expr()
self.state = 501
self.match(MathExprParser.RPAREN)
pass
elif token in [58]:
localctx = MathExprParser.StdFuncContext(self, localctx)
self.enterOuterAlt(localctx, 36)
self.state = 503
self.match(MathExprParser.STD)
self.state = 504
self.match(MathExprParser.LPAREN)
self.state = 505
self.expr()
self.state = 506
self.match(MathExprParser.RPAREN)
pass
elif token in [59]:
localctx = MathExprParser.VarFuncContext(self, localctx)
self.enterOuterAlt(localctx, 37)
self.state = 508
self.match(MathExprParser.VAR)
self.state = 509
self.match(MathExprParser.LPAREN)
self.state = 510
self.expr()
self.state = 511
self.match(MathExprParser.RPAREN)
pass
elif token in [100]:
localctx = MathExprParser.SortFuncContext(self, localctx)
self.enterOuterAlt(localctx, 38)
self.state = 513
self.match(MathExprParser.SORT)
self.state = 514
self.match(MathExprParser.LPAREN)
self.state = 515
self.expr()
self.state = 516
self.match(MathExprParser.RPAREN)
pass
elif token in [65]:
localctx = MathExprParser.AnyFuncContext(self, localctx)
self.enterOuterAlt(localctx, 39)
self.state = 518
self.match(MathExprParser.ANY)
self.state = 519
self.match(MathExprParser.LPAREN)
self.state = 520
self.expr()
self.state = 521
self.match(MathExprParser.RPAREN)
pass
elif token in [66]:
localctx = MathExprParser.AllFuncContext(self, localctx)
self.enterOuterAlt(localctx, 40)
self.state = 523
self.match(MathExprParser.ALL)
self.state = 524
self.match(MathExprParser.LPAREN)
self.state = 525
self.expr()
self.state = 526
self.match(MathExprParser.RPAREN)
pass
elif token in [67]:
localctx = MathExprParser.EdgeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 41)
self.state = 528
self.match(MathExprParser.EDGE)
self.state = 529
self.match(MathExprParser.LPAREN)
self.state = 530
self.expr()
self.state = 533
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 531
self.match(MathExprParser.COMMA)
self.state = 532
self.expr()
self.state = 535
self.match(MathExprParser.RPAREN)
pass
elif token in [69]:
localctx = MathExprParser.MedianFuncContext(self, localctx)
self.enterOuterAlt(localctx, 42)
self.state = 537
self.match(MathExprParser.MEDIAN)
self.state = 538
self.match(MathExprParser.LPAREN)
self.state = 539
self.expr()
self.state = 540
self.match(MathExprParser.RPAREN)
pass
elif token in [70]:
localctx = MathExprParser.ModeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 43)
self.state = 542
self.match(MathExprParser.MODE)
self.state = 543
self.match(MathExprParser.LPAREN)
self.state = 544
self.expr()
self.state = 545
self.match(MathExprParser.RPAREN)
pass
elif token in [71]:
localctx = MathExprParser.CumsumFuncContext(self, localctx)
self.enterOuterAlt(localctx, 44)
self.state = 547
self.match(MathExprParser.CUMSUM)
self.state = 548
self.match(MathExprParser.LPAREN)
self.state = 549
self.expr()
self.state = 550
self.match(MathExprParser.RPAREN)
pass
elif token in [101]:
localctx = MathExprParser.CountFuncContext(self, localctx)
self.enterOuterAlt(localctx, 45)
self.state = 552
self.match(MathExprParser.COUNT)
self.state = 553
self.match(MathExprParser.LPAREN)
self.state = 554
self.expr()
self.state = 555
self.match(MathExprParser.RPAREN)
pass
elif token in [72]:
localctx = MathExprParser.CumprodFuncContext(self, localctx)
self.enterOuterAlt(localctx, 46)
self.state = 557
self.match(MathExprParser.CUMPROD)
self.state = 558
self.match(MathExprParser.LPAREN)
self.state = 559
self.expr()
self.state = 560
self.match(MathExprParser.RPAREN)
pass
elif token in [86]:
localctx = MathExprParser.PopFuncContext(self, localctx)
self.enterOuterAlt(localctx, 47)
self.state = 562
self.match(MathExprParser.POP)
self.state = 563
self.match(MathExprParser.LPAREN)
self.state = 564
self.expr()
self.state = 565
self.match(MathExprParser.RPAREN)
pass
elif token in [87]:
localctx = MathExprParser.ClearFuncContext(self, localctx)
self.enterOuterAlt(localctx, 48)
self.state = 567
self.match(MathExprParser.CLEAR)
self.state = 568
self.match(MathExprParser.LPAREN)
self.state = 569
self.expr()
self.state = 570
self.match(MathExprParser.RPAREN)
pass
elif token in [88]:
localctx = MathExprParser.HasFuncContext(self, localctx)
self.enterOuterAlt(localctx, 49)
self.state = 572
self.match(MathExprParser.HAS)
self.state = 573
self.match(MathExprParser.LPAREN)
self.state = 574
self.expr()
self.state = 575
self.match(MathExprParser.RPAREN)
pass
elif token in [89]:
localctx = MathExprParser.GetFuncContext(self, localctx)
self.enterOuterAlt(localctx, 50)
self.state = 577
self.match(MathExprParser.GET)
self.state = 578
self.match(MathExprParser.LPAREN)
self.state = 579
self.expr()
self.state = 580
self.match(MathExprParser.RPAREN)
pass
elif token in [107]:
localctx = MathExprParser.ArgsortFuncContext(self, localctx)
self.enterOuterAlt(localctx, 51)
self.state = 582
self.match(MathExprParser.ARGSORT)
self.state = 583
self.match(MathExprParser.LPAREN)
self.state = 584
self.expr()
self.state = 587
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 585
self.match(MathExprParser.COMMA)
self.state = 586
self.expr()
self.state = 589
self.match(MathExprParser.RPAREN)
pass
elif token in [110]:
localctx = MathExprParser.ArgminFuncContext(self, localctx)
self.enterOuterAlt(localctx, 52)
self.state = 591
self.match(MathExprParser.ARGMIN)
self.state = 592
self.match(MathExprParser.LPAREN)
self.state = 593
self.expr()
self.state = 594
self.match(MathExprParser.RPAREN)
pass
elif token in [111]:
localctx = MathExprParser.ArgmaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 53)
self.state = 596
self.match(MathExprParser.ARGMAX)
self.state = 597
self.match(MathExprParser.LPAREN)
self.state = 598
self.expr()
self.state = 599
self.match(MathExprParser.RPAREN)
pass
elif token in [113]:
localctx = MathExprParser.SoftmaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 54)
self.state = 601
self.match(MathExprParser.SOFTMAX)
self.state = 602
self.match(MathExprParser.LPAREN)
self.state = 603
self.expr()
self.state = 604
self.match(MathExprParser.RPAREN)
pass
elif token in [114]:
localctx = MathExprParser.SoftminFuncContext(self, localctx)
self.enterOuterAlt(localctx, 55)
self.state = 606
self.match(MathExprParser.SOFTMIN)
self.state = 607
self.match(MathExprParser.LPAREN)
self.state = 608
self.expr()
self.state = 609
self.match(MathExprParser.RPAREN)
pass
elif token in [112]:
localctx = MathExprParser.UniqueFuncContext(self, localctx)
self.enterOuterAlt(localctx, 56)
self.state = 611
self.match(MathExprParser.UNIQUE)
self.state = 612
self.match(MathExprParser.LPAREN)
self.state = 613
self.expr()
self.state = 614
self.match(MathExprParser.RPAREN)
pass
elif token in [115]:
localctx = MathExprParser.FlattenFuncContext(self, localctx)
self.enterOuterAlt(localctx, 57)
self.state = 616
self.match(MathExprParser.FLATTEN)
self.state = 617
self.match(MathExprParser.LPAREN)
self.state = 618
self.expr()
self.state = 619
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func2Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func2
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class CovFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def COV(self):
return self.getToken(MathExprParser.COV, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCovFunc" ):
listener.enterCovFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCovFunc" ):
listener.exitCovFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCovFunc" ):
return visitor.visitCovFunc(self)
else:
return visitor.visitChildren(self)
class PadFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def PAD(self):
return self.getToken(MathExprParser.PAD, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPadFunc" ):
listener.enterPadFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPadFunc" ):
listener.exitPadFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPadFunc" ):
return visitor.visitPadFunc(self)
else:
return visitor.visitChildren(self)
class BotkFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def BOTK(self):
return self.getToken(MathExprParser.BOTK, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBotkFunc" ):
listener.enterBotkFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBotkFunc" ):
listener.exitBotkFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBotkFunc" ):
return visitor.visitBotkFunc(self)
else:
return visitor.visitChildren(self)
class BotkIndFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def BOTK_IND(self):
return self.getToken(MathExprParser.BOTK_IND, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBotkIndFunc" ):
listener.enterBotkIndFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBotkIndFunc" ):
listener.exitBotkIndFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBotkIndFunc" ):
return visitor.visitBotkIndFunc(self)
else:
return visitor.visitChildren(self)
class PowFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def POWE(self):
return self.getToken(MathExprParser.POWE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPowFunc" ):
listener.enterPowFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPowFunc" ):
listener.exitPowFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPowFunc" ):
return visitor.visitPowFunc(self)
else:
return visitor.visitChildren(self)
class DotFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def DOT(self):
return self.getToken(MathExprParser.DOT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterDotFunc" ):
listener.enterDotFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitDotFunc" ):
listener.exitDotFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitDotFunc" ):
return visitor.visitDotFunc(self)
else:
return visitor.visitChildren(self)
class AppendFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def APPEND(self):
return self.getToken(MathExprParser.APPEND, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAppendFunc" ):
listener.enterAppendFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAppendFunc" ):
listener.exitAppendFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAppendFunc" ):
return visitor.visitAppendFunc(self)
else:
return visitor.visitChildren(self)
class FlipFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def FLIP(self):
return self.getToken(MathExprParser.FLIP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFlipFunc" ):
listener.enterFlipFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFlipFunc" ):
listener.exitFlipFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFlipFunc" ):
return visitor.visitFlipFunc(self)
else:
return visitor.visitChildren(self)
class EmptyTensorFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def TENSOR(self):
return self.getToken(MathExprParser.TENSOR, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def indexExpr(self):
return self.getTypedRuleContext(MathExprParser.IndexExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEmptyTensorFunc" ):
listener.enterEmptyTensorFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEmptyTensorFunc" ):
listener.exitEmptyTensorFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEmptyTensorFunc" ):
return visitor.visitEmptyTensorFunc(self)
else:
return visitor.visitChildren(self)
class TopkFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def TOPK(self):
return self.getToken(MathExprParser.TOPK, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTopkFunc" ):
listener.enterTopkFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTopkFunc" ):
listener.exitTopkFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTopkFunc" ):
return visitor.visitTopkFunc(self)
else:
return visitor.visitChildren(self)
class PercentileFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def PERCENTILE(self):
return self.getToken(MathExprParser.PERCENTILE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPercentileFunc" ):
listener.enterPercentileFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPercentileFunc" ):
listener.exitPercentileFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPercentileFunc" ):
return visitor.visitPercentileFunc(self)
else:
return visitor.visitChildren(self)
class TopkIndFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def TOPK_IND(self):
return self.getToken(MathExprParser.TOPK_IND, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTopkIndFunc" ):
listener.enterTopkIndFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTopkIndFunc" ):
listener.exitTopkIndFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTopkIndFunc" ):
return visitor.visitTopkIndFunc(self)
else:
return visitor.visitChildren(self)
class BatchShuffleFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def BATCH_SHUFFLE(self):
return self.getToken(MathExprParser.BATCH_SHUFFLE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBatchShuffleFunc" ):
listener.enterBatchShuffleFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBatchShuffleFunc" ):
listener.exitBatchShuffleFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBatchShuffleFunc" ):
return visitor.visitBatchShuffleFunc(self)
else:
return visitor.visitChildren(self)
class MatmulFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def MATMUL(self):
return self.getToken(MathExprParser.MATMUL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMatmulFunc" ):
listener.enterMatmulFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMatmulFunc" ):
listener.exitMatmulFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMatmulFunc" ):
return visitor.visitMatmulFunc(self)
else:
return visitor.visitChildren(self)
class StepFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def STEP(self):
return self.getToken(MathExprParser.STEP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStepFunc" ):
listener.enterStepFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStepFunc" ):
listener.exitStepFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStepFunc" ):
return visitor.visitStepFunc(self)
else:
return visitor.visitChildren(self)
class Atan2FuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def ATAN2(self):
return self.getToken(MathExprParser.ATAN2, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAtan2Func" ):
listener.enterAtan2Func(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAtan2Func" ):
listener.exitAtan2Func(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAtan2Func" ):
return visitor.visitAtan2Func(self)
else:
return visitor.visitChildren(self)
class QuantileFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def QUANTILE(self):
return self.getToken(MathExprParser.QUANTILE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterQuantileFunc" ):
listener.enterQuantileFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitQuantileFunc" ):
listener.exitQuantileFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitQuantileFunc" ):
return visitor.visitQuantileFunc(self)
else:
return visitor.visitChildren(self)
class TMaxFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def TMAX(self):
return self.getToken(MathExprParser.TMAX, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTMaxFunc" ):
listener.enterTMaxFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTMaxFunc" ):
listener.exitTMaxFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTMaxFunc" ):
return visitor.visitTMaxFunc(self)
else:
return visitor.visitChildren(self)
class PushFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def PUSH(self):
return self.getToken(MathExprParser.PUSH, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPushFunc" ):
listener.enterPushFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPushFunc" ):
listener.exitPushFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPushFunc" ):
return visitor.visitPushFunc(self)
else:
return visitor.visitChildren(self)
class GetValueFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def GET_VALUE(self):
return self.getToken(MathExprParser.GET_VALUE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGetValueFunc" ):
listener.enterGetValueFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGetValueFunc" ):
listener.exitGetValueFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGetValueFunc" ):
return visitor.visitGetValueFunc(self)
else:
return visitor.visitChildren(self)
class CossimFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def COSSIM(self):
return self.getToken(MathExprParser.COSSIM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCossimFunc" ):
listener.enterCossimFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCossimFunc" ):
listener.exitCossimFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCossimFunc" ):
return visitor.visitCossimFunc(self)
else:
return visitor.visitChildren(self)
class CrossFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def CROSS(self):
return self.getToken(MathExprParser.CROSS, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCrossFunc" ):
listener.enterCrossFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCrossFunc" ):
listener.exitCrossFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCrossFunc" ):
return visitor.visitCrossFunc(self)
else:
return visitor.visitChildren(self)
class GaussianFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def GAUSSIAN(self):
return self.getToken(MathExprParser.GAUSSIAN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterGaussianFunc" ):
listener.enterGaussianFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitGaussianFunc" ):
listener.exitGaussianFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGaussianFunc" ):
return visitor.visitGaussianFunc(self)
else:
return visitor.visitChildren(self)
class QuartileFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def QUARTILE(self):
return self.getToken(MathExprParser.QUARTILE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterQuartileFunc" ):
listener.enterQuartileFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitQuartileFunc" ):
listener.exitQuartileFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitQuartileFunc" ):
return visitor.visitQuartileFunc(self)
else:
return visitor.visitChildren(self)
class TMinFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def TMIN(self):
return self.getToken(MathExprParser.TMIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTMinFunc" ):
listener.enterTMinFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTMinFunc" ):
listener.exitTMinFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTMinFunc" ):
return visitor.visitTMinFunc(self)
else:
return visitor.visitChildren(self)
def func2(self):
localctx = MathExprParser.Func2Context(self, self._ctx, self.state)
self.enterRule(localctx, 48, self.RULE_func2)
self._la = 0 # Token type
try:
self.state = 804
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [29]:
localctx = MathExprParser.PowFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 623
self.match(MathExprParser.POWE)
self.state = 624
self.match(MathExprParser.LPAREN)
self.state = 625
self.expr()
self.state = 626
self.match(MathExprParser.COMMA)
self.state = 627
self.expr()
self.state = 628
self.match(MathExprParser.RPAREN)
pass
elif token in [7]:
localctx = MathExprParser.Atan2FuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 630
self.match(MathExprParser.ATAN2)
self.state = 631
self.match(MathExprParser.LPAREN)
self.state = 632
self.expr()
self.state = 633
self.match(MathExprParser.COMMA)
self.state = 634
self.expr()
self.state = 635
self.match(MathExprParser.RPAREN)
pass
elif token in [21]:
localctx = MathExprParser.TMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 637
self.match(MathExprParser.TMIN)
self.state = 638
self.match(MathExprParser.LPAREN)
self.state = 639
self.expr()
self.state = 640
self.match(MathExprParser.COMMA)
self.state = 641
self.expr()
self.state = 642
self.match(MathExprParser.RPAREN)
pass
elif token in [22]:
localctx = MathExprParser.TMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 644
self.match(MathExprParser.TMAX)
self.state = 645
self.match(MathExprParser.LPAREN)
self.state = 646
self.expr()
self.state = 647
self.match(MathExprParser.COMMA)
self.state = 648
self.expr()
self.state = 649
self.match(MathExprParser.RPAREN)
pass
elif token in [39]:
localctx = MathExprParser.StepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 651
self.match(MathExprParser.STEP)
self.state = 652
self.match(MathExprParser.LPAREN)
self.state = 653
self.expr()
self.state = 654
self.match(MathExprParser.COMMA)
self.state = 655
self.expr()
self.state = 656
self.match(MathExprParser.RPAREN)
pass
elif token in [53]:
localctx = MathExprParser.TopkFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 658
self.match(MathExprParser.TOPK)
self.state = 659
self.match(MathExprParser.LPAREN)
self.state = 660
self.expr()
self.state = 661
self.match(MathExprParser.COMMA)
self.state = 662
self.expr()
self.state = 663
self.match(MathExprParser.RPAREN)
pass
elif token in [54]:
localctx = MathExprParser.BotkFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 665
self.match(MathExprParser.BOTK)
self.state = 666
self.match(MathExprParser.LPAREN)
self.state = 667
self.expr()
self.state = 668
self.match(MathExprParser.COMMA)
self.state = 669
self.expr()
self.state = 670
self.match(MathExprParser.RPAREN)
pass
elif token in [60]:
localctx = MathExprParser.QuartileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 672
self.match(MathExprParser.QUARTILE)
self.state = 673
self.match(MathExprParser.LPAREN)
self.state = 674
self.expr()
self.state = 675
self.match(MathExprParser.COMMA)
self.state = 676
self.expr()
self.state = 677
self.match(MathExprParser.RPAREN)
pass
elif token in [61]:
localctx = MathExprParser.PercentileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 679
self.match(MathExprParser.PERCENTILE)
self.state = 680
self.match(MathExprParser.LPAREN)
self.state = 681
self.expr()
self.state = 682
self.match(MathExprParser.COMMA)
self.state = 683
self.expr()
self.state = 684
self.match(MathExprParser.RPAREN)
pass
elif token in [62]:
localctx = MathExprParser.QuantileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 686
self.match(MathExprParser.QUANTILE)
self.state = 687
self.match(MathExprParser.LPAREN)
self.state = 688
self.expr()
self.state = 689
self.match(MathExprParser.COMMA)
self.state = 690
self.expr()
self.state = 691
self.match(MathExprParser.RPAREN)
pass
elif token in [63]:
localctx = MathExprParser.DotFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 693
self.match(MathExprParser.DOT)
self.state = 694
self.match(MathExprParser.LPAREN)
self.state = 695
self.expr()
self.state = 696
self.match(MathExprParser.COMMA)
self.state = 697
self.expr()
self.state = 698
self.match(MathExprParser.RPAREN)
pass
elif token in [97]:
localctx = MathExprParser.CossimFuncContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 700
self.match(MathExprParser.COSSIM)
self.state = 701
self.match(MathExprParser.LPAREN)
self.state = 702
self.expr()
self.state = 703
self.match(MathExprParser.COMMA)
self.state = 704
self.expr()
self.state = 705
self.match(MathExprParser.RPAREN)
pass
elif token in [98]:
localctx = MathExprParser.FlipFuncContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 707
self.match(MathExprParser.FLIP)
self.state = 708
self.match(MathExprParser.LPAREN)
self.state = 709
self.expr()
self.state = 710
self.match(MathExprParser.COMMA)
self.state = 711
self.expr()
self.state = 712
self.match(MathExprParser.RPAREN)
pass
elif token in [99]:
localctx = MathExprParser.CovFuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 714
self.match(MathExprParser.COV)
self.state = 715
self.match(MathExprParser.LPAREN)
self.state = 716
self.expr()
self.state = 717
self.match(MathExprParser.COMMA)
self.state = 718
self.expr()
self.state = 719
self.match(MathExprParser.RPAREN)
pass
elif token in [102]:
localctx = MathExprParser.AppendFuncContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 721
self.match(MathExprParser.APPEND)
self.state = 722
self.match(MathExprParser.LPAREN)
self.state = 723
self.expr()
self.state = 724
self.match(MathExprParser.COMMA)
self.state = 725
self.expr()
self.state = 726
self.match(MathExprParser.RPAREN)
pass
elif token in [68]:
localctx = MathExprParser.GaussianFuncContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 728
self.match(MathExprParser.GAUSSIAN)
self.state = 729
self.match(MathExprParser.LPAREN)
self.state = 730
self.expr()
self.state = 731
self.match(MathExprParser.COMMA)
self.state = 732
self.expr()
self.state = 735
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 733
self.match(MathExprParser.COMMA)
self.state = 734
self.expr()
self.state = 737
self.match(MathExprParser.RPAREN)
pass
elif token in [73]:
localctx = MathExprParser.TopkIndFuncContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 739
self.match(MathExprParser.TOPK_IND)
self.state = 740
self.match(MathExprParser.LPAREN)
self.state = 741
self.expr()
self.state = 742
self.match(MathExprParser.COMMA)
self.state = 743
self.expr()
self.state = 744
self.match(MathExprParser.RPAREN)
pass
elif token in [74]:
localctx = MathExprParser.BotkIndFuncContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 746
self.match(MathExprParser.BOTK_IND)
self.state = 747
self.match(MathExprParser.LPAREN)
self.state = 748
self.expr()
self.state = 749
self.match(MathExprParser.COMMA)
self.state = 750
self.expr()
self.state = 751
self.match(MathExprParser.RPAREN)
pass
elif token in [104]:
localctx = MathExprParser.BatchShuffleFuncContext(self, localctx)
self.enterOuterAlt(localctx, 19)
self.state = 753
self.match(MathExprParser.BATCH_SHUFFLE)
self.state = 754
self.match(MathExprParser.LPAREN)
self.state = 755
self.expr()
self.state = 756
self.match(MathExprParser.COMMA)
self.state = 757
self.expr()
self.state = 758
self.match(MathExprParser.RPAREN)
pass
elif token in [85]:
localctx = MathExprParser.PushFuncContext(self, localctx)
self.enterOuterAlt(localctx, 20)
self.state = 760
self.match(MathExprParser.PUSH)
self.state = 761
self.match(MathExprParser.LPAREN)
self.state = 762
self.expr()
self.state = 763
self.match(MathExprParser.COMMA)
self.state = 764
self.expr()
self.state = 765
self.match(MathExprParser.RPAREN)
pass
elif token in [103]:
localctx = MathExprParser.GetValueFuncContext(self, localctx)
self.enterOuterAlt(localctx, 21)
self.state = 767
self.match(MathExprParser.GET_VALUE)
self.state = 768
self.match(MathExprParser.LPAREN)
self.state = 769
self.expr()
self.state = 770
self.match(MathExprParser.COMMA)
self.state = 771
self.expr()
self.state = 772
self.match(MathExprParser.RPAREN)
pass
elif token in [122]:
localctx = MathExprParser.EmptyTensorFuncContext(self, localctx)
self.enterOuterAlt(localctx, 22)
self.state = 774
self.match(MathExprParser.TENSOR)
self.state = 775
self.match(MathExprParser.LPAREN)
self.state = 776
self.indexExpr(0)
self.state = 779
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 777
self.match(MathExprParser.COMMA)
self.state = 778
self.expr()
self.state = 781
self.match(MathExprParser.RPAREN)
pass
elif token in [106]:
localctx = MathExprParser.PadFuncContext(self, localctx)
self.enterOuterAlt(localctx, 23)
self.state = 783
self.match(MathExprParser.PAD)
self.state = 784
self.match(MathExprParser.LPAREN)
self.state = 785
self.expr()
self.state = 786
self.match(MathExprParser.COMMA)
self.state = 787
self.expr()
self.state = 788
self.match(MathExprParser.RPAREN)
pass
elif token in [116]:
localctx = MathExprParser.CrossFuncContext(self, localctx)
self.enterOuterAlt(localctx, 24)
self.state = 790
self.match(MathExprParser.CROSS)
self.state = 791
self.match(MathExprParser.LPAREN)
self.state = 792
self.expr()
self.state = 793
self.match(MathExprParser.COMMA)
self.state = 794
self.expr()
self.state = 795
self.match(MathExprParser.RPAREN)
pass
elif token in [117]:
localctx = MathExprParser.MatmulFuncContext(self, localctx)
self.enterOuterAlt(localctx, 25)
self.state = 797
self.match(MathExprParser.MATMUL)
self.state = 798
self.match(MathExprParser.LPAREN)
self.state = 799
self.expr()
self.state = 800
self.match(MathExprParser.COMMA)
self.state = 801
self.expr()
self.state = 802
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func3Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func3
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class SmootherstepFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def SMOOTHERSTEP(self):
return self.getToken(MathExprParser.SMOOTHERSTEP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSmootherstepFunc" ):
listener.enterSmootherstepFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSmootherstepFunc" ):
listener.exitSmootherstepFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSmootherstepFunc" ):
return visitor.visitSmootherstepFunc(self)
else:
return visitor.visitChildren(self)
class MomentFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def MOMENT(self):
return self.getToken(MathExprParser.MOMENT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMomentFunc" ):
listener.enterMomentFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMomentFunc" ):
listener.exitMomentFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMomentFunc" ):
return visitor.visitMomentFunc(self)
else:
return visitor.visitChildren(self)
class CubicEaseFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def CUBIC_EASE(self):
return self.getToken(MathExprParser.CUBIC_EASE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCubicEaseFunc" ):
listener.enterCubicEaseFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCubicEaseFunc" ):
listener.exitCubicEaseFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCubicEaseFunc" ):
return visitor.visitCubicEaseFunc(self)
else:
return visitor.visitChildren(self)
class SifftFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def SIFFT(self):
return self.getToken(MathExprParser.SIFFT, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSifftFunc" ):
listener.enterSifftFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSifftFunc" ):
listener.exitSifftFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSifftFunc" ):
return visitor.visitSifftFunc(self)
else:
return visitor.visitChildren(self)
class LerpFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def LERP(self):
return self.getToken(MathExprParser.LERP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLerpFunc" ):
listener.enterLerpFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLerpFunc" ):
listener.exitLerpFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLerpFunc" ):
return visitor.visitLerpFunc(self)
else:
return visitor.visitChildren(self)
class SmoothstepFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def SMOOTHSTEP(self):
return self.getToken(MathExprParser.SMOOTHSTEP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSmoothstepFunc" ):
listener.enterSmoothstepFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSmoothstepFunc" ):
listener.exitSmoothstepFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSmoothstepFunc" ):
return visitor.visitSmoothstepFunc(self)
else:
return visitor.visitChildren(self)
class ElasticEaseFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def ELASTIC_EASE(self):
return self.getToken(MathExprParser.ELASTIC_EASE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterElasticEaseFunc" ):
listener.enterElasticEaseFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitElasticEaseFunc" ):
listener.exitElasticEaseFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitElasticEaseFunc" ):
return visitor.visitElasticEaseFunc(self)
else:
return visitor.visitChildren(self)
class RangeFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def RANGE(self):
return self.getToken(MathExprParser.RANGE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterRangeFunc" ):
listener.enterRangeFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitRangeFunc" ):
listener.exitRangeFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRangeFunc" ):
return visitor.visitRangeFunc(self)
else:
return visitor.visitChildren(self)
class CropFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def CROP(self):
return self.getToken(MathExprParser.CROP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCropFunc" ):
listener.enterCropFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCropFunc" ):
listener.exitCropFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCropFunc" ):
return visitor.visitCropFunc(self)
else:
return visitor.visitChildren(self)
class ClampFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def CLAMP(self):
return self.getToken(MathExprParser.CLAMP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterClampFunc" ):
listener.enterClampFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitClampFunc" ):
listener.exitClampFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitClampFunc" ):
return visitor.visitClampFunc(self)
else:
return visitor.visitChildren(self)
class SineEaseFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def SINE_EASE(self):
return self.getToken(MathExprParser.SINE_EASE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSineEaseFunc" ):
listener.enterSineEaseFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSineEaseFunc" ):
listener.exitSineEaseFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSineEaseFunc" ):
return visitor.visitSineEaseFunc(self)
else:
return visitor.visitChildren(self)
def func3(self):
localctx = MathExprParser.Func3Context(self, self._ctx, self.state)
self.enterRule(localctx, 50, self.RULE_func3)
self._la = 0 # Token type
try:
self.state = 905
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [31]:
localctx = MathExprParser.ClampFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 806
self.match(MathExprParser.CLAMP)
self.state = 807
self.match(MathExprParser.LPAREN)
self.state = 808
self.expr()
self.state = 809
self.match(MathExprParser.COMMA)
self.state = 810
self.expr()
self.state = 811
self.match(MathExprParser.COMMA)
self.state = 812
self.expr()
self.state = 813
self.match(MathExprParser.RPAREN)
pass
elif token in [38]:
localctx = MathExprParser.LerpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 815
self.match(MathExprParser.LERP)
self.state = 816
self.match(MathExprParser.LPAREN)
self.state = 817
self.expr()
self.state = 818
self.match(MathExprParser.COMMA)
self.state = 819
self.expr()
self.state = 820
self.match(MathExprParser.COMMA)
self.state = 821
self.expr()
self.state = 822
self.match(MathExprParser.RPAREN)
pass
elif token in [40]:
localctx = MathExprParser.SmoothstepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 824
self.match(MathExprParser.SMOOTHSTEP)
self.state = 825
self.match(MathExprParser.LPAREN)
self.state = 826
self.expr()
self.state = 827
self.match(MathExprParser.COMMA)
self.state = 828
self.expr()
self.state = 829
self.match(MathExprParser.COMMA)
self.state = 830
self.expr()
self.state = 831
self.match(MathExprParser.RPAREN)
pass
elif token in [52]:
localctx = MathExprParser.RangeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 833
self.match(MathExprParser.RANGE)
self.state = 834
self.match(MathExprParser.LPAREN)
self.state = 835
self.expr()
self.state = 836
self.match(MathExprParser.COMMA)
self.state = 837
self.expr()
self.state = 838
self.match(MathExprParser.COMMA)
self.state = 839
self.expr()
self.state = 840
self.match(MathExprParser.RPAREN)
pass
elif token in [64]:
localctx = MathExprParser.MomentFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 842
self.match(MathExprParser.MOMENT)
self.state = 843
self.match(MathExprParser.LPAREN)
self.state = 844
self.expr()
self.state = 845
self.match(MathExprParser.COMMA)
self.state = 846
self.expr()
self.state = 847
self.match(MathExprParser.COMMA)
self.state = 848
self.expr()
self.state = 849
self.match(MathExprParser.RPAREN)
pass
elif token in [75]:
localctx = MathExprParser.CubicEaseFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 851
self.match(MathExprParser.CUBIC_EASE)
self.state = 852
self.match(MathExprParser.LPAREN)
self.state = 853
self.expr()
self.state = 854
self.match(MathExprParser.COMMA)
self.state = 855
self.expr()
self.state = 856
self.match(MathExprParser.COMMA)
self.state = 857
self.expr()
self.state = 858
self.match(MathExprParser.RPAREN)
pass
elif token in [76]:
localctx = MathExprParser.ElasticEaseFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 860
self.match(MathExprParser.ELASTIC_EASE)
self.state = 861
self.match(MathExprParser.LPAREN)
self.state = 862
self.expr()
self.state = 863
self.match(MathExprParser.COMMA)
self.state = 864
self.expr()
self.state = 865
self.match(MathExprParser.COMMA)
self.state = 866
self.expr()
self.state = 867
self.match(MathExprParser.RPAREN)
pass
elif token in [77]:
localctx = MathExprParser.SineEaseFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 869
self.match(MathExprParser.SINE_EASE)
self.state = 870
self.match(MathExprParser.LPAREN)
self.state = 871
self.expr()
self.state = 872
self.match(MathExprParser.COMMA)
self.state = 873
self.expr()
self.state = 874
self.match(MathExprParser.COMMA)
self.state = 875
self.expr()
self.state = 876
self.match(MathExprParser.RPAREN)
pass
elif token in [78]:
localctx = MathExprParser.SmootherstepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 878
self.match(MathExprParser.SMOOTHERSTEP)
self.state = 879
self.match(MathExprParser.LPAREN)
self.state = 880
self.expr()
self.state = 881
self.match(MathExprParser.COMMA)
self.state = 882
self.expr()
self.state = 883
self.match(MathExprParser.COMMA)
self.state = 884
self.expr()
self.state = 885
self.match(MathExprParser.RPAREN)
pass
elif token in [105]:
localctx = MathExprParser.CropFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 887
self.match(MathExprParser.CROP)
self.state = 888
self.match(MathExprParser.LPAREN)
self.state = 889
self.expr()
self.state = 890
self.match(MathExprParser.COMMA)
self.state = 891
self.expr()
self.state = 892
self.match(MathExprParser.COMMA)
self.state = 893
self.expr()
self.state = 894
self.match(MathExprParser.RPAREN)
pass
elif token in [33]:
localctx = MathExprParser.SifftFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 896
self.match(MathExprParser.SIFFT)
self.state = 897
self.match(MathExprParser.LPAREN)
self.state = 898
self.expr()
self.state = 901
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 899
self.match(MathExprParser.COMMA)
self.state = 900
self.expr()
self.state = 903
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func4Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func4
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class DistFuncContext(Func4Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func4Context
super().__init__(parser)
self.copyFrom(ctx)
def DIST(self):
return self.getToken(MathExprParser.DIST, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterDistFunc" ):
listener.enterDistFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitDistFunc" ):
listener.exitDistFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitDistFunc" ):
return visitor.visitDistFunc(self)
else:
return visitor.visitChildren(self)
class NvlFuncContext(Func4Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func4Context
super().__init__(parser)
self.copyFrom(ctx)
def NVL(self):
return self.getToken(MathExprParser.NVL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNvlFunc" ):
listener.enterNvlFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNvlFunc" ):
listener.exitNvlFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNvlFunc" ):
return visitor.visitNvlFunc(self)
else:
return visitor.visitChildren(self)
class SwapFuncContext(Func4Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func4Context
super().__init__(parser)
self.copyFrom(ctx)
def SWAP(self):
return self.getToken(MathExprParser.SWAP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSwapFunc" ):
listener.enterSwapFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSwapFunc" ):
listener.exitSwapFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSwapFunc" ):
return visitor.visitSwapFunc(self)
else:
return visitor.visitChildren(self)
def func4(self):
localctx = MathExprParser.Func4Context(self, self._ctx, self.state)
self.enterRule(localctx, 52, self.RULE_func4)
try:
self.state = 940
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [49]:
localctx = MathExprParser.SwapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 907
self.match(MathExprParser.SWAP)
self.state = 908
self.match(MathExprParser.LPAREN)
self.state = 909
self.expr()
self.state = 910
self.match(MathExprParser.COMMA)
self.state = 911
self.expr()
self.state = 912
self.match(MathExprParser.COMMA)
self.state = 913
self.expr()
self.state = 914
self.match(MathExprParser.COMMA)
self.state = 915
self.expr()
self.state = 916
self.match(MathExprParser.RPAREN)
pass
elif token in [37]:
localctx = MathExprParser.NvlFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 918
self.match(MathExprParser.NVL)
self.state = 919
self.match(MathExprParser.LPAREN)
self.state = 920
self.expr()
self.state = 921
self.match(MathExprParser.COMMA)
self.state = 922
self.expr()
self.state = 923
self.match(MathExprParser.COMMA)
self.state = 924
self.expr()
self.state = 925
self.match(MathExprParser.COMMA)
self.state = 926
self.expr()
self.state = 927
self.match(MathExprParser.RPAREN)
pass
elif token in [79]:
localctx = MathExprParser.DistFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 929
self.match(MathExprParser.DIST)
self.state = 930
self.match(MathExprParser.LPAREN)
self.state = 931
self.expr()
self.state = 932
self.match(MathExprParser.COMMA)
self.state = 933
self.expr()
self.state = 934
self.match(MathExprParser.COMMA)
self.state = 935
self.expr()
self.state = 936
self.match(MathExprParser.COMMA)
self.state = 937
self.expr()
self.state = 938
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Func5Context(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_func5
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class RemapFuncContext(Func5Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func5Context
super().__init__(parser)
self.copyFrom(ctx)
def REMAP(self):
return self.getToken(MathExprParser.REMAP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterRemapFunc" ):
listener.enterRemapFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitRemapFunc" ):
listener.exitRemapFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRemapFunc" ):
return visitor.visitRemapFunc(self)
else:
return visitor.visitChildren(self)
def func5(self):
localctx = MathExprParser.Func5Context(self, self._ctx, self.state)
self.enterRule(localctx, 54, self.RULE_func5)
try:
localctx = MathExprParser.RemapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 942
self.match(MathExprParser.REMAP)
self.state = 943
self.match(MathExprParser.LPAREN)
self.state = 944
self.expr()
self.state = 945
self.match(MathExprParser.COMMA)
self.state = 946
self.expr()
self.state = 947
self.match(MathExprParser.COMMA)
self.state = 948
self.expr()
self.state = 949
self.match(MathExprParser.COMMA)
self.state = 950
self.expr()
self.state = 951
self.match(MathExprParser.COMMA)
self.state = 952
self.expr()
self.state = 953
self.match(MathExprParser.RPAREN)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FuncNContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_funcN
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class SMaxFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def SMAX(self):
return self.getToken(MathExprParser.SMAX, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSMaxFunc" ):
listener.enterSMaxFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSMaxFunc" ):
listener.exitSMaxFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSMaxFunc" ):
return visitor.visitSMaxFunc(self)
else:
return visitor.visitChildren(self)
class MapFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def MAP(self):
return self.getToken(MathExprParser.MAP, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterMapFunc" ):
listener.enterMapFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitMapFunc" ):
listener.exitMapFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMapFunc" ):
return visitor.visitMapFunc(self)
else:
return visitor.visitChildren(self)
class EzConvFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def EZCONV(self):
return self.getToken(MathExprParser.EZCONV, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterEzConvFunc" ):
listener.enterEzConvFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitEzConvFunc" ):
listener.exitEzConvFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitEzConvFunc" ):
return visitor.visitEzConvFunc(self)
else:
return visitor.visitChildren(self)
class PermuteFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def PERM(self):
return self.getToken(MathExprParser.PERM, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPermuteFunc" ):
listener.enterPermuteFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPermuteFunc" ):
listener.exitPermuteFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPermuteFunc" ):
return visitor.visitPermuteFunc(self)
else:
return visitor.visitChildren(self)
class ReshapeFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def RESHAPE(self):
return self.getToken(MathExprParser.RESHAPE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterReshapeFunc" ):
listener.enterReshapeFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitReshapeFunc" ):
listener.exitReshapeFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReshapeFunc" ):
return visitor.visitReshapeFunc(self)
else:
return visitor.visitChildren(self)
class SMinFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def SMIN(self):
return self.getToken(MathExprParser.SMIN, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterSMinFunc" ):
listener.enterSMinFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitSMinFunc" ):
listener.exitSMinFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSMinFunc" ):
return visitor.visitSMinFunc(self)
else:
return visitor.visitChildren(self)
class ConvFuncContext(FuncNContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def CONV(self):
return self.getToken(MathExprParser.CONV, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterConvFunc" ):
listener.enterConvFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitConvFunc" ):
listener.exitConvFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitConvFunc" ):
return visitor.visitConvFunc(self)
else:
return visitor.visitChildren(self)
def funcN(self):
localctx = MathExprParser.FuncNContext(self, self._ctx, self.state)
self.enterRule(localctx, 56, self.RULE_funcN)
self._la = 0 # Token type
try:
self.state = 1026
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [19]:
localctx = MathExprParser.SMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 955
self.match(MathExprParser.SMIN)
self.state = 956
self.match(MathExprParser.LPAREN)
self.state = 957
self.expr()
self.state = 962
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 958
self.match(MathExprParser.COMMA)
self.state = 959
self.expr()
self.state = 964
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 965
self.match(MathExprParser.RPAREN)
pass
elif token in [20]:
localctx = MathExprParser.SMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 967
self.match(MathExprParser.SMAX)
self.state = 968
self.match(MathExprParser.LPAREN)
self.state = 969
self.expr()
self.state = 974
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==139:
self.state = 970
self.match(MathExprParser.COMMA)
self.state = 971
self.expr()
self.state = 976
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 977
self.match(MathExprParser.RPAREN)
pass
elif token in [46]:
localctx = MathExprParser.MapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 979
self.match(MathExprParser.MAP)
self.state = 980
self.match(MathExprParser.LPAREN)
self.state = 981
self.expr()
self.state = 984
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 982
self.match(MathExprParser.COMMA)
self.state = 983
self.expr()
self.state = 986
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==139):
break
self.state = 988
self.match(MathExprParser.RPAREN)
pass
elif token in [47]:
localctx = MathExprParser.EzConvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 990
self.match(MathExprParser.EZCONV)
self.state = 991
self.match(MathExprParser.LPAREN)
self.state = 992
self.expr()
self.state = 995
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 993
self.match(MathExprParser.COMMA)
self.state = 994
self.expr()
self.state = 997
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==139):
break
self.state = 999
self.match(MathExprParser.RPAREN)
pass
elif token in [48]:
localctx = MathExprParser.ConvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 1001
self.match(MathExprParser.CONV)
self.state = 1002
self.match(MathExprParser.LPAREN)
self.state = 1003
self.expr()
self.state = 1006
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 1004
self.match(MathExprParser.COMMA)
self.state = 1005
self.expr()
self.state = 1008
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==139):
break
self.state = 1010
self.match(MathExprParser.RPAREN)
pass
elif token in [50]:
localctx = MathExprParser.PermuteFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 1012
self.match(MathExprParser.PERM)
self.state = 1013
self.match(MathExprParser.LPAREN)
self.state = 1014
self.expr()
self.state = 1015
self.match(MathExprParser.COMMA)
self.state = 1016
self.expr()
self.state = 1017
self.match(MathExprParser.RPAREN)
pass
elif token in [51]:
localctx = MathExprParser.ReshapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 1019
self.match(MathExprParser.RESHAPE)
self.state = 1020
self.match(MathExprParser.LPAREN)
self.state = 1021
self.expr()
self.state = 1022
self.match(MathExprParser.COMMA)
self.state = 1023
self.expr()
self.state = 1024
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FuncNoiseContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_funcNoise
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class ExponentialFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def EXPONENTIAL(self):
return self.getToken(MathExprParser.EXPONENTIAL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterExponentialFunc" ):
listener.enterExponentialFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitExponentialFunc" ):
listener.exitExponentialFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExponentialFunc" ):
return visitor.visitExponentialFunc(self)
else:
return visitor.visitChildren(self)
class PoissonFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def POISSON(self):
return self.getToken(MathExprParser.POISSON, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPoissonFunc" ):
listener.enterPoissonFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPoissonFunc" ):
listener.exitPoissonFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPoissonFunc" ):
return visitor.visitPoissonFunc(self)
else:
return visitor.visitChildren(self)
class NoiseFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def NOISE(self):
return self.getToken(MathExprParser.NOISE, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNoiseFunc" ):
listener.enterNoiseFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNoiseFunc" ):
listener.exitNoiseFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNoiseFunc" ):
return visitor.visitNoiseFunc(self)
else:
return visitor.visitChildren(self)
class BernoulliFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def BERNOULLI(self):
return self.getToken(MathExprParser.BERNOULLI, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterBernoulliFunc" ):
listener.enterBernoulliFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitBernoulliFunc" ):
listener.exitBernoulliFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBernoulliFunc" ):
return visitor.visitBernoulliFunc(self)
else:
return visitor.visitChildren(self)
class CauchyFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def CAUCHY(self):
return self.getToken(MathExprParser.CAUCHY, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterCauchyFunc" ):
listener.enterCauchyFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitCauchyFunc" ):
listener.exitCauchyFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCauchyFunc" ):
return visitor.visitCauchyFunc(self)
else:
return visitor.visitChildren(self)
class LogNormalFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def LOGNORMAL(self):
return self.getToken(MathExprParser.LOGNORMAL, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def COMMA(self, i:int=None):
if i is None:
return self.getTokens(MathExprParser.COMMA)
else:
return self.getToken(MathExprParser.COMMA, i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterLogNormalFunc" ):
listener.enterLogNormalFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitLogNormalFunc" ):
listener.exitLogNormalFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLogNormalFunc" ):
return visitor.visitLogNormalFunc(self)
else:
return visitor.visitChildren(self)
class RandFuncContext(FuncNoiseContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.FuncNoiseContext
super().__init__(parser)
self.copyFrom(ctx)
def RAND(self):
return self.getToken(MathExprParser.RAND, 0)
def LPAREN(self):
return self.getToken(MathExprParser.LPAREN, 0)
def expr(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext,i)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def COMMA(self):
return self.getToken(MathExprParser.COMMA, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterRandFunc" ):
listener.enterRandFunc(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitRandFunc" ):
listener.exitRandFunc(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRandFunc" ):
return visitor.visitRandFunc(self)
else:
return visitor.visitChildren(self)
def funcNoise(self):
localctx = MathExprParser.FuncNoiseContext(self, self._ctx, self.state)
self.enterRule(localctx, 58, self.RULE_funcNoise)
self._la = 0 # Token type
try:
self.state = 1105
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [90]:
localctx = MathExprParser.NoiseFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 1028
self.match(MathExprParser.NOISE)
self.state = 1029
self.match(MathExprParser.LPAREN)
self.state = 1030
self.expr()
self.state = 1033
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1031
self.match(MathExprParser.COMMA)
self.state = 1032
self.expr()
self.state = 1035
self.match(MathExprParser.RPAREN)
pass
elif token in [91]:
localctx = MathExprParser.RandFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 1037
self.match(MathExprParser.RAND)
self.state = 1038
self.match(MathExprParser.LPAREN)
self.state = 1039
self.expr()
self.state = 1042
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1040
self.match(MathExprParser.COMMA)
self.state = 1041
self.expr()
self.state = 1044
self.match(MathExprParser.RPAREN)
pass
elif token in [93]:
localctx = MathExprParser.ExponentialFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 1046
self.match(MathExprParser.EXPONENTIAL)
self.state = 1047
self.match(MathExprParser.LPAREN)
self.state = 1048
self.expr()
self.state = 1049
self.match(MathExprParser.COMMA)
self.state = 1050
self.expr()
self.state = 1053
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1051
self.match(MathExprParser.COMMA)
self.state = 1052
self.expr()
self.state = 1055
self.match(MathExprParser.RPAREN)
pass
elif token in [95]:
localctx = MathExprParser.BernoulliFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 1057
self.match(MathExprParser.BERNOULLI)
self.state = 1058
self.match(MathExprParser.LPAREN)
self.state = 1059
self.expr()
self.state = 1060
self.match(MathExprParser.COMMA)
self.state = 1061
self.expr()
self.state = 1064
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1062
self.match(MathExprParser.COMMA)
self.state = 1063
self.expr()
self.state = 1066
self.match(MathExprParser.RPAREN)
pass
elif token in [96]:
localctx = MathExprParser.PoissonFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 1068
self.match(MathExprParser.POISSON)
self.state = 1069
self.match(MathExprParser.LPAREN)
self.state = 1070
self.expr()
self.state = 1071
self.match(MathExprParser.COMMA)
self.state = 1072
self.expr()
self.state = 1075
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1073
self.match(MathExprParser.COMMA)
self.state = 1074
self.expr()
self.state = 1077
self.match(MathExprParser.RPAREN)
pass
elif token in [92]:
localctx = MathExprParser.CauchyFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 1079
self.match(MathExprParser.CAUCHY)
self.state = 1080
self.match(MathExprParser.LPAREN)
self.state = 1081
self.expr()
self.state = 1082
self.match(MathExprParser.COMMA)
self.state = 1083
self.expr()
self.state = 1084
self.match(MathExprParser.COMMA)
self.state = 1085
self.expr()
self.state = 1088
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1086
self.match(MathExprParser.COMMA)
self.state = 1087
self.expr()
self.state = 1090
self.match(MathExprParser.RPAREN)
pass
elif token in [94]:
localctx = MathExprParser.LogNormalFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 1092
self.match(MathExprParser.LOGNORMAL)
self.state = 1093
self.match(MathExprParser.LPAREN)
self.state = 1094
self.expr()
self.state = 1095
self.match(MathExprParser.COMMA)
self.state = 1096
self.expr()
self.state = 1097
self.match(MathExprParser.COMMA)
self.state = 1098
self.expr()
self.state = 1101
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==139:
self.state = 1099
self.match(MathExprParser.COMMA)
self.state = 1100
self.expr()
self.state = 1103
self.match(MathExprParser.RPAREN)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int):
if self._predicates == None:
self._predicates = dict()
self._predicates[14] = self.compExpr_sempred
self._predicates[15] = self.addExpr_sempred
self._predicates[16] = self.mulExpr_sempred
self._predicates[19] = self.indexExpr_sempred
pred = self._predicates.get(ruleIndex, None)
if pred is None:
raise Exception("No predicate with index:" + str(ruleIndex))
else:
return pred(localctx, predIndex)
def compExpr_sempred(self, localctx:CompExprContext, predIndex:int):
if predIndex == 0:
return self.precpred(self._ctx, 7)
if predIndex == 1:
return self.precpred(self._ctx, 6)
if predIndex == 2:
return self.precpred(self._ctx, 5)
if predIndex == 3:
return self.precpred(self._ctx, 4)
if predIndex == 4:
return self.precpred(self._ctx, 3)
if predIndex == 5:
return self.precpred(self._ctx, 2)
def addExpr_sempred(self, localctx:AddExprContext, predIndex:int):
if predIndex == 6:
return self.precpred(self._ctx, 3)
if predIndex == 7:
return self.precpred(self._ctx, 2)
def mulExpr_sempred(self, localctx:MulExprContext, predIndex:int):
if predIndex == 8:
return self.precpred(self._ctx, 4)
if predIndex == 9:
return self.precpred(self._ctx, 3)
if predIndex == 10:
return self.precpred(self._ctx, 2)
def indexExpr_sempred(self, localctx:IndexExprContext, predIndex:int):
if predIndex == 11:
return self.precpred(self._ctx, 2)