Files
mcDandy-more_math/more_math/Parser/MathExprParser.py
T
mcDandy 5d634ecaf4 Added ternary expression
Little higher then in other languages (tired of needing to bracket when the compExpr is more then variable)

Also IT SHOULD BE TURING COMPLETE NOW
2026-01-25 00:03:56 +01:00

5636 lines
205 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,103,724,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,1,0,5,0,40,
8,0,10,0,12,0,43,9,0,1,0,5,0,46,8,0,10,0,12,0,49,9,0,1,0,1,0,1,0,
1,1,1,1,1,1,3,1,57,8,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,
3,1,3,1,3,5,3,72,8,3,10,3,12,3,75,9,3,1,4,1,4,1,4,3,4,80,8,4,1,5,
1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,
1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,5,6,109,8,6,10,6,12,6,112,
9,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,5,7,123,8,7,10,7,12,7,126,
9,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,5,8,140,8,8,
10,8,12,8,143,9,8,1,9,1,9,1,9,1,9,1,9,3,9,150,8,9,1,10,1,10,1,10,
1,10,1,10,3,10,157,8,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
5,11,167,8,11,10,11,12,11,170,9,11,1,11,1,11,5,11,174,8,11,10,11,
12,11,177,9,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,
1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,5,12,199,8,12,
10,12,12,12,202,9,12,1,12,1,12,1,12,1,12,1,12,3,12,209,8,12,1,12,
3,12,212,8,12,1,13,1,13,1,13,5,13,217,8,13,10,13,12,13,220,9,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,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,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,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,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,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,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,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,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,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,3,14,432,8,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,3,15,560,8,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,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
1,16,1,16,3,16,625,8,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
1,17,3,17,649,8,17,1,18,1,18,1,18,1,18,1,18,5,18,656,8,18,10,18,
12,18,659,9,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,5,18,668,8,18,
10,18,12,18,671,9,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,4,18,680,
8,18,11,18,12,18,681,1,18,1,18,1,18,1,18,1,18,1,18,1,18,4,18,691,
8,18,11,18,12,18,692,1,18,1,18,1,18,1,18,1,18,1,18,1,18,4,18,702,
8,18,11,18,12,18,703,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,
1,18,1,18,1,18,1,18,1,18,1,18,1,18,3,18,722,8,18,1,18,0,4,12,14,
16,22,19,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,0,0,
816,0,41,1,0,0,0,2,53,1,0,0,0,4,63,1,0,0,0,6,68,1,0,0,0,8,79,1,0,
0,0,10,81,1,0,0,0,12,87,1,0,0,0,14,113,1,0,0,0,16,127,1,0,0,0,18,
149,1,0,0,0,20,156,1,0,0,0,22,158,1,0,0,0,24,211,1,0,0,0,26,213,
1,0,0,0,28,431,1,0,0,0,30,559,1,0,0,0,32,624,1,0,0,0,34,648,1,0,
0,0,36,721,1,0,0,0,38,40,3,2,1,0,39,38,1,0,0,0,40,43,1,0,0,0,41,
39,1,0,0,0,41,42,1,0,0,0,42,47,1,0,0,0,43,41,1,0,0,0,44,46,3,4,2,
0,45,44,1,0,0,0,46,49,1,0,0,0,47,45,1,0,0,0,47,48,1,0,0,0,48,50,
1,0,0,0,49,47,1,0,0,0,50,51,3,8,4,0,51,52,5,0,0,1,52,1,1,0,0,0,53,
54,5,102,0,0,54,56,5,91,0,0,55,57,3,6,3,0,56,55,1,0,0,0,56,57,1,
0,0,0,57,58,1,0,0,0,58,59,5,92,0,0,59,60,5,95,0,0,60,61,3,8,4,0,
61,62,5,94,0,0,62,3,1,0,0,0,63,64,5,102,0,0,64,65,5,88,0,0,65,66,
3,8,4,0,66,67,5,94,0,0,67,5,1,0,0,0,68,73,5,102,0,0,69,70,5,93,0,
0,70,72,5,102,0,0,71,69,1,0,0,0,72,75,1,0,0,0,73,71,1,0,0,0,73,74,
1,0,0,0,74,7,1,0,0,0,75,73,1,0,0,0,76,80,3,10,5,0,77,80,3,24,12,
0,78,80,3,12,6,0,79,76,1,0,0,0,79,77,1,0,0,0,79,78,1,0,0,0,80,9,
1,0,0,0,81,82,3,12,6,0,82,83,5,98,0,0,83,84,3,8,4,0,84,85,5,99,0,
0,85,86,3,8,4,0,86,11,1,0,0,0,87,88,6,6,-1,0,88,89,3,14,7,0,89,110,
1,0,0,0,90,91,10,7,0,0,91,92,5,84,0,0,92,109,3,14,7,0,93,94,10,6,
0,0,94,95,5,83,0,0,95,109,3,14,7,0,96,97,10,5,0,0,97,98,5,86,0,0,
98,109,3,14,7,0,99,100,10,4,0,0,100,101,5,85,0,0,101,109,3,14,7,
0,102,103,10,3,0,0,103,104,5,87,0,0,104,109,3,14,7,0,105,106,10,
2,0,0,106,107,5,89,0,0,107,109,3,14,7,0,108,90,1,0,0,0,108,93,1,
0,0,0,108,96,1,0,0,0,108,99,1,0,0,0,108,102,1,0,0,0,108,105,1,0,
0,0,109,112,1,0,0,0,110,108,1,0,0,0,110,111,1,0,0,0,111,13,1,0,0,
0,112,110,1,0,0,0,113,114,6,7,-1,0,114,115,3,16,8,0,115,124,1,0,
0,0,116,117,10,3,0,0,117,118,5,77,0,0,118,123,3,16,8,0,119,120,10,
2,0,0,120,121,5,78,0,0,121,123,3,16,8,0,122,116,1,0,0,0,122,119,
1,0,0,0,123,126,1,0,0,0,124,122,1,0,0,0,124,125,1,0,0,0,125,15,1,
0,0,0,126,124,1,0,0,0,127,128,6,8,-1,0,128,129,3,18,9,0,129,141,
1,0,0,0,130,131,10,4,0,0,131,132,5,79,0,0,132,140,3,18,9,0,133,134,
10,3,0,0,134,135,5,80,0,0,135,140,3,18,9,0,136,137,10,2,0,0,137,
138,5,81,0,0,138,140,3,18,9,0,139,130,1,0,0,0,139,133,1,0,0,0,139,
136,1,0,0,0,140,143,1,0,0,0,141,139,1,0,0,0,141,142,1,0,0,0,142,
17,1,0,0,0,143,141,1,0,0,0,144,145,3,20,10,0,145,146,5,82,0,0,146,
147,3,18,9,0,147,150,1,0,0,0,148,150,3,20,10,0,149,144,1,0,0,0,149,
148,1,0,0,0,150,19,1,0,0,0,151,152,5,77,0,0,152,157,3,20,10,0,153,
154,5,78,0,0,154,157,3,20,10,0,155,157,3,22,11,0,156,151,1,0,0,0,
156,153,1,0,0,0,156,155,1,0,0,0,157,21,1,0,0,0,158,159,6,11,-1,0,
159,160,3,24,12,0,160,175,1,0,0,0,161,162,10,2,0,0,162,163,5,96,
0,0,163,168,3,8,4,0,164,165,5,93,0,0,165,167,3,8,4,0,166,164,1,0,
0,0,167,170,1,0,0,0,168,166,1,0,0,0,168,169,1,0,0,0,169,171,1,0,
0,0,170,168,1,0,0,0,171,172,5,97,0,0,172,174,1,0,0,0,173,161,1,0,
0,0,174,177,1,0,0,0,175,173,1,0,0,0,175,176,1,0,0,0,176,23,1,0,0,
0,177,175,1,0,0,0,178,212,3,28,14,0,179,212,3,30,15,0,180,212,3,
32,16,0,181,212,3,34,17,0,182,212,3,36,18,0,183,212,5,102,0,0,184,
212,5,101,0,0,185,212,5,100,0,0,186,187,5,91,0,0,187,188,3,8,4,0,
188,189,5,92,0,0,189,212,1,0,0,0,190,191,5,90,0,0,191,192,3,8,4,
0,192,193,5,90,0,0,193,212,1,0,0,0,194,195,5,96,0,0,195,200,3,8,
4,0,196,197,5,93,0,0,197,199,3,8,4,0,198,196,1,0,0,0,199,202,1,0,
0,0,200,198,1,0,0,0,200,201,1,0,0,0,201,203,1,0,0,0,202,200,1,0,
0,0,203,204,5,97,0,0,204,212,1,0,0,0,205,206,5,102,0,0,206,208,5,
91,0,0,207,209,3,26,13,0,208,207,1,0,0,0,208,209,1,0,0,0,209,210,
1,0,0,0,210,212,5,92,0,0,211,178,1,0,0,0,211,179,1,0,0,0,211,180,
1,0,0,0,211,181,1,0,0,0,211,182,1,0,0,0,211,183,1,0,0,0,211,184,
1,0,0,0,211,185,1,0,0,0,211,186,1,0,0,0,211,190,1,0,0,0,211,194,
1,0,0,0,211,205,1,0,0,0,212,25,1,0,0,0,213,218,3,8,4,0,214,215,5,
93,0,0,215,217,3,8,4,0,216,214,1,0,0,0,217,220,1,0,0,0,218,216,1,
0,0,0,218,219,1,0,0,0,219,27,1,0,0,0,220,218,1,0,0,0,221,222,5,1,
0,0,222,223,5,91,0,0,223,224,3,8,4,0,224,225,5,92,0,0,225,432,1,
0,0,0,226,227,5,2,0,0,227,228,5,91,0,0,228,229,3,8,4,0,229,230,5,
92,0,0,230,432,1,0,0,0,231,232,5,3,0,0,232,233,5,91,0,0,233,234,
3,8,4,0,234,235,5,92,0,0,235,432,1,0,0,0,236,237,5,4,0,0,237,238,
5,91,0,0,238,239,3,8,4,0,239,240,5,92,0,0,240,432,1,0,0,0,241,242,
5,5,0,0,242,243,5,91,0,0,243,244,3,8,4,0,244,245,5,92,0,0,245,432,
1,0,0,0,246,247,5,6,0,0,247,248,5,91,0,0,248,249,3,8,4,0,249,250,
5,92,0,0,250,432,1,0,0,0,251,252,5,8,0,0,252,253,5,91,0,0,253,254,
3,8,4,0,254,255,5,92,0,0,255,432,1,0,0,0,256,257,5,9,0,0,257,258,
5,91,0,0,258,259,3,8,4,0,259,260,5,92,0,0,260,432,1,0,0,0,261,262,
5,10,0,0,262,263,5,91,0,0,263,264,3,8,4,0,264,265,5,92,0,0,265,432,
1,0,0,0,266,267,5,11,0,0,267,268,5,91,0,0,268,269,3,8,4,0,269,270,
5,92,0,0,270,432,1,0,0,0,271,272,5,12,0,0,272,273,5,91,0,0,273,274,
3,8,4,0,274,275,5,92,0,0,275,432,1,0,0,0,276,277,5,13,0,0,277,278,
5,91,0,0,278,279,3,8,4,0,279,280,5,92,0,0,280,432,1,0,0,0,281,282,
5,14,0,0,282,283,5,91,0,0,283,284,3,8,4,0,284,285,5,92,0,0,285,432,
1,0,0,0,286,287,5,15,0,0,287,288,5,91,0,0,288,289,3,8,4,0,289,290,
5,92,0,0,290,432,1,0,0,0,291,292,5,16,0,0,292,293,5,91,0,0,293,294,
3,8,4,0,294,295,5,92,0,0,295,432,1,0,0,0,296,297,5,17,0,0,297,298,
5,91,0,0,298,299,3,8,4,0,299,300,5,92,0,0,300,432,1,0,0,0,301,302,
5,18,0,0,302,303,5,91,0,0,303,304,3,8,4,0,304,305,5,92,0,0,305,432,
1,0,0,0,306,307,5,23,0,0,307,308,5,91,0,0,308,309,3,8,4,0,309,310,
5,92,0,0,310,432,1,0,0,0,311,312,5,24,0,0,312,313,5,91,0,0,313,314,
3,8,4,0,314,315,5,92,0,0,315,432,1,0,0,0,316,317,5,25,0,0,317,318,
5,91,0,0,318,319,3,8,4,0,319,320,5,92,0,0,320,432,1,0,0,0,321,322,
5,26,0,0,322,323,5,91,0,0,323,324,3,8,4,0,324,325,5,92,0,0,325,432,
1,0,0,0,326,327,5,27,0,0,327,328,5,91,0,0,328,329,3,8,4,0,329,330,
5,92,0,0,330,432,1,0,0,0,331,332,5,28,0,0,332,333,5,91,0,0,333,334,
3,8,4,0,334,335,5,92,0,0,335,432,1,0,0,0,336,337,5,30,0,0,337,338,
5,91,0,0,338,339,3,8,4,0,339,340,5,92,0,0,340,432,1,0,0,0,341,342,
5,32,0,0,342,343,5,91,0,0,343,344,3,8,4,0,344,345,5,92,0,0,345,432,
1,0,0,0,346,347,5,33,0,0,347,348,5,91,0,0,348,349,3,8,4,0,349,350,
5,92,0,0,350,432,1,0,0,0,351,352,5,34,0,0,352,353,5,91,0,0,353,354,
3,8,4,0,354,355,5,92,0,0,355,432,1,0,0,0,356,357,5,35,0,0,357,358,
5,91,0,0,358,359,3,8,4,0,359,360,5,92,0,0,360,432,1,0,0,0,361,362,
5,41,0,0,362,363,5,91,0,0,363,364,3,8,4,0,364,365,5,92,0,0,365,432,
1,0,0,0,366,367,5,42,0,0,367,368,5,91,0,0,368,369,3,8,4,0,369,370,
5,92,0,0,370,432,1,0,0,0,371,372,5,43,0,0,372,373,5,91,0,0,373,374,
3,8,4,0,374,375,5,92,0,0,375,432,1,0,0,0,376,377,5,44,0,0,377,378,
5,91,0,0,378,379,3,8,4,0,379,380,5,92,0,0,380,432,1,0,0,0,381,382,
5,45,0,0,382,383,5,91,0,0,383,384,3,8,4,0,384,385,5,92,0,0,385,432,
1,0,0,0,386,387,5,36,0,0,387,388,5,91,0,0,388,389,3,8,4,0,389,390,
5,92,0,0,390,432,1,0,0,0,391,392,5,55,0,0,392,393,5,91,0,0,393,394,
3,8,4,0,394,395,5,92,0,0,395,432,1,0,0,0,396,397,5,56,0,0,397,398,
5,91,0,0,398,399,3,8,4,0,399,400,5,92,0,0,400,432,1,0,0,0,401,402,
5,57,0,0,402,403,5,91,0,0,403,404,3,8,4,0,404,405,5,92,0,0,405,432,
1,0,0,0,406,407,5,58,0,0,407,408,5,91,0,0,408,409,3,8,4,0,409,410,
5,92,0,0,410,432,1,0,0,0,411,412,5,59,0,0,412,413,5,91,0,0,413,414,
3,8,4,0,414,415,5,92,0,0,415,432,1,0,0,0,416,417,5,75,0,0,417,418,
5,91,0,0,418,419,3,8,4,0,419,420,5,92,0,0,420,432,1,0,0,0,421,422,
5,65,0,0,422,423,5,91,0,0,423,424,3,8,4,0,424,425,5,92,0,0,425,432,
1,0,0,0,426,427,5,66,0,0,427,428,5,91,0,0,428,429,3,8,4,0,429,430,
5,92,0,0,430,432,1,0,0,0,431,221,1,0,0,0,431,226,1,0,0,0,431,231,
1,0,0,0,431,236,1,0,0,0,431,241,1,0,0,0,431,246,1,0,0,0,431,251,
1,0,0,0,431,256,1,0,0,0,431,261,1,0,0,0,431,266,1,0,0,0,431,271,
1,0,0,0,431,276,1,0,0,0,431,281,1,0,0,0,431,286,1,0,0,0,431,291,
1,0,0,0,431,296,1,0,0,0,431,301,1,0,0,0,431,306,1,0,0,0,431,311,
1,0,0,0,431,316,1,0,0,0,431,321,1,0,0,0,431,326,1,0,0,0,431,331,
1,0,0,0,431,336,1,0,0,0,431,341,1,0,0,0,431,346,1,0,0,0,431,351,
1,0,0,0,431,356,1,0,0,0,431,361,1,0,0,0,431,366,1,0,0,0,431,371,
1,0,0,0,431,376,1,0,0,0,431,381,1,0,0,0,431,386,1,0,0,0,431,391,
1,0,0,0,431,396,1,0,0,0,431,401,1,0,0,0,431,406,1,0,0,0,431,411,
1,0,0,0,431,416,1,0,0,0,431,421,1,0,0,0,431,426,1,0,0,0,432,29,1,
0,0,0,433,434,5,29,0,0,434,435,5,91,0,0,435,436,3,8,4,0,436,437,
5,93,0,0,437,438,3,8,4,0,438,439,5,92,0,0,439,560,1,0,0,0,440,441,
5,7,0,0,441,442,5,91,0,0,442,443,3,8,4,0,443,444,5,93,0,0,444,445,
3,8,4,0,445,446,5,92,0,0,446,560,1,0,0,0,447,448,5,21,0,0,448,449,
5,91,0,0,449,450,3,8,4,0,450,451,5,93,0,0,451,452,3,8,4,0,452,453,
5,92,0,0,453,560,1,0,0,0,454,455,5,22,0,0,455,456,5,91,0,0,456,457,
3,8,4,0,457,458,5,93,0,0,458,459,3,8,4,0,459,460,5,92,0,0,460,560,
1,0,0,0,461,462,5,39,0,0,462,463,5,91,0,0,463,464,3,8,4,0,464,465,
5,93,0,0,465,466,3,8,4,0,466,467,5,92,0,0,467,560,1,0,0,0,468,469,
5,53,0,0,469,470,5,91,0,0,470,471,3,8,4,0,471,472,5,93,0,0,472,473,
3,8,4,0,473,474,5,92,0,0,474,560,1,0,0,0,475,476,5,54,0,0,476,477,
5,91,0,0,477,478,3,8,4,0,478,479,5,93,0,0,479,480,3,8,4,0,480,481,
5,92,0,0,481,560,1,0,0,0,482,483,5,60,0,0,483,484,5,91,0,0,484,485,
3,8,4,0,485,486,5,93,0,0,486,487,3,8,4,0,487,488,5,92,0,0,488,560,
1,0,0,0,489,490,5,61,0,0,490,491,5,91,0,0,491,492,3,8,4,0,492,493,
5,93,0,0,493,494,3,8,4,0,494,495,5,92,0,0,495,560,1,0,0,0,496,497,
5,62,0,0,497,498,5,91,0,0,498,499,3,8,4,0,499,500,5,93,0,0,500,501,
3,8,4,0,501,502,5,92,0,0,502,560,1,0,0,0,503,504,5,63,0,0,504,505,
5,91,0,0,505,506,3,8,4,0,506,507,5,93,0,0,507,508,3,8,4,0,508,509,
5,92,0,0,509,560,1,0,0,0,510,511,5,72,0,0,511,512,5,91,0,0,512,513,
3,8,4,0,513,514,5,93,0,0,514,515,3,8,4,0,515,516,5,92,0,0,516,560,
1,0,0,0,517,518,5,73,0,0,518,519,5,91,0,0,519,520,3,8,4,0,520,521,
5,93,0,0,521,522,3,8,4,0,522,523,5,92,0,0,523,560,1,0,0,0,524,525,
5,74,0,0,525,526,5,91,0,0,526,527,3,8,4,0,527,528,5,93,0,0,528,529,
3,8,4,0,529,530,5,92,0,0,530,560,1,0,0,0,531,532,5,76,0,0,532,533,
5,91,0,0,533,534,3,8,4,0,534,535,5,93,0,0,535,536,3,8,4,0,536,537,
5,92,0,0,537,560,1,0,0,0,538,539,5,68,0,0,539,540,5,91,0,0,540,541,
3,8,4,0,541,542,5,93,0,0,542,543,3,8,4,0,543,544,5,92,0,0,544,560,
1,0,0,0,545,546,5,70,0,0,546,547,5,91,0,0,547,548,3,8,4,0,548,549,
5,93,0,0,549,550,3,8,4,0,550,551,5,92,0,0,551,560,1,0,0,0,552,553,
5,71,0,0,553,554,5,91,0,0,554,555,3,8,4,0,555,556,5,93,0,0,556,557,
3,8,4,0,557,558,5,92,0,0,558,560,1,0,0,0,559,433,1,0,0,0,559,440,
1,0,0,0,559,447,1,0,0,0,559,454,1,0,0,0,559,461,1,0,0,0,559,468,
1,0,0,0,559,475,1,0,0,0,559,482,1,0,0,0,559,489,1,0,0,0,559,496,
1,0,0,0,559,503,1,0,0,0,559,510,1,0,0,0,559,517,1,0,0,0,559,524,
1,0,0,0,559,531,1,0,0,0,559,538,1,0,0,0,559,545,1,0,0,0,559,552,
1,0,0,0,560,31,1,0,0,0,561,562,5,31,0,0,562,563,5,91,0,0,563,564,
3,8,4,0,564,565,5,93,0,0,565,566,3,8,4,0,566,567,5,93,0,0,567,568,
3,8,4,0,568,569,5,92,0,0,569,625,1,0,0,0,570,571,5,38,0,0,571,572,
5,91,0,0,572,573,3,8,4,0,573,574,5,93,0,0,574,575,3,8,4,0,575,576,
5,93,0,0,576,577,3,8,4,0,577,578,5,92,0,0,578,625,1,0,0,0,579,580,
5,40,0,0,580,581,5,91,0,0,581,582,3,8,4,0,582,583,5,93,0,0,583,584,
3,8,4,0,584,585,5,93,0,0,585,586,3,8,4,0,586,587,5,92,0,0,587,625,
1,0,0,0,588,589,5,52,0,0,589,590,5,91,0,0,590,591,3,8,4,0,591,592,
5,93,0,0,592,593,3,8,4,0,593,594,5,93,0,0,594,595,3,8,4,0,595,596,
5,92,0,0,596,625,1,0,0,0,597,598,5,64,0,0,598,599,5,91,0,0,599,600,
3,8,4,0,600,601,5,93,0,0,601,602,3,8,4,0,602,603,5,93,0,0,603,604,
3,8,4,0,604,605,5,92,0,0,605,625,1,0,0,0,606,607,5,67,0,0,607,608,
5,91,0,0,608,609,3,8,4,0,609,610,5,93,0,0,610,611,3,8,4,0,611,612,
5,93,0,0,612,613,3,8,4,0,613,614,5,92,0,0,614,625,1,0,0,0,615,616,
5,69,0,0,616,617,5,91,0,0,617,618,3,8,4,0,618,619,5,93,0,0,619,620,
3,8,4,0,620,621,5,93,0,0,621,622,3,8,4,0,622,623,5,92,0,0,623,625,
1,0,0,0,624,561,1,0,0,0,624,570,1,0,0,0,624,579,1,0,0,0,624,588,
1,0,0,0,624,597,1,0,0,0,624,606,1,0,0,0,624,615,1,0,0,0,625,33,1,
0,0,0,626,627,5,49,0,0,627,628,5,91,0,0,628,629,3,8,4,0,629,630,
5,93,0,0,630,631,3,8,4,0,631,632,5,93,0,0,632,633,3,8,4,0,633,634,
5,93,0,0,634,635,3,8,4,0,635,636,5,92,0,0,636,649,1,0,0,0,637,638,
5,37,0,0,638,639,5,91,0,0,639,640,3,8,4,0,640,641,5,93,0,0,641,642,
3,8,4,0,642,643,5,93,0,0,643,644,3,8,4,0,644,645,5,93,0,0,645,646,
3,8,4,0,646,647,5,92,0,0,647,649,1,0,0,0,648,626,1,0,0,0,648,637,
1,0,0,0,649,35,1,0,0,0,650,651,5,19,0,0,651,652,5,91,0,0,652,657,
3,8,4,0,653,654,5,93,0,0,654,656,3,8,4,0,655,653,1,0,0,0,656,659,
1,0,0,0,657,655,1,0,0,0,657,658,1,0,0,0,658,660,1,0,0,0,659,657,
1,0,0,0,660,661,5,92,0,0,661,722,1,0,0,0,662,663,5,20,0,0,663,664,
5,91,0,0,664,669,3,8,4,0,665,666,5,93,0,0,666,668,3,8,4,0,667,665,
1,0,0,0,668,671,1,0,0,0,669,667,1,0,0,0,669,670,1,0,0,0,670,672,
1,0,0,0,671,669,1,0,0,0,672,673,5,92,0,0,673,722,1,0,0,0,674,675,
5,46,0,0,675,676,5,91,0,0,676,679,3,8,4,0,677,678,5,93,0,0,678,680,
3,8,4,0,679,677,1,0,0,0,680,681,1,0,0,0,681,679,1,0,0,0,681,682,
1,0,0,0,682,683,1,0,0,0,683,684,5,92,0,0,684,722,1,0,0,0,685,686,
5,47,0,0,686,687,5,91,0,0,687,690,3,8,4,0,688,689,5,93,0,0,689,691,
3,8,4,0,690,688,1,0,0,0,691,692,1,0,0,0,692,690,1,0,0,0,692,693,
1,0,0,0,693,694,1,0,0,0,694,695,5,92,0,0,695,722,1,0,0,0,696,697,
5,48,0,0,697,698,5,91,0,0,698,701,3,8,4,0,699,700,5,93,0,0,700,702,
3,8,4,0,701,699,1,0,0,0,702,703,1,0,0,0,703,701,1,0,0,0,703,704,
1,0,0,0,704,705,1,0,0,0,705,706,5,92,0,0,706,722,1,0,0,0,707,708,
5,50,0,0,708,709,5,91,0,0,709,710,3,8,4,0,710,711,5,93,0,0,711,712,
3,8,4,0,712,713,5,92,0,0,713,722,1,0,0,0,714,715,5,51,0,0,715,716,
5,91,0,0,716,717,3,8,4,0,717,718,5,93,0,0,718,719,3,8,4,0,719,720,
5,92,0,0,720,722,1,0,0,0,721,650,1,0,0,0,721,662,1,0,0,0,721,674,
1,0,0,0,721,685,1,0,0,0,721,696,1,0,0,0,721,707,1,0,0,0,721,714,
1,0,0,0,722,37,1,0,0,0,29,41,47,56,73,79,108,110,122,124,139,141,
149,156,168,175,200,208,211,218,431,559,624,648,657,669,681,692,
703,721
]
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'", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"'cossim'", "'flip'", "'cov'", "'sort'", "'append'",
"'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'>='", "'>'",
"'<='", "'<'", "'=='", "'='", "'!='", "'|'", "'('",
"')'", "','", "';'", "'->'", "'['", "']'", "'?'", "':'" ]
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", "NOISE", "RAND", "CAUCHY",
"EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON",
"COSSIM", "FLIP", "COV", "SORT", "APPEND", "PLUS",
"MINUS", "MULT", "DIV", "MOD", "POW", "GE", "GT",
"LE", "LT", "EQ", "EQUEALS", "NE", "PIPE", "LPAREN",
"RPAREN", "COMMA", "SEMICOLON", "ARROW", "LBRACKET",
"RBRACKET", "QUESTION", "COLON", "CONSTANT", "NUMBER",
"VARIABLE", "WS" ]
RULE_start = 0
RULE_funcDef = 1
RULE_varDef = 2
RULE_paramList = 3
RULE_expr = 4
RULE_ternaryExpr = 5
RULE_compExpr = 6
RULE_addExpr = 7
RULE_mulExpr = 8
RULE_powExpr = 9
RULE_unaryExpr = 10
RULE_indexExpr = 11
RULE_atom = 12
RULE_exprList = 13
RULE_func1 = 14
RULE_func2 = 15
RULE_func3 = 16
RULE_func4 = 17
RULE_funcN = 18
ruleNames = [ "start", "funcDef", "varDef", "paramList", "expr", "ternaryExpr",
"compExpr", "addExpr", "mulExpr", "powExpr", "unaryExpr",
"indexExpr", "atom", "exprList", "func1", "func2", "func3",
"func4", "funcN" ]
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
NOISE=65
RAND=66
CAUCHY=67
EXPONENTIAL=68
LOGNORMAL=69
BERNOULLI=70
POISSON=71
COSSIM=72
FLIP=73
COV=74
SORT=75
APPEND=76
PLUS=77
MINUS=78
MULT=79
DIV=80
MOD=81
POW=82
GE=83
GT=84
LE=85
LT=86
EQ=87
EQUEALS=88
NE=89
PIPE=90
LPAREN=91
RPAREN=92
COMMA=93
SEMICOLON=94
ARROW=95
LBRACKET=96
RBRACKET=97
QUESTION=98
COLON=99
CONSTANT=100
NUMBER=101
VARIABLE=102
WS=103
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 getRuleIndex(self):
return MathExprParser.RULE_start
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)
try:
self.enterOuterAlt(localctx, 1)
self.state = 41
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,0,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 38
self.funcDef()
self.state = 43
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,0,self._ctx)
self.state = 47
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 = 44
self.varDef()
self.state = 49
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,1,self._ctx)
self.state = 50
self.expr()
self.state = 51
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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def paramList(self):
return self.getTypedRuleContext(MathExprParser.ParamListContext,0)
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 = 53
self.match(MathExprParser.VARIABLE)
self.state = 54
self.match(MathExprParser.LPAREN)
self.state = 56
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==102:
self.state = 55
self.paramList()
self.state = 58
self.match(MathExprParser.RPAREN)
self.state = 59
self.match(MathExprParser.ARROW)
self.state = 60
self.expr()
self.state = 61
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):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def SEMICOLON(self):
return self.getToken(MathExprParser.SEMICOLON, 0)
def getRuleIndex(self):
return MathExprParser.RULE_varDef
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)
try:
self.enterOuterAlt(localctx, 1)
self.state = 63
self.match(MathExprParser.VARIABLE)
self.state = 64
self.match(MathExprParser.EQUEALS)
self.state = 65
self.expr()
self.state = 66
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 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 = 68
self.match(MathExprParser.VARIABLE)
self.state = 73
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 69
self.match(MathExprParser.COMMA)
self.state = 70
self.match(MathExprParser.VARIABLE)
self.state = 75
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 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 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, 8, self.RULE_expr)
try:
self.state = 79
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,4,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 76
self.ternaryExpr()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 77
self.atom()
pass
elif la_ == 3:
self.enterOuterAlt(localctx, 3)
self.state = 78
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 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, 10, self.RULE_ternaryExpr)
try:
localctx = MathExprParser.TernaryExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 81
self.compExpr(0)
self.state = 82
self.match(MathExprParser.QUESTION)
self.state = 83
self.expr()
self.state = 84
self.match(MathExprParser.COLON)
self.state = 85
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 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 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 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 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 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 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 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 = 12
self.enterRecursionRule(localctx, 12, self.RULE_compExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToAddContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 88
self.addExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 110
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,6,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 = 108
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,5,self._ctx)
if la_ == 1:
localctx = MathExprParser.GtExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 90
if not self.precpred(self._ctx, 7):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 7)")
self.state = 91
self.match(MathExprParser.GT)
self.state = 92
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 = 93
if not self.precpred(self._ctx, 6):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 6)")
self.state = 94
self.match(MathExprParser.GE)
self.state = 95
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 = 96
if not self.precpred(self._ctx, 5):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 5)")
self.state = 97
self.match(MathExprParser.LT)
self.state = 98
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 = 99
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 100
self.match(MathExprParser.LE)
self.state = 101
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 = 102
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 103
self.match(MathExprParser.EQ)
self.state = 104
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 = 105
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 106
self.match(MathExprParser.NE)
self.state = 107
self.addExpr(0)
pass
self.state = 112
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,6,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 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 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 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 = 14
self.enterRecursionRule(localctx, 14, self.RULE_addExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToMulContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 114
self.mulExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 124
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,8,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 = 122
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,7,self._ctx)
if la_ == 1:
localctx = MathExprParser.AddExpContext(self, MathExprParser.AddExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_addExpr)
self.state = 116
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 117
self.match(MathExprParser.PLUS)
self.state = 118
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 = 119
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 120
self.match(MathExprParser.MINUS)
self.state = 121
self.mulExpr(0)
pass
self.state = 126
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,8,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 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 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 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 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 = 16
self.enterRecursionRule(localctx, 16, self.RULE_mulExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToPowContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 128
self.powExpr()
self._ctx.stop = self._input.LT(-1)
self.state = 141
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,10,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 = 139
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,9,self._ctx)
if la_ == 1:
localctx = MathExprParser.MulExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 130
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 131
self.match(MathExprParser.MULT)
self.state = 132
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.DivExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 133
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 134
self.match(MathExprParser.DIV)
self.state = 135
self.powExpr()
pass
elif la_ == 3:
localctx = MathExprParser.ModExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 136
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 137
self.match(MathExprParser.MOD)
self.state = 138
self.powExpr()
pass
self.state = 143
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,10,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 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 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, 18, self.RULE_powExpr)
try:
self.state = 149
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,11,self._ctx)
if la_ == 1:
localctx = MathExprParser.PowExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 144
self.unaryExpr()
self.state = 145
self.match(MathExprParser.POW)
self.state = 146
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.ToUnaryContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 148
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 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 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 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, 20, self.RULE_unaryExpr)
try:
self.state = 156
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [77]:
localctx = MathExprParser.UnaryPlusContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 151
self.match(MathExprParser.PLUS)
self.state = 152
self.unaryExpr()
pass
elif token in [78]:
localctx = MathExprParser.UnaryMinusContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 153
self.match(MathExprParser.MINUS)
self.state = 154
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, 32, 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, 90, 91, 96, 100, 101, 102]:
localctx = MathExprParser.ToIndexContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 155
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 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 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 = 22
self.enterRecursionRule(localctx, 22, 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 = 159
self.atom()
self._ctx.stop = self._input.LT(-1)
self.state = 175
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
localctx = MathExprParser.IndexExpContext(self, MathExprParser.IndexExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_indexExpr)
self.state = 161
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 162
self.match(MathExprParser.LBRACKET)
self.state = 163
self.expr()
self.state = 168
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 164
self.match(MathExprParser.COMMA)
self.state = 165
self.expr()
self.state = 170
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 171
self.match(MathExprParser.RBRACKET)
self.state = 177
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 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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc2Exp" ):
return visitor.visitFunc2Exp(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCallExp" ):
return visitor.visitCallExp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc3Exp" ):
return visitor.visitFunc3Exp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitParenExp" ):
return visitor.visitParenExp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitConstantExp" ):
return visitor.visitConstantExp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFunc1Exp" ):
return visitor.visitFunc1Exp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFuncNExp" ):
return visitor.visitFuncNExp(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNumberExp" ):
return visitor.visitNumberExp(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitListExp" ):
return visitor.visitListExp(self)
else:
return visitor.visitChildren(self)
def atom(self):
localctx = MathExprParser.AtomContext(self, self._ctx, self.state)
self.enterRule(localctx, 24, self.RULE_atom)
self._la = 0 # Token type
try:
self.state = 211
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,17,self._ctx)
if la_ == 1:
localctx = MathExprParser.Func1ExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 178
self.func1()
pass
elif la_ == 2:
localctx = MathExprParser.Func2ExpContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 179
self.func2()
pass
elif la_ == 3:
localctx = MathExprParser.Func3ExpContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 180
self.func3()
pass
elif la_ == 4:
localctx = MathExprParser.Func4ExpContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 181
self.func4()
pass
elif la_ == 5:
localctx = MathExprParser.FuncNExpContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 182
self.funcN()
pass
elif la_ == 6:
localctx = MathExprParser.VariableExpContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 183
self.match(MathExprParser.VARIABLE)
pass
elif la_ == 7:
localctx = MathExprParser.NumberExpContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 184
self.match(MathExprParser.NUMBER)
pass
elif la_ == 8:
localctx = MathExprParser.ConstantExpContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 185
self.match(MathExprParser.CONSTANT)
pass
elif la_ == 9:
localctx = MathExprParser.ParenExpContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 186
self.match(MathExprParser.LPAREN)
self.state = 187
self.expr()
self.state = 188
self.match(MathExprParser.RPAREN)
pass
elif la_ == 10:
localctx = MathExprParser.AbsExpContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 190
self.match(MathExprParser.PIPE)
self.state = 191
self.expr()
self.state = 192
self.match(MathExprParser.PIPE)
pass
elif la_ == 11:
localctx = MathExprParser.ListExpContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 194
self.match(MathExprParser.LBRACKET)
self.state = 195
self.expr()
self.state = 200
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 196
self.match(MathExprParser.COMMA)
self.state = 197
self.expr()
self.state = 202
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 203
self.match(MathExprParser.RBRACKET)
pass
elif la_ == 12:
localctx = MathExprParser.CallExpContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 205
self.match(MathExprParser.VARIABLE)
self.state = 206
self.match(MathExprParser.LPAREN)
self.state = 208
self._errHandler.sync(self)
_la = self._input.LA(1)
if (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 485532663807) != 0):
self.state = 207
self.exprList()
self.state = 210
self.match(MathExprParser.RPAREN)
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 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, 26, self.RULE_exprList)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 213
self.expr()
self.state = 218
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 214
self.match(MathExprParser.COMMA)
self.state = 215
self.expr()
self.state = 220
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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSoftplusFunc" ):
return visitor.visitSoftplusFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTanhFunc" ):
return visitor.visitTanhFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAcoshFunc" ):
return visitor.visitAcoshFunc(self)
else:
return visitor.visitChildren(self)
class NoiseFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
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):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNoiseFunc" ):
return visitor.visitNoiseFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFloorFunc" ):
return visitor.visitFloorFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRoundFunc" ):
return visitor.visitRoundFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCeilFunc" ):
return visitor.visitCeilFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPrintFunc" ):
return visitor.visitPrintFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAtanFunc" ):
return visitor.visitAtanFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitReluFunc" ):
return visitor.visitReluFunc(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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLogFunc" ):
return visitor.visitLogFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLnFunc" ):
return visitor.visitLnFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTNormFunc" ):
return visitor.visitTNormFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSNormFunc" ):
return visitor.visitSNormFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSinFunc" ):
return visitor.visitSinFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStdFunc" ):
return visitor.visitStdFunc(self)
else:
return visitor.visitChildren(self)
class RandFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
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):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRandFunc" ):
return visitor.visitRandFunc(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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAnglFunc" ):
return visitor.visitAnglFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSumFunc" ):
return visitor.visitSumFunc(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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPinvFunc" ):
return visitor.visitPinvFunc(self)
else:
return visitor.visitChildren(self)
class SifftFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
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):
return self.getTypedRuleContext(MathExprParser.ExprContext,0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSifftFunc" ):
return visitor.visitSifftFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitGammaFunc" ):
return visitor.visitGammaFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCosFunc" ):
return visitor.visitCosFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAsinFunc" ):
return visitor.visitAsinFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAsinhFunc" ):
return visitor.visitAsinhFunc(self)
else:
return visitor.visitChildren(self)
class SfftFuncContext(Func1Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SFFT(self):
return self.getToken(MathExprParser.SFFT, 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSfftFunc" ):
return visitor.visitSfftFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAtanhFunc" ):
return visitor.visitAtanhFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExpFunc" ):
return visitor.visitExpFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPrintShapeFunc" ):
return visitor.visitPrintShapeFunc(self)
else:
return visitor.visitChildren(self)
def func1(self):
localctx = MathExprParser.Func1Context(self, self._ctx, self.state)
self.enterRule(localctx, 28, self.RULE_func1)
try:
self.state = 431
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [1]:
localctx = MathExprParser.SinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 221
self.match(MathExprParser.SIN)
self.state = 222
self.match(MathExprParser.LPAREN)
self.state = 223
self.expr()
self.state = 224
self.match(MathExprParser.RPAREN)
pass
elif token in [2]:
localctx = MathExprParser.CosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 226
self.match(MathExprParser.COS)
self.state = 227
self.match(MathExprParser.LPAREN)
self.state = 228
self.expr()
self.state = 229
self.match(MathExprParser.RPAREN)
pass
elif token in [3]:
localctx = MathExprParser.TanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 231
self.match(MathExprParser.TAN)
self.state = 232
self.match(MathExprParser.LPAREN)
self.state = 233
self.expr()
self.state = 234
self.match(MathExprParser.RPAREN)
pass
elif token in [4]:
localctx = MathExprParser.AsinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 236
self.match(MathExprParser.ASIN)
self.state = 237
self.match(MathExprParser.LPAREN)
self.state = 238
self.expr()
self.state = 239
self.match(MathExprParser.RPAREN)
pass
elif token in [5]:
localctx = MathExprParser.AcosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 241
self.match(MathExprParser.ACOS)
self.state = 242
self.match(MathExprParser.LPAREN)
self.state = 243
self.expr()
self.state = 244
self.match(MathExprParser.RPAREN)
pass
elif token in [6]:
localctx = MathExprParser.AtanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 246
self.match(MathExprParser.ATAN)
self.state = 247
self.match(MathExprParser.LPAREN)
self.state = 248
self.expr()
self.state = 249
self.match(MathExprParser.RPAREN)
pass
elif token in [8]:
localctx = MathExprParser.SinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 251
self.match(MathExprParser.SINH)
self.state = 252
self.match(MathExprParser.LPAREN)
self.state = 253
self.expr()
self.state = 254
self.match(MathExprParser.RPAREN)
pass
elif token in [9]:
localctx = MathExprParser.CoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 256
self.match(MathExprParser.COSH)
self.state = 257
self.match(MathExprParser.LPAREN)
self.state = 258
self.expr()
self.state = 259
self.match(MathExprParser.RPAREN)
pass
elif token in [10]:
localctx = MathExprParser.TanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 261
self.match(MathExprParser.TANH)
self.state = 262
self.match(MathExprParser.LPAREN)
self.state = 263
self.expr()
self.state = 264
self.match(MathExprParser.RPAREN)
pass
elif token in [11]:
localctx = MathExprParser.AsinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 266
self.match(MathExprParser.ASINH)
self.state = 267
self.match(MathExprParser.LPAREN)
self.state = 268
self.expr()
self.state = 269
self.match(MathExprParser.RPAREN)
pass
elif token in [12]:
localctx = MathExprParser.AcoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 271
self.match(MathExprParser.ACOSH)
self.state = 272
self.match(MathExprParser.LPAREN)
self.state = 273
self.expr()
self.state = 274
self.match(MathExprParser.RPAREN)
pass
elif token in [13]:
localctx = MathExprParser.AtanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 276
self.match(MathExprParser.ATANH)
self.state = 277
self.match(MathExprParser.LPAREN)
self.state = 278
self.expr()
self.state = 279
self.match(MathExprParser.RPAREN)
pass
elif token in [14]:
localctx = MathExprParser.AbsFuncContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 281
self.match(MathExprParser.ABS)
self.state = 282
self.match(MathExprParser.LPAREN)
self.state = 283
self.expr()
self.state = 284
self.match(MathExprParser.RPAREN)
pass
elif token in [15]:
localctx = MathExprParser.SqrtFuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 286
self.match(MathExprParser.SQRT)
self.state = 287
self.match(MathExprParser.LPAREN)
self.state = 288
self.expr()
self.state = 289
self.match(MathExprParser.RPAREN)
pass
elif token in [16]:
localctx = MathExprParser.LnFuncContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 291
self.match(MathExprParser.LN)
self.state = 292
self.match(MathExprParser.LPAREN)
self.state = 293
self.expr()
self.state = 294
self.match(MathExprParser.RPAREN)
pass
elif token in [17]:
localctx = MathExprParser.LogFuncContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 296
self.match(MathExprParser.LOG)
self.state = 297
self.match(MathExprParser.LPAREN)
self.state = 298
self.expr()
self.state = 299
self.match(MathExprParser.RPAREN)
pass
elif token in [18]:
localctx = MathExprParser.ExpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 301
self.match(MathExprParser.EXP)
self.state = 302
self.match(MathExprParser.LPAREN)
self.state = 303
self.expr()
self.state = 304
self.match(MathExprParser.RPAREN)
pass
elif token in [23]:
localctx = MathExprParser.TNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 306
self.match(MathExprParser.TNORM)
self.state = 307
self.match(MathExprParser.LPAREN)
self.state = 308
self.expr()
self.state = 309
self.match(MathExprParser.RPAREN)
pass
elif token in [24]:
localctx = MathExprParser.SNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 19)
self.state = 311
self.match(MathExprParser.SNORM)
self.state = 312
self.match(MathExprParser.LPAREN)
self.state = 313
self.expr()
self.state = 314
self.match(MathExprParser.RPAREN)
pass
elif token in [25]:
localctx = MathExprParser.FloorFuncContext(self, localctx)
self.enterOuterAlt(localctx, 20)
self.state = 316
self.match(MathExprParser.FLOOR)
self.state = 317
self.match(MathExprParser.LPAREN)
self.state = 318
self.expr()
self.state = 319
self.match(MathExprParser.RPAREN)
pass
elif token in [26]:
localctx = MathExprParser.CeilFuncContext(self, localctx)
self.enterOuterAlt(localctx, 21)
self.state = 321
self.match(MathExprParser.CEIL)
self.state = 322
self.match(MathExprParser.LPAREN)
self.state = 323
self.expr()
self.state = 324
self.match(MathExprParser.RPAREN)
pass
elif token in [27]:
localctx = MathExprParser.RoundFuncContext(self, localctx)
self.enterOuterAlt(localctx, 22)
self.state = 326
self.match(MathExprParser.ROUND)
self.state = 327
self.match(MathExprParser.LPAREN)
self.state = 328
self.expr()
self.state = 329
self.match(MathExprParser.RPAREN)
pass
elif token in [28]:
localctx = MathExprParser.GammaFuncContext(self, localctx)
self.enterOuterAlt(localctx, 23)
self.state = 331
self.match(MathExprParser.GAMMA)
self.state = 332
self.match(MathExprParser.LPAREN)
self.state = 333
self.expr()
self.state = 334
self.match(MathExprParser.RPAREN)
pass
elif token in [30]:
localctx = MathExprParser.SigmoidFuncContext(self, localctx)
self.enterOuterAlt(localctx, 24)
self.state = 336
self.match(MathExprParser.SIGM)
self.state = 337
self.match(MathExprParser.LPAREN)
self.state = 338
self.expr()
self.state = 339
self.match(MathExprParser.RPAREN)
pass
elif token in [32]:
localctx = MathExprParser.SfftFuncContext(self, localctx)
self.enterOuterAlt(localctx, 25)
self.state = 341
self.match(MathExprParser.SFFT)
self.state = 342
self.match(MathExprParser.LPAREN)
self.state = 343
self.expr()
self.state = 344
self.match(MathExprParser.RPAREN)
pass
elif token in [33]:
localctx = MathExprParser.SifftFuncContext(self, localctx)
self.enterOuterAlt(localctx, 26)
self.state = 346
self.match(MathExprParser.SIFFT)
self.state = 347
self.match(MathExprParser.LPAREN)
self.state = 348
self.expr()
self.state = 349
self.match(MathExprParser.RPAREN)
pass
elif token in [34]:
localctx = MathExprParser.AnglFuncContext(self, localctx)
self.enterOuterAlt(localctx, 27)
self.state = 351
self.match(MathExprParser.ANGL)
self.state = 352
self.match(MathExprParser.LPAREN)
self.state = 353
self.expr()
self.state = 354
self.match(MathExprParser.RPAREN)
pass
elif token in [35]:
localctx = MathExprParser.PrintFuncContext(self, localctx)
self.enterOuterAlt(localctx, 28)
self.state = 356
self.match(MathExprParser.PRNT)
self.state = 357
self.match(MathExprParser.LPAREN)
self.state = 358
self.expr()
self.state = 359
self.match(MathExprParser.RPAREN)
pass
elif token in [41]:
localctx = MathExprParser.FractFuncContext(self, localctx)
self.enterOuterAlt(localctx, 29)
self.state = 361
self.match(MathExprParser.FRACT)
self.state = 362
self.match(MathExprParser.LPAREN)
self.state = 363
self.expr()
self.state = 364
self.match(MathExprParser.RPAREN)
pass
elif token in [42]:
localctx = MathExprParser.ReluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 30)
self.state = 366
self.match(MathExprParser.RELU)
self.state = 367
self.match(MathExprParser.LPAREN)
self.state = 368
self.expr()
self.state = 369
self.match(MathExprParser.RPAREN)
pass
elif token in [43]:
localctx = MathExprParser.SoftplusFuncContext(self, localctx)
self.enterOuterAlt(localctx, 31)
self.state = 371
self.match(MathExprParser.SOFTPLUS)
self.state = 372
self.match(MathExprParser.LPAREN)
self.state = 373
self.expr()
self.state = 374
self.match(MathExprParser.RPAREN)
pass
elif token in [44]:
localctx = MathExprParser.GeluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 32)
self.state = 376
self.match(MathExprParser.GELU)
self.state = 377
self.match(MathExprParser.LPAREN)
self.state = 378
self.expr()
self.state = 379
self.match(MathExprParser.RPAREN)
pass
elif token in [45]:
localctx = MathExprParser.SignFuncContext(self, localctx)
self.enterOuterAlt(localctx, 33)
self.state = 381
self.match(MathExprParser.SIGN)
self.state = 382
self.match(MathExprParser.LPAREN)
self.state = 383
self.expr()
self.state = 384
self.match(MathExprParser.RPAREN)
pass
elif token in [36]:
localctx = MathExprParser.PrintShapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 34)
self.state = 386
self.match(MathExprParser.PRINT_SHAPE)
self.state = 387
self.match(MathExprParser.LPAREN)
self.state = 388
self.expr()
self.state = 389
self.match(MathExprParser.RPAREN)
pass
elif token in [55]:
localctx = MathExprParser.PinvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 35)
self.state = 391
self.match(MathExprParser.PINV)
self.state = 392
self.match(MathExprParser.LPAREN)
self.state = 393
self.expr()
self.state = 394
self.match(MathExprParser.RPAREN)
pass
elif token in [56]:
localctx = MathExprParser.SumFuncContext(self, localctx)
self.enterOuterAlt(localctx, 36)
self.state = 396
self.match(MathExprParser.SUM)
self.state = 397
self.match(MathExprParser.LPAREN)
self.state = 398
self.expr()
self.state = 399
self.match(MathExprParser.RPAREN)
pass
elif token in [57]:
localctx = MathExprParser.MeanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 37)
self.state = 401
self.match(MathExprParser.MEAN)
self.state = 402
self.match(MathExprParser.LPAREN)
self.state = 403
self.expr()
self.state = 404
self.match(MathExprParser.RPAREN)
pass
elif token in [58]:
localctx = MathExprParser.StdFuncContext(self, localctx)
self.enterOuterAlt(localctx, 38)
self.state = 406
self.match(MathExprParser.STD)
self.state = 407
self.match(MathExprParser.LPAREN)
self.state = 408
self.expr()
self.state = 409
self.match(MathExprParser.RPAREN)
pass
elif token in [59]:
localctx = MathExprParser.VarFuncContext(self, localctx)
self.enterOuterAlt(localctx, 39)
self.state = 411
self.match(MathExprParser.VAR)
self.state = 412
self.match(MathExprParser.LPAREN)
self.state = 413
self.expr()
self.state = 414
self.match(MathExprParser.RPAREN)
pass
elif token in [75]:
localctx = MathExprParser.SortFuncContext(self, localctx)
self.enterOuterAlt(localctx, 40)
self.state = 416
self.match(MathExprParser.SORT)
self.state = 417
self.match(MathExprParser.LPAREN)
self.state = 418
self.expr()
self.state = 419
self.match(MathExprParser.RPAREN)
pass
elif token in [65]:
localctx = MathExprParser.NoiseFuncContext(self, localctx)
self.enterOuterAlt(localctx, 41)
self.state = 421
self.match(MathExprParser.NOISE)
self.state = 422
self.match(MathExprParser.LPAREN)
self.state = 423
self.expr()
self.state = 424
self.match(MathExprParser.RPAREN)
pass
elif token in [66]:
localctx = MathExprParser.RandFuncContext(self, localctx)
self.enterOuterAlt(localctx, 42)
self.state = 426
self.match(MathExprParser.RAND)
self.state = 427
self.match(MathExprParser.LPAREN)
self.state = 428
self.expr()
self.state = 429
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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPercentileFunc" ):
return visitor.visitPercentileFunc(self)
else:
return visitor.visitChildren(self)
class ExponentialFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
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):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitExponentialFunc" ):
return visitor.visitExponentialFunc(self)
else:
return visitor.visitChildren(self)
class PoissonFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
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):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPoissonFunc" ):
return visitor.visitPoissonFunc(self)
else:
return visitor.visitChildren(self)
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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCovFunc" ):
return visitor.visitCovFunc(self)
else:
return visitor.visitChildren(self)
class BernoulliFuncContext(Func2Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func2Context
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):
return self.getToken(MathExprParser.COMMA, 0)
def RPAREN(self):
return self.getToken(MathExprParser.RPAREN, 0)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBernoulliFunc" ):
return visitor.visitBernoulliFunc(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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitQuantileFunc" ):
return visitor.visitQuantileFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitBotkFunc" ):
return visitor.visitBotkFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTMaxFunc" ):
return visitor.visitTMaxFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCossimFunc" ):
return visitor.visitCossimFunc(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 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 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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFlipFunc" ):
return visitor.visitFlipFunc(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 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 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, 30, self.RULE_func2)
try:
self.state = 559
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [29]:
localctx = MathExprParser.PowFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 433
self.match(MathExprParser.POWE)
self.state = 434
self.match(MathExprParser.LPAREN)
self.state = 435
self.expr()
self.state = 436
self.match(MathExprParser.COMMA)
self.state = 437
self.expr()
self.state = 438
self.match(MathExprParser.RPAREN)
pass
elif token in [7]:
localctx = MathExprParser.Atan2FuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 440
self.match(MathExprParser.ATAN2)
self.state = 441
self.match(MathExprParser.LPAREN)
self.state = 442
self.expr()
self.state = 443
self.match(MathExprParser.COMMA)
self.state = 444
self.expr()
self.state = 445
self.match(MathExprParser.RPAREN)
pass
elif token in [21]:
localctx = MathExprParser.TMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 447
self.match(MathExprParser.TMIN)
self.state = 448
self.match(MathExprParser.LPAREN)
self.state = 449
self.expr()
self.state = 450
self.match(MathExprParser.COMMA)
self.state = 451
self.expr()
self.state = 452
self.match(MathExprParser.RPAREN)
pass
elif token in [22]:
localctx = MathExprParser.TMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 454
self.match(MathExprParser.TMAX)
self.state = 455
self.match(MathExprParser.LPAREN)
self.state = 456
self.expr()
self.state = 457
self.match(MathExprParser.COMMA)
self.state = 458
self.expr()
self.state = 459
self.match(MathExprParser.RPAREN)
pass
elif token in [39]:
localctx = MathExprParser.StepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 461
self.match(MathExprParser.STEP)
self.state = 462
self.match(MathExprParser.LPAREN)
self.state = 463
self.expr()
self.state = 464
self.match(MathExprParser.COMMA)
self.state = 465
self.expr()
self.state = 466
self.match(MathExprParser.RPAREN)
pass
elif token in [53]:
localctx = MathExprParser.TopkFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 468
self.match(MathExprParser.TOPK)
self.state = 469
self.match(MathExprParser.LPAREN)
self.state = 470
self.expr()
self.state = 471
self.match(MathExprParser.COMMA)
self.state = 472
self.expr()
self.state = 473
self.match(MathExprParser.RPAREN)
pass
elif token in [54]:
localctx = MathExprParser.BotkFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 475
self.match(MathExprParser.BOTK)
self.state = 476
self.match(MathExprParser.LPAREN)
self.state = 477
self.expr()
self.state = 478
self.match(MathExprParser.COMMA)
self.state = 479
self.expr()
self.state = 480
self.match(MathExprParser.RPAREN)
pass
elif token in [60]:
localctx = MathExprParser.QuartileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 482
self.match(MathExprParser.QUARTILE)
self.state = 483
self.match(MathExprParser.LPAREN)
self.state = 484
self.expr()
self.state = 485
self.match(MathExprParser.COMMA)
self.state = 486
self.expr()
self.state = 487
self.match(MathExprParser.RPAREN)
pass
elif token in [61]:
localctx = MathExprParser.PercentileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 489
self.match(MathExprParser.PERCENTILE)
self.state = 490
self.match(MathExprParser.LPAREN)
self.state = 491
self.expr()
self.state = 492
self.match(MathExprParser.COMMA)
self.state = 493
self.expr()
self.state = 494
self.match(MathExprParser.RPAREN)
pass
elif token in [62]:
localctx = MathExprParser.QuantileFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 496
self.match(MathExprParser.QUANTILE)
self.state = 497
self.match(MathExprParser.LPAREN)
self.state = 498
self.expr()
self.state = 499
self.match(MathExprParser.COMMA)
self.state = 500
self.expr()
self.state = 501
self.match(MathExprParser.RPAREN)
pass
elif token in [63]:
localctx = MathExprParser.DotFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 503
self.match(MathExprParser.DOT)
self.state = 504
self.match(MathExprParser.LPAREN)
self.state = 505
self.expr()
self.state = 506
self.match(MathExprParser.COMMA)
self.state = 507
self.expr()
self.state = 508
self.match(MathExprParser.RPAREN)
pass
elif token in [72]:
localctx = MathExprParser.CossimFuncContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 510
self.match(MathExprParser.COSSIM)
self.state = 511
self.match(MathExprParser.LPAREN)
self.state = 512
self.expr()
self.state = 513
self.match(MathExprParser.COMMA)
self.state = 514
self.expr()
self.state = 515
self.match(MathExprParser.RPAREN)
pass
elif token in [73]:
localctx = MathExprParser.FlipFuncContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 517
self.match(MathExprParser.FLIP)
self.state = 518
self.match(MathExprParser.LPAREN)
self.state = 519
self.expr()
self.state = 520
self.match(MathExprParser.COMMA)
self.state = 521
self.expr()
self.state = 522
self.match(MathExprParser.RPAREN)
pass
elif token in [74]:
localctx = MathExprParser.CovFuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 524
self.match(MathExprParser.COV)
self.state = 525
self.match(MathExprParser.LPAREN)
self.state = 526
self.expr()
self.state = 527
self.match(MathExprParser.COMMA)
self.state = 528
self.expr()
self.state = 529
self.match(MathExprParser.RPAREN)
pass
elif token in [76]:
localctx = MathExprParser.AppendFuncContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 531
self.match(MathExprParser.APPEND)
self.state = 532
self.match(MathExprParser.LPAREN)
self.state = 533
self.expr()
self.state = 534
self.match(MathExprParser.COMMA)
self.state = 535
self.expr()
self.state = 536
self.match(MathExprParser.RPAREN)
pass
elif token in [68]:
localctx = MathExprParser.ExponentialFuncContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 538
self.match(MathExprParser.EXPONENTIAL)
self.state = 539
self.match(MathExprParser.LPAREN)
self.state = 540
self.expr()
self.state = 541
self.match(MathExprParser.COMMA)
self.state = 542
self.expr()
self.state = 543
self.match(MathExprParser.RPAREN)
pass
elif token in [70]:
localctx = MathExprParser.BernoulliFuncContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 545
self.match(MathExprParser.BERNOULLI)
self.state = 546
self.match(MathExprParser.LPAREN)
self.state = 547
self.expr()
self.state = 548
self.match(MathExprParser.COMMA)
self.state = 549
self.expr()
self.state = 550
self.match(MathExprParser.RPAREN)
pass
elif token in [71]:
localctx = MathExprParser.PoissonFuncContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 552
self.match(MathExprParser.POISSON)
self.state = 553
self.match(MathExprParser.LPAREN)
self.state = 554
self.expr()
self.state = 555
self.match(MathExprParser.COMMA)
self.state = 556
self.expr()
self.state = 557
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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitMomentFunc" ):
return visitor.visitMomentFunc(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 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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitSmoothstepFunc" ):
return visitor.visitSmoothstepFunc(self)
else:
return visitor.visitChildren(self)
class CauchyFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitCauchyFunc" ):
return visitor.visitCauchyFunc(self)
else:
return visitor.visitChildren(self)
class LogNormalFuncContext(Func3Context):
def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context
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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitLogNormalFunc" ):
return visitor.visitLogNormalFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitRangeFunc" ):
return visitor.visitRangeFunc(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 accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitClampFunc" ):
return visitor.visitClampFunc(self)
else:
return visitor.visitChildren(self)
def func3(self):
localctx = MathExprParser.Func3Context(self, self._ctx, self.state)
self.enterRule(localctx, 32, self.RULE_func3)
try:
self.state = 624
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [31]:
localctx = MathExprParser.ClampFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 561
self.match(MathExprParser.CLAMP)
self.state = 562
self.match(MathExprParser.LPAREN)
self.state = 563
self.expr()
self.state = 564
self.match(MathExprParser.COMMA)
self.state = 565
self.expr()
self.state = 566
self.match(MathExprParser.COMMA)
self.state = 567
self.expr()
self.state = 568
self.match(MathExprParser.RPAREN)
pass
elif token in [38]:
localctx = MathExprParser.LerpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 570
self.match(MathExprParser.LERP)
self.state = 571
self.match(MathExprParser.LPAREN)
self.state = 572
self.expr()
self.state = 573
self.match(MathExprParser.COMMA)
self.state = 574
self.expr()
self.state = 575
self.match(MathExprParser.COMMA)
self.state = 576
self.expr()
self.state = 577
self.match(MathExprParser.RPAREN)
pass
elif token in [40]:
localctx = MathExprParser.SmoothstepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 579
self.match(MathExprParser.SMOOTHSTEP)
self.state = 580
self.match(MathExprParser.LPAREN)
self.state = 581
self.expr()
self.state = 582
self.match(MathExprParser.COMMA)
self.state = 583
self.expr()
self.state = 584
self.match(MathExprParser.COMMA)
self.state = 585
self.expr()
self.state = 586
self.match(MathExprParser.RPAREN)
pass
elif token in [52]:
localctx = MathExprParser.RangeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 588
self.match(MathExprParser.RANGE)
self.state = 589
self.match(MathExprParser.LPAREN)
self.state = 590
self.expr()
self.state = 591
self.match(MathExprParser.COMMA)
self.state = 592
self.expr()
self.state = 593
self.match(MathExprParser.COMMA)
self.state = 594
self.expr()
self.state = 595
self.match(MathExprParser.RPAREN)
pass
elif token in [64]:
localctx = MathExprParser.MomentFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 597
self.match(MathExprParser.MOMENT)
self.state = 598
self.match(MathExprParser.LPAREN)
self.state = 599
self.expr()
self.state = 600
self.match(MathExprParser.COMMA)
self.state = 601
self.expr()
self.state = 602
self.match(MathExprParser.COMMA)
self.state = 603
self.expr()
self.state = 604
self.match(MathExprParser.RPAREN)
pass
elif token in [67]:
localctx = MathExprParser.CauchyFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 606
self.match(MathExprParser.CAUCHY)
self.state = 607
self.match(MathExprParser.LPAREN)
self.state = 608
self.expr()
self.state = 609
self.match(MathExprParser.COMMA)
self.state = 610
self.expr()
self.state = 611
self.match(MathExprParser.COMMA)
self.state = 612
self.expr()
self.state = 613
self.match(MathExprParser.RPAREN)
pass
elif token in [69]:
localctx = MathExprParser.LogNormalFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 615
self.match(MathExprParser.LOGNORMAL)
self.state = 616
self.match(MathExprParser.LPAREN)
self.state = 617
self.expr()
self.state = 618
self.match(MathExprParser.COMMA)
self.state = 619
self.expr()
self.state = 620
self.match(MathExprParser.COMMA)
self.state = 621
self.expr()
self.state = 622
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 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 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 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, 34, self.RULE_func4)
try:
self.state = 648
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [49]:
localctx = MathExprParser.SwapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 626
self.match(MathExprParser.SWAP)
self.state = 627
self.match(MathExprParser.LPAREN)
self.state = 628
self.expr()
self.state = 629
self.match(MathExprParser.COMMA)
self.state = 630
self.expr()
self.state = 631
self.match(MathExprParser.COMMA)
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 [37]:
localctx = MathExprParser.NvlFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 637
self.match(MathExprParser.NVL)
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.COMMA)
self.state = 643
self.expr()
self.state = 644
self.match(MathExprParser.COMMA)
self.state = 645
self.expr()
self.state = 646
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 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 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 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 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 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 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 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 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, 36, self.RULE_funcN)
self._la = 0 # Token type
try:
self.state = 721
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [19]:
localctx = MathExprParser.SMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 650
self.match(MathExprParser.SMIN)
self.state = 651
self.match(MathExprParser.LPAREN)
self.state = 652
self.expr()
self.state = 657
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 653
self.match(MathExprParser.COMMA)
self.state = 654
self.expr()
self.state = 659
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 660
self.match(MathExprParser.RPAREN)
pass
elif token in [20]:
localctx = MathExprParser.SMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 662
self.match(MathExprParser.SMAX)
self.state = 663
self.match(MathExprParser.LPAREN)
self.state = 664
self.expr()
self.state = 669
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==93:
self.state = 665
self.match(MathExprParser.COMMA)
self.state = 666
self.expr()
self.state = 671
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 672
self.match(MathExprParser.RPAREN)
pass
elif token in [46]:
localctx = MathExprParser.MapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 674
self.match(MathExprParser.MAP)
self.state = 675
self.match(MathExprParser.LPAREN)
self.state = 676
self.expr()
self.state = 679
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 677
self.match(MathExprParser.COMMA)
self.state = 678
self.expr()
self.state = 681
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==93):
break
self.state = 683
self.match(MathExprParser.RPAREN)
pass
elif token in [47]:
localctx = MathExprParser.EzConvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 685
self.match(MathExprParser.EZCONV)
self.state = 686
self.match(MathExprParser.LPAREN)
self.state = 687
self.expr()
self.state = 690
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 688
self.match(MathExprParser.COMMA)
self.state = 689
self.expr()
self.state = 692
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==93):
break
self.state = 694
self.match(MathExprParser.RPAREN)
pass
elif token in [48]:
localctx = MathExprParser.ConvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 696
self.match(MathExprParser.CONV)
self.state = 697
self.match(MathExprParser.LPAREN)
self.state = 698
self.expr()
self.state = 701
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 699
self.match(MathExprParser.COMMA)
self.state = 700
self.expr()
self.state = 703
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==93):
break
self.state = 705
self.match(MathExprParser.RPAREN)
pass
elif token in [50]:
localctx = MathExprParser.PermuteFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 707
self.match(MathExprParser.PERM)
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 [51]:
localctx = MathExprParser.ReshapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 714
self.match(MathExprParser.RESHAPE)
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
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[6] = self.compExpr_sempred
self._predicates[7] = self.addExpr_sempred
self._predicates[8] = self.mulExpr_sempred
self._predicates[11] = 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)