# 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 = [ "", "'('", "')'", "'['", "','", "']'", "'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 = [ "", "", "", "", "", "", "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)