Files
mcDandy-more_math/more_math/Parser/MathExprParser.py
T

8012 lines
186 KiB
Python

# Generated from ./MathExpr.g4 by ANTLR 4.13.2
# encoding: utf-8
from antlr4 import *
import sys
if sys.version_info[1] > 5:
from typing import TextIO
else:
from typing.io import TextIO
def serializedATN():
return [
4,
1,
73,
454,
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,
1,
0,
1,
0,
3,
0,
27,
8,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
5,
1,
50,
8,
1,
10,
1,
12,
1,
53,
9,
1,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
5,
2,
64,
8,
2,
10,
2,
12,
2,
67,
9,
2,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
1,
3,
5,
3,
81,
8,
3,
10,
3,
12,
3,
84,
9,
3,
1,
4,
1,
4,
1,
4,
1,
4,
1,
4,
3,
4,
91,
8,
4,
1,
5,
1,
5,
1,
5,
1,
5,
1,
5,
3,
5,
98,
8,
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,
5,
6,
120,
8,
6,
10,
6,
12,
6,
123,
9,
6,
1,
6,
1,
6,
3,
6,
127,
8,
6,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
1,
7,
3,
7,
304,
8,
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,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
1,
8,
3,
8,
341,
8,
8,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
3,
9,
379,
8,
9,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
5,
11,
397,
8,
11,
10,
11,
12,
11,
400,
9,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
5,
11,
409,
8,
11,
10,
11,
12,
11,
412,
9,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
4,
11,
421,
8,
11,
11,
11,
12,
11,
422,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
4,
11,
432,
8,
11,
11,
11,
12,
11,
433,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
1,
11,
3,
11,
452,
8,
11,
1,
11,
0,
3,
2,
4,
6,
12,
0,
2,
4,
6,
8,
10,
12,
14,
16,
18,
20,
22,
0,
0,
517,
0,
26,
1,
0,
0,
0,
2,
28,
1,
0,
0,
0,
4,
54,
1,
0,
0,
0,
6,
68,
1,
0,
0,
0,
8,
90,
1,
0,
0,
0,
10,
97,
1,
0,
0,
0,
12,
126,
1,
0,
0,
0,
14,
303,
1,
0,
0,
0,
16,
340,
1,
0,
0,
0,
18,
378,
1,
0,
0,
0,
20,
380,
1,
0,
0,
0,
22,
451,
1,
0,
0,
0,
24,
27,
3,
12,
6,
0,
25,
27,
3,
2,
1,
0,
26,
24,
1,
0,
0,
0,
26,
25,
1,
0,
0,
0,
27,
1,
1,
0,
0,
0,
28,
29,
6,
1,
-1,
0,
29,
30,
3,
4,
2,
0,
30,
51,
1,
0,
0,
0,
31,
32,
10,
7,
0,
0,
32,
33,
5,
64,
0,
0,
33,
50,
3,
4,
2,
0,
34,
35,
10,
6,
0,
0,
35,
36,
5,
63,
0,
0,
36,
50,
3,
4,
2,
0,
37,
38,
10,
5,
0,
0,
38,
39,
5,
66,
0,
0,
39,
50,
3,
4,
2,
0,
40,
41,
10,
4,
0,
0,
41,
42,
5,
65,
0,
0,
42,
50,
3,
4,
2,
0,
43,
44,
10,
3,
0,
0,
44,
45,
5,
67,
0,
0,
45,
50,
3,
4,
2,
0,
46,
47,
10,
2,
0,
0,
47,
48,
5,
68,
0,
0,
48,
50,
3,
4,
2,
0,
49,
31,
1,
0,
0,
0,
49,
34,
1,
0,
0,
0,
49,
37,
1,
0,
0,
0,
49,
40,
1,
0,
0,
0,
49,
43,
1,
0,
0,
0,
49,
46,
1,
0,
0,
0,
50,
53,
1,
0,
0,
0,
51,
49,
1,
0,
0,
0,
51,
52,
1,
0,
0,
0,
52,
3,
1,
0,
0,
0,
53,
51,
1,
0,
0,
0,
54,
55,
6,
2,
-1,
0,
55,
56,
3,
6,
3,
0,
56,
65,
1,
0,
0,
0,
57,
58,
10,
3,
0,
0,
58,
59,
5,
57,
0,
0,
59,
64,
3,
6,
3,
0,
60,
61,
10,
2,
0,
0,
61,
62,
5,
58,
0,
0,
62,
64,
3,
6,
3,
0,
63,
57,
1,
0,
0,
0,
63,
60,
1,
0,
0,
0,
64,
67,
1,
0,
0,
0,
65,
63,
1,
0,
0,
0,
65,
66,
1,
0,
0,
0,
66,
5,
1,
0,
0,
0,
67,
65,
1,
0,
0,
0,
68,
69,
6,
3,
-1,
0,
69,
70,
3,
8,
4,
0,
70,
82,
1,
0,
0,
0,
71,
72,
10,
4,
0,
0,
72,
73,
5,
59,
0,
0,
73,
81,
3,
8,
4,
0,
74,
75,
10,
3,
0,
0,
75,
76,
5,
60,
0,
0,
76,
81,
3,
8,
4,
0,
77,
78,
10,
2,
0,
0,
78,
79,
5,
61,
0,
0,
79,
81,
3,
8,
4,
0,
80,
71,
1,
0,
0,
0,
80,
74,
1,
0,
0,
0,
80,
77,
1,
0,
0,
0,
81,
84,
1,
0,
0,
0,
82,
80,
1,
0,
0,
0,
82,
83,
1,
0,
0,
0,
83,
7,
1,
0,
0,
0,
84,
82,
1,
0,
0,
0,
85,
86,
3,
10,
5,
0,
86,
87,
5,
62,
0,
0,
87,
88,
3,
8,
4,
0,
88,
91,
1,
0,
0,
0,
89,
91,
3,
10,
5,
0,
90,
85,
1,
0,
0,
0,
90,
89,
1,
0,
0,
0,
91,
9,
1,
0,
0,
0,
92,
93,
5,
57,
0,
0,
93,
98,
3,
10,
5,
0,
94,
95,
5,
58,
0,
0,
95,
98,
3,
10,
5,
0,
96,
98,
3,
12,
6,
0,
97,
92,
1,
0,
0,
0,
97,
94,
1,
0,
0,
0,
97,
96,
1,
0,
0,
0,
98,
11,
1,
0,
0,
0,
99,
127,
3,
14,
7,
0,
100,
127,
3,
16,
8,
0,
101,
127,
3,
18,
9,
0,
102,
127,
3,
20,
10,
0,
103,
127,
3,
22,
11,
0,
104,
127,
5,
72,
0,
0,
105,
127,
5,
71,
0,
0,
106,
127,
5,
70,
0,
0,
107,
108,
5,
1,
0,
0,
108,
109,
3,
0,
0,
0,
109,
110,
5,
2,
0,
0,
110,
127,
1,
0,
0,
0,
111,
112,
5,
69,
0,
0,
112,
113,
3,
0,
0,
0,
113,
114,
5,
69,
0,
0,
114,
127,
1,
0,
0,
0,
115,
116,
5,
3,
0,
0,
116,
121,
3,
0,
0,
0,
117,
118,
5,
4,
0,
0,
118,
120,
3,
0,
0,
0,
119,
117,
1,
0,
0,
0,
120,
123,
1,
0,
0,
0,
121,
119,
1,
0,
0,
0,
121,
122,
1,
0,
0,
0,
122,
124,
1,
0,
0,
0,
123,
121,
1,
0,
0,
0,
124,
125,
5,
5,
0,
0,
125,
127,
1,
0,
0,
0,
126,
99,
1,
0,
0,
0,
126,
100,
1,
0,
0,
0,
126,
101,
1,
0,
0,
0,
126,
102,
1,
0,
0,
0,
126,
103,
1,
0,
0,
0,
126,
104,
1,
0,
0,
0,
126,
105,
1,
0,
0,
0,
126,
106,
1,
0,
0,
0,
126,
107,
1,
0,
0,
0,
126,
111,
1,
0,
0,
0,
126,
115,
1,
0,
0,
0,
127,
13,
1,
0,
0,
0,
128,
129,
5,
6,
0,
0,
129,
130,
5,
1,
0,
0,
130,
131,
3,
0,
0,
0,
131,
132,
5,
2,
0,
0,
132,
304,
1,
0,
0,
0,
133,
134,
5,
7,
0,
0,
134,
135,
5,
1,
0,
0,
135,
136,
3,
0,
0,
0,
136,
137,
5,
2,
0,
0,
137,
304,
1,
0,
0,
0,
138,
139,
5,
8,
0,
0,
139,
140,
5,
1,
0,
0,
140,
141,
3,
0,
0,
0,
141,
142,
5,
2,
0,
0,
142,
304,
1,
0,
0,
0,
143,
144,
5,
9,
0,
0,
144,
145,
5,
1,
0,
0,
145,
146,
3,
0,
0,
0,
146,
147,
5,
2,
0,
0,
147,
304,
1,
0,
0,
0,
148,
149,
5,
10,
0,
0,
149,
150,
5,
1,
0,
0,
150,
151,
3,
0,
0,
0,
151,
152,
5,
2,
0,
0,
152,
304,
1,
0,
0,
0,
153,
154,
5,
11,
0,
0,
154,
155,
5,
1,
0,
0,
155,
156,
3,
0,
0,
0,
156,
157,
5,
2,
0,
0,
157,
304,
1,
0,
0,
0,
158,
159,
5,
13,
0,
0,
159,
160,
5,
1,
0,
0,
160,
161,
3,
0,
0,
0,
161,
162,
5,
2,
0,
0,
162,
304,
1,
0,
0,
0,
163,
164,
5,
14,
0,
0,
164,
165,
5,
1,
0,
0,
165,
166,
3,
0,
0,
0,
166,
167,
5,
2,
0,
0,
167,
304,
1,
0,
0,
0,
168,
169,
5,
15,
0,
0,
169,
170,
5,
1,
0,
0,
170,
171,
3,
0,
0,
0,
171,
172,
5,
2,
0,
0,
172,
304,
1,
0,
0,
0,
173,
174,
5,
16,
0,
0,
174,
175,
5,
1,
0,
0,
175,
176,
3,
0,
0,
0,
176,
177,
5,
2,
0,
0,
177,
304,
1,
0,
0,
0,
178,
179,
5,
17,
0,
0,
179,
180,
5,
1,
0,
0,
180,
181,
3,
0,
0,
0,
181,
182,
5,
2,
0,
0,
182,
304,
1,
0,
0,
0,
183,
184,
5,
18,
0,
0,
184,
185,
5,
1,
0,
0,
185,
186,
3,
0,
0,
0,
186,
187,
5,
2,
0,
0,
187,
304,
1,
0,
0,
0,
188,
189,
5,
19,
0,
0,
189,
190,
5,
1,
0,
0,
190,
191,
3,
0,
0,
0,
191,
192,
5,
2,
0,
0,
192,
304,
1,
0,
0,
0,
193,
194,
5,
20,
0,
0,
194,
195,
5,
1,
0,
0,
195,
196,
3,
0,
0,
0,
196,
197,
5,
2,
0,
0,
197,
304,
1,
0,
0,
0,
198,
199,
5,
21,
0,
0,
199,
200,
5,
1,
0,
0,
200,
201,
3,
0,
0,
0,
201,
202,
5,
2,
0,
0,
202,
304,
1,
0,
0,
0,
203,
204,
5,
22,
0,
0,
204,
205,
5,
1,
0,
0,
205,
206,
3,
0,
0,
0,
206,
207,
5,
2,
0,
0,
207,
304,
1,
0,
0,
0,
208,
209,
5,
23,
0,
0,
209,
210,
5,
1,
0,
0,
210,
211,
3,
0,
0,
0,
211,
212,
5,
2,
0,
0,
212,
304,
1,
0,
0,
0,
213,
214,
5,
28,
0,
0,
214,
215,
5,
1,
0,
0,
215,
216,
3,
0,
0,
0,
216,
217,
5,
2,
0,
0,
217,
304,
1,
0,
0,
0,
218,
219,
5,
29,
0,
0,
219,
220,
5,
1,
0,
0,
220,
221,
3,
0,
0,
0,
221,
222,
5,
2,
0,
0,
222,
304,
1,
0,
0,
0,
223,
224,
5,
30,
0,
0,
224,
225,
5,
1,
0,
0,
225,
226,
3,
0,
0,
0,
226,
227,
5,
2,
0,
0,
227,
304,
1,
0,
0,
0,
228,
229,
5,
31,
0,
0,
229,
230,
5,
1,
0,
0,
230,
231,
3,
0,
0,
0,
231,
232,
5,
2,
0,
0,
232,
304,
1,
0,
0,
0,
233,
234,
5,
32,
0,
0,
234,
235,
5,
1,
0,
0,
235,
236,
3,
0,
0,
0,
236,
237,
5,
2,
0,
0,
237,
304,
1,
0,
0,
0,
238,
239,
5,
33,
0,
0,
239,
240,
5,
1,
0,
0,
240,
241,
3,
0,
0,
0,
241,
242,
5,
2,
0,
0,
242,
304,
1,
0,
0,
0,
243,
244,
5,
35,
0,
0,
244,
245,
5,
1,
0,
0,
245,
246,
3,
0,
0,
0,
246,
247,
5,
2,
0,
0,
247,
304,
1,
0,
0,
0,
248,
249,
5,
37,
0,
0,
249,
250,
5,
1,
0,
0,
250,
251,
3,
0,
0,
0,
251,
252,
5,
2,
0,
0,
252,
304,
1,
0,
0,
0,
253,
254,
5,
38,
0,
0,
254,
255,
5,
1,
0,
0,
255,
256,
3,
0,
0,
0,
256,
257,
5,
2,
0,
0,
257,
304,
1,
0,
0,
0,
258,
259,
5,
39,
0,
0,
259,
260,
5,
1,
0,
0,
260,
261,
3,
0,
0,
0,
261,
262,
5,
2,
0,
0,
262,
304,
1,
0,
0,
0,
263,
264,
5,
40,
0,
0,
264,
265,
5,
1,
0,
0,
265,
266,
3,
0,
0,
0,
266,
267,
5,
2,
0,
0,
267,
304,
1,
0,
0,
0,
268,
269,
5,
46,
0,
0,
269,
270,
5,
1,
0,
0,
270,
271,
3,
0,
0,
0,
271,
272,
5,
2,
0,
0,
272,
304,
1,
0,
0,
0,
273,
274,
5,
47,
0,
0,
274,
275,
5,
1,
0,
0,
275,
276,
3,
0,
0,
0,
276,
277,
5,
2,
0,
0,
277,
304,
1,
0,
0,
0,
278,
279,
5,
48,
0,
0,
279,
280,
5,
1,
0,
0,
280,
281,
3,
0,
0,
0,
281,
282,
5,
2,
0,
0,
282,
304,
1,
0,
0,
0,
283,
284,
5,
49,
0,
0,
284,
285,
5,
1,
0,
0,
285,
286,
3,
0,
0,
0,
286,
287,
5,
2,
0,
0,
287,
304,
1,
0,
0,
0,
288,
289,
5,
50,
0,
0,
289,
290,
5,
1,
0,
0,
290,
291,
3,
0,
0,
0,
291,
292,
5,
2,
0,
0,
292,
304,
1,
0,
0,
0,
293,
294,
5,
41,
0,
0,
294,
295,
5,
1,
0,
0,
295,
296,
3,
0,
0,
0,
296,
297,
5,
2,
0,
0,
297,
304,
1,
0,
0,
0,
298,
299,
5,
42,
0,
0,
299,
300,
5,
1,
0,
0,
300,
301,
3,
0,
0,
0,
301,
302,
5,
2,
0,
0,
302,
304,
1,
0,
0,
0,
303,
128,
1,
0,
0,
0,
303,
133,
1,
0,
0,
0,
303,
138,
1,
0,
0,
0,
303,
143,
1,
0,
0,
0,
303,
148,
1,
0,
0,
0,
303,
153,
1,
0,
0,
0,
303,
158,
1,
0,
0,
0,
303,
163,
1,
0,
0,
0,
303,
168,
1,
0,
0,
0,
303,
173,
1,
0,
0,
0,
303,
178,
1,
0,
0,
0,
303,
183,
1,
0,
0,
0,
303,
188,
1,
0,
0,
0,
303,
193,
1,
0,
0,
0,
303,
198,
1,
0,
0,
0,
303,
203,
1,
0,
0,
0,
303,
208,
1,
0,
0,
0,
303,
213,
1,
0,
0,
0,
303,
218,
1,
0,
0,
0,
303,
223,
1,
0,
0,
0,
303,
228,
1,
0,
0,
0,
303,
233,
1,
0,
0,
0,
303,
238,
1,
0,
0,
0,
303,
243,
1,
0,
0,
0,
303,
248,
1,
0,
0,
0,
303,
253,
1,
0,
0,
0,
303,
258,
1,
0,
0,
0,
303,
263,
1,
0,
0,
0,
303,
268,
1,
0,
0,
0,
303,
273,
1,
0,
0,
0,
303,
278,
1,
0,
0,
0,
303,
283,
1,
0,
0,
0,
303,
288,
1,
0,
0,
0,
303,
293,
1,
0,
0,
0,
303,
298,
1,
0,
0,
0,
304,
15,
1,
0,
0,
0,
305,
306,
5,
34,
0,
0,
306,
307,
5,
1,
0,
0,
307,
308,
3,
0,
0,
0,
308,
309,
5,
4,
0,
0,
309,
310,
3,
0,
0,
0,
310,
311,
5,
2,
0,
0,
311,
341,
1,
0,
0,
0,
312,
313,
5,
12,
0,
0,
313,
314,
5,
1,
0,
0,
314,
315,
3,
0,
0,
0,
315,
316,
5,
4,
0,
0,
316,
317,
3,
0,
0,
0,
317,
318,
5,
2,
0,
0,
318,
341,
1,
0,
0,
0,
319,
320,
5,
26,
0,
0,
320,
321,
5,
1,
0,
0,
321,
322,
3,
0,
0,
0,
322,
323,
5,
4,
0,
0,
323,
324,
3,
0,
0,
0,
324,
325,
5,
2,
0,
0,
325,
341,
1,
0,
0,
0,
326,
327,
5,
27,
0,
0,
327,
328,
5,
1,
0,
0,
328,
329,
3,
0,
0,
0,
329,
330,
5,
4,
0,
0,
330,
331,
3,
0,
0,
0,
331,
332,
5,
2,
0,
0,
332,
341,
1,
0,
0,
0,
333,
334,
5,
44,
0,
0,
334,
335,
5,
1,
0,
0,
335,
336,
3,
0,
0,
0,
336,
337,
5,
4,
0,
0,
337,
338,
3,
0,
0,
0,
338,
339,
5,
2,
0,
0,
339,
341,
1,
0,
0,
0,
340,
305,
1,
0,
0,
0,
340,
312,
1,
0,
0,
0,
340,
319,
1,
0,
0,
0,
340,
326,
1,
0,
0,
0,
340,
333,
1,
0,
0,
0,
341,
17,
1,
0,
0,
0,
342,
343,
5,
36,
0,
0,
343,
344,
5,
1,
0,
0,
344,
345,
3,
0,
0,
0,
345,
346,
5,
4,
0,
0,
346,
347,
3,
0,
0,
0,
347,
348,
5,
4,
0,
0,
348,
349,
3,
0,
0,
0,
349,
350,
5,
2,
0,
0,
350,
379,
1,
0,
0,
0,
351,
352,
5,
43,
0,
0,
352,
353,
5,
1,
0,
0,
353,
354,
3,
0,
0,
0,
354,
355,
5,
4,
0,
0,
355,
356,
3,
0,
0,
0,
356,
357,
5,
4,
0,
0,
357,
358,
3,
0,
0,
0,
358,
359,
5,
2,
0,
0,
359,
379,
1,
0,
0,
0,
360,
361,
5,
45,
0,
0,
361,
362,
5,
1,
0,
0,
362,
363,
3,
0,
0,
0,
363,
364,
5,
4,
0,
0,
364,
365,
3,
0,
0,
0,
365,
366,
5,
4,
0,
0,
366,
367,
3,
0,
0,
0,
367,
368,
5,
2,
0,
0,
368,
379,
1,
0,
0,
0,
369,
370,
5,
56,
0,
0,
370,
371,
5,
1,
0,
0,
371,
372,
3,
0,
0,
0,
372,
373,
5,
4,
0,
0,
373,
374,
3,
0,
0,
0,
374,
375,
5,
4,
0,
0,
375,
376,
3,
0,
0,
0,
376,
377,
5,
2,
0,
0,
377,
379,
1,
0,
0,
0,
378,
342,
1,
0,
0,
0,
378,
351,
1,
0,
0,
0,
378,
360,
1,
0,
0,
0,
378,
369,
1,
0,
0,
0,
379,
19,
1,
0,
0,
0,
380,
381,
5,
53,
0,
0,
381,
382,
5,
1,
0,
0,
382,
383,
3,
0,
0,
0,
383,
384,
5,
4,
0,
0,
384,
385,
3,
0,
0,
0,
385,
386,
5,
4,
0,
0,
386,
387,
3,
0,
0,
0,
387,
388,
5,
4,
0,
0,
388,
389,
3,
0,
0,
0,
389,
390,
5,
2,
0,
0,
390,
21,
1,
0,
0,
0,
391,
392,
5,
24,
0,
0,
392,
393,
5,
1,
0,
0,
393,
398,
3,
0,
0,
0,
394,
395,
5,
4,
0,
0,
395,
397,
3,
0,
0,
0,
396,
394,
1,
0,
0,
0,
397,
400,
1,
0,
0,
0,
398,
396,
1,
0,
0,
0,
398,
399,
1,
0,
0,
0,
399,
401,
1,
0,
0,
0,
400,
398,
1,
0,
0,
0,
401,
402,
5,
2,
0,
0,
402,
452,
1,
0,
0,
0,
403,
404,
5,
25,
0,
0,
404,
405,
5,
1,
0,
0,
405,
410,
3,
0,
0,
0,
406,
407,
5,
4,
0,
0,
407,
409,
3,
0,
0,
0,
408,
406,
1,
0,
0,
0,
409,
412,
1,
0,
0,
0,
410,
408,
1,
0,
0,
0,
410,
411,
1,
0,
0,
0,
411,
413,
1,
0,
0,
0,
412,
410,
1,
0,
0,
0,
413,
414,
5,
2,
0,
0,
414,
452,
1,
0,
0,
0,
415,
416,
5,
51,
0,
0,
416,
417,
5,
1,
0,
0,
417,
420,
3,
0,
0,
0,
418,
419,
5,
4,
0,
0,
419,
421,
3,
0,
0,
0,
420,
418,
1,
0,
0,
0,
421,
422,
1,
0,
0,
0,
422,
420,
1,
0,
0,
0,
422,
423,
1,
0,
0,
0,
423,
424,
1,
0,
0,
0,
424,
425,
5,
2,
0,
0,
425,
452,
1,
0,
0,
0,
426,
427,
5,
52,
0,
0,
427,
428,
5,
1,
0,
0,
428,
431,
3,
0,
0,
0,
429,
430,
5,
4,
0,
0,
430,
432,
3,
0,
0,
0,
431,
429,
1,
0,
0,
0,
432,
433,
1,
0,
0,
0,
433,
431,
1,
0,
0,
0,
433,
434,
1,
0,
0,
0,
434,
435,
1,
0,
0,
0,
435,
436,
5,
2,
0,
0,
436,
452,
1,
0,
0,
0,
437,
438,
5,
54,
0,
0,
438,
439,
5,
1,
0,
0,
439,
440,
3,
0,
0,
0,
440,
441,
5,
4,
0,
0,
441,
442,
3,
0,
0,
0,
442,
443,
5,
2,
0,
0,
443,
452,
1,
0,
0,
0,
444,
445,
5,
55,
0,
0,
445,
446,
5,
1,
0,
0,
446,
447,
3,
0,
0,
0,
447,
448,
5,
4,
0,
0,
448,
449,
3,
0,
0,
0,
449,
450,
5,
2,
0,
0,
450,
452,
1,
0,
0,
0,
451,
391,
1,
0,
0,
0,
451,
403,
1,
0,
0,
0,
451,
415,
1,
0,
0,
0,
451,
426,
1,
0,
0,
0,
451,
437,
1,
0,
0,
0,
451,
444,
1,
0,
0,
0,
452,
23,
1,
0,
0,
0,
19,
26,
49,
51,
63,
65,
80,
82,
90,
97,
121,
126,
303,
340,
378,
398,
410,
422,
433,
451,
]
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'",
"'print_shape'",
"'pshp'",
"'lerp'",
"'step'",
"'smoothstep'",
"'fract'",
"'relu'",
"'softplus'",
"'gelu'",
"'sign'",
"'map'",
"'conv'",
"'swap'",
"'permute'",
"'reshape'",
"'range'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"'^'",
"'>='",
"'>'",
"'<='",
"'<'",
"'=='",
"'!='",
"'|'",
]
symbolicNames = [
"<INVALID>",
"<INVALID>",
"<INVALID>",
"<INVALID>",
"<INVALID>",
"<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_L",
"PRINT_SHAPE",
"LERP",
"STEP",
"SMOOTHSTEP",
"FRACT",
"RELU",
"SOFTPLUS",
"GELU",
"SIGN",
"MAP",
"CONV",
"SWAP",
"PERM",
"RESHAPE",
"RANGE",
"PLUS",
"MINUS",
"MULT",
"DIV",
"MOD",
"POW",
"GE",
"GT",
"LE",
"LT",
"EQ",
"NE",
"PIPE",
"CONSTANT",
"NUMBER",
"VARIABLE",
"WS",
]
RULE_expr = 0
RULE_compExpr = 1
RULE_addExpr = 2
RULE_mulExpr = 3
RULE_powExpr = 4
RULE_unaryExpr = 5
RULE_atom = 6
RULE_func1 = 7
RULE_func2 = 8
RULE_func3 = 9
RULE_func4 = 10
RULE_funcN = 11
ruleNames = ["expr", "compExpr", "addExpr", "mulExpr", "powExpr", "unaryExpr", "atom", "func1", "func2", "func3", "func4", "funcN"]
EOF = Token.EOF
T__0 = 1
T__1 = 2
T__2 = 3
T__3 = 4
T__4 = 5
SIN = 6
COS = 7
TAN = 8
ASIN = 9
ACOS = 10
ATAN = 11
ATAN2 = 12
SINH = 13
COSH = 14
TANH = 15
ASINH = 16
ACOSH = 17
ATANH = 18
ABS = 19
SQRT = 20
LN = 21
LOG = 22
EXP = 23
SMIN = 24
SMAX = 25
TMIN = 26
TMAX = 27
TNORM = 28
SNORM = 29
FLOOR = 30
CEIL = 31
ROUND = 32
GAMMA = 33
POWE = 34
SIGM = 35
CLAMP = 36
SFFT = 37
SIFFT = 38
ANGL = 39
PRNT = 40
PRINT_SHAPE_L = 41
PRINT_SHAPE = 42
LERP = 43
STEP = 44
SMOOTHSTEP = 45
FRACT = 46
RELU = 47
SOFTPLUS = 48
GELU = 49
SIGN = 50
MAP = 51
CONV = 52
SWAP = 53
PERM = 54
RESHAPE = 55
RANGE = 56
PLUS = 57
MINUS = 58
MULT = 59
DIV = 60
MOD = 61
POW = 62
GE = 63
GT = 64
LE = 65
LT = 66
EQ = 67
NE = 68
PIPE = 69
CONSTANT = 70
NUMBER = 71
VARIABLE = 72
WS = 73
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 ExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def atom(self):
return self.getTypedRuleContext(MathExprParser.AtomContext, 0)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def getRuleIndex(self):
return MathExprParser.RULE_expr
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterExpr"):
listener.enterExpr(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitExpr"):
listener.exitExpr(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitExpr"):
return visitor.visitExpr(self)
else:
return visitor.visitChildren(self)
def expr(self):
localctx = MathExprParser.ExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 0, self.RULE_expr)
try:
self.state = 26
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input, 0, self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 24
self.atom()
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 25
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 CompExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_compExpr
def copyFrom(self, ctx: ParserRuleContext):
super().copyFrom(ctx)
class LtExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def LT(self):
return self.getToken(MathExprParser.LT, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterLtExp"):
listener.enterLtExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitLtExp"):
listener.exitLtExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitLtExp"):
return visitor.visitLtExp(self)
else:
return visitor.visitChildren(self)
class EqExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def EQ(self):
return self.getToken(MathExprParser.EQ, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterEqExp"):
listener.enterEqExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitEqExp"):
listener.exitEqExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitEqExp"):
return visitor.visitEqExp(self)
else:
return visitor.visitChildren(self)
class ToAddContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterToAdd"):
listener.enterToAdd(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitToAdd"):
listener.exitToAdd(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitToAdd"):
return visitor.visitToAdd(self)
else:
return visitor.visitChildren(self)
class GeExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def GE(self):
return self.getToken(MathExprParser.GE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterGeExp"):
listener.enterGeExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitGeExp"):
listener.exitGeExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitGeExp"):
return visitor.visitGeExp(self)
else:
return visitor.visitChildren(self)
class LeExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def LE(self):
return self.getToken(MathExprParser.LE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterLeExp"):
listener.enterLeExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitLeExp"):
listener.exitLeExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitLeExp"):
return visitor.visitLeExp(self)
else:
return visitor.visitChildren(self)
class NeExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def NE(self):
return self.getToken(MathExprParser.NE, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterNeExp"):
listener.enterNeExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitNeExp"):
listener.exitNeExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitNeExp"):
return visitor.visitNeExp(self)
else:
return visitor.visitChildren(self)
class GtExpContext(CompExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.CompExprContext
super().__init__(parser)
self.copyFrom(ctx)
def compExpr(self):
return self.getTypedRuleContext(MathExprParser.CompExprContext, 0)
def GT(self):
return self.getToken(MathExprParser.GT, 0)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterGtExp"):
listener.enterGtExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitGtExp"):
listener.exitGtExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitGtExp"):
return visitor.visitGtExp(self)
else:
return visitor.visitChildren(self)
def compExpr(self, _p: int = 0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.CompExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 2
self.enterRecursionRule(localctx, 2, self.RULE_compExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToAddContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 29
self.addExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 51
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input, 2, 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 = 49
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input, 1, self._ctx)
if la_ == 1:
localctx = MathExprParser.GtExpContext(self, MathExprParser.CompExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_compExpr)
self.state = 31
if not self.precpred(self._ctx, 7):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 7)")
self.state = 32
self.match(MathExprParser.GT)
self.state = 33
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 = 34
if not self.precpred(self._ctx, 6):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 6)")
self.state = 35
self.match(MathExprParser.GE)
self.state = 36
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 = 37
if not self.precpred(self._ctx, 5):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 5)")
self.state = 38
self.match(MathExprParser.LT)
self.state = 39
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 = 40
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 41
self.match(MathExprParser.LE)
self.state = 42
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 = 43
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 44
self.match(MathExprParser.EQ)
self.state = 45
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 = 46
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 47
self.match(MathExprParser.NE)
self.state = 48
self.addExpr(0)
pass
self.state = 53
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input, 2, self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.unrollRecursionContexts(_parentctx)
return localctx
class AddExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_addExpr
def copyFrom(self, ctx: ParserRuleContext):
super().copyFrom(ctx)
class AddExpContext(AddExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def PLUS(self):
return self.getToken(MathExprParser.PLUS, 0)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAddExp"):
listener.enterAddExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAddExp"):
listener.exitAddExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAddExp"):
return visitor.visitAddExp(self)
else:
return visitor.visitChildren(self)
class ToMulContext(AddExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterToMul"):
listener.enterToMul(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitToMul"):
listener.exitToMul(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitToMul"):
return visitor.visitToMul(self)
else:
return visitor.visitChildren(self)
class SubExpContext(AddExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AddExprContext
super().__init__(parser)
self.copyFrom(ctx)
def addExpr(self):
return self.getTypedRuleContext(MathExprParser.AddExprContext, 0)
def MINUS(self):
return self.getToken(MathExprParser.MINUS, 0)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSubExp"):
listener.enterSubExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSubExp"):
listener.exitSubExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSubExp"):
return visitor.visitSubExp(self)
else:
return visitor.visitChildren(self)
def addExpr(self, _p: int = 0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.AddExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 4
self.enterRecursionRule(localctx, 4, self.RULE_addExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToMulContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 55
self.mulExpr(0)
self._ctx.stop = self._input.LT(-1)
self.state = 65
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input, 4, 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 = 63
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input, 3, self._ctx)
if la_ == 1:
localctx = MathExprParser.AddExpContext(self, MathExprParser.AddExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_addExpr)
self.state = 57
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 58
self.match(MathExprParser.PLUS)
self.state = 59
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 = 60
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 61
self.match(MathExprParser.MINUS)
self.state = 62
self.mulExpr(0)
pass
self.state = 67
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input, 4, self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.unrollRecursionContexts(_parentctx)
return localctx
class MulExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_mulExpr
def copyFrom(self, ctx: ParserRuleContext):
super().copyFrom(ctx)
class MulExpContext(MulExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def MULT(self):
return self.getToken(MathExprParser.MULT, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterMulExp"):
listener.enterMulExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitMulExp"):
listener.exitMulExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitMulExp"):
return visitor.visitMulExp(self)
else:
return visitor.visitChildren(self)
class ModExpContext(MulExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def MOD(self):
return self.getToken(MathExprParser.MOD, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterModExp"):
listener.enterModExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitModExp"):
listener.exitModExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitModExp"):
return visitor.visitModExp(self)
else:
return visitor.visitChildren(self)
class DivExpContext(MulExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def mulExpr(self):
return self.getTypedRuleContext(MathExprParser.MulExprContext, 0)
def DIV(self):
return self.getToken(MathExprParser.DIV, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterDivExp"):
listener.enterDivExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitDivExp"):
listener.exitDivExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitDivExp"):
return visitor.visitDivExp(self)
else:
return visitor.visitChildren(self)
class ToPowContext(MulExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.MulExprContext
super().__init__(parser)
self.copyFrom(ctx)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterToPow"):
listener.enterToPow(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitToPow"):
listener.exitToPow(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitToPow"):
return visitor.visitToPow(self)
else:
return visitor.visitChildren(self)
def mulExpr(self, _p: int = 0):
_parentctx = self._ctx
_parentState = self.state
localctx = MathExprParser.MulExprContext(self, self._ctx, _parentState)
_prevctx = localctx
_startState = 6
self.enterRecursionRule(localctx, 6, self.RULE_mulExpr, _p)
try:
self.enterOuterAlt(localctx, 1)
localctx = MathExprParser.ToPowContext(self, localctx)
self._ctx = localctx
_prevctx = localctx
self.state = 69
self.powExpr()
self._ctx.stop = self._input.LT(-1)
self.state = 82
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 = 80
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input, 5, self._ctx)
if la_ == 1:
localctx = MathExprParser.MulExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 71
if not self.precpred(self._ctx, 4):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 4)")
self.state = 72
self.match(MathExprParser.MULT)
self.state = 73
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.DivExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 74
if not self.precpred(self._ctx, 3):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 3)")
self.state = 75
self.match(MathExprParser.DIV)
self.state = 76
self.powExpr()
pass
elif la_ == 3:
localctx = MathExprParser.ModExpContext(self, MathExprParser.MulExprContext(self, _parentctx, _parentState))
self.pushNewRecursionContext(localctx, _startState, self.RULE_mulExpr)
self.state = 77
if not self.precpred(self._ctx, 2):
from antlr4.error.Errors import FailedPredicateException
raise FailedPredicateException(self, "self.precpred(self._ctx, 2)")
self.state = 78
self.match(MathExprParser.MOD)
self.state = 79
self.powExpr()
pass
self.state = 84
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 PowExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_powExpr
def copyFrom(self, ctx: ParserRuleContext):
super().copyFrom(ctx)
class PowExpContext(PowExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.PowExprContext
super().__init__(parser)
self.copyFrom(ctx)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext, 0)
def POW(self):
return self.getToken(MathExprParser.POW, 0)
def powExpr(self):
return self.getTypedRuleContext(MathExprParser.PowExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterPowExp"):
listener.enterPowExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitPowExp"):
listener.exitPowExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitPowExp"):
return visitor.visitPowExp(self)
else:
return visitor.visitChildren(self)
class ToUnaryContext(PowExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.PowExprContext
super().__init__(parser)
self.copyFrom(ctx)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterToUnary"):
listener.enterToUnary(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitToUnary"):
listener.exitToUnary(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitToUnary"):
return visitor.visitToUnary(self)
else:
return visitor.visitChildren(self)
def powExpr(self):
localctx = MathExprParser.PowExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 8, self.RULE_powExpr)
try:
self.state = 90
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input, 7, self._ctx)
if la_ == 1:
localctx = MathExprParser.PowExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 85
self.unaryExpr()
self.state = 86
self.match(MathExprParser.POW)
self.state = 87
self.powExpr()
pass
elif la_ == 2:
localctx = MathExprParser.ToUnaryContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 89
self.unaryExpr()
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class UnaryExprContext(ParserRuleContext):
__slots__ = "parser"
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return MathExprParser.RULE_unaryExpr
def copyFrom(self, ctx: ParserRuleContext):
super().copyFrom(ctx)
class UnaryPlusContext(UnaryExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def PLUS(self):
return self.getToken(MathExprParser.PLUS, 0)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterUnaryPlus"):
listener.enterUnaryPlus(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitUnaryPlus"):
listener.exitUnaryPlus(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitUnaryPlus"):
return visitor.visitUnaryPlus(self)
else:
return visitor.visitChildren(self)
class UnaryMinusContext(UnaryExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def MINUS(self):
return self.getToken(MathExprParser.MINUS, 0)
def unaryExpr(self):
return self.getTypedRuleContext(MathExprParser.UnaryExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterUnaryMinus"):
listener.enterUnaryMinus(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitUnaryMinus"):
listener.exitUnaryMinus(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitUnaryMinus"):
return visitor.visitUnaryMinus(self)
else:
return visitor.visitChildren(self)
class ToAtomContext(UnaryExprContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.UnaryExprContext
super().__init__(parser)
self.copyFrom(ctx)
def atom(self):
return self.getTypedRuleContext(MathExprParser.AtomContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterToAtom"):
listener.enterToAtom(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitToAtom"):
listener.exitToAtom(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitToAtom"):
return visitor.visitToAtom(self)
else:
return visitor.visitChildren(self)
def unaryExpr(self):
localctx = MathExprParser.UnaryExprContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_unaryExpr)
try:
self.state = 97
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [57]:
localctx = MathExprParser.UnaryPlusContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 92
self.match(MathExprParser.PLUS)
self.state = 93
self.unaryExpr()
pass
elif token in [58]:
localctx = MathExprParser.UnaryMinusContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 94
self.match(MathExprParser.MINUS)
self.state = 95
self.unaryExpr()
pass
elif token in [
1,
3,
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,
69,
70,
71,
72,
]:
localctx = MathExprParser.ToAtomContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 96
self.atom()
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 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 enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFunc4Exp"):
listener.enterFunc4Exp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFunc4Exp"):
listener.exitFunc4Exp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFunc4Exp"):
return visitor.visitFunc4Exp(self)
else:
return visitor.visitChildren(self)
class Func2ExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func2(self):
return self.getTypedRuleContext(MathExprParser.Func2Context, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFunc2Exp"):
listener.enterFunc2Exp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFunc2Exp"):
listener.exitFunc2Exp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFunc2Exp"):
return visitor.visitFunc2Exp(self)
else:
return visitor.visitChildren(self)
class VariableExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def VARIABLE(self):
return self.getToken(MathExprParser.VARIABLE, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterVariableExp"):
listener.enterVariableExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitVariableExp"):
listener.exitVariableExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitVariableExp"):
return visitor.visitVariableExp(self)
else:
return visitor.visitChildren(self)
class Func3ExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func3(self):
return self.getTypedRuleContext(MathExprParser.Func3Context, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFunc3Exp"):
listener.enterFunc3Exp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFunc3Exp"):
listener.exitFunc3Exp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFunc3Exp"):
return visitor.visitFunc3Exp(self)
else:
return visitor.visitChildren(self)
class ParenExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterParenExp"):
listener.enterParenExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitParenExp"):
listener.exitParenExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitParenExp"):
return visitor.visitParenExp(self)
else:
return visitor.visitChildren(self)
class ConstantExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def CONSTANT(self):
return self.getToken(MathExprParser.CONSTANT, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterConstantExp"):
listener.enterConstantExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitConstantExp"):
listener.exitConstantExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitConstantExp"):
return visitor.visitConstantExp(self)
else:
return visitor.visitChildren(self)
class Func1ExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def func1(self):
return self.getTypedRuleContext(MathExprParser.Func1Context, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFunc1Exp"):
listener.enterFunc1Exp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFunc1Exp"):
listener.exitFunc1Exp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFunc1Exp"):
return visitor.visitFunc1Exp(self)
else:
return visitor.visitChildren(self)
class FuncNExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def funcN(self):
return self.getTypedRuleContext(MathExprParser.FuncNContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFuncNExp"):
listener.enterFuncNExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFuncNExp"):
listener.exitFuncNExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFuncNExp"):
return visitor.visitFuncNExp(self)
else:
return visitor.visitChildren(self)
class NumberExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def NUMBER(self):
return self.getToken(MathExprParser.NUMBER, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterNumberExp"):
listener.enterNumberExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitNumberExp"):
listener.exitNumberExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitNumberExp"):
return visitor.visitNumberExp(self)
else:
return visitor.visitChildren(self)
class AbsExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def PIPE(self, i: int = None):
if i is None:
return self.getTokens(MathExprParser.PIPE)
else:
return self.getToken(MathExprParser.PIPE, i)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAbsExp"):
listener.enterAbsExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAbsExp"):
listener.exitAbsExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAbsExp"):
return visitor.visitAbsExp(self)
else:
return visitor.visitChildren(self)
class ListExpContext(AtomContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.AtomContext
super().__init__(parser)
self.copyFrom(ctx)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterListExp"):
listener.enterListExp(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitListExp"):
listener.exitListExp(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitListExp"):
return visitor.visitListExp(self)
else:
return visitor.visitChildren(self)
def atom(self):
localctx = MathExprParser.AtomContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_atom)
self._la = 0 # Token type
try:
self.state = 126
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [
6,
7,
8,
9,
10,
11,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
28,
29,
30,
31,
32,
33,
35,
37,
38,
39,
40,
41,
42,
46,
47,
48,
49,
50,
]:
localctx = MathExprParser.Func1ExpContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 99
self.func1()
pass
elif token in [12, 26, 27, 34, 44]:
localctx = MathExprParser.Func2ExpContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 100
self.func2()
pass
elif token in [36, 43, 45, 56]:
localctx = MathExprParser.Func3ExpContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 101
self.func3()
pass
elif token in [53]:
localctx = MathExprParser.Func4ExpContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 102
self.func4()
pass
elif token in [24, 25, 51, 52, 54, 55]:
localctx = MathExprParser.FuncNExpContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 103
self.funcN()
pass
elif token in [72]:
localctx = MathExprParser.VariableExpContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 104
self.match(MathExprParser.VARIABLE)
pass
elif token in [71]:
localctx = MathExprParser.NumberExpContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 105
self.match(MathExprParser.NUMBER)
pass
elif token in [70]:
localctx = MathExprParser.ConstantExpContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 106
self.match(MathExprParser.CONSTANT)
pass
elif token in [1]:
localctx = MathExprParser.ParenExpContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 107
self.match(MathExprParser.T__0)
self.state = 108
self.expr()
self.state = 109
self.match(MathExprParser.T__1)
pass
elif token in [69]:
localctx = MathExprParser.AbsExpContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 111
self.match(MathExprParser.PIPE)
self.state = 112
self.expr()
self.state = 113
self.match(MathExprParser.PIPE)
pass
elif token in [3]:
localctx = MathExprParser.ListExpContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 115
self.match(MathExprParser.T__2)
self.state = 116
self.expr()
self.state = 121
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la == 4:
self.state = 117
self.match(MathExprParser.T__3)
self.state = 118
self.expr()
self.state = 123
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 124
self.match(MathExprParser.T__4)
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 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSoftplusFunc"):
listener.enterSoftplusFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSoftplusFunc"):
listener.exitSoftplusFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSoftplusFunc"):
return visitor.visitSoftplusFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterTanhFunc"):
listener.enterTanhFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitTanhFunc"):
listener.exitTanhFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitTanhFunc"):
return visitor.visitTanhFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAcoshFunc"):
listener.enterAcoshFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAcoshFunc"):
listener.exitAcoshFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAcoshFunc"):
return visitor.visitAcoshFunc(self)
else:
return visitor.visitChildren(self)
class SqrtFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SQRT(self):
return self.getToken(MathExprParser.SQRT, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSqrtFunc"):
listener.enterSqrtFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSqrtFunc"):
listener.exitSqrtFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSqrtFunc"):
return visitor.visitSqrtFunc(self)
else:
return visitor.visitChildren(self)
class FloorFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def FLOOR(self):
return self.getToken(MathExprParser.FLOOR, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFloorFunc"):
listener.enterFloorFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFloorFunc"):
listener.exitFloorFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFloorFunc"):
return visitor.visitFloorFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterRoundFunc"):
listener.enterRoundFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitRoundFunc"):
listener.exitRoundFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitRoundFunc"):
return visitor.visitRoundFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterCeilFunc"):
listener.enterCeilFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitCeilFunc"):
listener.exitCeilFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitCeilFunc"):
return visitor.visitCeilFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterGeluFunc"):
listener.enterGeluFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitGeluFunc"):
listener.exitGeluFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitGeluFunc"):
return visitor.visitGeluFunc(self)
else:
return visitor.visitChildren(self)
class PrintFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def PRNT(self):
return self.getToken(MathExprParser.PRNT, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterPrintFunc"):
listener.enterPrintFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitPrintFunc"):
listener.exitPrintFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitPrintFunc"):
return visitor.visitPrintFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAbsFunc"):
listener.enterAbsFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAbsFunc"):
listener.exitAbsFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAbsFunc"):
return visitor.visitAbsFunc(self)
else:
return visitor.visitChildren(self)
class AtanFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ATAN(self):
return self.getToken(MathExprParser.ATAN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAtanFunc"):
listener.enterAtanFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAtanFunc"):
listener.exitAtanFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAtanFunc"):
return visitor.visitAtanFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterReluFunc"):
listener.enterReluFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitReluFunc"):
listener.exitReluFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitReluFunc"):
return visitor.visitReluFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSinhFunc"):
listener.enterSinhFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSinhFunc"):
listener.exitSinhFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSinhFunc"):
return visitor.visitSinhFunc(self)
else:
return visitor.visitChildren(self)
class SigmoidFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def SIGM(self):
return self.getToken(MathExprParser.SIGM, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSigmoidFunc"):
listener.enterSigmoidFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSigmoidFunc"):
listener.exitSigmoidFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSigmoidFunc"):
return visitor.visitSigmoidFunc(self)
else:
return visitor.visitChildren(self)
class LogFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def LOG(self):
return self.getToken(MathExprParser.LOG, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterLogFunc"):
listener.enterLogFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitLogFunc"):
listener.exitLogFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitLogFunc"):
return visitor.visitLogFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterLnFunc"):
listener.enterLnFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitLnFunc"):
listener.exitLnFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitLnFunc"):
return visitor.visitLnFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterTNormFunc"):
listener.enterTNormFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitTNormFunc"):
listener.exitTNormFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitTNormFunc"):
return visitor.visitTNormFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSNormFunc"):
listener.enterSNormFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSNormFunc"):
listener.exitSNormFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSNormFunc"):
return visitor.visitSNormFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSinFunc"):
listener.enterSinFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSinFunc"):
listener.exitSinFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSinFunc"):
return visitor.visitSinFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAcosFunc"):
listener.enterAcosFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAcosFunc"):
listener.exitAcosFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAcosFunc"):
return visitor.visitAcosFunc(self)
else:
return visitor.visitChildren(self)
class CoshFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def COSH(self):
return self.getToken(MathExprParser.COSH, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterCoshFunc"):
listener.enterCoshFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitCoshFunc"):
listener.exitCoshFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitCoshFunc"):
return visitor.visitCoshFunc(self)
else:
return visitor.visitChildren(self)
class AnglFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def ANGL(self):
return self.getToken(MathExprParser.ANGL, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAnglFunc"):
listener.enterAnglFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAnglFunc"):
listener.exitAnglFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAnglFunc"):
return visitor.visitAnglFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSignFunc"):
listener.enterSignFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSignFunc"):
listener.exitSignFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSignFunc"):
return visitor.visitSignFunc(self)
else:
return visitor.visitChildren(self)
class TanFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def TAN(self):
return self.getToken(MathExprParser.TAN, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterTanFunc"):
listener.enterTanFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitTanFunc"):
listener.exitTanFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitTanFunc"):
return visitor.visitTanFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSifftFunc"):
listener.enterSifftFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSifftFunc"):
listener.exitSifftFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSifftFunc"):
return visitor.visitSifftFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterFractFunc"):
listener.enterFractFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitFractFunc"):
listener.exitFractFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitFractFunc"):
return visitor.visitFractFunc(self)
else:
return visitor.visitChildren(self)
class GammaFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def GAMMA(self):
return self.getToken(MathExprParser.GAMMA, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterGammaFunc"):
listener.enterGammaFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitGammaFunc"):
listener.exitGammaFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitGammaFunc"):
return visitor.visitGammaFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterCosFunc"):
listener.enterCosFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitCosFunc"):
listener.exitCosFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitCosFunc"):
return visitor.visitCosFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAsinFunc"):
listener.enterAsinFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAsinFunc"):
listener.exitAsinFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAsinFunc"):
return visitor.visitAsinFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAsinhFunc"):
listener.enterAsinhFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAsinhFunc"):
listener.exitAsinhFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAsinhFunc"):
return visitor.visitAsinhFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSfftFunc"):
listener.enterSfftFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSfftFunc"):
listener.exitSfftFunc(self)
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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAtanhFunc"):
listener.enterAtanhFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAtanhFunc"):
listener.exitAtanhFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAtanhFunc"):
return visitor.visitAtanhFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterExpFunc"):
listener.enterExpFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitExpFunc"):
listener.exitExpFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitExpFunc"):
return visitor.visitExpFunc(self)
else:
return visitor.visitChildren(self)
class PrintShapeFuncContext(Func1Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func1Context
super().__init__(parser)
self.copyFrom(ctx)
def PRINT_SHAPE_L(self):
return self.getToken(MathExprParser.PRINT_SHAPE_L, 0)
def expr(self):
return self.getTypedRuleContext(MathExprParser.ExprContext, 0)
def PRINT_SHAPE(self):
return self.getToken(MathExprParser.PRINT_SHAPE, 0)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterPrintShapeFunc"):
listener.enterPrintShapeFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitPrintShapeFunc"):
listener.exitPrintShapeFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitPrintShapeFunc"):
return visitor.visitPrintShapeFunc(self)
else:
return visitor.visitChildren(self)
def func1(self):
localctx = MathExprParser.Func1Context(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_func1)
try:
self.state = 303
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [6]:
localctx = MathExprParser.SinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 128
self.match(MathExprParser.SIN)
self.state = 129
self.match(MathExprParser.T__0)
self.state = 130
self.expr()
self.state = 131
self.match(MathExprParser.T__1)
pass
elif token in [7]:
localctx = MathExprParser.CosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 133
self.match(MathExprParser.COS)
self.state = 134
self.match(MathExprParser.T__0)
self.state = 135
self.expr()
self.state = 136
self.match(MathExprParser.T__1)
pass
elif token in [8]:
localctx = MathExprParser.TanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 138
self.match(MathExprParser.TAN)
self.state = 139
self.match(MathExprParser.T__0)
self.state = 140
self.expr()
self.state = 141
self.match(MathExprParser.T__1)
pass
elif token in [9]:
localctx = MathExprParser.AsinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 143
self.match(MathExprParser.ASIN)
self.state = 144
self.match(MathExprParser.T__0)
self.state = 145
self.expr()
self.state = 146
self.match(MathExprParser.T__1)
pass
elif token in [10]:
localctx = MathExprParser.AcosFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 148
self.match(MathExprParser.ACOS)
self.state = 149
self.match(MathExprParser.T__0)
self.state = 150
self.expr()
self.state = 151
self.match(MathExprParser.T__1)
pass
elif token in [11]:
localctx = MathExprParser.AtanFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 153
self.match(MathExprParser.ATAN)
self.state = 154
self.match(MathExprParser.T__0)
self.state = 155
self.expr()
self.state = 156
self.match(MathExprParser.T__1)
pass
elif token in [13]:
localctx = MathExprParser.SinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 158
self.match(MathExprParser.SINH)
self.state = 159
self.match(MathExprParser.T__0)
self.state = 160
self.expr()
self.state = 161
self.match(MathExprParser.T__1)
pass
elif token in [14]:
localctx = MathExprParser.CoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 163
self.match(MathExprParser.COSH)
self.state = 164
self.match(MathExprParser.T__0)
self.state = 165
self.expr()
self.state = 166
self.match(MathExprParser.T__1)
pass
elif token in [15]:
localctx = MathExprParser.TanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 9)
self.state = 168
self.match(MathExprParser.TANH)
self.state = 169
self.match(MathExprParser.T__0)
self.state = 170
self.expr()
self.state = 171
self.match(MathExprParser.T__1)
pass
elif token in [16]:
localctx = MathExprParser.AsinhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 10)
self.state = 173
self.match(MathExprParser.ASINH)
self.state = 174
self.match(MathExprParser.T__0)
self.state = 175
self.expr()
self.state = 176
self.match(MathExprParser.T__1)
pass
elif token in [17]:
localctx = MathExprParser.AcoshFuncContext(self, localctx)
self.enterOuterAlt(localctx, 11)
self.state = 178
self.match(MathExprParser.ACOSH)
self.state = 179
self.match(MathExprParser.T__0)
self.state = 180
self.expr()
self.state = 181
self.match(MathExprParser.T__1)
pass
elif token in [18]:
localctx = MathExprParser.AtanhFuncContext(self, localctx)
self.enterOuterAlt(localctx, 12)
self.state = 183
self.match(MathExprParser.ATANH)
self.state = 184
self.match(MathExprParser.T__0)
self.state = 185
self.expr()
self.state = 186
self.match(MathExprParser.T__1)
pass
elif token in [19]:
localctx = MathExprParser.AbsFuncContext(self, localctx)
self.enterOuterAlt(localctx, 13)
self.state = 188
self.match(MathExprParser.ABS)
self.state = 189
self.match(MathExprParser.T__0)
self.state = 190
self.expr()
self.state = 191
self.match(MathExprParser.T__1)
pass
elif token in [20]:
localctx = MathExprParser.SqrtFuncContext(self, localctx)
self.enterOuterAlt(localctx, 14)
self.state = 193
self.match(MathExprParser.SQRT)
self.state = 194
self.match(MathExprParser.T__0)
self.state = 195
self.expr()
self.state = 196
self.match(MathExprParser.T__1)
pass
elif token in [21]:
localctx = MathExprParser.LnFuncContext(self, localctx)
self.enterOuterAlt(localctx, 15)
self.state = 198
self.match(MathExprParser.LN)
self.state = 199
self.match(MathExprParser.T__0)
self.state = 200
self.expr()
self.state = 201
self.match(MathExprParser.T__1)
pass
elif token in [22]:
localctx = MathExprParser.LogFuncContext(self, localctx)
self.enterOuterAlt(localctx, 16)
self.state = 203
self.match(MathExprParser.LOG)
self.state = 204
self.match(MathExprParser.T__0)
self.state = 205
self.expr()
self.state = 206
self.match(MathExprParser.T__1)
pass
elif token in [23]:
localctx = MathExprParser.ExpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 17)
self.state = 208
self.match(MathExprParser.EXP)
self.state = 209
self.match(MathExprParser.T__0)
self.state = 210
self.expr()
self.state = 211
self.match(MathExprParser.T__1)
pass
elif token in [28]:
localctx = MathExprParser.TNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 18)
self.state = 213
self.match(MathExprParser.TNORM)
self.state = 214
self.match(MathExprParser.T__0)
self.state = 215
self.expr()
self.state = 216
self.match(MathExprParser.T__1)
pass
elif token in [29]:
localctx = MathExprParser.SNormFuncContext(self, localctx)
self.enterOuterAlt(localctx, 19)
self.state = 218
self.match(MathExprParser.SNORM)
self.state = 219
self.match(MathExprParser.T__0)
self.state = 220
self.expr()
self.state = 221
self.match(MathExprParser.T__1)
pass
elif token in [30]:
localctx = MathExprParser.FloorFuncContext(self, localctx)
self.enterOuterAlt(localctx, 20)
self.state = 223
self.match(MathExprParser.FLOOR)
self.state = 224
self.match(MathExprParser.T__0)
self.state = 225
self.expr()
self.state = 226
self.match(MathExprParser.T__1)
pass
elif token in [31]:
localctx = MathExprParser.CeilFuncContext(self, localctx)
self.enterOuterAlt(localctx, 21)
self.state = 228
self.match(MathExprParser.CEIL)
self.state = 229
self.match(MathExprParser.T__0)
self.state = 230
self.expr()
self.state = 231
self.match(MathExprParser.T__1)
pass
elif token in [32]:
localctx = MathExprParser.RoundFuncContext(self, localctx)
self.enterOuterAlt(localctx, 22)
self.state = 233
self.match(MathExprParser.ROUND)
self.state = 234
self.match(MathExprParser.T__0)
self.state = 235
self.expr()
self.state = 236
self.match(MathExprParser.T__1)
pass
elif token in [33]:
localctx = MathExprParser.GammaFuncContext(self, localctx)
self.enterOuterAlt(localctx, 23)
self.state = 238
self.match(MathExprParser.GAMMA)
self.state = 239
self.match(MathExprParser.T__0)
self.state = 240
self.expr()
self.state = 241
self.match(MathExprParser.T__1)
pass
elif token in [35]:
localctx = MathExprParser.SigmoidFuncContext(self, localctx)
self.enterOuterAlt(localctx, 24)
self.state = 243
self.match(MathExprParser.SIGM)
self.state = 244
self.match(MathExprParser.T__0)
self.state = 245
self.expr()
self.state = 246
self.match(MathExprParser.T__1)
pass
elif token in [37]:
localctx = MathExprParser.SfftFuncContext(self, localctx)
self.enterOuterAlt(localctx, 25)
self.state = 248
self.match(MathExprParser.SFFT)
self.state = 249
self.match(MathExprParser.T__0)
self.state = 250
self.expr()
self.state = 251
self.match(MathExprParser.T__1)
pass
elif token in [38]:
localctx = MathExprParser.SifftFuncContext(self, localctx)
self.enterOuterAlt(localctx, 26)
self.state = 253
self.match(MathExprParser.SIFFT)
self.state = 254
self.match(MathExprParser.T__0)
self.state = 255
self.expr()
self.state = 256
self.match(MathExprParser.T__1)
pass
elif token in [39]:
localctx = MathExprParser.AnglFuncContext(self, localctx)
self.enterOuterAlt(localctx, 27)
self.state = 258
self.match(MathExprParser.ANGL)
self.state = 259
self.match(MathExprParser.T__0)
self.state = 260
self.expr()
self.state = 261
self.match(MathExprParser.T__1)
pass
elif token in [40]:
localctx = MathExprParser.PrintFuncContext(self, localctx)
self.enterOuterAlt(localctx, 28)
self.state = 263
self.match(MathExprParser.PRNT)
self.state = 264
self.match(MathExprParser.T__0)
self.state = 265
self.expr()
self.state = 266
self.match(MathExprParser.T__1)
pass
elif token in [46]:
localctx = MathExprParser.FractFuncContext(self, localctx)
self.enterOuterAlt(localctx, 29)
self.state = 268
self.match(MathExprParser.FRACT)
self.state = 269
self.match(MathExprParser.T__0)
self.state = 270
self.expr()
self.state = 271
self.match(MathExprParser.T__1)
pass
elif token in [47]:
localctx = MathExprParser.ReluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 30)
self.state = 273
self.match(MathExprParser.RELU)
self.state = 274
self.match(MathExprParser.T__0)
self.state = 275
self.expr()
self.state = 276
self.match(MathExprParser.T__1)
pass
elif token in [48]:
localctx = MathExprParser.SoftplusFuncContext(self, localctx)
self.enterOuterAlt(localctx, 31)
self.state = 278
self.match(MathExprParser.SOFTPLUS)
self.state = 279
self.match(MathExprParser.T__0)
self.state = 280
self.expr()
self.state = 281
self.match(MathExprParser.T__1)
pass
elif token in [49]:
localctx = MathExprParser.GeluFuncContext(self, localctx)
self.enterOuterAlt(localctx, 32)
self.state = 283
self.match(MathExprParser.GELU)
self.state = 284
self.match(MathExprParser.T__0)
self.state = 285
self.expr()
self.state = 286
self.match(MathExprParser.T__1)
pass
elif token in [50]:
localctx = MathExprParser.SignFuncContext(self, localctx)
self.enterOuterAlt(localctx, 33)
self.state = 288
self.match(MathExprParser.SIGN)
self.state = 289
self.match(MathExprParser.T__0)
self.state = 290
self.expr()
self.state = 291
self.match(MathExprParser.T__1)
pass
elif token in [41]:
localctx = MathExprParser.PrintShapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 34)
self.state = 293
self.match(MathExprParser.PRINT_SHAPE_L)
self.state = 294
self.match(MathExprParser.T__0)
self.state = 295
self.expr()
self.state = 296
self.match(MathExprParser.T__1)
pass
elif token in [42]:
localctx = MathExprParser.PrintShapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 35)
self.state = 298
self.match(MathExprParser.PRINT_SHAPE)
self.state = 299
self.match(MathExprParser.T__0)
self.state = 300
self.expr()
self.state = 301
self.match(MathExprParser.T__1)
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 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterTMaxFunc"):
listener.enterTMaxFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitTMaxFunc"):
listener.exitTMaxFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitTMaxFunc"):
return visitor.visitTMaxFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterPowFunc"):
listener.enterPowFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitPowFunc"):
listener.exitPowFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitPowFunc"):
return visitor.visitPowFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterStepFunc"):
listener.enterStepFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitStepFunc"):
listener.exitStepFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitStepFunc"):
return visitor.visitStepFunc(self)
else:
return visitor.visitChildren(self)
class Atan2FuncContext(Func2Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func2Context
super().__init__(parser)
self.copyFrom(ctx)
def ATAN2(self):
return self.getToken(MathExprParser.ATAN2, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterAtan2Func"):
listener.enterAtan2Func(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitAtan2Func"):
listener.exitAtan2Func(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitAtan2Func"):
return visitor.visitAtan2Func(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterTMinFunc"):
listener.enterTMinFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitTMinFunc"):
listener.exitTMinFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitTMinFunc"):
return visitor.visitTMinFunc(self)
else:
return visitor.visitChildren(self)
def func2(self):
localctx = MathExprParser.Func2Context(self, self._ctx, self.state)
self.enterRule(localctx, 16, self.RULE_func2)
try:
self.state = 340
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [34]:
localctx = MathExprParser.PowFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 305
self.match(MathExprParser.POWE)
self.state = 306
self.match(MathExprParser.T__0)
self.state = 307
self.expr()
self.state = 308
self.match(MathExprParser.T__3)
self.state = 309
self.expr()
self.state = 310
self.match(MathExprParser.T__1)
pass
elif token in [12]:
localctx = MathExprParser.Atan2FuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 312
self.match(MathExprParser.ATAN2)
self.state = 313
self.match(MathExprParser.T__0)
self.state = 314
self.expr()
self.state = 315
self.match(MathExprParser.T__3)
self.state = 316
self.expr()
self.state = 317
self.match(MathExprParser.T__1)
pass
elif token in [26]:
localctx = MathExprParser.TMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 319
self.match(MathExprParser.TMIN)
self.state = 320
self.match(MathExprParser.T__0)
self.state = 321
self.expr()
self.state = 322
self.match(MathExprParser.T__3)
self.state = 323
self.expr()
self.state = 324
self.match(MathExprParser.T__1)
pass
elif token in [27]:
localctx = MathExprParser.TMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 326
self.match(MathExprParser.TMAX)
self.state = 327
self.match(MathExprParser.T__0)
self.state = 328
self.expr()
self.state = 329
self.match(MathExprParser.T__3)
self.state = 330
self.expr()
self.state = 331
self.match(MathExprParser.T__1)
pass
elif token in [44]:
localctx = MathExprParser.StepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 333
self.match(MathExprParser.STEP)
self.state = 334
self.match(MathExprParser.T__0)
self.state = 335
self.expr()
self.state = 336
self.match(MathExprParser.T__3)
self.state = 337
self.expr()
self.state = 338
self.match(MathExprParser.T__1)
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 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterLerpFunc"):
listener.enterLerpFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitLerpFunc"):
listener.exitLerpFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitLerpFunc"):
return visitor.visitLerpFunc(self)
else:
return visitor.visitChildren(self)
class SmoothstepFuncContext(Func3Context):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.Func3Context
super().__init__(parser)
self.copyFrom(ctx)
def SMOOTHSTEP(self):
return self.getToken(MathExprParser.SMOOTHSTEP, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSmoothstepFunc"):
listener.enterSmoothstepFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSmoothstepFunc"):
listener.exitSmoothstepFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSmoothstepFunc"):
return visitor.visitSmoothstepFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterRangeFunc"):
listener.enterRangeFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitRangeFunc"):
listener.exitRangeFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitRangeFunc"):
return visitor.visitRangeFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterClampFunc"):
listener.enterClampFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitClampFunc"):
listener.exitClampFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitClampFunc"):
return visitor.visitClampFunc(self)
else:
return visitor.visitChildren(self)
def func3(self):
localctx = MathExprParser.Func3Context(self, self._ctx, self.state)
self.enterRule(localctx, 18, self.RULE_func3)
try:
self.state = 378
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [36]:
localctx = MathExprParser.ClampFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 342
self.match(MathExprParser.CLAMP)
self.state = 343
self.match(MathExprParser.T__0)
self.state = 344
self.expr()
self.state = 345
self.match(MathExprParser.T__3)
self.state = 346
self.expr()
self.state = 347
self.match(MathExprParser.T__3)
self.state = 348
self.expr()
self.state = 349
self.match(MathExprParser.T__1)
pass
elif token in [43]:
localctx = MathExprParser.LerpFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 351
self.match(MathExprParser.LERP)
self.state = 352
self.match(MathExprParser.T__0)
self.state = 353
self.expr()
self.state = 354
self.match(MathExprParser.T__3)
self.state = 355
self.expr()
self.state = 356
self.match(MathExprParser.T__3)
self.state = 357
self.expr()
self.state = 358
self.match(MathExprParser.T__1)
pass
elif token in [45]:
localctx = MathExprParser.SmoothstepFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 360
self.match(MathExprParser.SMOOTHSTEP)
self.state = 361
self.match(MathExprParser.T__0)
self.state = 362
self.expr()
self.state = 363
self.match(MathExprParser.T__3)
self.state = 364
self.expr()
self.state = 365
self.match(MathExprParser.T__3)
self.state = 366
self.expr()
self.state = 367
self.match(MathExprParser.T__1)
pass
elif token in [56]:
localctx = MathExprParser.RangeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 369
self.match(MathExprParser.RANGE)
self.state = 370
self.match(MathExprParser.T__0)
self.state = 371
self.expr()
self.state = 372
self.match(MathExprParser.T__3)
self.state = 373
self.expr()
self.state = 374
self.match(MathExprParser.T__3)
self.state = 375
self.expr()
self.state = 376
self.match(MathExprParser.T__1)
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 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSwapFunc"):
listener.enterSwapFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSwapFunc"):
listener.exitSwapFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSwapFunc"):
return visitor.visitSwapFunc(self)
else:
return visitor.visitChildren(self)
def func4(self):
localctx = MathExprParser.Func4Context(self, self._ctx, self.state)
self.enterRule(localctx, 20, self.RULE_func4)
try:
localctx = MathExprParser.SwapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 380
self.match(MathExprParser.SWAP)
self.state = 381
self.match(MathExprParser.T__0)
self.state = 382
self.expr()
self.state = 383
self.match(MathExprParser.T__3)
self.state = 384
self.expr()
self.state = 385
self.match(MathExprParser.T__3)
self.state = 386
self.expr()
self.state = 387
self.match(MathExprParser.T__3)
self.state = 388
self.expr()
self.state = 389
self.match(MathExprParser.T__1)
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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSMaxFunc"):
listener.enterSMaxFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSMaxFunc"):
listener.exitSMaxFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSMaxFunc"):
return visitor.visitSMaxFunc(self)
else:
return visitor.visitChildren(self)
class MapFuncContext(FuncNContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def MAP(self):
return self.getToken(MathExprParser.MAP, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterMapFunc"):
listener.enterMapFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitMapFunc"):
listener.exitMapFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitMapFunc"):
return visitor.visitMapFunc(self)
else:
return visitor.visitChildren(self)
class 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 expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterPermuteFunc"):
listener.enterPermuteFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitPermuteFunc"):
listener.exitPermuteFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitPermuteFunc"):
return visitor.visitPermuteFunc(self)
else:
return visitor.visitChildren(self)
class ReshapeFuncContext(FuncNContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def RESHAPE(self):
return self.getToken(MathExprParser.RESHAPE, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterReshapeFunc"):
listener.enterReshapeFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitReshapeFunc"):
listener.exitReshapeFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitReshapeFunc"):
return visitor.visitReshapeFunc(self)
else:
return visitor.visitChildren(self)
class SMinFuncContext(FuncNContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def SMIN(self):
return self.getToken(MathExprParser.SMIN, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterSMinFunc"):
listener.enterSMinFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitSMinFunc"):
listener.exitSMinFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitSMinFunc"):
return visitor.visitSMinFunc(self)
else:
return visitor.visitChildren(self)
class ConvFuncContext(FuncNContext):
def __init__(self, parser, ctx: ParserRuleContext): # actually a MathExprParser.FuncNContext
super().__init__(parser)
self.copyFrom(ctx)
def CONV(self):
return self.getToken(MathExprParser.CONV, 0)
def expr(self, i: int = None):
if i is None:
return self.getTypedRuleContexts(MathExprParser.ExprContext)
else:
return self.getTypedRuleContext(MathExprParser.ExprContext, i)
def enterRule(self, listener: ParseTreeListener):
if hasattr(listener, "enterConvFunc"):
listener.enterConvFunc(self)
def exitRule(self, listener: ParseTreeListener):
if hasattr(listener, "exitConvFunc"):
listener.exitConvFunc(self)
def accept(self, visitor: ParseTreeVisitor):
if hasattr(visitor, "visitConvFunc"):
return visitor.visitConvFunc(self)
else:
return visitor.visitChildren(self)
def funcN(self):
localctx = MathExprParser.FuncNContext(self, self._ctx, self.state)
self.enterRule(localctx, 22, self.RULE_funcN)
self._la = 0 # Token type
try:
self.state = 451
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [24]:
localctx = MathExprParser.SMinFuncContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 391
self.match(MathExprParser.SMIN)
self.state = 392
self.match(MathExprParser.T__0)
self.state = 393
self.expr()
self.state = 398
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la == 4:
self.state = 394
self.match(MathExprParser.T__3)
self.state = 395
self.expr()
self.state = 400
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 401
self.match(MathExprParser.T__1)
pass
elif token in [25]:
localctx = MathExprParser.SMaxFuncContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 403
self.match(MathExprParser.SMAX)
self.state = 404
self.match(MathExprParser.T__0)
self.state = 405
self.expr()
self.state = 410
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la == 4:
self.state = 406
self.match(MathExprParser.T__3)
self.state = 407
self.expr()
self.state = 412
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 413
self.match(MathExprParser.T__1)
pass
elif token in [51]:
localctx = MathExprParser.MapFuncContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 415
self.match(MathExprParser.MAP)
self.state = 416
self.match(MathExprParser.T__0)
self.state = 417
self.expr()
self.state = 420
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 418
self.match(MathExprParser.T__3)
self.state = 419
self.expr()
self.state = 422
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la == 4):
break
self.state = 424
self.match(MathExprParser.T__1)
pass
elif token in [52]:
localctx = MathExprParser.ConvFuncContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 426
self.match(MathExprParser.CONV)
self.state = 427
self.match(MathExprParser.T__0)
self.state = 428
self.expr()
self.state = 431
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 429
self.match(MathExprParser.T__3)
self.state = 430
self.expr()
self.state = 433
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la == 4):
break
self.state = 435
self.match(MathExprParser.T__1)
pass
elif token in [54]:
localctx = MathExprParser.PermuteFuncContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 437
self.match(MathExprParser.PERM)
self.state = 438
self.match(MathExprParser.T__0)
self.state = 439
self.expr()
self.state = 440
self.match(MathExprParser.T__3)
self.state = 441
self.expr()
self.state = 442
self.match(MathExprParser.T__1)
pass
elif token in [55]:
localctx = MathExprParser.ReshapeFuncContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 444
self.match(MathExprParser.RESHAPE)
self.state = 445
self.match(MathExprParser.T__0)
self.state = 446
self.expr()
self.state = 447
self.match(MathExprParser.T__3)
self.state = 448
self.expr()
self.state = 449
self.match(MathExprParser.T__1)
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[1] = self.compExpr_sempred
self._predicates[2] = self.addExpr_sempred
self._predicates[3] = self.mulExpr_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)