mal-toolbox 1.2.1__py3-none-any.whl → 2.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/METADATA +8 -75
- mal_toolbox-2.1.0.dist-info/RECORD +51 -0
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/WHEEL +1 -1
- maltoolbox/__init__.py +2 -2
- maltoolbox/attackgraph/__init__.py +2 -2
- maltoolbox/attackgraph/attackgraph.py +121 -549
- maltoolbox/attackgraph/factories.py +68 -0
- maltoolbox/attackgraph/file_utils.py +0 -0
- maltoolbox/attackgraph/generate.py +338 -0
- maltoolbox/attackgraph/node.py +1 -0
- maltoolbox/attackgraph/node_getters.py +36 -0
- maltoolbox/attackgraph/ttcs.py +28 -0
- maltoolbox/language/__init__.py +2 -2
- maltoolbox/language/compiler/__init__.py +4 -499
- maltoolbox/language/compiler/distributions.py +158 -0
- maltoolbox/language/compiler/exceptions.py +37 -0
- maltoolbox/language/compiler/lang.py +5 -0
- maltoolbox/language/compiler/mal_analyzer.py +920 -0
- maltoolbox/language/compiler/mal_compiler.py +1071 -0
- maltoolbox/language/detector.py +43 -0
- maltoolbox/language/expression_chain.py +218 -0
- maltoolbox/language/language_graph_asset.py +180 -0
- maltoolbox/language/language_graph_assoc.py +147 -0
- maltoolbox/language/language_graph_attack_step.py +129 -0
- maltoolbox/language/language_graph_builder.py +282 -0
- maltoolbox/language/language_graph_loaders.py +7 -0
- maltoolbox/language/language_graph_lookup.py +140 -0
- maltoolbox/language/language_graph_serialization.py +5 -0
- maltoolbox/language/languagegraph.py +244 -1536
- maltoolbox/language/step_expression_processor.py +491 -0
- mal_toolbox-1.2.1.dist-info/RECORD +0 -33
- maltoolbox/language/compiler/mal_lexer.py +0 -232
- maltoolbox/language/compiler/mal_parser.py +0 -3159
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/entry_points.txt +0 -0
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/licenses/AUTHORS +0 -0
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/licenses/LICENSE +0 -0
- {mal_toolbox-1.2.1.dist-info → mal_toolbox-2.1.0.dist-info}/top_level.txt +0 -0
|
@@ -1,3159 +0,0 @@
|
|
|
1
|
-
# mypy: ignore-errors
|
|
2
|
-
# Generated from mal.g4 by ANTLR 4.13.2
|
|
3
|
-
# encoding: utf-8
|
|
4
|
-
import sys
|
|
5
|
-
|
|
6
|
-
from antlr4 import *
|
|
7
|
-
|
|
8
|
-
if sys.version_info[1] > 5:
|
|
9
|
-
from typing import TextIO
|
|
10
|
-
else:
|
|
11
|
-
from typing.io import TextIO
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def serializedATN():
|
|
15
|
-
return [
|
|
16
|
-
4, 1, 51, 413, 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,
|
|
17
|
-
6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13,
|
|
18
|
-
2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
|
|
19
|
-
7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
|
|
20
|
-
2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33,
|
|
21
|
-
7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
|
|
22
|
-
2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 1, 0, 4, 0, 92, 8, 0,
|
|
23
|
-
11, 0, 12, 0, 93, 1, 0, 3, 0, 97, 8, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 103, 8, 1, 1, 2, 1, 2,
|
|
24
|
-
1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 5, 4, 116, 8, 4, 10, 4, 12, 4, 119, 9,
|
|
25
|
-
4, 1, 4, 1, 4, 5, 4, 123, 8, 4, 10, 4, 12, 4, 126, 9, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5,
|
|
26
|
-
1, 5, 1, 6, 1, 6, 1, 7, 3, 7, 138, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 144, 8, 7, 1, 7, 5, 7,
|
|
27
|
-
147, 8, 7, 10, 7, 12, 7, 150, 9, 7, 1, 7, 1, 7, 1, 7, 5, 7, 155, 8, 7, 10, 7, 12, 7, 158,
|
|
28
|
-
9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 5, 8, 165, 8, 8, 10, 8, 12, 8, 168, 9, 8, 1, 8, 3, 8, 171,
|
|
29
|
-
8, 8, 1, 8, 3, 8, 174, 8, 8, 1, 8, 5, 8, 177, 8, 8, 10, 8, 12, 8, 180, 9, 8, 1, 8, 5, 8, 183,
|
|
30
|
-
8, 8, 10, 8, 12, 8, 186, 9, 8, 1, 8, 3, 8, 189, 8, 8, 1, 8, 3, 8, 192, 8, 8, 1, 9, 1, 9, 1,
|
|
31
|
-
10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 5, 11, 203, 8, 11, 10, 11, 12, 11, 206, 9,
|
|
32
|
-
11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1,
|
|
33
|
-
15, 5, 15, 221, 8, 15, 10, 15, 12, 15, 224, 9, 15, 1, 16, 1, 16, 1, 16, 5, 16, 229, 8,
|
|
34
|
-
16, 10, 16, 12, 16, 232, 9, 16, 1, 17, 1, 17, 1, 17, 3, 17, 237, 8, 17, 1, 18, 1, 18, 1,
|
|
35
|
-
18, 1, 18, 1, 18, 1, 18, 3, 18, 245, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 5, 19, 252,
|
|
36
|
-
8, 19, 10, 19, 12, 19, 255, 9, 19, 3, 19, 257, 8, 19, 1, 19, 3, 19, 260, 8, 19, 1, 20,
|
|
37
|
-
1, 20, 3, 20, 264, 8, 20, 1, 20, 1, 20, 3, 20, 268, 8, 20, 1, 20, 3, 20, 271, 8, 20, 1,
|
|
38
|
-
21, 1, 21, 1, 22, 1, 22, 1, 22, 5, 22, 278, 8, 22, 10, 22, 12, 22, 281, 9, 22, 1, 23, 1,
|
|
39
|
-
23, 1, 23, 1, 23, 5, 23, 287, 8, 23, 10, 23, 12, 23, 290, 9, 23, 1, 23, 1, 23, 1, 24, 1,
|
|
40
|
-
24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1,
|
|
41
|
-
29, 5, 29, 309, 8, 29, 10, 29, 12, 29, 312, 9, 29, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 318,
|
|
42
|
-
8, 30, 10, 30, 12, 30, 321, 9, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33,
|
|
43
|
-
1, 33, 1, 33, 1, 33, 5, 33, 334, 8, 33, 10, 33, 12, 33, 337, 9, 33, 1, 34, 1, 34, 1, 34,
|
|
44
|
-
5, 34, 342, 8, 34, 10, 34, 12, 34, 345, 9, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35,
|
|
45
|
-
1, 35, 1, 35, 1, 35, 3, 35, 356, 8, 35, 1, 35, 3, 35, 359, 8, 35, 1, 35, 5, 35, 362, 8,
|
|
46
|
-
35, 10, 35, 12, 35, 365, 9, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38,
|
|
47
|
-
1, 39, 1, 39, 1, 39, 5, 39, 378, 8, 39, 10, 39, 12, 39, 381, 9, 39, 1, 39, 1, 39, 1, 40,
|
|
48
|
-
1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 5, 40, 395, 8, 40, 10, 40,
|
|
49
|
-
12, 40, 398, 9, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 407, 8, 42,
|
|
50
|
-
1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 0, 0, 45, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
|
|
51
|
-
26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68,
|
|
52
|
-
70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 0, 10, 1, 0, 9, 10, 4, 0, 13, 13, 22, 22, 36, 37,
|
|
53
|
-
39, 39, 1, 0, 14, 16, 2, 0, 31, 31, 45, 45, 2, 0, 28, 28, 46, 46, 2, 0, 38, 38, 48, 48,
|
|
54
|
-
1, 0, 42, 43, 1, 0, 11, 12, 1, 0, 31, 33, 2, 0, 11, 11, 28, 28, 411, 0, 96, 1, 0, 0, 0, 2,
|
|
55
|
-
102, 1, 0, 0, 0, 4, 104, 1, 0, 0, 0, 6, 107, 1, 0, 0, 0, 8, 112, 1, 0, 0, 0, 10, 129, 1, 0,
|
|
56
|
-
0, 0, 12, 134, 1, 0, 0, 0, 14, 137, 1, 0, 0, 0, 16, 161, 1, 0, 0, 0, 18, 193, 1, 0, 0, 0,
|
|
57
|
-
20, 195, 1, 0, 0, 0, 22, 198, 1, 0, 0, 0, 24, 209, 1, 0, 0, 0, 26, 211, 1, 0, 0, 0, 28, 213,
|
|
58
|
-
1, 0, 0, 0, 30, 217, 1, 0, 0, 0, 32, 225, 1, 0, 0, 0, 34, 233, 1, 0, 0, 0, 36, 244, 1, 0,
|
|
59
|
-
0, 0, 38, 246, 1, 0, 0, 0, 40, 261, 1, 0, 0, 0, 42, 272, 1, 0, 0, 0, 44, 274, 1, 0, 0, 0,
|
|
60
|
-
46, 282, 1, 0, 0, 0, 48, 293, 1, 0, 0, 0, 50, 296, 1, 0, 0, 0, 52, 298, 1, 0, 0, 0, 54, 300,
|
|
61
|
-
1, 0, 0, 0, 56, 302, 1, 0, 0, 0, 58, 304, 1, 0, 0, 0, 60, 313, 1, 0, 0, 0, 62, 322, 1, 0,
|
|
62
|
-
0, 0, 64, 324, 1, 0, 0, 0, 66, 329, 1, 0, 0, 0, 68, 338, 1, 0, 0, 0, 70, 355, 1, 0, 0, 0,
|
|
63
|
-
72, 366, 1, 0, 0, 0, 74, 368, 1, 0, 0, 0, 76, 372, 1, 0, 0, 0, 78, 374, 1, 0, 0, 0, 80, 384,
|
|
64
|
-
1, 0, 0, 0, 82, 399, 1, 0, 0, 0, 84, 403, 1, 0, 0, 0, 86, 408, 1, 0, 0, 0, 88, 410, 1, 0,
|
|
65
|
-
0, 0, 90, 92, 3, 2, 1, 0, 91, 90, 1, 0, 0, 0, 92, 93, 1, 0, 0, 0, 93, 91, 1, 0, 0, 0, 93, 94,
|
|
66
|
-
1, 0, 0, 0, 94, 97, 1, 0, 0, 0, 95, 97, 5, 0, 0, 1, 96, 91, 1, 0, 0, 0, 96, 95, 1, 0, 0, 0,
|
|
67
|
-
97, 1, 1, 0, 0, 0, 98, 103, 3, 4, 2, 0, 99, 103, 3, 6, 3, 0, 100, 103, 3, 8, 4, 0, 101, 103,
|
|
68
|
-
3, 78, 39, 0, 102, 98, 1, 0, 0, 0, 102, 99, 1, 0, 0, 0, 102, 100, 1, 0, 0, 0, 102, 101,
|
|
69
|
-
1, 0, 0, 0, 103, 3, 1, 0, 0, 0, 104, 105, 5, 5, 0, 0, 105, 106, 5, 9, 0, 0, 106, 5, 1, 0,
|
|
70
|
-
0, 0, 107, 108, 5, 22, 0, 0, 108, 109, 5, 17, 0, 0, 109, 110, 5, 23, 0, 0, 110, 111, 5,
|
|
71
|
-
9, 0, 0, 111, 7, 1, 0, 0, 0, 112, 113, 5, 6, 0, 0, 113, 117, 5, 17, 0, 0, 114, 116, 3, 10,
|
|
72
|
-
5, 0, 115, 114, 1, 0, 0, 0, 116, 119, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 117, 118, 1, 0,
|
|
73
|
-
0, 0, 118, 120, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 120, 124, 5, 20, 0, 0, 121, 123, 3, 14,
|
|
74
|
-
7, 0, 122, 121, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 124, 125, 1, 0,
|
|
75
|
-
0, 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 5, 21, 0, 0, 128, 9, 1, 0, 0,
|
|
76
|
-
0, 129, 130, 5, 17, 0, 0, 130, 131, 5, 7, 0, 0, 131, 132, 5, 23, 0, 0, 132, 133, 3, 12,
|
|
77
|
-
6, 0, 133, 11, 1, 0, 0, 0, 134, 135, 7, 0, 0, 0, 135, 13, 1, 0, 0, 0, 136, 138, 5, 1, 0,
|
|
78
|
-
0, 137, 136, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 140, 5, 2, 0,
|
|
79
|
-
0, 140, 143, 5, 17, 0, 0, 141, 142, 5, 4, 0, 0, 142, 144, 5, 17, 0, 0, 143, 141, 1, 0,
|
|
80
|
-
0, 0, 143, 144, 1, 0, 0, 0, 144, 148, 1, 0, 0, 0, 145, 147, 3, 10, 5, 0, 146, 145, 1, 0,
|
|
81
|
-
0, 0, 147, 150, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 151, 1, 0,
|
|
82
|
-
0, 0, 150, 148, 1, 0, 0, 0, 151, 156, 5, 20, 0, 0, 152, 155, 3, 16, 8, 0, 153, 155, 3,
|
|
83
|
-
64, 32, 0, 154, 152, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 158, 1, 0, 0, 0, 156, 154,
|
|
84
|
-
1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 159, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 159, 160,
|
|
85
|
-
5, 21, 0, 0, 160, 15, 1, 0, 0, 0, 161, 162, 3, 18, 9, 0, 162, 166, 5, 17, 0, 0, 163, 165,
|
|
86
|
-
3, 20, 10, 0, 164, 163, 1, 0, 0, 0, 165, 168, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 166, 167,
|
|
87
|
-
1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 169, 171, 3, 22, 11, 0, 170, 169,
|
|
88
|
-
1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 173, 1, 0, 0, 0, 172, 174, 3, 28, 14, 0, 173, 172,
|
|
89
|
-
1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 178, 1, 0, 0, 0, 175, 177, 3, 10, 5, 0, 176, 175,
|
|
90
|
-
1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 184,
|
|
91
|
-
1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 181, 183, 3, 40, 20, 0, 182, 181, 1, 0, 0, 0, 183, 186,
|
|
92
|
-
1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184,
|
|
93
|
-
1, 0, 0, 0, 187, 189, 3, 58, 29, 0, 188, 187, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 191,
|
|
94
|
-
1, 0, 0, 0, 190, 192, 3, 60, 30, 0, 191, 190, 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 17,
|
|
95
|
-
1, 0, 0, 0, 193, 194, 7, 1, 0, 0, 194, 19, 1, 0, 0, 0, 195, 196, 5, 40, 0, 0, 196, 197,
|
|
96
|
-
5, 17, 0, 0, 197, 21, 1, 0, 0, 0, 198, 199, 5, 20, 0, 0, 199, 204, 3, 24, 12, 0, 200, 201,
|
|
97
|
-
5, 44, 0, 0, 201, 203, 3, 24, 12, 0, 202, 200, 1, 0, 0, 0, 203, 206, 1, 0, 0, 0, 204, 202,
|
|
98
|
-
1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 207, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 207, 208,
|
|
99
|
-
5, 21, 0, 0, 208, 23, 1, 0, 0, 0, 209, 210, 7, 2, 0, 0, 210, 25, 1, 0, 0, 0, 211, 212, 3,
|
|
100
|
-
28, 14, 0, 212, 27, 1, 0, 0, 0, 213, 214, 5, 26, 0, 0, 214, 215, 3, 30, 15, 0, 215, 216,
|
|
101
|
-
5, 27, 0, 0, 216, 29, 1, 0, 0, 0, 217, 222, 3, 32, 16, 0, 218, 219, 7, 3, 0, 0, 219, 221,
|
|
102
|
-
3, 32, 16, 0, 220, 218, 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223,
|
|
103
|
-
1, 0, 0, 0, 223, 31, 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 230, 3, 34, 17, 0, 226, 227,
|
|
104
|
-
7, 4, 0, 0, 227, 229, 3, 34, 17, 0, 228, 226, 1, 0, 0, 0, 229, 232, 1, 0, 0, 0, 230, 228,
|
|
105
|
-
1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 33, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 233, 236, 3,
|
|
106
|
-
36, 18, 0, 234, 235, 5, 47, 0, 0, 235, 237, 3, 36, 18, 0, 236, 234, 1, 0, 0, 0, 236, 237,
|
|
107
|
-
1, 0, 0, 0, 237, 35, 1, 0, 0, 0, 238, 245, 3, 38, 19, 0, 239, 240, 5, 18, 0, 0, 240, 241,
|
|
108
|
-
3, 30, 15, 0, 241, 242, 5, 19, 0, 0, 242, 245, 1, 0, 0, 0, 243, 245, 3, 62, 31, 0, 244,
|
|
109
|
-
238, 1, 0, 0, 0, 244, 239, 1, 0, 0, 0, 244, 243, 1, 0, 0, 0, 245, 37, 1, 0, 0, 0, 246, 259,
|
|
110
|
-
5, 17, 0, 0, 247, 256, 5, 18, 0, 0, 248, 253, 3, 62, 31, 0, 249, 250, 5, 44, 0, 0, 250,
|
|
111
|
-
252, 3, 62, 31, 0, 251, 249, 1, 0, 0, 0, 252, 255, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0, 253,
|
|
112
|
-
254, 1, 0, 0, 0, 254, 257, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 256, 248, 1, 0, 0, 0, 256,
|
|
113
|
-
257, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 260, 5, 19, 0, 0, 259, 247, 1, 0, 0, 0, 259,
|
|
114
|
-
260, 1, 0, 0, 0, 260, 39, 1, 0, 0, 0, 261, 263, 3, 42, 21, 0, 262, 264, 3, 44, 22, 0, 263,
|
|
115
|
-
262, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 267, 3, 46, 23, 0, 266,
|
|
116
|
-
268, 3, 54, 27, 0, 267, 266, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 270, 1, 0, 0, 0, 269,
|
|
117
|
-
271, 3, 56, 28, 0, 270, 269, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 41, 1, 0, 0, 0, 272,
|
|
118
|
-
273, 7, 5, 0, 0, 273, 43, 1, 0, 0, 0, 274, 279, 5, 17, 0, 0, 275, 276, 5, 35, 0, 0, 276,
|
|
119
|
-
278, 5, 17, 0, 0, 277, 275, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279,
|
|
120
|
-
280, 1, 0, 0, 0, 280, 45, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 283, 5, 18, 0, 0, 283,
|
|
121
|
-
288, 3, 48, 24, 0, 284, 285, 5, 44, 0, 0, 285, 287, 3, 48, 24, 0, 286, 284, 1, 0, 0, 0,
|
|
122
|
-
287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 291, 1, 0, 0, 0,
|
|
123
|
-
290, 288, 1, 0, 0, 0, 291, 292, 5, 19, 0, 0, 292, 47, 1, 0, 0, 0, 293, 294, 3, 50, 25,
|
|
124
|
-
0, 294, 295, 3, 52, 26, 0, 295, 49, 1, 0, 0, 0, 296, 297, 5, 17, 0, 0, 297, 51, 1, 0, 0,
|
|
125
|
-
0, 298, 299, 5, 17, 0, 0, 299, 53, 1, 0, 0, 0, 300, 301, 5, 17, 0, 0, 301, 55, 1, 0, 0,
|
|
126
|
-
0, 302, 303, 3, 28, 14, 0, 303, 57, 1, 0, 0, 0, 304, 305, 5, 41, 0, 0, 305, 310, 3, 66,
|
|
127
|
-
33, 0, 306, 307, 5, 44, 0, 0, 307, 309, 3, 66, 33, 0, 308, 306, 1, 0, 0, 0, 309, 312,
|
|
128
|
-
1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 59, 1, 0, 0, 0, 312, 310, 1,
|
|
129
|
-
0, 0, 0, 313, 314, 7, 6, 0, 0, 314, 319, 3, 66, 33, 0, 315, 316, 5, 44, 0, 0, 316, 318,
|
|
130
|
-
3, 66, 33, 0, 317, 315, 1, 0, 0, 0, 318, 321, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 319, 320,
|
|
131
|
-
1, 0, 0, 0, 320, 61, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 322, 323, 7, 7, 0, 0, 323, 63, 1,
|
|
132
|
-
0, 0, 0, 324, 325, 5, 8, 0, 0, 325, 326, 5, 17, 0, 0, 326, 327, 5, 30, 0, 0, 327, 328,
|
|
133
|
-
3, 66, 33, 0, 328, 65, 1, 0, 0, 0, 329, 335, 3, 68, 34, 0, 330, 331, 3, 76, 38, 0, 331,
|
|
134
|
-
332, 3, 68, 34, 0, 332, 334, 1, 0, 0, 0, 333, 330, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335,
|
|
135
|
-
333, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 67, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 338, 343,
|
|
136
|
-
3, 70, 35, 0, 339, 340, 5, 35, 0, 0, 340, 342, 3, 70, 35, 0, 341, 339, 1, 0, 0, 0, 342,
|
|
137
|
-
345, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 69, 1, 0, 0, 0, 345, 343,
|
|
138
|
-
1, 0, 0, 0, 346, 347, 5, 18, 0, 0, 347, 348, 3, 66, 33, 0, 348, 349, 5, 19, 0, 0, 349,
|
|
139
|
-
356, 1, 0, 0, 0, 350, 351, 3, 72, 36, 0, 351, 352, 5, 18, 0, 0, 352, 353, 5, 19, 0, 0,
|
|
140
|
-
353, 356, 1, 0, 0, 0, 354, 356, 5, 17, 0, 0, 355, 346, 1, 0, 0, 0, 355, 350, 1, 0, 0, 0,
|
|
141
|
-
355, 354, 1, 0, 0, 0, 356, 358, 1, 0, 0, 0, 357, 359, 5, 28, 0, 0, 358, 357, 1, 0, 0, 0,
|
|
142
|
-
358, 359, 1, 0, 0, 0, 359, 363, 1, 0, 0, 0, 360, 362, 3, 74, 37, 0, 361, 360, 1, 0, 0,
|
|
143
|
-
0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364, 1, 0, 0, 0, 364, 71, 1, 0, 0, 0,
|
|
144
|
-
365, 363, 1, 0, 0, 0, 366, 367, 5, 17, 0, 0, 367, 73, 1, 0, 0, 0, 368, 369, 5, 26, 0, 0,
|
|
145
|
-
369, 370, 5, 17, 0, 0, 370, 371, 5, 27, 0, 0, 371, 75, 1, 0, 0, 0, 372, 373, 7, 8, 0, 0,
|
|
146
|
-
373, 77, 1, 0, 0, 0, 374, 375, 5, 3, 0, 0, 375, 379, 5, 20, 0, 0, 376, 378, 3, 80, 40,
|
|
147
|
-
0, 377, 376, 1, 0, 0, 0, 378, 381, 1, 0, 0, 0, 379, 377, 1, 0, 0, 0, 379, 380, 1, 0, 0,
|
|
148
|
-
0, 380, 382, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 382, 383, 5, 21, 0, 0, 383, 79, 1, 0, 0,
|
|
149
|
-
0, 384, 385, 5, 17, 0, 0, 385, 386, 3, 82, 41, 0, 386, 387, 3, 84, 42, 0, 387, 388, 5,
|
|
150
|
-
24, 0, 0, 388, 389, 3, 88, 44, 0, 389, 390, 5, 25, 0, 0, 390, 391, 3, 84, 42, 0, 391,
|
|
151
|
-
392, 3, 82, 41, 0, 392, 396, 5, 17, 0, 0, 393, 395, 3, 10, 5, 0, 394, 393, 1, 0, 0, 0,
|
|
152
|
-
395, 398, 1, 0, 0, 0, 396, 394, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 81, 1, 0, 0, 0, 398,
|
|
153
|
-
396, 1, 0, 0, 0, 399, 400, 5, 26, 0, 0, 400, 401, 5, 17, 0, 0, 401, 402, 5, 27, 0, 0, 402,
|
|
154
|
-
83, 1, 0, 0, 0, 403, 406, 3, 86, 43, 0, 404, 405, 5, 34, 0, 0, 405, 407, 3, 86, 43, 0,
|
|
155
|
-
406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 85, 1, 0, 0, 0, 408, 409, 7, 9, 0, 0, 409,
|
|
156
|
-
87, 1, 0, 0, 0, 410, 411, 5, 17, 0, 0, 411, 89, 1, 0, 0, 0, 40, 93, 96, 102, 117, 124,
|
|
157
|
-
137, 143, 148, 154, 156, 166, 170, 173, 178, 184, 188, 191, 204, 222, 230, 236,
|
|
158
|
-
244, 253, 256, 259, 263, 267, 270, 279, 288, 310, 319, 335, 343, 355, 358, 363,
|
|
159
|
-
379, 396, 406
|
|
160
|
-
]
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
class malParser (Parser):
|
|
164
|
-
|
|
165
|
-
grammarFileName = "mal.g4"
|
|
166
|
-
|
|
167
|
-
atn = ATNDeserializer().deserialize(serializedATN())
|
|
168
|
-
|
|
169
|
-
decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)]
|
|
170
|
-
|
|
171
|
-
sharedContextCache = PredictionContextCache()
|
|
172
|
-
|
|
173
|
-
literalNames = ["<INVALID>", "'abstract'", "'asset'", "'associations'",
|
|
174
|
-
"'extends'", "'include'", "'category'", "'info'", "'let'",
|
|
175
|
-
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
|
176
|
-
"'E'", "'C'", "'I'", "'A'", "<INVALID>", "'('", "')'",
|
|
177
|
-
"'{'", "'}'", "'#'", "':'", "'<--'", "'-->'", "'['",
|
|
178
|
-
"']'", "'*'", "'1'", "'='", "'-'", "'/\\'", "'\\/'",
|
|
179
|
-
"'..'", "'.'", "'&'", "'|'", "'!'", "'!E'", "'@'",
|
|
180
|
-
"'<-'", "'+>'", "'->'", "','", "'+'", "'/'", "'^'",
|
|
181
|
-
"'//!'"]
|
|
182
|
-
|
|
183
|
-
symbolicNames = ["<INVALID>", "ABSTRACT", "ASSET", "ASSOCIATIONS",
|
|
184
|
-
"EXTENDS", "INCLUDE", "CATEGORY", "INFO", "LET", "STRING",
|
|
185
|
-
"MULTILINE_STRING", "INT", "FLOAT", "EXISTS", "C",
|
|
186
|
-
"I", "A", "ID", "LPAREN", "RPAREN", "LCURLY", "RCURLY",
|
|
187
|
-
"HASH", "COLON", "LARROW", "RARROW", "LSQUARE", "RSQUARE",
|
|
188
|
-
"STAR", "ONE", "ASSIGN", "MINUS", "INTERSECT", "UNION",
|
|
189
|
-
"RANGE", "DOT", "AND", "OR", "EXCLAMATION", "NOTEXISTS",
|
|
190
|
-
"AT", "REQUIRES", "INHERITS", "LEADSTO", "COMMA",
|
|
191
|
-
"PLUS", "DIVIDE", "POWER", "EXCLM_COMM", "INLINE_COMMENT",
|
|
192
|
-
"MULTILINE_COMMENT", "WS"]
|
|
193
|
-
|
|
194
|
-
RULE_mal = 0
|
|
195
|
-
RULE_declaration = 1
|
|
196
|
-
RULE_include = 2
|
|
197
|
-
RULE_define = 3
|
|
198
|
-
RULE_category = 4
|
|
199
|
-
RULE_meta = 5
|
|
200
|
-
RULE_text = 6
|
|
201
|
-
RULE_asset = 7
|
|
202
|
-
RULE_step = 8
|
|
203
|
-
RULE_steptype = 9
|
|
204
|
-
RULE_tag = 10
|
|
205
|
-
RULE_cias = 11
|
|
206
|
-
RULE_cia = 12
|
|
207
|
-
RULE_ttc = 13
|
|
208
|
-
RULE_pdist = 14
|
|
209
|
-
RULE_pdistexpr = 15
|
|
210
|
-
RULE_pdistterm = 16
|
|
211
|
-
RULE_pdistfact = 17
|
|
212
|
-
RULE_pdistatom = 18
|
|
213
|
-
RULE_pdistdist = 19
|
|
214
|
-
RULE_detector = 20
|
|
215
|
-
RULE_bang = 21
|
|
216
|
-
RULE_detectorname = 22
|
|
217
|
-
RULE_context = 23
|
|
218
|
-
RULE_contextpart = 24
|
|
219
|
-
RULE_contextasset = 25
|
|
220
|
-
RULE_contextlabel = 26
|
|
221
|
-
RULE_detectortype = 27
|
|
222
|
-
RULE_tprate = 28
|
|
223
|
-
RULE_precondition = 29
|
|
224
|
-
RULE_reaches = 30
|
|
225
|
-
RULE_number = 31
|
|
226
|
-
RULE_variable = 32
|
|
227
|
-
RULE_expr = 33
|
|
228
|
-
RULE_parts = 34
|
|
229
|
-
RULE_part = 35
|
|
230
|
-
RULE_varsubst = 36
|
|
231
|
-
RULE_type = 37
|
|
232
|
-
RULE_setop = 38
|
|
233
|
-
RULE_associations = 39
|
|
234
|
-
RULE_association = 40
|
|
235
|
-
RULE_field = 41
|
|
236
|
-
RULE_mult = 42
|
|
237
|
-
RULE_multatom = 43
|
|
238
|
-
RULE_linkname = 44
|
|
239
|
-
|
|
240
|
-
ruleNames = ["mal", "declaration", "include", "define", "category",
|
|
241
|
-
"meta", "text", "asset", "step", "steptype", "tag", "cias",
|
|
242
|
-
"cia", "ttc", "pdist", "pdistexpr", "pdistterm", "pdistfact",
|
|
243
|
-
"pdistatom", "pdistdist", "detector", "bang", "detectorname",
|
|
244
|
-
"context", "contextpart", "contextasset", "contextlabel",
|
|
245
|
-
"detectortype", "tprate", "precondition", "reaches",
|
|
246
|
-
"number", "variable", "expr", "parts", "part", "varsubst",
|
|
247
|
-
"type", "setop", "associations", "association", "field",
|
|
248
|
-
"mult", "multatom", "linkname"]
|
|
249
|
-
|
|
250
|
-
EOF = Token.EOF
|
|
251
|
-
ABSTRACT = 1
|
|
252
|
-
ASSET = 2
|
|
253
|
-
ASSOCIATIONS = 3
|
|
254
|
-
EXTENDS = 4
|
|
255
|
-
INCLUDE = 5
|
|
256
|
-
CATEGORY = 6
|
|
257
|
-
INFO = 7
|
|
258
|
-
LET = 8
|
|
259
|
-
STRING = 9
|
|
260
|
-
MULTILINE_STRING = 10
|
|
261
|
-
INT = 11
|
|
262
|
-
FLOAT = 12
|
|
263
|
-
EXISTS = 13
|
|
264
|
-
C = 14
|
|
265
|
-
I = 15
|
|
266
|
-
A = 16
|
|
267
|
-
ID = 17
|
|
268
|
-
LPAREN = 18
|
|
269
|
-
RPAREN = 19
|
|
270
|
-
LCURLY = 20
|
|
271
|
-
RCURLY = 21
|
|
272
|
-
HASH = 22
|
|
273
|
-
COLON = 23
|
|
274
|
-
LARROW = 24
|
|
275
|
-
RARROW = 25
|
|
276
|
-
LSQUARE = 26
|
|
277
|
-
RSQUARE = 27
|
|
278
|
-
STAR = 28
|
|
279
|
-
ONE = 29
|
|
280
|
-
ASSIGN = 30
|
|
281
|
-
MINUS = 31
|
|
282
|
-
INTERSECT = 32
|
|
283
|
-
UNION = 33
|
|
284
|
-
RANGE = 34
|
|
285
|
-
DOT = 35
|
|
286
|
-
AND = 36
|
|
287
|
-
OR = 37
|
|
288
|
-
EXCLAMATION = 38
|
|
289
|
-
NOTEXISTS = 39
|
|
290
|
-
AT = 40
|
|
291
|
-
REQUIRES = 41
|
|
292
|
-
INHERITS = 42
|
|
293
|
-
LEADSTO = 43
|
|
294
|
-
COMMA = 44
|
|
295
|
-
PLUS = 45
|
|
296
|
-
DIVIDE = 46
|
|
297
|
-
POWER = 47
|
|
298
|
-
EXCLM_COMM = 48
|
|
299
|
-
INLINE_COMMENT = 49
|
|
300
|
-
MULTILINE_COMMENT = 50
|
|
301
|
-
WS = 51
|
|
302
|
-
|
|
303
|
-
def __init__(self, input: TokenStream, output: TextIO = sys.stdout):
|
|
304
|
-
super().__init__(input, output)
|
|
305
|
-
self.checkVersion("4.13.2")
|
|
306
|
-
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
|
|
307
|
-
self._predicates = None
|
|
308
|
-
|
|
309
|
-
class MalContext(ParserRuleContext):
|
|
310
|
-
__slots__ = 'parser'
|
|
311
|
-
|
|
312
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
313
|
-
super().__init__(parent, invokingState)
|
|
314
|
-
self.parser = parser
|
|
315
|
-
|
|
316
|
-
def declaration(self, i: int = None):
|
|
317
|
-
if i is None:
|
|
318
|
-
return self.getTypedRuleContexts(malParser.DeclarationContext)
|
|
319
|
-
return self.getTypedRuleContext(malParser.DeclarationContext, i)
|
|
320
|
-
|
|
321
|
-
def EOF(self):
|
|
322
|
-
return self.getToken(malParser.EOF, 0)
|
|
323
|
-
|
|
324
|
-
def getRuleIndex(self):
|
|
325
|
-
return malParser.RULE_mal
|
|
326
|
-
|
|
327
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
328
|
-
if hasattr(listener, "enterMal"):
|
|
329
|
-
listener.enterMal(self)
|
|
330
|
-
|
|
331
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
332
|
-
if hasattr(listener, "exitMal"):
|
|
333
|
-
listener.exitMal(self)
|
|
334
|
-
|
|
335
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
336
|
-
if hasattr(visitor, "visitMal"):
|
|
337
|
-
return visitor.visitMal(self)
|
|
338
|
-
return visitor.visitChildren(self)
|
|
339
|
-
|
|
340
|
-
def mal(self):
|
|
341
|
-
|
|
342
|
-
localctx = malParser.MalContext(self, self._ctx, self.state)
|
|
343
|
-
self.enterRule(localctx, 0, self.RULE_mal)
|
|
344
|
-
self._la = 0 # Token type
|
|
345
|
-
try:
|
|
346
|
-
self.state = 96
|
|
347
|
-
self._errHandler.sync(self)
|
|
348
|
-
token = self._input.LA(1)
|
|
349
|
-
if token in [3, 5, 6, 22]:
|
|
350
|
-
self.enterOuterAlt(localctx, 1)
|
|
351
|
-
self.state = 91
|
|
352
|
-
self._errHandler.sync(self)
|
|
353
|
-
_la = self._input.LA(1)
|
|
354
|
-
while True:
|
|
355
|
-
self.state = 90
|
|
356
|
-
self.declaration()
|
|
357
|
-
self.state = 93
|
|
358
|
-
self._errHandler.sync(self)
|
|
359
|
-
_la = self._input.LA(1)
|
|
360
|
-
if not (((_la) & ~0x3f) == 0 and ((1 << _la) & 4194408) != 0):
|
|
361
|
-
break
|
|
362
|
-
|
|
363
|
-
elif token == -1:
|
|
364
|
-
self.enterOuterAlt(localctx, 2)
|
|
365
|
-
self.state = 95
|
|
366
|
-
self.match(malParser.EOF)
|
|
367
|
-
else:
|
|
368
|
-
raise NoViableAltException(self)
|
|
369
|
-
|
|
370
|
-
except RecognitionException as re:
|
|
371
|
-
localctx.exception = re
|
|
372
|
-
self._errHandler.reportError(self, re)
|
|
373
|
-
self._errHandler.recover(self, re)
|
|
374
|
-
finally:
|
|
375
|
-
self.exitRule()
|
|
376
|
-
return localctx
|
|
377
|
-
|
|
378
|
-
class DeclarationContext(ParserRuleContext):
|
|
379
|
-
__slots__ = 'parser'
|
|
380
|
-
|
|
381
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
382
|
-
super().__init__(parent, invokingState)
|
|
383
|
-
self.parser = parser
|
|
384
|
-
|
|
385
|
-
def include(self):
|
|
386
|
-
return self.getTypedRuleContext(malParser.IncludeContext, 0)
|
|
387
|
-
|
|
388
|
-
def define(self):
|
|
389
|
-
return self.getTypedRuleContext(malParser.DefineContext, 0)
|
|
390
|
-
|
|
391
|
-
def category(self):
|
|
392
|
-
return self.getTypedRuleContext(malParser.CategoryContext, 0)
|
|
393
|
-
|
|
394
|
-
def associations(self):
|
|
395
|
-
return self.getTypedRuleContext(malParser.AssociationsContext, 0)
|
|
396
|
-
|
|
397
|
-
def getRuleIndex(self):
|
|
398
|
-
return malParser.RULE_declaration
|
|
399
|
-
|
|
400
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
401
|
-
if hasattr(listener, "enterDeclaration"):
|
|
402
|
-
listener.enterDeclaration(self)
|
|
403
|
-
|
|
404
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
405
|
-
if hasattr(listener, "exitDeclaration"):
|
|
406
|
-
listener.exitDeclaration(self)
|
|
407
|
-
|
|
408
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
409
|
-
if hasattr(visitor, "visitDeclaration"):
|
|
410
|
-
return visitor.visitDeclaration(self)
|
|
411
|
-
return visitor.visitChildren(self)
|
|
412
|
-
|
|
413
|
-
def declaration(self):
|
|
414
|
-
|
|
415
|
-
localctx = malParser.DeclarationContext(self, self._ctx, self.state)
|
|
416
|
-
self.enterRule(localctx, 2, self.RULE_declaration)
|
|
417
|
-
try:
|
|
418
|
-
self.state = 102
|
|
419
|
-
self._errHandler.sync(self)
|
|
420
|
-
token = self._input.LA(1)
|
|
421
|
-
if token == 5:
|
|
422
|
-
self.enterOuterAlt(localctx, 1)
|
|
423
|
-
self.state = 98
|
|
424
|
-
self.include()
|
|
425
|
-
elif token == 22:
|
|
426
|
-
self.enterOuterAlt(localctx, 2)
|
|
427
|
-
self.state = 99
|
|
428
|
-
self.define()
|
|
429
|
-
elif token == 6:
|
|
430
|
-
self.enterOuterAlt(localctx, 3)
|
|
431
|
-
self.state = 100
|
|
432
|
-
self.category()
|
|
433
|
-
elif token == 3:
|
|
434
|
-
self.enterOuterAlt(localctx, 4)
|
|
435
|
-
self.state = 101
|
|
436
|
-
self.associations()
|
|
437
|
-
else:
|
|
438
|
-
raise NoViableAltException(self)
|
|
439
|
-
|
|
440
|
-
except RecognitionException as re:
|
|
441
|
-
localctx.exception = re
|
|
442
|
-
self._errHandler.reportError(self, re)
|
|
443
|
-
self._errHandler.recover(self, re)
|
|
444
|
-
finally:
|
|
445
|
-
self.exitRule()
|
|
446
|
-
return localctx
|
|
447
|
-
|
|
448
|
-
class IncludeContext(ParserRuleContext):
|
|
449
|
-
__slots__ = 'parser'
|
|
450
|
-
|
|
451
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
452
|
-
super().__init__(parent, invokingState)
|
|
453
|
-
self.parser = parser
|
|
454
|
-
|
|
455
|
-
def INCLUDE(self):
|
|
456
|
-
return self.getToken(malParser.INCLUDE, 0)
|
|
457
|
-
|
|
458
|
-
def STRING(self):
|
|
459
|
-
return self.getToken(malParser.STRING, 0)
|
|
460
|
-
|
|
461
|
-
def getRuleIndex(self):
|
|
462
|
-
return malParser.RULE_include
|
|
463
|
-
|
|
464
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
465
|
-
if hasattr(listener, "enterInclude"):
|
|
466
|
-
listener.enterInclude(self)
|
|
467
|
-
|
|
468
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
469
|
-
if hasattr(listener, "exitInclude"):
|
|
470
|
-
listener.exitInclude(self)
|
|
471
|
-
|
|
472
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
473
|
-
if hasattr(visitor, "visitInclude"):
|
|
474
|
-
return visitor.visitInclude(self)
|
|
475
|
-
return visitor.visitChildren(self)
|
|
476
|
-
|
|
477
|
-
def include(self):
|
|
478
|
-
|
|
479
|
-
localctx = malParser.IncludeContext(self, self._ctx, self.state)
|
|
480
|
-
self.enterRule(localctx, 4, self.RULE_include)
|
|
481
|
-
try:
|
|
482
|
-
self.enterOuterAlt(localctx, 1)
|
|
483
|
-
self.state = 104
|
|
484
|
-
self.match(malParser.INCLUDE)
|
|
485
|
-
self.state = 105
|
|
486
|
-
self.match(malParser.STRING)
|
|
487
|
-
except RecognitionException as re:
|
|
488
|
-
localctx.exception = re
|
|
489
|
-
self._errHandler.reportError(self, re)
|
|
490
|
-
self._errHandler.recover(self, re)
|
|
491
|
-
finally:
|
|
492
|
-
self.exitRule()
|
|
493
|
-
return localctx
|
|
494
|
-
|
|
495
|
-
class DefineContext(ParserRuleContext):
|
|
496
|
-
__slots__ = 'parser'
|
|
497
|
-
|
|
498
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
499
|
-
super().__init__(parent, invokingState)
|
|
500
|
-
self.parser = parser
|
|
501
|
-
|
|
502
|
-
def HASH(self):
|
|
503
|
-
return self.getToken(malParser.HASH, 0)
|
|
504
|
-
|
|
505
|
-
def ID(self):
|
|
506
|
-
return self.getToken(malParser.ID, 0)
|
|
507
|
-
|
|
508
|
-
def COLON(self):
|
|
509
|
-
return self.getToken(malParser.COLON, 0)
|
|
510
|
-
|
|
511
|
-
def STRING(self):
|
|
512
|
-
return self.getToken(malParser.STRING, 0)
|
|
513
|
-
|
|
514
|
-
def getRuleIndex(self):
|
|
515
|
-
return malParser.RULE_define
|
|
516
|
-
|
|
517
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
518
|
-
if hasattr(listener, "enterDefine"):
|
|
519
|
-
listener.enterDefine(self)
|
|
520
|
-
|
|
521
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
522
|
-
if hasattr(listener, "exitDefine"):
|
|
523
|
-
listener.exitDefine(self)
|
|
524
|
-
|
|
525
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
526
|
-
if hasattr(visitor, "visitDefine"):
|
|
527
|
-
return visitor.visitDefine(self)
|
|
528
|
-
return visitor.visitChildren(self)
|
|
529
|
-
|
|
530
|
-
def define(self):
|
|
531
|
-
|
|
532
|
-
localctx = malParser.DefineContext(self, self._ctx, self.state)
|
|
533
|
-
self.enterRule(localctx, 6, self.RULE_define)
|
|
534
|
-
try:
|
|
535
|
-
self.enterOuterAlt(localctx, 1)
|
|
536
|
-
self.state = 107
|
|
537
|
-
self.match(malParser.HASH)
|
|
538
|
-
self.state = 108
|
|
539
|
-
self.match(malParser.ID)
|
|
540
|
-
self.state = 109
|
|
541
|
-
self.match(malParser.COLON)
|
|
542
|
-
self.state = 110
|
|
543
|
-
self.match(malParser.STRING)
|
|
544
|
-
except RecognitionException as re:
|
|
545
|
-
localctx.exception = re
|
|
546
|
-
self._errHandler.reportError(self, re)
|
|
547
|
-
self._errHandler.recover(self, re)
|
|
548
|
-
finally:
|
|
549
|
-
self.exitRule()
|
|
550
|
-
return localctx
|
|
551
|
-
|
|
552
|
-
class CategoryContext(ParserRuleContext):
|
|
553
|
-
__slots__ = 'parser'
|
|
554
|
-
|
|
555
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
556
|
-
super().__init__(parent, invokingState)
|
|
557
|
-
self.parser = parser
|
|
558
|
-
|
|
559
|
-
def CATEGORY(self):
|
|
560
|
-
return self.getToken(malParser.CATEGORY, 0)
|
|
561
|
-
|
|
562
|
-
def ID(self):
|
|
563
|
-
return self.getToken(malParser.ID, 0)
|
|
564
|
-
|
|
565
|
-
def LCURLY(self):
|
|
566
|
-
return self.getToken(malParser.LCURLY, 0)
|
|
567
|
-
|
|
568
|
-
def RCURLY(self):
|
|
569
|
-
return self.getToken(malParser.RCURLY, 0)
|
|
570
|
-
|
|
571
|
-
def meta(self, i: int = None):
|
|
572
|
-
if i is None:
|
|
573
|
-
return self.getTypedRuleContexts(malParser.MetaContext)
|
|
574
|
-
return self.getTypedRuleContext(malParser.MetaContext, i)
|
|
575
|
-
|
|
576
|
-
def asset(self, i: int = None):
|
|
577
|
-
if i is None:
|
|
578
|
-
return self.getTypedRuleContexts(malParser.AssetContext)
|
|
579
|
-
return self.getTypedRuleContext(malParser.AssetContext, i)
|
|
580
|
-
|
|
581
|
-
def getRuleIndex(self):
|
|
582
|
-
return malParser.RULE_category
|
|
583
|
-
|
|
584
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
585
|
-
if hasattr(listener, "enterCategory"):
|
|
586
|
-
listener.enterCategory(self)
|
|
587
|
-
|
|
588
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
589
|
-
if hasattr(listener, "exitCategory"):
|
|
590
|
-
listener.exitCategory(self)
|
|
591
|
-
|
|
592
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
593
|
-
if hasattr(visitor, "visitCategory"):
|
|
594
|
-
return visitor.visitCategory(self)
|
|
595
|
-
return visitor.visitChildren(self)
|
|
596
|
-
|
|
597
|
-
def category(self):
|
|
598
|
-
|
|
599
|
-
localctx = malParser.CategoryContext(self, self._ctx, self.state)
|
|
600
|
-
self.enterRule(localctx, 8, self.RULE_category)
|
|
601
|
-
self._la = 0 # Token type
|
|
602
|
-
try:
|
|
603
|
-
self.enterOuterAlt(localctx, 1)
|
|
604
|
-
self.state = 112
|
|
605
|
-
self.match(malParser.CATEGORY)
|
|
606
|
-
self.state = 113
|
|
607
|
-
self.match(malParser.ID)
|
|
608
|
-
self.state = 117
|
|
609
|
-
self._errHandler.sync(self)
|
|
610
|
-
_la = self._input.LA(1)
|
|
611
|
-
while _la == 17:
|
|
612
|
-
self.state = 114
|
|
613
|
-
self.meta()
|
|
614
|
-
self.state = 119
|
|
615
|
-
self._errHandler.sync(self)
|
|
616
|
-
_la = self._input.LA(1)
|
|
617
|
-
|
|
618
|
-
self.state = 120
|
|
619
|
-
self.match(malParser.LCURLY)
|
|
620
|
-
self.state = 124
|
|
621
|
-
self._errHandler.sync(self)
|
|
622
|
-
_la = self._input.LA(1)
|
|
623
|
-
while _la == 1 or _la == 2:
|
|
624
|
-
self.state = 121
|
|
625
|
-
self.asset()
|
|
626
|
-
self.state = 126
|
|
627
|
-
self._errHandler.sync(self)
|
|
628
|
-
_la = self._input.LA(1)
|
|
629
|
-
|
|
630
|
-
self.state = 127
|
|
631
|
-
self.match(malParser.RCURLY)
|
|
632
|
-
except RecognitionException as re:
|
|
633
|
-
localctx.exception = re
|
|
634
|
-
self._errHandler.reportError(self, re)
|
|
635
|
-
self._errHandler.recover(self, re)
|
|
636
|
-
finally:
|
|
637
|
-
self.exitRule()
|
|
638
|
-
return localctx
|
|
639
|
-
|
|
640
|
-
class MetaContext(ParserRuleContext):
|
|
641
|
-
__slots__ = 'parser'
|
|
642
|
-
|
|
643
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
644
|
-
super().__init__(parent, invokingState)
|
|
645
|
-
self.parser = parser
|
|
646
|
-
|
|
647
|
-
def ID(self):
|
|
648
|
-
return self.getToken(malParser.ID, 0)
|
|
649
|
-
|
|
650
|
-
def INFO(self):
|
|
651
|
-
return self.getToken(malParser.INFO, 0)
|
|
652
|
-
|
|
653
|
-
def COLON(self):
|
|
654
|
-
return self.getToken(malParser.COLON, 0)
|
|
655
|
-
|
|
656
|
-
def text(self):
|
|
657
|
-
return self.getTypedRuleContext(malParser.TextContext, 0)
|
|
658
|
-
|
|
659
|
-
def getRuleIndex(self):
|
|
660
|
-
return malParser.RULE_meta
|
|
661
|
-
|
|
662
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
663
|
-
if hasattr(listener, "enterMeta"):
|
|
664
|
-
listener.enterMeta(self)
|
|
665
|
-
|
|
666
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
667
|
-
if hasattr(listener, "exitMeta"):
|
|
668
|
-
listener.exitMeta(self)
|
|
669
|
-
|
|
670
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
671
|
-
if hasattr(visitor, "visitMeta"):
|
|
672
|
-
return visitor.visitMeta(self)
|
|
673
|
-
return visitor.visitChildren(self)
|
|
674
|
-
|
|
675
|
-
def meta(self):
|
|
676
|
-
|
|
677
|
-
localctx = malParser.MetaContext(self, self._ctx, self.state)
|
|
678
|
-
self.enterRule(localctx, 10, self.RULE_meta)
|
|
679
|
-
try:
|
|
680
|
-
self.enterOuterAlt(localctx, 1)
|
|
681
|
-
self.state = 129
|
|
682
|
-
self.match(malParser.ID)
|
|
683
|
-
self.state = 130
|
|
684
|
-
self.match(malParser.INFO)
|
|
685
|
-
self.state = 131
|
|
686
|
-
self.match(malParser.COLON)
|
|
687
|
-
self.state = 132
|
|
688
|
-
self.text()
|
|
689
|
-
except RecognitionException as re:
|
|
690
|
-
localctx.exception = re
|
|
691
|
-
self._errHandler.reportError(self, re)
|
|
692
|
-
self._errHandler.recover(self, re)
|
|
693
|
-
finally:
|
|
694
|
-
self.exitRule()
|
|
695
|
-
return localctx
|
|
696
|
-
|
|
697
|
-
class TextContext(ParserRuleContext):
|
|
698
|
-
__slots__ = 'parser'
|
|
699
|
-
|
|
700
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
701
|
-
super().__init__(parent, invokingState)
|
|
702
|
-
self.parser = parser
|
|
703
|
-
|
|
704
|
-
def STRING(self):
|
|
705
|
-
return self.getToken(malParser.STRING, 0)
|
|
706
|
-
|
|
707
|
-
def MULTILINE_STRING(self):
|
|
708
|
-
return self.getToken(malParser.MULTILINE_STRING, 0)
|
|
709
|
-
|
|
710
|
-
def getRuleIndex(self):
|
|
711
|
-
return malParser.RULE_text
|
|
712
|
-
|
|
713
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
714
|
-
if hasattr(listener, "enterText"):
|
|
715
|
-
listener.enterText(self)
|
|
716
|
-
|
|
717
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
718
|
-
if hasattr(listener, "exitText"):
|
|
719
|
-
listener.exitText(self)
|
|
720
|
-
|
|
721
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
722
|
-
if hasattr(visitor, "visitText"):
|
|
723
|
-
return visitor.visitText(self)
|
|
724
|
-
return visitor.visitChildren(self)
|
|
725
|
-
|
|
726
|
-
def text(self):
|
|
727
|
-
|
|
728
|
-
localctx = malParser.TextContext(self, self._ctx, self.state)
|
|
729
|
-
self.enterRule(localctx, 12, self.RULE_text)
|
|
730
|
-
self._la = 0 # Token type
|
|
731
|
-
try:
|
|
732
|
-
self.enterOuterAlt(localctx, 1)
|
|
733
|
-
self.state = 134
|
|
734
|
-
_la = self._input.LA(1)
|
|
735
|
-
if not (_la == 9 or _la == 10):
|
|
736
|
-
self._errHandler.recoverInline(self)
|
|
737
|
-
else:
|
|
738
|
-
self._errHandler.reportMatch(self)
|
|
739
|
-
self.consume()
|
|
740
|
-
except RecognitionException as re:
|
|
741
|
-
localctx.exception = re
|
|
742
|
-
self._errHandler.reportError(self, re)
|
|
743
|
-
self._errHandler.recover(self, re)
|
|
744
|
-
finally:
|
|
745
|
-
self.exitRule()
|
|
746
|
-
return localctx
|
|
747
|
-
|
|
748
|
-
class AssetContext(ParserRuleContext):
|
|
749
|
-
__slots__ = 'parser'
|
|
750
|
-
|
|
751
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
752
|
-
super().__init__(parent, invokingState)
|
|
753
|
-
self.parser = parser
|
|
754
|
-
|
|
755
|
-
def ASSET(self):
|
|
756
|
-
return self.getToken(malParser.ASSET, 0)
|
|
757
|
-
|
|
758
|
-
def ID(self, i: int = None):
|
|
759
|
-
if i is None:
|
|
760
|
-
return self.getTokens(malParser.ID)
|
|
761
|
-
return self.getToken(malParser.ID, i)
|
|
762
|
-
|
|
763
|
-
def LCURLY(self):
|
|
764
|
-
return self.getToken(malParser.LCURLY, 0)
|
|
765
|
-
|
|
766
|
-
def RCURLY(self):
|
|
767
|
-
return self.getToken(malParser.RCURLY, 0)
|
|
768
|
-
|
|
769
|
-
def ABSTRACT(self):
|
|
770
|
-
return self.getToken(malParser.ABSTRACT, 0)
|
|
771
|
-
|
|
772
|
-
def EXTENDS(self):
|
|
773
|
-
return self.getToken(malParser.EXTENDS, 0)
|
|
774
|
-
|
|
775
|
-
def meta(self, i: int = None):
|
|
776
|
-
if i is None:
|
|
777
|
-
return self.getTypedRuleContexts(malParser.MetaContext)
|
|
778
|
-
return self.getTypedRuleContext(malParser.MetaContext, i)
|
|
779
|
-
|
|
780
|
-
def step(self, i: int = None):
|
|
781
|
-
if i is None:
|
|
782
|
-
return self.getTypedRuleContexts(malParser.StepContext)
|
|
783
|
-
return self.getTypedRuleContext(malParser.StepContext, i)
|
|
784
|
-
|
|
785
|
-
def variable(self, i: int = None):
|
|
786
|
-
if i is None:
|
|
787
|
-
return self.getTypedRuleContexts(malParser.VariableContext)
|
|
788
|
-
return self.getTypedRuleContext(malParser.VariableContext, i)
|
|
789
|
-
|
|
790
|
-
def getRuleIndex(self):
|
|
791
|
-
return malParser.RULE_asset
|
|
792
|
-
|
|
793
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
794
|
-
if hasattr(listener, "enterAsset"):
|
|
795
|
-
listener.enterAsset(self)
|
|
796
|
-
|
|
797
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
798
|
-
if hasattr(listener, "exitAsset"):
|
|
799
|
-
listener.exitAsset(self)
|
|
800
|
-
|
|
801
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
802
|
-
if hasattr(visitor, "visitAsset"):
|
|
803
|
-
return visitor.visitAsset(self)
|
|
804
|
-
return visitor.visitChildren(self)
|
|
805
|
-
|
|
806
|
-
def asset(self):
|
|
807
|
-
|
|
808
|
-
localctx = malParser.AssetContext(self, self._ctx, self.state)
|
|
809
|
-
self.enterRule(localctx, 14, self.RULE_asset)
|
|
810
|
-
self._la = 0 # Token type
|
|
811
|
-
try:
|
|
812
|
-
self.enterOuterAlt(localctx, 1)
|
|
813
|
-
self.state = 137
|
|
814
|
-
self._errHandler.sync(self)
|
|
815
|
-
_la = self._input.LA(1)
|
|
816
|
-
if _la == 1:
|
|
817
|
-
self.state = 136
|
|
818
|
-
self.match(malParser.ABSTRACT)
|
|
819
|
-
|
|
820
|
-
self.state = 139
|
|
821
|
-
self.match(malParser.ASSET)
|
|
822
|
-
self.state = 140
|
|
823
|
-
self.match(malParser.ID)
|
|
824
|
-
self.state = 143
|
|
825
|
-
self._errHandler.sync(self)
|
|
826
|
-
_la = self._input.LA(1)
|
|
827
|
-
if _la == 4:
|
|
828
|
-
self.state = 141
|
|
829
|
-
self.match(malParser.EXTENDS)
|
|
830
|
-
self.state = 142
|
|
831
|
-
self.match(malParser.ID)
|
|
832
|
-
|
|
833
|
-
self.state = 148
|
|
834
|
-
self._errHandler.sync(self)
|
|
835
|
-
_la = self._input.LA(1)
|
|
836
|
-
while _la == 17:
|
|
837
|
-
self.state = 145
|
|
838
|
-
self.meta()
|
|
839
|
-
self.state = 150
|
|
840
|
-
self._errHandler.sync(self)
|
|
841
|
-
_la = self._input.LA(1)
|
|
842
|
-
|
|
843
|
-
self.state = 151
|
|
844
|
-
self.match(malParser.LCURLY)
|
|
845
|
-
self.state = 156
|
|
846
|
-
self._errHandler.sync(self)
|
|
847
|
-
_la = self._input.LA(1)
|
|
848
|
-
while (((_la) & ~0x3f) == 0 and ((1 << _la) & 755918446848) != 0):
|
|
849
|
-
self.state = 154
|
|
850
|
-
self._errHandler.sync(self)
|
|
851
|
-
token = self._input.LA(1)
|
|
852
|
-
if token in [13, 22, 36, 37, 39]:
|
|
853
|
-
self.state = 152
|
|
854
|
-
self.step()
|
|
855
|
-
elif token == 8:
|
|
856
|
-
self.state = 153
|
|
857
|
-
self.variable()
|
|
858
|
-
else:
|
|
859
|
-
raise NoViableAltException(self)
|
|
860
|
-
|
|
861
|
-
self.state = 158
|
|
862
|
-
self._errHandler.sync(self)
|
|
863
|
-
_la = self._input.LA(1)
|
|
864
|
-
|
|
865
|
-
self.state = 159
|
|
866
|
-
self.match(malParser.RCURLY)
|
|
867
|
-
except RecognitionException as re:
|
|
868
|
-
localctx.exception = re
|
|
869
|
-
self._errHandler.reportError(self, re)
|
|
870
|
-
self._errHandler.recover(self, re)
|
|
871
|
-
finally:
|
|
872
|
-
self.exitRule()
|
|
873
|
-
return localctx
|
|
874
|
-
|
|
875
|
-
class StepContext(ParserRuleContext):
|
|
876
|
-
__slots__ = 'parser'
|
|
877
|
-
|
|
878
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
879
|
-
super().__init__(parent, invokingState)
|
|
880
|
-
self.parser = parser
|
|
881
|
-
|
|
882
|
-
def steptype(self):
|
|
883
|
-
return self.getTypedRuleContext(malParser.SteptypeContext, 0)
|
|
884
|
-
|
|
885
|
-
def ID(self):
|
|
886
|
-
return self.getToken(malParser.ID, 0)
|
|
887
|
-
|
|
888
|
-
def tag(self, i: int = None):
|
|
889
|
-
if i is None:
|
|
890
|
-
return self.getTypedRuleContexts(malParser.TagContext)
|
|
891
|
-
return self.getTypedRuleContext(malParser.TagContext, i)
|
|
892
|
-
|
|
893
|
-
def cias(self):
|
|
894
|
-
return self.getTypedRuleContext(malParser.CiasContext, 0)
|
|
895
|
-
|
|
896
|
-
def pdist(self):
|
|
897
|
-
return self.getTypedRuleContext(malParser.PdistContext, 0)
|
|
898
|
-
|
|
899
|
-
def meta(self, i: int = None):
|
|
900
|
-
if i is None:
|
|
901
|
-
return self.getTypedRuleContexts(malParser.MetaContext)
|
|
902
|
-
return self.getTypedRuleContext(malParser.MetaContext, i)
|
|
903
|
-
|
|
904
|
-
def detector(self, i: int = None):
|
|
905
|
-
if i is None:
|
|
906
|
-
return self.getTypedRuleContexts(malParser.DetectorContext)
|
|
907
|
-
return self.getTypedRuleContext(malParser.DetectorContext, i)
|
|
908
|
-
|
|
909
|
-
def precondition(self):
|
|
910
|
-
return self.getTypedRuleContext(malParser.PreconditionContext, 0)
|
|
911
|
-
|
|
912
|
-
def reaches(self):
|
|
913
|
-
return self.getTypedRuleContext(malParser.ReachesContext, 0)
|
|
914
|
-
|
|
915
|
-
def getRuleIndex(self):
|
|
916
|
-
return malParser.RULE_step
|
|
917
|
-
|
|
918
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
919
|
-
if hasattr(listener, "enterStep"):
|
|
920
|
-
listener.enterStep(self)
|
|
921
|
-
|
|
922
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
923
|
-
if hasattr(listener, "exitStep"):
|
|
924
|
-
listener.exitStep(self)
|
|
925
|
-
|
|
926
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
927
|
-
if hasattr(visitor, "visitStep"):
|
|
928
|
-
return visitor.visitStep(self)
|
|
929
|
-
return visitor.visitChildren(self)
|
|
930
|
-
|
|
931
|
-
def step(self):
|
|
932
|
-
|
|
933
|
-
localctx = malParser.StepContext(self, self._ctx, self.state)
|
|
934
|
-
self.enterRule(localctx, 16, self.RULE_step)
|
|
935
|
-
self._la = 0 # Token type
|
|
936
|
-
try:
|
|
937
|
-
self.enterOuterAlt(localctx, 1)
|
|
938
|
-
self.state = 161
|
|
939
|
-
self.steptype()
|
|
940
|
-
self.state = 162
|
|
941
|
-
self.match(malParser.ID)
|
|
942
|
-
self.state = 166
|
|
943
|
-
self._errHandler.sync(self)
|
|
944
|
-
_la = self._input.LA(1)
|
|
945
|
-
while _la == 40:
|
|
946
|
-
self.state = 163
|
|
947
|
-
self.tag()
|
|
948
|
-
self.state = 168
|
|
949
|
-
self._errHandler.sync(self)
|
|
950
|
-
_la = self._input.LA(1)
|
|
951
|
-
|
|
952
|
-
self.state = 170
|
|
953
|
-
self._errHandler.sync(self)
|
|
954
|
-
_la = self._input.LA(1)
|
|
955
|
-
if _la == 20:
|
|
956
|
-
self.state = 169
|
|
957
|
-
self.cias()
|
|
958
|
-
|
|
959
|
-
self.state = 173
|
|
960
|
-
self._errHandler.sync(self)
|
|
961
|
-
_la = self._input.LA(1)
|
|
962
|
-
if _la == 26:
|
|
963
|
-
self.state = 172
|
|
964
|
-
self.pdist()
|
|
965
|
-
|
|
966
|
-
self.state = 178
|
|
967
|
-
self._errHandler.sync(self)
|
|
968
|
-
_la = self._input.LA(1)
|
|
969
|
-
while _la == 17:
|
|
970
|
-
self.state = 175
|
|
971
|
-
self.meta()
|
|
972
|
-
self.state = 180
|
|
973
|
-
self._errHandler.sync(self)
|
|
974
|
-
_la = self._input.LA(1)
|
|
975
|
-
|
|
976
|
-
self.state = 184
|
|
977
|
-
self._errHandler.sync(self)
|
|
978
|
-
_la = self._input.LA(1)
|
|
979
|
-
while _la == 38 or _la == 48:
|
|
980
|
-
self.state = 181
|
|
981
|
-
self.detector()
|
|
982
|
-
self.state = 186
|
|
983
|
-
self._errHandler.sync(self)
|
|
984
|
-
_la = self._input.LA(1)
|
|
985
|
-
|
|
986
|
-
self.state = 188
|
|
987
|
-
self._errHandler.sync(self)
|
|
988
|
-
_la = self._input.LA(1)
|
|
989
|
-
if _la == 41:
|
|
990
|
-
self.state = 187
|
|
991
|
-
self.precondition()
|
|
992
|
-
|
|
993
|
-
self.state = 191
|
|
994
|
-
self._errHandler.sync(self)
|
|
995
|
-
_la = self._input.LA(1)
|
|
996
|
-
if _la == 42 or _la == 43:
|
|
997
|
-
self.state = 190
|
|
998
|
-
self.reaches()
|
|
999
|
-
|
|
1000
|
-
except RecognitionException as re:
|
|
1001
|
-
localctx.exception = re
|
|
1002
|
-
self._errHandler.reportError(self, re)
|
|
1003
|
-
self._errHandler.recover(self, re)
|
|
1004
|
-
finally:
|
|
1005
|
-
self.exitRule()
|
|
1006
|
-
return localctx
|
|
1007
|
-
|
|
1008
|
-
class SteptypeContext(ParserRuleContext):
|
|
1009
|
-
__slots__ = 'parser'
|
|
1010
|
-
|
|
1011
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1012
|
-
super().__init__(parent, invokingState)
|
|
1013
|
-
self.parser = parser
|
|
1014
|
-
|
|
1015
|
-
def AND(self):
|
|
1016
|
-
return self.getToken(malParser.AND, 0)
|
|
1017
|
-
|
|
1018
|
-
def OR(self):
|
|
1019
|
-
return self.getToken(malParser.OR, 0)
|
|
1020
|
-
|
|
1021
|
-
def HASH(self):
|
|
1022
|
-
return self.getToken(malParser.HASH, 0)
|
|
1023
|
-
|
|
1024
|
-
def EXISTS(self):
|
|
1025
|
-
return self.getToken(malParser.EXISTS, 0)
|
|
1026
|
-
|
|
1027
|
-
def NOTEXISTS(self):
|
|
1028
|
-
return self.getToken(malParser.NOTEXISTS, 0)
|
|
1029
|
-
|
|
1030
|
-
def getRuleIndex(self):
|
|
1031
|
-
return malParser.RULE_steptype
|
|
1032
|
-
|
|
1033
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1034
|
-
if hasattr(listener, "enterSteptype"):
|
|
1035
|
-
listener.enterSteptype(self)
|
|
1036
|
-
|
|
1037
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1038
|
-
if hasattr(listener, "exitSteptype"):
|
|
1039
|
-
listener.exitSteptype(self)
|
|
1040
|
-
|
|
1041
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1042
|
-
if hasattr(visitor, "visitSteptype"):
|
|
1043
|
-
return visitor.visitSteptype(self)
|
|
1044
|
-
return visitor.visitChildren(self)
|
|
1045
|
-
|
|
1046
|
-
def steptype(self):
|
|
1047
|
-
|
|
1048
|
-
localctx = malParser.SteptypeContext(self, self._ctx, self.state)
|
|
1049
|
-
self.enterRule(localctx, 18, self.RULE_steptype)
|
|
1050
|
-
self._la = 0 # Token type
|
|
1051
|
-
try:
|
|
1052
|
-
self.enterOuterAlt(localctx, 1)
|
|
1053
|
-
self.state = 193
|
|
1054
|
-
_la = self._input.LA(1)
|
|
1055
|
-
if not (((_la) & ~0x3f) == 0 and ((1 << _la) & 755918446592) != 0):
|
|
1056
|
-
self._errHandler.recoverInline(self)
|
|
1057
|
-
else:
|
|
1058
|
-
self._errHandler.reportMatch(self)
|
|
1059
|
-
self.consume()
|
|
1060
|
-
except RecognitionException as re:
|
|
1061
|
-
localctx.exception = re
|
|
1062
|
-
self._errHandler.reportError(self, re)
|
|
1063
|
-
self._errHandler.recover(self, re)
|
|
1064
|
-
finally:
|
|
1065
|
-
self.exitRule()
|
|
1066
|
-
return localctx
|
|
1067
|
-
|
|
1068
|
-
class TagContext(ParserRuleContext):
|
|
1069
|
-
__slots__ = 'parser'
|
|
1070
|
-
|
|
1071
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1072
|
-
super().__init__(parent, invokingState)
|
|
1073
|
-
self.parser = parser
|
|
1074
|
-
|
|
1075
|
-
def AT(self):
|
|
1076
|
-
return self.getToken(malParser.AT, 0)
|
|
1077
|
-
|
|
1078
|
-
def ID(self):
|
|
1079
|
-
return self.getToken(malParser.ID, 0)
|
|
1080
|
-
|
|
1081
|
-
def getRuleIndex(self):
|
|
1082
|
-
return malParser.RULE_tag
|
|
1083
|
-
|
|
1084
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1085
|
-
if hasattr(listener, "enterTag"):
|
|
1086
|
-
listener.enterTag(self)
|
|
1087
|
-
|
|
1088
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1089
|
-
if hasattr(listener, "exitTag"):
|
|
1090
|
-
listener.exitTag(self)
|
|
1091
|
-
|
|
1092
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1093
|
-
if hasattr(visitor, "visitTag"):
|
|
1094
|
-
return visitor.visitTag(self)
|
|
1095
|
-
return visitor.visitChildren(self)
|
|
1096
|
-
|
|
1097
|
-
def tag(self):
|
|
1098
|
-
|
|
1099
|
-
localctx = malParser.TagContext(self, self._ctx, self.state)
|
|
1100
|
-
self.enterRule(localctx, 20, self.RULE_tag)
|
|
1101
|
-
try:
|
|
1102
|
-
self.enterOuterAlt(localctx, 1)
|
|
1103
|
-
self.state = 195
|
|
1104
|
-
self.match(malParser.AT)
|
|
1105
|
-
self.state = 196
|
|
1106
|
-
self.match(malParser.ID)
|
|
1107
|
-
except RecognitionException as re:
|
|
1108
|
-
localctx.exception = re
|
|
1109
|
-
self._errHandler.reportError(self, re)
|
|
1110
|
-
self._errHandler.recover(self, re)
|
|
1111
|
-
finally:
|
|
1112
|
-
self.exitRule()
|
|
1113
|
-
return localctx
|
|
1114
|
-
|
|
1115
|
-
class CiasContext(ParserRuleContext):
|
|
1116
|
-
__slots__ = 'parser'
|
|
1117
|
-
|
|
1118
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1119
|
-
super().__init__(parent, invokingState)
|
|
1120
|
-
self.parser = parser
|
|
1121
|
-
|
|
1122
|
-
def LCURLY(self):
|
|
1123
|
-
return self.getToken(malParser.LCURLY, 0)
|
|
1124
|
-
|
|
1125
|
-
def cia(self, i: int = None):
|
|
1126
|
-
if i is None:
|
|
1127
|
-
return self.getTypedRuleContexts(malParser.CiaContext)
|
|
1128
|
-
return self.getTypedRuleContext(malParser.CiaContext, i)
|
|
1129
|
-
|
|
1130
|
-
def RCURLY(self):
|
|
1131
|
-
return self.getToken(malParser.RCURLY, 0)
|
|
1132
|
-
|
|
1133
|
-
def COMMA(self, i: int = None):
|
|
1134
|
-
if i is None:
|
|
1135
|
-
return self.getTokens(malParser.COMMA)
|
|
1136
|
-
return self.getToken(malParser.COMMA, i)
|
|
1137
|
-
|
|
1138
|
-
def getRuleIndex(self):
|
|
1139
|
-
return malParser.RULE_cias
|
|
1140
|
-
|
|
1141
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1142
|
-
if hasattr(listener, "enterCias"):
|
|
1143
|
-
listener.enterCias(self)
|
|
1144
|
-
|
|
1145
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1146
|
-
if hasattr(listener, "exitCias"):
|
|
1147
|
-
listener.exitCias(self)
|
|
1148
|
-
|
|
1149
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1150
|
-
if hasattr(visitor, "visitCias"):
|
|
1151
|
-
return visitor.visitCias(self)
|
|
1152
|
-
return visitor.visitChildren(self)
|
|
1153
|
-
|
|
1154
|
-
def cias(self):
|
|
1155
|
-
|
|
1156
|
-
localctx = malParser.CiasContext(self, self._ctx, self.state)
|
|
1157
|
-
self.enterRule(localctx, 22, self.RULE_cias)
|
|
1158
|
-
self._la = 0 # Token type
|
|
1159
|
-
try:
|
|
1160
|
-
self.enterOuterAlt(localctx, 1)
|
|
1161
|
-
self.state = 198
|
|
1162
|
-
self.match(malParser.LCURLY)
|
|
1163
|
-
self.state = 199
|
|
1164
|
-
self.cia()
|
|
1165
|
-
self.state = 204
|
|
1166
|
-
self._errHandler.sync(self)
|
|
1167
|
-
_la = self._input.LA(1)
|
|
1168
|
-
while _la == 44:
|
|
1169
|
-
self.state = 200
|
|
1170
|
-
self.match(malParser.COMMA)
|
|
1171
|
-
self.state = 201
|
|
1172
|
-
self.cia()
|
|
1173
|
-
self.state = 206
|
|
1174
|
-
self._errHandler.sync(self)
|
|
1175
|
-
_la = self._input.LA(1)
|
|
1176
|
-
|
|
1177
|
-
self.state = 207
|
|
1178
|
-
self.match(malParser.RCURLY)
|
|
1179
|
-
except RecognitionException as re:
|
|
1180
|
-
localctx.exception = re
|
|
1181
|
-
self._errHandler.reportError(self, re)
|
|
1182
|
-
self._errHandler.recover(self, re)
|
|
1183
|
-
finally:
|
|
1184
|
-
self.exitRule()
|
|
1185
|
-
return localctx
|
|
1186
|
-
|
|
1187
|
-
class CiaContext(ParserRuleContext):
|
|
1188
|
-
__slots__ = 'parser'
|
|
1189
|
-
|
|
1190
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1191
|
-
super().__init__(parent, invokingState)
|
|
1192
|
-
self.parser = parser
|
|
1193
|
-
|
|
1194
|
-
def C(self):
|
|
1195
|
-
return self.getToken(malParser.C, 0)
|
|
1196
|
-
|
|
1197
|
-
def I(self):
|
|
1198
|
-
return self.getToken(malParser.I, 0)
|
|
1199
|
-
|
|
1200
|
-
def A(self):
|
|
1201
|
-
return self.getToken(malParser.A, 0)
|
|
1202
|
-
|
|
1203
|
-
def getRuleIndex(self):
|
|
1204
|
-
return malParser.RULE_cia
|
|
1205
|
-
|
|
1206
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1207
|
-
if hasattr(listener, "enterCia"):
|
|
1208
|
-
listener.enterCia(self)
|
|
1209
|
-
|
|
1210
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1211
|
-
if hasattr(listener, "exitCia"):
|
|
1212
|
-
listener.exitCia(self)
|
|
1213
|
-
|
|
1214
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1215
|
-
if hasattr(visitor, "visitCia"):
|
|
1216
|
-
return visitor.visitCia(self)
|
|
1217
|
-
return visitor.visitChildren(self)
|
|
1218
|
-
|
|
1219
|
-
def cia(self):
|
|
1220
|
-
|
|
1221
|
-
localctx = malParser.CiaContext(self, self._ctx, self.state)
|
|
1222
|
-
self.enterRule(localctx, 24, self.RULE_cia)
|
|
1223
|
-
self._la = 0 # Token type
|
|
1224
|
-
try:
|
|
1225
|
-
self.enterOuterAlt(localctx, 1)
|
|
1226
|
-
self.state = 209
|
|
1227
|
-
_la = self._input.LA(1)
|
|
1228
|
-
if not (((_la) & ~0x3f) == 0 and ((1 << _la) & 114688) != 0):
|
|
1229
|
-
self._errHandler.recoverInline(self)
|
|
1230
|
-
else:
|
|
1231
|
-
self._errHandler.reportMatch(self)
|
|
1232
|
-
self.consume()
|
|
1233
|
-
except RecognitionException as re:
|
|
1234
|
-
localctx.exception = re
|
|
1235
|
-
self._errHandler.reportError(self, re)
|
|
1236
|
-
self._errHandler.recover(self, re)
|
|
1237
|
-
finally:
|
|
1238
|
-
self.exitRule()
|
|
1239
|
-
return localctx
|
|
1240
|
-
|
|
1241
|
-
class TtcContext(ParserRuleContext):
|
|
1242
|
-
__slots__ = 'parser'
|
|
1243
|
-
|
|
1244
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1245
|
-
super().__init__(parent, invokingState)
|
|
1246
|
-
self.parser = parser
|
|
1247
|
-
|
|
1248
|
-
def pdist(self):
|
|
1249
|
-
return self.getTypedRuleContext(malParser.PdistContext, 0)
|
|
1250
|
-
|
|
1251
|
-
def getRuleIndex(self):
|
|
1252
|
-
return malParser.RULE_ttc
|
|
1253
|
-
|
|
1254
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1255
|
-
if hasattr(listener, "enterTtc"):
|
|
1256
|
-
listener.enterTtc(self)
|
|
1257
|
-
|
|
1258
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1259
|
-
if hasattr(listener, "exitTtc"):
|
|
1260
|
-
listener.exitTtc(self)
|
|
1261
|
-
|
|
1262
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1263
|
-
if hasattr(visitor, "visitTtc"):
|
|
1264
|
-
return visitor.visitTtc(self)
|
|
1265
|
-
return visitor.visitChildren(self)
|
|
1266
|
-
|
|
1267
|
-
def ttc(self):
|
|
1268
|
-
|
|
1269
|
-
localctx = malParser.TtcContext(self, self._ctx, self.state)
|
|
1270
|
-
self.enterRule(localctx, 26, self.RULE_ttc)
|
|
1271
|
-
try:
|
|
1272
|
-
self.enterOuterAlt(localctx, 1)
|
|
1273
|
-
self.state = 211
|
|
1274
|
-
self.pdist()
|
|
1275
|
-
except RecognitionException as re:
|
|
1276
|
-
localctx.exception = re
|
|
1277
|
-
self._errHandler.reportError(self, re)
|
|
1278
|
-
self._errHandler.recover(self, re)
|
|
1279
|
-
finally:
|
|
1280
|
-
self.exitRule()
|
|
1281
|
-
return localctx
|
|
1282
|
-
|
|
1283
|
-
class PdistContext(ParserRuleContext):
|
|
1284
|
-
__slots__ = 'parser'
|
|
1285
|
-
|
|
1286
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1287
|
-
super().__init__(parent, invokingState)
|
|
1288
|
-
self.parser = parser
|
|
1289
|
-
|
|
1290
|
-
def LSQUARE(self):
|
|
1291
|
-
return self.getToken(malParser.LSQUARE, 0)
|
|
1292
|
-
|
|
1293
|
-
def pdistexpr(self):
|
|
1294
|
-
return self.getTypedRuleContext(malParser.PdistexprContext, 0)
|
|
1295
|
-
|
|
1296
|
-
def RSQUARE(self):
|
|
1297
|
-
return self.getToken(malParser.RSQUARE, 0)
|
|
1298
|
-
|
|
1299
|
-
def getRuleIndex(self):
|
|
1300
|
-
return malParser.RULE_pdist
|
|
1301
|
-
|
|
1302
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1303
|
-
if hasattr(listener, "enterPdist"):
|
|
1304
|
-
listener.enterPdist(self)
|
|
1305
|
-
|
|
1306
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1307
|
-
if hasattr(listener, "exitPdist"):
|
|
1308
|
-
listener.exitPdist(self)
|
|
1309
|
-
|
|
1310
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1311
|
-
if hasattr(visitor, "visitPdist"):
|
|
1312
|
-
return visitor.visitPdist(self)
|
|
1313
|
-
return visitor.visitChildren(self)
|
|
1314
|
-
|
|
1315
|
-
def pdist(self):
|
|
1316
|
-
|
|
1317
|
-
localctx = malParser.PdistContext(self, self._ctx, self.state)
|
|
1318
|
-
self.enterRule(localctx, 28, self.RULE_pdist)
|
|
1319
|
-
try:
|
|
1320
|
-
self.enterOuterAlt(localctx, 1)
|
|
1321
|
-
self.state = 213
|
|
1322
|
-
self.match(malParser.LSQUARE)
|
|
1323
|
-
self.state = 214
|
|
1324
|
-
self.pdistexpr()
|
|
1325
|
-
self.state = 215
|
|
1326
|
-
self.match(malParser.RSQUARE)
|
|
1327
|
-
except RecognitionException as re:
|
|
1328
|
-
localctx.exception = re
|
|
1329
|
-
self._errHandler.reportError(self, re)
|
|
1330
|
-
self._errHandler.recover(self, re)
|
|
1331
|
-
finally:
|
|
1332
|
-
self.exitRule()
|
|
1333
|
-
return localctx
|
|
1334
|
-
|
|
1335
|
-
class PdistexprContext(ParserRuleContext):
|
|
1336
|
-
__slots__ = 'parser'
|
|
1337
|
-
|
|
1338
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1339
|
-
super().__init__(parent, invokingState)
|
|
1340
|
-
self.parser = parser
|
|
1341
|
-
|
|
1342
|
-
def pdistterm(self, i: int = None):
|
|
1343
|
-
if i is None:
|
|
1344
|
-
return self.getTypedRuleContexts(malParser.PdisttermContext)
|
|
1345
|
-
return self.getTypedRuleContext(malParser.PdisttermContext, i)
|
|
1346
|
-
|
|
1347
|
-
def PLUS(self, i: int = None):
|
|
1348
|
-
if i is None:
|
|
1349
|
-
return self.getTokens(malParser.PLUS)
|
|
1350
|
-
return self.getToken(malParser.PLUS, i)
|
|
1351
|
-
|
|
1352
|
-
def MINUS(self, i: int = None):
|
|
1353
|
-
if i is None:
|
|
1354
|
-
return self.getTokens(malParser.MINUS)
|
|
1355
|
-
return self.getToken(malParser.MINUS, i)
|
|
1356
|
-
|
|
1357
|
-
def getRuleIndex(self):
|
|
1358
|
-
return malParser.RULE_pdistexpr
|
|
1359
|
-
|
|
1360
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1361
|
-
if hasattr(listener, "enterPdistexpr"):
|
|
1362
|
-
listener.enterPdistexpr(self)
|
|
1363
|
-
|
|
1364
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1365
|
-
if hasattr(listener, "exitPdistexpr"):
|
|
1366
|
-
listener.exitPdistexpr(self)
|
|
1367
|
-
|
|
1368
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1369
|
-
if hasattr(visitor, "visitPdistexpr"):
|
|
1370
|
-
return visitor.visitPdistexpr(self)
|
|
1371
|
-
return visitor.visitChildren(self)
|
|
1372
|
-
|
|
1373
|
-
def pdistexpr(self):
|
|
1374
|
-
|
|
1375
|
-
localctx = malParser.PdistexprContext(self, self._ctx, self.state)
|
|
1376
|
-
self.enterRule(localctx, 30, self.RULE_pdistexpr)
|
|
1377
|
-
self._la = 0 # Token type
|
|
1378
|
-
try:
|
|
1379
|
-
self.enterOuterAlt(localctx, 1)
|
|
1380
|
-
self.state = 217
|
|
1381
|
-
self.pdistterm()
|
|
1382
|
-
self.state = 222
|
|
1383
|
-
self._errHandler.sync(self)
|
|
1384
|
-
_la = self._input.LA(1)
|
|
1385
|
-
while _la == 31 or _la == 45:
|
|
1386
|
-
self.state = 218
|
|
1387
|
-
_la = self._input.LA(1)
|
|
1388
|
-
if not (_la == 31 or _la == 45):
|
|
1389
|
-
self._errHandler.recoverInline(self)
|
|
1390
|
-
else:
|
|
1391
|
-
self._errHandler.reportMatch(self)
|
|
1392
|
-
self.consume()
|
|
1393
|
-
self.state = 219
|
|
1394
|
-
self.pdistterm()
|
|
1395
|
-
self.state = 224
|
|
1396
|
-
self._errHandler.sync(self)
|
|
1397
|
-
_la = self._input.LA(1)
|
|
1398
|
-
|
|
1399
|
-
except RecognitionException as re:
|
|
1400
|
-
localctx.exception = re
|
|
1401
|
-
self._errHandler.reportError(self, re)
|
|
1402
|
-
self._errHandler.recover(self, re)
|
|
1403
|
-
finally:
|
|
1404
|
-
self.exitRule()
|
|
1405
|
-
return localctx
|
|
1406
|
-
|
|
1407
|
-
class PdisttermContext(ParserRuleContext):
|
|
1408
|
-
__slots__ = 'parser'
|
|
1409
|
-
|
|
1410
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1411
|
-
super().__init__(parent, invokingState)
|
|
1412
|
-
self.parser = parser
|
|
1413
|
-
|
|
1414
|
-
def pdistfact(self, i: int = None):
|
|
1415
|
-
if i is None:
|
|
1416
|
-
return self.getTypedRuleContexts(malParser.PdistfactContext)
|
|
1417
|
-
return self.getTypedRuleContext(malParser.PdistfactContext, i)
|
|
1418
|
-
|
|
1419
|
-
def STAR(self, i: int = None):
|
|
1420
|
-
if i is None:
|
|
1421
|
-
return self.getTokens(malParser.STAR)
|
|
1422
|
-
return self.getToken(malParser.STAR, i)
|
|
1423
|
-
|
|
1424
|
-
def DIVIDE(self, i: int = None):
|
|
1425
|
-
if i is None:
|
|
1426
|
-
return self.getTokens(malParser.DIVIDE)
|
|
1427
|
-
return self.getToken(malParser.DIVIDE, i)
|
|
1428
|
-
|
|
1429
|
-
def getRuleIndex(self):
|
|
1430
|
-
return malParser.RULE_pdistterm
|
|
1431
|
-
|
|
1432
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1433
|
-
if hasattr(listener, "enterPdistterm"):
|
|
1434
|
-
listener.enterPdistterm(self)
|
|
1435
|
-
|
|
1436
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1437
|
-
if hasattr(listener, "exitPdistterm"):
|
|
1438
|
-
listener.exitPdistterm(self)
|
|
1439
|
-
|
|
1440
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1441
|
-
if hasattr(visitor, "visitPdistterm"):
|
|
1442
|
-
return visitor.visitPdistterm(self)
|
|
1443
|
-
return visitor.visitChildren(self)
|
|
1444
|
-
|
|
1445
|
-
def pdistterm(self):
|
|
1446
|
-
|
|
1447
|
-
localctx = malParser.PdisttermContext(self, self._ctx, self.state)
|
|
1448
|
-
self.enterRule(localctx, 32, self.RULE_pdistterm)
|
|
1449
|
-
self._la = 0 # Token type
|
|
1450
|
-
try:
|
|
1451
|
-
self.enterOuterAlt(localctx, 1)
|
|
1452
|
-
self.state = 225
|
|
1453
|
-
self.pdistfact()
|
|
1454
|
-
self.state = 230
|
|
1455
|
-
self._errHandler.sync(self)
|
|
1456
|
-
_la = self._input.LA(1)
|
|
1457
|
-
while _la == 28 or _la == 46:
|
|
1458
|
-
self.state = 226
|
|
1459
|
-
_la = self._input.LA(1)
|
|
1460
|
-
if not (_la == 28 or _la == 46):
|
|
1461
|
-
self._errHandler.recoverInline(self)
|
|
1462
|
-
else:
|
|
1463
|
-
self._errHandler.reportMatch(self)
|
|
1464
|
-
self.consume()
|
|
1465
|
-
self.state = 227
|
|
1466
|
-
self.pdistfact()
|
|
1467
|
-
self.state = 232
|
|
1468
|
-
self._errHandler.sync(self)
|
|
1469
|
-
_la = self._input.LA(1)
|
|
1470
|
-
|
|
1471
|
-
except RecognitionException as re:
|
|
1472
|
-
localctx.exception = re
|
|
1473
|
-
self._errHandler.reportError(self, re)
|
|
1474
|
-
self._errHandler.recover(self, re)
|
|
1475
|
-
finally:
|
|
1476
|
-
self.exitRule()
|
|
1477
|
-
return localctx
|
|
1478
|
-
|
|
1479
|
-
class PdistfactContext(ParserRuleContext):
|
|
1480
|
-
__slots__ = 'parser'
|
|
1481
|
-
|
|
1482
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1483
|
-
super().__init__(parent, invokingState)
|
|
1484
|
-
self.parser = parser
|
|
1485
|
-
|
|
1486
|
-
def pdistatom(self, i: int = None):
|
|
1487
|
-
if i is None:
|
|
1488
|
-
return self.getTypedRuleContexts(malParser.PdistatomContext)
|
|
1489
|
-
return self.getTypedRuleContext(malParser.PdistatomContext, i)
|
|
1490
|
-
|
|
1491
|
-
def POWER(self):
|
|
1492
|
-
return self.getToken(malParser.POWER, 0)
|
|
1493
|
-
|
|
1494
|
-
def getRuleIndex(self):
|
|
1495
|
-
return malParser.RULE_pdistfact
|
|
1496
|
-
|
|
1497
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1498
|
-
if hasattr(listener, "enterPdistfact"):
|
|
1499
|
-
listener.enterPdistfact(self)
|
|
1500
|
-
|
|
1501
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1502
|
-
if hasattr(listener, "exitPdistfact"):
|
|
1503
|
-
listener.exitPdistfact(self)
|
|
1504
|
-
|
|
1505
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1506
|
-
if hasattr(visitor, "visitPdistfact"):
|
|
1507
|
-
return visitor.visitPdistfact(self)
|
|
1508
|
-
return visitor.visitChildren(self)
|
|
1509
|
-
|
|
1510
|
-
def pdistfact(self):
|
|
1511
|
-
|
|
1512
|
-
localctx = malParser.PdistfactContext(self, self._ctx, self.state)
|
|
1513
|
-
self.enterRule(localctx, 34, self.RULE_pdistfact)
|
|
1514
|
-
self._la = 0 # Token type
|
|
1515
|
-
try:
|
|
1516
|
-
self.enterOuterAlt(localctx, 1)
|
|
1517
|
-
self.state = 233
|
|
1518
|
-
self.pdistatom()
|
|
1519
|
-
self.state = 236
|
|
1520
|
-
self._errHandler.sync(self)
|
|
1521
|
-
_la = self._input.LA(1)
|
|
1522
|
-
if _la == 47:
|
|
1523
|
-
self.state = 234
|
|
1524
|
-
self.match(malParser.POWER)
|
|
1525
|
-
self.state = 235
|
|
1526
|
-
self.pdistatom()
|
|
1527
|
-
|
|
1528
|
-
except RecognitionException as re:
|
|
1529
|
-
localctx.exception = re
|
|
1530
|
-
self._errHandler.reportError(self, re)
|
|
1531
|
-
self._errHandler.recover(self, re)
|
|
1532
|
-
finally:
|
|
1533
|
-
self.exitRule()
|
|
1534
|
-
return localctx
|
|
1535
|
-
|
|
1536
|
-
class PdistatomContext(ParserRuleContext):
|
|
1537
|
-
__slots__ = 'parser'
|
|
1538
|
-
|
|
1539
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1540
|
-
super().__init__(parent, invokingState)
|
|
1541
|
-
self.parser = parser
|
|
1542
|
-
|
|
1543
|
-
def pdistdist(self):
|
|
1544
|
-
return self.getTypedRuleContext(malParser.PdistdistContext, 0)
|
|
1545
|
-
|
|
1546
|
-
def LPAREN(self):
|
|
1547
|
-
return self.getToken(malParser.LPAREN, 0)
|
|
1548
|
-
|
|
1549
|
-
def pdistexpr(self):
|
|
1550
|
-
return self.getTypedRuleContext(malParser.PdistexprContext, 0)
|
|
1551
|
-
|
|
1552
|
-
def RPAREN(self):
|
|
1553
|
-
return self.getToken(malParser.RPAREN, 0)
|
|
1554
|
-
|
|
1555
|
-
def number(self):
|
|
1556
|
-
return self.getTypedRuleContext(malParser.NumberContext, 0)
|
|
1557
|
-
|
|
1558
|
-
def getRuleIndex(self):
|
|
1559
|
-
return malParser.RULE_pdistatom
|
|
1560
|
-
|
|
1561
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1562
|
-
if hasattr(listener, "enterPdistatom"):
|
|
1563
|
-
listener.enterPdistatom(self)
|
|
1564
|
-
|
|
1565
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1566
|
-
if hasattr(listener, "exitPdistatom"):
|
|
1567
|
-
listener.exitPdistatom(self)
|
|
1568
|
-
|
|
1569
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1570
|
-
if hasattr(visitor, "visitPdistatom"):
|
|
1571
|
-
return visitor.visitPdistatom(self)
|
|
1572
|
-
return visitor.visitChildren(self)
|
|
1573
|
-
|
|
1574
|
-
def pdistatom(self):
|
|
1575
|
-
|
|
1576
|
-
localctx = malParser.PdistatomContext(self, self._ctx, self.state)
|
|
1577
|
-
self.enterRule(localctx, 36, self.RULE_pdistatom)
|
|
1578
|
-
try:
|
|
1579
|
-
self.state = 244
|
|
1580
|
-
self._errHandler.sync(self)
|
|
1581
|
-
token = self._input.LA(1)
|
|
1582
|
-
if token == 17:
|
|
1583
|
-
self.enterOuterAlt(localctx, 1)
|
|
1584
|
-
self.state = 238
|
|
1585
|
-
self.pdistdist()
|
|
1586
|
-
elif token == 18:
|
|
1587
|
-
self.enterOuterAlt(localctx, 2)
|
|
1588
|
-
self.state = 239
|
|
1589
|
-
self.match(malParser.LPAREN)
|
|
1590
|
-
self.state = 240
|
|
1591
|
-
self.pdistexpr()
|
|
1592
|
-
self.state = 241
|
|
1593
|
-
self.match(malParser.RPAREN)
|
|
1594
|
-
elif token in [11, 12]:
|
|
1595
|
-
self.enterOuterAlt(localctx, 3)
|
|
1596
|
-
self.state = 243
|
|
1597
|
-
self.number()
|
|
1598
|
-
else:
|
|
1599
|
-
raise NoViableAltException(self)
|
|
1600
|
-
|
|
1601
|
-
except RecognitionException as re:
|
|
1602
|
-
localctx.exception = re
|
|
1603
|
-
self._errHandler.reportError(self, re)
|
|
1604
|
-
self._errHandler.recover(self, re)
|
|
1605
|
-
finally:
|
|
1606
|
-
self.exitRule()
|
|
1607
|
-
return localctx
|
|
1608
|
-
|
|
1609
|
-
class PdistdistContext(ParserRuleContext):
|
|
1610
|
-
__slots__ = 'parser'
|
|
1611
|
-
|
|
1612
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1613
|
-
super().__init__(parent, invokingState)
|
|
1614
|
-
self.parser = parser
|
|
1615
|
-
|
|
1616
|
-
def ID(self):
|
|
1617
|
-
return self.getToken(malParser.ID, 0)
|
|
1618
|
-
|
|
1619
|
-
def LPAREN(self):
|
|
1620
|
-
return self.getToken(malParser.LPAREN, 0)
|
|
1621
|
-
|
|
1622
|
-
def RPAREN(self):
|
|
1623
|
-
return self.getToken(malParser.RPAREN, 0)
|
|
1624
|
-
|
|
1625
|
-
def number(self, i: int = None):
|
|
1626
|
-
if i is None:
|
|
1627
|
-
return self.getTypedRuleContexts(malParser.NumberContext)
|
|
1628
|
-
return self.getTypedRuleContext(malParser.NumberContext, i)
|
|
1629
|
-
|
|
1630
|
-
def COMMA(self, i: int = None):
|
|
1631
|
-
if i is None:
|
|
1632
|
-
return self.getTokens(malParser.COMMA)
|
|
1633
|
-
return self.getToken(malParser.COMMA, i)
|
|
1634
|
-
|
|
1635
|
-
def getRuleIndex(self):
|
|
1636
|
-
return malParser.RULE_pdistdist
|
|
1637
|
-
|
|
1638
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1639
|
-
if hasattr(listener, "enterPdistdist"):
|
|
1640
|
-
listener.enterPdistdist(self)
|
|
1641
|
-
|
|
1642
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1643
|
-
if hasattr(listener, "exitPdistdist"):
|
|
1644
|
-
listener.exitPdistdist(self)
|
|
1645
|
-
|
|
1646
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1647
|
-
if hasattr(visitor, "visitPdistdist"):
|
|
1648
|
-
return visitor.visitPdistdist(self)
|
|
1649
|
-
return visitor.visitChildren(self)
|
|
1650
|
-
|
|
1651
|
-
def pdistdist(self):
|
|
1652
|
-
|
|
1653
|
-
localctx = malParser.PdistdistContext(self, self._ctx, self.state)
|
|
1654
|
-
self.enterRule(localctx, 38, self.RULE_pdistdist)
|
|
1655
|
-
self._la = 0 # Token type
|
|
1656
|
-
try:
|
|
1657
|
-
self.enterOuterAlt(localctx, 1)
|
|
1658
|
-
self.state = 246
|
|
1659
|
-
self.match(malParser.ID)
|
|
1660
|
-
self.state = 259
|
|
1661
|
-
self._errHandler.sync(self)
|
|
1662
|
-
_la = self._input.LA(1)
|
|
1663
|
-
if _la == 18:
|
|
1664
|
-
self.state = 247
|
|
1665
|
-
self.match(malParser.LPAREN)
|
|
1666
|
-
self.state = 256
|
|
1667
|
-
self._errHandler.sync(self)
|
|
1668
|
-
_la = self._input.LA(1)
|
|
1669
|
-
if _la == 11 or _la == 12:
|
|
1670
|
-
self.state = 248
|
|
1671
|
-
self.number()
|
|
1672
|
-
self.state = 253
|
|
1673
|
-
self._errHandler.sync(self)
|
|
1674
|
-
_la = self._input.LA(1)
|
|
1675
|
-
while _la == 44:
|
|
1676
|
-
self.state = 249
|
|
1677
|
-
self.match(malParser.COMMA)
|
|
1678
|
-
self.state = 250
|
|
1679
|
-
self.number()
|
|
1680
|
-
self.state = 255
|
|
1681
|
-
self._errHandler.sync(self)
|
|
1682
|
-
_la = self._input.LA(1)
|
|
1683
|
-
|
|
1684
|
-
self.state = 258
|
|
1685
|
-
self.match(malParser.RPAREN)
|
|
1686
|
-
|
|
1687
|
-
except RecognitionException as re:
|
|
1688
|
-
localctx.exception = re
|
|
1689
|
-
self._errHandler.reportError(self, re)
|
|
1690
|
-
self._errHandler.recover(self, re)
|
|
1691
|
-
finally:
|
|
1692
|
-
self.exitRule()
|
|
1693
|
-
return localctx
|
|
1694
|
-
|
|
1695
|
-
class DetectorContext(ParserRuleContext):
|
|
1696
|
-
__slots__ = 'parser'
|
|
1697
|
-
|
|
1698
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1699
|
-
super().__init__(parent, invokingState)
|
|
1700
|
-
self.parser = parser
|
|
1701
|
-
|
|
1702
|
-
def bang(self):
|
|
1703
|
-
return self.getTypedRuleContext(malParser.BangContext, 0)
|
|
1704
|
-
|
|
1705
|
-
def context(self):
|
|
1706
|
-
return self.getTypedRuleContext(malParser.ContextContext, 0)
|
|
1707
|
-
|
|
1708
|
-
def detectorname(self):
|
|
1709
|
-
return self.getTypedRuleContext(malParser.DetectornameContext, 0)
|
|
1710
|
-
|
|
1711
|
-
def detectortype(self):
|
|
1712
|
-
return self.getTypedRuleContext(malParser.DetectortypeContext, 0)
|
|
1713
|
-
|
|
1714
|
-
def tprate(self):
|
|
1715
|
-
return self.getTypedRuleContext(malParser.TprateContext, 0)
|
|
1716
|
-
|
|
1717
|
-
def getRuleIndex(self):
|
|
1718
|
-
return malParser.RULE_detector
|
|
1719
|
-
|
|
1720
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1721
|
-
if hasattr(listener, "enterDetector"):
|
|
1722
|
-
listener.enterDetector(self)
|
|
1723
|
-
|
|
1724
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1725
|
-
if hasattr(listener, "exitDetector"):
|
|
1726
|
-
listener.exitDetector(self)
|
|
1727
|
-
|
|
1728
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1729
|
-
if hasattr(visitor, "visitDetector"):
|
|
1730
|
-
return visitor.visitDetector(self)
|
|
1731
|
-
return visitor.visitChildren(self)
|
|
1732
|
-
|
|
1733
|
-
def detector(self):
|
|
1734
|
-
|
|
1735
|
-
localctx = malParser.DetectorContext(self, self._ctx, self.state)
|
|
1736
|
-
self.enterRule(localctx, 40, self.RULE_detector)
|
|
1737
|
-
self._la = 0 # Token type
|
|
1738
|
-
try:
|
|
1739
|
-
self.enterOuterAlt(localctx, 1)
|
|
1740
|
-
self.state = 261
|
|
1741
|
-
self.bang()
|
|
1742
|
-
self.state = 263
|
|
1743
|
-
self._errHandler.sync(self)
|
|
1744
|
-
_la = self._input.LA(1)
|
|
1745
|
-
if _la == 17:
|
|
1746
|
-
self.state = 262
|
|
1747
|
-
self.detectorname()
|
|
1748
|
-
|
|
1749
|
-
self.state = 265
|
|
1750
|
-
self.context()
|
|
1751
|
-
self.state = 267
|
|
1752
|
-
self._errHandler.sync(self)
|
|
1753
|
-
_la = self._input.LA(1)
|
|
1754
|
-
if _la == 17:
|
|
1755
|
-
self.state = 266
|
|
1756
|
-
self.detectortype()
|
|
1757
|
-
|
|
1758
|
-
self.state = 270
|
|
1759
|
-
self._errHandler.sync(self)
|
|
1760
|
-
_la = self._input.LA(1)
|
|
1761
|
-
if _la == 26:
|
|
1762
|
-
self.state = 269
|
|
1763
|
-
self.tprate()
|
|
1764
|
-
|
|
1765
|
-
except RecognitionException as re:
|
|
1766
|
-
localctx.exception = re
|
|
1767
|
-
self._errHandler.reportError(self, re)
|
|
1768
|
-
self._errHandler.recover(self, re)
|
|
1769
|
-
finally:
|
|
1770
|
-
self.exitRule()
|
|
1771
|
-
return localctx
|
|
1772
|
-
|
|
1773
|
-
class BangContext(ParserRuleContext):
|
|
1774
|
-
__slots__ = 'parser'
|
|
1775
|
-
|
|
1776
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1777
|
-
super().__init__(parent, invokingState)
|
|
1778
|
-
self.parser = parser
|
|
1779
|
-
|
|
1780
|
-
def EXCLAMATION(self):
|
|
1781
|
-
return self.getToken(malParser.EXCLAMATION, 0)
|
|
1782
|
-
|
|
1783
|
-
def EXCLM_COMM(self):
|
|
1784
|
-
return self.getToken(malParser.EXCLM_COMM, 0)
|
|
1785
|
-
|
|
1786
|
-
def getRuleIndex(self):
|
|
1787
|
-
return malParser.RULE_bang
|
|
1788
|
-
|
|
1789
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1790
|
-
if hasattr(listener, "enterBang"):
|
|
1791
|
-
listener.enterBang(self)
|
|
1792
|
-
|
|
1793
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1794
|
-
if hasattr(listener, "exitBang"):
|
|
1795
|
-
listener.exitBang(self)
|
|
1796
|
-
|
|
1797
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1798
|
-
if hasattr(visitor, "visitBang"):
|
|
1799
|
-
return visitor.visitBang(self)
|
|
1800
|
-
return visitor.visitChildren(self)
|
|
1801
|
-
|
|
1802
|
-
def bang(self):
|
|
1803
|
-
|
|
1804
|
-
localctx = malParser.BangContext(self, self._ctx, self.state)
|
|
1805
|
-
self.enterRule(localctx, 42, self.RULE_bang)
|
|
1806
|
-
self._la = 0 # Token type
|
|
1807
|
-
try:
|
|
1808
|
-
self.enterOuterAlt(localctx, 1)
|
|
1809
|
-
self.state = 272
|
|
1810
|
-
_la = self._input.LA(1)
|
|
1811
|
-
if not (_la == 38 or _la == 48):
|
|
1812
|
-
self._errHandler.recoverInline(self)
|
|
1813
|
-
else:
|
|
1814
|
-
self._errHandler.reportMatch(self)
|
|
1815
|
-
self.consume()
|
|
1816
|
-
except RecognitionException as re:
|
|
1817
|
-
localctx.exception = re
|
|
1818
|
-
self._errHandler.reportError(self, re)
|
|
1819
|
-
self._errHandler.recover(self, re)
|
|
1820
|
-
finally:
|
|
1821
|
-
self.exitRule()
|
|
1822
|
-
return localctx
|
|
1823
|
-
|
|
1824
|
-
class DetectornameContext(ParserRuleContext):
|
|
1825
|
-
__slots__ = 'parser'
|
|
1826
|
-
|
|
1827
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1828
|
-
super().__init__(parent, invokingState)
|
|
1829
|
-
self.parser = parser
|
|
1830
|
-
|
|
1831
|
-
def ID(self, i: int = None):
|
|
1832
|
-
if i is None:
|
|
1833
|
-
return self.getTokens(malParser.ID)
|
|
1834
|
-
return self.getToken(malParser.ID, i)
|
|
1835
|
-
|
|
1836
|
-
def DOT(self, i: int = None):
|
|
1837
|
-
if i is None:
|
|
1838
|
-
return self.getTokens(malParser.DOT)
|
|
1839
|
-
return self.getToken(malParser.DOT, i)
|
|
1840
|
-
|
|
1841
|
-
def getRuleIndex(self):
|
|
1842
|
-
return malParser.RULE_detectorname
|
|
1843
|
-
|
|
1844
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1845
|
-
if hasattr(listener, "enterDetectorname"):
|
|
1846
|
-
listener.enterDetectorname(self)
|
|
1847
|
-
|
|
1848
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1849
|
-
if hasattr(listener, "exitDetectorname"):
|
|
1850
|
-
listener.exitDetectorname(self)
|
|
1851
|
-
|
|
1852
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1853
|
-
if hasattr(visitor, "visitDetectorname"):
|
|
1854
|
-
return visitor.visitDetectorname(self)
|
|
1855
|
-
return visitor.visitChildren(self)
|
|
1856
|
-
|
|
1857
|
-
def detectorname(self):
|
|
1858
|
-
|
|
1859
|
-
localctx = malParser.DetectornameContext(self, self._ctx, self.state)
|
|
1860
|
-
self.enterRule(localctx, 44, self.RULE_detectorname)
|
|
1861
|
-
self._la = 0 # Token type
|
|
1862
|
-
try:
|
|
1863
|
-
self.enterOuterAlt(localctx, 1)
|
|
1864
|
-
self.state = 274
|
|
1865
|
-
self.match(malParser.ID)
|
|
1866
|
-
self.state = 279
|
|
1867
|
-
self._errHandler.sync(self)
|
|
1868
|
-
_la = self._input.LA(1)
|
|
1869
|
-
while _la == 35:
|
|
1870
|
-
self.state = 275
|
|
1871
|
-
self.match(malParser.DOT)
|
|
1872
|
-
self.state = 276
|
|
1873
|
-
self.match(malParser.ID)
|
|
1874
|
-
self.state = 281
|
|
1875
|
-
self._errHandler.sync(self)
|
|
1876
|
-
_la = self._input.LA(1)
|
|
1877
|
-
|
|
1878
|
-
except RecognitionException as re:
|
|
1879
|
-
localctx.exception = re
|
|
1880
|
-
self._errHandler.reportError(self, re)
|
|
1881
|
-
self._errHandler.recover(self, re)
|
|
1882
|
-
finally:
|
|
1883
|
-
self.exitRule()
|
|
1884
|
-
return localctx
|
|
1885
|
-
|
|
1886
|
-
class ContextContext(ParserRuleContext):
|
|
1887
|
-
__slots__ = 'parser'
|
|
1888
|
-
|
|
1889
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1890
|
-
super().__init__(parent, invokingState)
|
|
1891
|
-
self.parser = parser
|
|
1892
|
-
|
|
1893
|
-
def LPAREN(self):
|
|
1894
|
-
return self.getToken(malParser.LPAREN, 0)
|
|
1895
|
-
|
|
1896
|
-
def contextpart(self, i: int = None):
|
|
1897
|
-
if i is None:
|
|
1898
|
-
return self.getTypedRuleContexts(malParser.ContextpartContext)
|
|
1899
|
-
return self.getTypedRuleContext(malParser.ContextpartContext, i)
|
|
1900
|
-
|
|
1901
|
-
def RPAREN(self):
|
|
1902
|
-
return self.getToken(malParser.RPAREN, 0)
|
|
1903
|
-
|
|
1904
|
-
def COMMA(self, i: int = None):
|
|
1905
|
-
if i is None:
|
|
1906
|
-
return self.getTokens(malParser.COMMA)
|
|
1907
|
-
return self.getToken(malParser.COMMA, i)
|
|
1908
|
-
|
|
1909
|
-
def getRuleIndex(self):
|
|
1910
|
-
return malParser.RULE_context
|
|
1911
|
-
|
|
1912
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1913
|
-
if hasattr(listener, "enterContext"):
|
|
1914
|
-
listener.enterContext(self)
|
|
1915
|
-
|
|
1916
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1917
|
-
if hasattr(listener, "exitContext"):
|
|
1918
|
-
listener.exitContext(self)
|
|
1919
|
-
|
|
1920
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1921
|
-
if hasattr(visitor, "visitContext"):
|
|
1922
|
-
return visitor.visitContext(self)
|
|
1923
|
-
return visitor.visitChildren(self)
|
|
1924
|
-
|
|
1925
|
-
def context(self):
|
|
1926
|
-
|
|
1927
|
-
localctx = malParser.ContextContext(self, self._ctx, self.state)
|
|
1928
|
-
self.enterRule(localctx, 46, self.RULE_context)
|
|
1929
|
-
self._la = 0 # Token type
|
|
1930
|
-
try:
|
|
1931
|
-
self.enterOuterAlt(localctx, 1)
|
|
1932
|
-
self.state = 282
|
|
1933
|
-
self.match(malParser.LPAREN)
|
|
1934
|
-
self.state = 283
|
|
1935
|
-
self.contextpart()
|
|
1936
|
-
self.state = 288
|
|
1937
|
-
self._errHandler.sync(self)
|
|
1938
|
-
_la = self._input.LA(1)
|
|
1939
|
-
while _la == 44:
|
|
1940
|
-
self.state = 284
|
|
1941
|
-
self.match(malParser.COMMA)
|
|
1942
|
-
self.state = 285
|
|
1943
|
-
self.contextpart()
|
|
1944
|
-
self.state = 290
|
|
1945
|
-
self._errHandler.sync(self)
|
|
1946
|
-
_la = self._input.LA(1)
|
|
1947
|
-
|
|
1948
|
-
self.state = 291
|
|
1949
|
-
self.match(malParser.RPAREN)
|
|
1950
|
-
except RecognitionException as re:
|
|
1951
|
-
localctx.exception = re
|
|
1952
|
-
self._errHandler.reportError(self, re)
|
|
1953
|
-
self._errHandler.recover(self, re)
|
|
1954
|
-
finally:
|
|
1955
|
-
self.exitRule()
|
|
1956
|
-
return localctx
|
|
1957
|
-
|
|
1958
|
-
class ContextpartContext(ParserRuleContext):
|
|
1959
|
-
__slots__ = 'parser'
|
|
1960
|
-
|
|
1961
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
1962
|
-
super().__init__(parent, invokingState)
|
|
1963
|
-
self.parser = parser
|
|
1964
|
-
|
|
1965
|
-
def contextasset(self):
|
|
1966
|
-
return self.getTypedRuleContext(malParser.ContextassetContext, 0)
|
|
1967
|
-
|
|
1968
|
-
def contextlabel(self):
|
|
1969
|
-
return self.getTypedRuleContext(malParser.ContextlabelContext, 0)
|
|
1970
|
-
|
|
1971
|
-
def getRuleIndex(self):
|
|
1972
|
-
return malParser.RULE_contextpart
|
|
1973
|
-
|
|
1974
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
1975
|
-
if hasattr(listener, "enterContextpart"):
|
|
1976
|
-
listener.enterContextpart(self)
|
|
1977
|
-
|
|
1978
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
1979
|
-
if hasattr(listener, "exitContextpart"):
|
|
1980
|
-
listener.exitContextpart(self)
|
|
1981
|
-
|
|
1982
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
1983
|
-
if hasattr(visitor, "visitContextpart"):
|
|
1984
|
-
return visitor.visitContextpart(self)
|
|
1985
|
-
return visitor.visitChildren(self)
|
|
1986
|
-
|
|
1987
|
-
def contextpart(self):
|
|
1988
|
-
|
|
1989
|
-
localctx = malParser.ContextpartContext(self, self._ctx, self.state)
|
|
1990
|
-
self.enterRule(localctx, 48, self.RULE_contextpart)
|
|
1991
|
-
try:
|
|
1992
|
-
self.enterOuterAlt(localctx, 1)
|
|
1993
|
-
self.state = 293
|
|
1994
|
-
self.contextasset()
|
|
1995
|
-
self.state = 294
|
|
1996
|
-
self.contextlabel()
|
|
1997
|
-
except RecognitionException as re:
|
|
1998
|
-
localctx.exception = re
|
|
1999
|
-
self._errHandler.reportError(self, re)
|
|
2000
|
-
self._errHandler.recover(self, re)
|
|
2001
|
-
finally:
|
|
2002
|
-
self.exitRule()
|
|
2003
|
-
return localctx
|
|
2004
|
-
|
|
2005
|
-
class ContextassetContext(ParserRuleContext):
|
|
2006
|
-
__slots__ = 'parser'
|
|
2007
|
-
|
|
2008
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2009
|
-
super().__init__(parent, invokingState)
|
|
2010
|
-
self.parser = parser
|
|
2011
|
-
|
|
2012
|
-
def ID(self):
|
|
2013
|
-
return self.getToken(malParser.ID, 0)
|
|
2014
|
-
|
|
2015
|
-
def getRuleIndex(self):
|
|
2016
|
-
return malParser.RULE_contextasset
|
|
2017
|
-
|
|
2018
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2019
|
-
if hasattr(listener, "enterContextasset"):
|
|
2020
|
-
listener.enterContextasset(self)
|
|
2021
|
-
|
|
2022
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2023
|
-
if hasattr(listener, "exitContextasset"):
|
|
2024
|
-
listener.exitContextasset(self)
|
|
2025
|
-
|
|
2026
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2027
|
-
if hasattr(visitor, "visitContextasset"):
|
|
2028
|
-
return visitor.visitContextasset(self)
|
|
2029
|
-
return visitor.visitChildren(self)
|
|
2030
|
-
|
|
2031
|
-
def contextasset(self):
|
|
2032
|
-
|
|
2033
|
-
localctx = malParser.ContextassetContext(self, self._ctx, self.state)
|
|
2034
|
-
self.enterRule(localctx, 50, self.RULE_contextasset)
|
|
2035
|
-
try:
|
|
2036
|
-
self.enterOuterAlt(localctx, 1)
|
|
2037
|
-
self.state = 296
|
|
2038
|
-
self.match(malParser.ID)
|
|
2039
|
-
except RecognitionException as re:
|
|
2040
|
-
localctx.exception = re
|
|
2041
|
-
self._errHandler.reportError(self, re)
|
|
2042
|
-
self._errHandler.recover(self, re)
|
|
2043
|
-
finally:
|
|
2044
|
-
self.exitRule()
|
|
2045
|
-
return localctx
|
|
2046
|
-
|
|
2047
|
-
class ContextlabelContext(ParserRuleContext):
|
|
2048
|
-
__slots__ = 'parser'
|
|
2049
|
-
|
|
2050
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2051
|
-
super().__init__(parent, invokingState)
|
|
2052
|
-
self.parser = parser
|
|
2053
|
-
|
|
2054
|
-
def ID(self):
|
|
2055
|
-
return self.getToken(malParser.ID, 0)
|
|
2056
|
-
|
|
2057
|
-
def getRuleIndex(self):
|
|
2058
|
-
return malParser.RULE_contextlabel
|
|
2059
|
-
|
|
2060
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2061
|
-
if hasattr(listener, "enterContextlabel"):
|
|
2062
|
-
listener.enterContextlabel(self)
|
|
2063
|
-
|
|
2064
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2065
|
-
if hasattr(listener, "exitContextlabel"):
|
|
2066
|
-
listener.exitContextlabel(self)
|
|
2067
|
-
|
|
2068
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2069
|
-
if hasattr(visitor, "visitContextlabel"):
|
|
2070
|
-
return visitor.visitContextlabel(self)
|
|
2071
|
-
return visitor.visitChildren(self)
|
|
2072
|
-
|
|
2073
|
-
def contextlabel(self):
|
|
2074
|
-
|
|
2075
|
-
localctx = malParser.ContextlabelContext(self, self._ctx, self.state)
|
|
2076
|
-
self.enterRule(localctx, 52, self.RULE_contextlabel)
|
|
2077
|
-
try:
|
|
2078
|
-
self.enterOuterAlt(localctx, 1)
|
|
2079
|
-
self.state = 298
|
|
2080
|
-
self.match(malParser.ID)
|
|
2081
|
-
except RecognitionException as re:
|
|
2082
|
-
localctx.exception = re
|
|
2083
|
-
self._errHandler.reportError(self, re)
|
|
2084
|
-
self._errHandler.recover(self, re)
|
|
2085
|
-
finally:
|
|
2086
|
-
self.exitRule()
|
|
2087
|
-
return localctx
|
|
2088
|
-
|
|
2089
|
-
class DetectortypeContext(ParserRuleContext):
|
|
2090
|
-
__slots__ = 'parser'
|
|
2091
|
-
|
|
2092
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2093
|
-
super().__init__(parent, invokingState)
|
|
2094
|
-
self.parser = parser
|
|
2095
|
-
|
|
2096
|
-
def ID(self):
|
|
2097
|
-
return self.getToken(malParser.ID, 0)
|
|
2098
|
-
|
|
2099
|
-
def getRuleIndex(self):
|
|
2100
|
-
return malParser.RULE_detectortype
|
|
2101
|
-
|
|
2102
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2103
|
-
if hasattr(listener, "enterDetectortype"):
|
|
2104
|
-
listener.enterDetectortype(self)
|
|
2105
|
-
|
|
2106
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2107
|
-
if hasattr(listener, "exitDetectortype"):
|
|
2108
|
-
listener.exitDetectortype(self)
|
|
2109
|
-
|
|
2110
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2111
|
-
if hasattr(visitor, "visitDetectortype"):
|
|
2112
|
-
return visitor.visitDetectortype(self)
|
|
2113
|
-
return visitor.visitChildren(self)
|
|
2114
|
-
|
|
2115
|
-
def detectortype(self):
|
|
2116
|
-
|
|
2117
|
-
localctx = malParser.DetectortypeContext(self, self._ctx, self.state)
|
|
2118
|
-
self.enterRule(localctx, 54, self.RULE_detectortype)
|
|
2119
|
-
try:
|
|
2120
|
-
self.enterOuterAlt(localctx, 1)
|
|
2121
|
-
self.state = 300
|
|
2122
|
-
self.match(malParser.ID)
|
|
2123
|
-
except RecognitionException as re:
|
|
2124
|
-
localctx.exception = re
|
|
2125
|
-
self._errHandler.reportError(self, re)
|
|
2126
|
-
self._errHandler.recover(self, re)
|
|
2127
|
-
finally:
|
|
2128
|
-
self.exitRule()
|
|
2129
|
-
return localctx
|
|
2130
|
-
|
|
2131
|
-
class TprateContext(ParserRuleContext):
|
|
2132
|
-
__slots__ = 'parser'
|
|
2133
|
-
|
|
2134
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2135
|
-
super().__init__(parent, invokingState)
|
|
2136
|
-
self.parser = parser
|
|
2137
|
-
|
|
2138
|
-
def pdist(self):
|
|
2139
|
-
return self.getTypedRuleContext(malParser.PdistContext, 0)
|
|
2140
|
-
|
|
2141
|
-
def getRuleIndex(self):
|
|
2142
|
-
return malParser.RULE_tprate
|
|
2143
|
-
|
|
2144
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2145
|
-
if hasattr(listener, "enterTprate"):
|
|
2146
|
-
listener.enterTprate(self)
|
|
2147
|
-
|
|
2148
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2149
|
-
if hasattr(listener, "exitTprate"):
|
|
2150
|
-
listener.exitTprate(self)
|
|
2151
|
-
|
|
2152
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2153
|
-
if hasattr(visitor, "visitTprate"):
|
|
2154
|
-
return visitor.visitTprate(self)
|
|
2155
|
-
return visitor.visitChildren(self)
|
|
2156
|
-
|
|
2157
|
-
def tprate(self):
|
|
2158
|
-
|
|
2159
|
-
localctx = malParser.TprateContext(self, self._ctx, self.state)
|
|
2160
|
-
self.enterRule(localctx, 56, self.RULE_tprate)
|
|
2161
|
-
try:
|
|
2162
|
-
self.enterOuterAlt(localctx, 1)
|
|
2163
|
-
self.state = 302
|
|
2164
|
-
self.pdist()
|
|
2165
|
-
except RecognitionException as re:
|
|
2166
|
-
localctx.exception = re
|
|
2167
|
-
self._errHandler.reportError(self, re)
|
|
2168
|
-
self._errHandler.recover(self, re)
|
|
2169
|
-
finally:
|
|
2170
|
-
self.exitRule()
|
|
2171
|
-
return localctx
|
|
2172
|
-
|
|
2173
|
-
class PreconditionContext(ParserRuleContext):
|
|
2174
|
-
__slots__ = 'parser'
|
|
2175
|
-
|
|
2176
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2177
|
-
super().__init__(parent, invokingState)
|
|
2178
|
-
self.parser = parser
|
|
2179
|
-
|
|
2180
|
-
def REQUIRES(self):
|
|
2181
|
-
return self.getToken(malParser.REQUIRES, 0)
|
|
2182
|
-
|
|
2183
|
-
def expr(self, i: int = None):
|
|
2184
|
-
if i is None:
|
|
2185
|
-
return self.getTypedRuleContexts(malParser.ExprContext)
|
|
2186
|
-
return self.getTypedRuleContext(malParser.ExprContext, i)
|
|
2187
|
-
|
|
2188
|
-
def COMMA(self, i: int = None):
|
|
2189
|
-
if i is None:
|
|
2190
|
-
return self.getTokens(malParser.COMMA)
|
|
2191
|
-
return self.getToken(malParser.COMMA, i)
|
|
2192
|
-
|
|
2193
|
-
def getRuleIndex(self):
|
|
2194
|
-
return malParser.RULE_precondition
|
|
2195
|
-
|
|
2196
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2197
|
-
if hasattr(listener, "enterPrecondition"):
|
|
2198
|
-
listener.enterPrecondition(self)
|
|
2199
|
-
|
|
2200
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2201
|
-
if hasattr(listener, "exitPrecondition"):
|
|
2202
|
-
listener.exitPrecondition(self)
|
|
2203
|
-
|
|
2204
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2205
|
-
if hasattr(visitor, "visitPrecondition"):
|
|
2206
|
-
return visitor.visitPrecondition(self)
|
|
2207
|
-
return visitor.visitChildren(self)
|
|
2208
|
-
|
|
2209
|
-
def precondition(self):
|
|
2210
|
-
|
|
2211
|
-
localctx = malParser.PreconditionContext(self, self._ctx, self.state)
|
|
2212
|
-
self.enterRule(localctx, 58, self.RULE_precondition)
|
|
2213
|
-
self._la = 0 # Token type
|
|
2214
|
-
try:
|
|
2215
|
-
self.enterOuterAlt(localctx, 1)
|
|
2216
|
-
self.state = 304
|
|
2217
|
-
self.match(malParser.REQUIRES)
|
|
2218
|
-
self.state = 305
|
|
2219
|
-
self.expr()
|
|
2220
|
-
self.state = 310
|
|
2221
|
-
self._errHandler.sync(self)
|
|
2222
|
-
_la = self._input.LA(1)
|
|
2223
|
-
while _la == 44:
|
|
2224
|
-
self.state = 306
|
|
2225
|
-
self.match(malParser.COMMA)
|
|
2226
|
-
self.state = 307
|
|
2227
|
-
self.expr()
|
|
2228
|
-
self.state = 312
|
|
2229
|
-
self._errHandler.sync(self)
|
|
2230
|
-
_la = self._input.LA(1)
|
|
2231
|
-
|
|
2232
|
-
except RecognitionException as re:
|
|
2233
|
-
localctx.exception = re
|
|
2234
|
-
self._errHandler.reportError(self, re)
|
|
2235
|
-
self._errHandler.recover(self, re)
|
|
2236
|
-
finally:
|
|
2237
|
-
self.exitRule()
|
|
2238
|
-
return localctx
|
|
2239
|
-
|
|
2240
|
-
class ReachesContext(ParserRuleContext):
|
|
2241
|
-
__slots__ = 'parser'
|
|
2242
|
-
|
|
2243
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2244
|
-
super().__init__(parent, invokingState)
|
|
2245
|
-
self.parser = parser
|
|
2246
|
-
|
|
2247
|
-
def expr(self, i: int = None):
|
|
2248
|
-
if i is None:
|
|
2249
|
-
return self.getTypedRuleContexts(malParser.ExprContext)
|
|
2250
|
-
return self.getTypedRuleContext(malParser.ExprContext, i)
|
|
2251
|
-
|
|
2252
|
-
def INHERITS(self):
|
|
2253
|
-
return self.getToken(malParser.INHERITS, 0)
|
|
2254
|
-
|
|
2255
|
-
def LEADSTO(self):
|
|
2256
|
-
return self.getToken(malParser.LEADSTO, 0)
|
|
2257
|
-
|
|
2258
|
-
def COMMA(self, i: int = None):
|
|
2259
|
-
if i is None:
|
|
2260
|
-
return self.getTokens(malParser.COMMA)
|
|
2261
|
-
return self.getToken(malParser.COMMA, i)
|
|
2262
|
-
|
|
2263
|
-
def getRuleIndex(self):
|
|
2264
|
-
return malParser.RULE_reaches
|
|
2265
|
-
|
|
2266
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2267
|
-
if hasattr(listener, "enterReaches"):
|
|
2268
|
-
listener.enterReaches(self)
|
|
2269
|
-
|
|
2270
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2271
|
-
if hasattr(listener, "exitReaches"):
|
|
2272
|
-
listener.exitReaches(self)
|
|
2273
|
-
|
|
2274
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2275
|
-
if hasattr(visitor, "visitReaches"):
|
|
2276
|
-
return visitor.visitReaches(self)
|
|
2277
|
-
return visitor.visitChildren(self)
|
|
2278
|
-
|
|
2279
|
-
def reaches(self):
|
|
2280
|
-
|
|
2281
|
-
localctx = malParser.ReachesContext(self, self._ctx, self.state)
|
|
2282
|
-
self.enterRule(localctx, 60, self.RULE_reaches)
|
|
2283
|
-
self._la = 0 # Token type
|
|
2284
|
-
try:
|
|
2285
|
-
self.enterOuterAlt(localctx, 1)
|
|
2286
|
-
self.state = 313
|
|
2287
|
-
_la = self._input.LA(1)
|
|
2288
|
-
if not (_la == 42 or _la == 43):
|
|
2289
|
-
self._errHandler.recoverInline(self)
|
|
2290
|
-
else:
|
|
2291
|
-
self._errHandler.reportMatch(self)
|
|
2292
|
-
self.consume()
|
|
2293
|
-
self.state = 314
|
|
2294
|
-
self.expr()
|
|
2295
|
-
self.state = 319
|
|
2296
|
-
self._errHandler.sync(self)
|
|
2297
|
-
_la = self._input.LA(1)
|
|
2298
|
-
while _la == 44:
|
|
2299
|
-
self.state = 315
|
|
2300
|
-
self.match(malParser.COMMA)
|
|
2301
|
-
self.state = 316
|
|
2302
|
-
self.expr()
|
|
2303
|
-
self.state = 321
|
|
2304
|
-
self._errHandler.sync(self)
|
|
2305
|
-
_la = self._input.LA(1)
|
|
2306
|
-
|
|
2307
|
-
except RecognitionException as re:
|
|
2308
|
-
localctx.exception = re
|
|
2309
|
-
self._errHandler.reportError(self, re)
|
|
2310
|
-
self._errHandler.recover(self, re)
|
|
2311
|
-
finally:
|
|
2312
|
-
self.exitRule()
|
|
2313
|
-
return localctx
|
|
2314
|
-
|
|
2315
|
-
class NumberContext(ParserRuleContext):
|
|
2316
|
-
__slots__ = 'parser'
|
|
2317
|
-
|
|
2318
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2319
|
-
super().__init__(parent, invokingState)
|
|
2320
|
-
self.parser = parser
|
|
2321
|
-
|
|
2322
|
-
def INT(self):
|
|
2323
|
-
return self.getToken(malParser.INT, 0)
|
|
2324
|
-
|
|
2325
|
-
def FLOAT(self):
|
|
2326
|
-
return self.getToken(malParser.FLOAT, 0)
|
|
2327
|
-
|
|
2328
|
-
def getRuleIndex(self):
|
|
2329
|
-
return malParser.RULE_number
|
|
2330
|
-
|
|
2331
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2332
|
-
if hasattr(listener, "enterNumber"):
|
|
2333
|
-
listener.enterNumber(self)
|
|
2334
|
-
|
|
2335
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2336
|
-
if hasattr(listener, "exitNumber"):
|
|
2337
|
-
listener.exitNumber(self)
|
|
2338
|
-
|
|
2339
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2340
|
-
if hasattr(visitor, "visitNumber"):
|
|
2341
|
-
return visitor.visitNumber(self)
|
|
2342
|
-
return visitor.visitChildren(self)
|
|
2343
|
-
|
|
2344
|
-
def number(self):
|
|
2345
|
-
|
|
2346
|
-
localctx = malParser.NumberContext(self, self._ctx, self.state)
|
|
2347
|
-
self.enterRule(localctx, 62, self.RULE_number)
|
|
2348
|
-
self._la = 0 # Token type
|
|
2349
|
-
try:
|
|
2350
|
-
self.enterOuterAlt(localctx, 1)
|
|
2351
|
-
self.state = 322
|
|
2352
|
-
_la = self._input.LA(1)
|
|
2353
|
-
if not (_la == 11 or _la == 12):
|
|
2354
|
-
self._errHandler.recoverInline(self)
|
|
2355
|
-
else:
|
|
2356
|
-
self._errHandler.reportMatch(self)
|
|
2357
|
-
self.consume()
|
|
2358
|
-
except RecognitionException as re:
|
|
2359
|
-
localctx.exception = re
|
|
2360
|
-
self._errHandler.reportError(self, re)
|
|
2361
|
-
self._errHandler.recover(self, re)
|
|
2362
|
-
finally:
|
|
2363
|
-
self.exitRule()
|
|
2364
|
-
return localctx
|
|
2365
|
-
|
|
2366
|
-
class VariableContext(ParserRuleContext):
|
|
2367
|
-
__slots__ = 'parser'
|
|
2368
|
-
|
|
2369
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2370
|
-
super().__init__(parent, invokingState)
|
|
2371
|
-
self.parser = parser
|
|
2372
|
-
|
|
2373
|
-
def LET(self):
|
|
2374
|
-
return self.getToken(malParser.LET, 0)
|
|
2375
|
-
|
|
2376
|
-
def ID(self):
|
|
2377
|
-
return self.getToken(malParser.ID, 0)
|
|
2378
|
-
|
|
2379
|
-
def ASSIGN(self):
|
|
2380
|
-
return self.getToken(malParser.ASSIGN, 0)
|
|
2381
|
-
|
|
2382
|
-
def expr(self):
|
|
2383
|
-
return self.getTypedRuleContext(malParser.ExprContext, 0)
|
|
2384
|
-
|
|
2385
|
-
def getRuleIndex(self):
|
|
2386
|
-
return malParser.RULE_variable
|
|
2387
|
-
|
|
2388
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2389
|
-
if hasattr(listener, "enterVariable"):
|
|
2390
|
-
listener.enterVariable(self)
|
|
2391
|
-
|
|
2392
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2393
|
-
if hasattr(listener, "exitVariable"):
|
|
2394
|
-
listener.exitVariable(self)
|
|
2395
|
-
|
|
2396
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2397
|
-
if hasattr(visitor, "visitVariable"):
|
|
2398
|
-
return visitor.visitVariable(self)
|
|
2399
|
-
return visitor.visitChildren(self)
|
|
2400
|
-
|
|
2401
|
-
def variable(self):
|
|
2402
|
-
|
|
2403
|
-
localctx = malParser.VariableContext(self, self._ctx, self.state)
|
|
2404
|
-
self.enterRule(localctx, 64, self.RULE_variable)
|
|
2405
|
-
try:
|
|
2406
|
-
self.enterOuterAlt(localctx, 1)
|
|
2407
|
-
self.state = 324
|
|
2408
|
-
self.match(malParser.LET)
|
|
2409
|
-
self.state = 325
|
|
2410
|
-
self.match(malParser.ID)
|
|
2411
|
-
self.state = 326
|
|
2412
|
-
self.match(malParser.ASSIGN)
|
|
2413
|
-
self.state = 327
|
|
2414
|
-
self.expr()
|
|
2415
|
-
except RecognitionException as re:
|
|
2416
|
-
localctx.exception = re
|
|
2417
|
-
self._errHandler.reportError(self, re)
|
|
2418
|
-
self._errHandler.recover(self, re)
|
|
2419
|
-
finally:
|
|
2420
|
-
self.exitRule()
|
|
2421
|
-
return localctx
|
|
2422
|
-
|
|
2423
|
-
class ExprContext(ParserRuleContext):
|
|
2424
|
-
__slots__ = 'parser'
|
|
2425
|
-
|
|
2426
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2427
|
-
super().__init__(parent, invokingState)
|
|
2428
|
-
self.parser = parser
|
|
2429
|
-
|
|
2430
|
-
def parts(self, i: int = None):
|
|
2431
|
-
if i is None:
|
|
2432
|
-
return self.getTypedRuleContexts(malParser.PartsContext)
|
|
2433
|
-
return self.getTypedRuleContext(malParser.PartsContext, i)
|
|
2434
|
-
|
|
2435
|
-
def setop(self, i: int = None):
|
|
2436
|
-
if i is None:
|
|
2437
|
-
return self.getTypedRuleContexts(malParser.SetopContext)
|
|
2438
|
-
return self.getTypedRuleContext(malParser.SetopContext, i)
|
|
2439
|
-
|
|
2440
|
-
def getRuleIndex(self):
|
|
2441
|
-
return malParser.RULE_expr
|
|
2442
|
-
|
|
2443
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2444
|
-
if hasattr(listener, "enterExpr"):
|
|
2445
|
-
listener.enterExpr(self)
|
|
2446
|
-
|
|
2447
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2448
|
-
if hasattr(listener, "exitExpr"):
|
|
2449
|
-
listener.exitExpr(self)
|
|
2450
|
-
|
|
2451
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2452
|
-
if hasattr(visitor, "visitExpr"):
|
|
2453
|
-
return visitor.visitExpr(self)
|
|
2454
|
-
return visitor.visitChildren(self)
|
|
2455
|
-
|
|
2456
|
-
def expr(self):
|
|
2457
|
-
|
|
2458
|
-
localctx = malParser.ExprContext(self, self._ctx, self.state)
|
|
2459
|
-
self.enterRule(localctx, 66, self.RULE_expr)
|
|
2460
|
-
self._la = 0 # Token type
|
|
2461
|
-
try:
|
|
2462
|
-
self.enterOuterAlt(localctx, 1)
|
|
2463
|
-
self.state = 329
|
|
2464
|
-
self.parts()
|
|
2465
|
-
self.state = 335
|
|
2466
|
-
self._errHandler.sync(self)
|
|
2467
|
-
_la = self._input.LA(1)
|
|
2468
|
-
while (((_la) & ~0x3f) == 0 and ((1 << _la) & 15032385536) != 0):
|
|
2469
|
-
self.state = 330
|
|
2470
|
-
self.setop()
|
|
2471
|
-
self.state = 331
|
|
2472
|
-
self.parts()
|
|
2473
|
-
self.state = 337
|
|
2474
|
-
self._errHandler.sync(self)
|
|
2475
|
-
_la = self._input.LA(1)
|
|
2476
|
-
|
|
2477
|
-
except RecognitionException as re:
|
|
2478
|
-
localctx.exception = re
|
|
2479
|
-
self._errHandler.reportError(self, re)
|
|
2480
|
-
self._errHandler.recover(self, re)
|
|
2481
|
-
finally:
|
|
2482
|
-
self.exitRule()
|
|
2483
|
-
return localctx
|
|
2484
|
-
|
|
2485
|
-
class PartsContext(ParserRuleContext):
|
|
2486
|
-
__slots__ = 'parser'
|
|
2487
|
-
|
|
2488
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2489
|
-
super().__init__(parent, invokingState)
|
|
2490
|
-
self.parser = parser
|
|
2491
|
-
|
|
2492
|
-
def part(self, i: int = None):
|
|
2493
|
-
if i is None:
|
|
2494
|
-
return self.getTypedRuleContexts(malParser.PartContext)
|
|
2495
|
-
return self.getTypedRuleContext(malParser.PartContext, i)
|
|
2496
|
-
|
|
2497
|
-
def DOT(self, i: int = None):
|
|
2498
|
-
if i is None:
|
|
2499
|
-
return self.getTokens(malParser.DOT)
|
|
2500
|
-
return self.getToken(malParser.DOT, i)
|
|
2501
|
-
|
|
2502
|
-
def getRuleIndex(self):
|
|
2503
|
-
return malParser.RULE_parts
|
|
2504
|
-
|
|
2505
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2506
|
-
if hasattr(listener, "enterParts"):
|
|
2507
|
-
listener.enterParts(self)
|
|
2508
|
-
|
|
2509
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2510
|
-
if hasattr(listener, "exitParts"):
|
|
2511
|
-
listener.exitParts(self)
|
|
2512
|
-
|
|
2513
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2514
|
-
if hasattr(visitor, "visitParts"):
|
|
2515
|
-
return visitor.visitParts(self)
|
|
2516
|
-
return visitor.visitChildren(self)
|
|
2517
|
-
|
|
2518
|
-
def parts(self):
|
|
2519
|
-
|
|
2520
|
-
localctx = malParser.PartsContext(self, self._ctx, self.state)
|
|
2521
|
-
self.enterRule(localctx, 68, self.RULE_parts)
|
|
2522
|
-
self._la = 0 # Token type
|
|
2523
|
-
try:
|
|
2524
|
-
self.enterOuterAlt(localctx, 1)
|
|
2525
|
-
self.state = 338
|
|
2526
|
-
self.part()
|
|
2527
|
-
self.state = 343
|
|
2528
|
-
self._errHandler.sync(self)
|
|
2529
|
-
_la = self._input.LA(1)
|
|
2530
|
-
while _la == 35:
|
|
2531
|
-
self.state = 339
|
|
2532
|
-
self.match(malParser.DOT)
|
|
2533
|
-
self.state = 340
|
|
2534
|
-
self.part()
|
|
2535
|
-
self.state = 345
|
|
2536
|
-
self._errHandler.sync(self)
|
|
2537
|
-
_la = self._input.LA(1)
|
|
2538
|
-
|
|
2539
|
-
except RecognitionException as re:
|
|
2540
|
-
localctx.exception = re
|
|
2541
|
-
self._errHandler.reportError(self, re)
|
|
2542
|
-
self._errHandler.recover(self, re)
|
|
2543
|
-
finally:
|
|
2544
|
-
self.exitRule()
|
|
2545
|
-
return localctx
|
|
2546
|
-
|
|
2547
|
-
class PartContext(ParserRuleContext):
|
|
2548
|
-
__slots__ = 'parser'
|
|
2549
|
-
|
|
2550
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2551
|
-
super().__init__(parent, invokingState)
|
|
2552
|
-
self.parser = parser
|
|
2553
|
-
|
|
2554
|
-
def LPAREN(self):
|
|
2555
|
-
return self.getToken(malParser.LPAREN, 0)
|
|
2556
|
-
|
|
2557
|
-
def expr(self):
|
|
2558
|
-
return self.getTypedRuleContext(malParser.ExprContext, 0)
|
|
2559
|
-
|
|
2560
|
-
def RPAREN(self):
|
|
2561
|
-
return self.getToken(malParser.RPAREN, 0)
|
|
2562
|
-
|
|
2563
|
-
def varsubst(self):
|
|
2564
|
-
return self.getTypedRuleContext(malParser.VarsubstContext, 0)
|
|
2565
|
-
|
|
2566
|
-
def ID(self):
|
|
2567
|
-
return self.getToken(malParser.ID, 0)
|
|
2568
|
-
|
|
2569
|
-
def STAR(self):
|
|
2570
|
-
return self.getToken(malParser.STAR, 0)
|
|
2571
|
-
|
|
2572
|
-
def type_(self, i: int = None):
|
|
2573
|
-
if i is None:
|
|
2574
|
-
return self.getTypedRuleContexts(malParser.TypeContext)
|
|
2575
|
-
return self.getTypedRuleContext(malParser.TypeContext, i)
|
|
2576
|
-
|
|
2577
|
-
def getRuleIndex(self):
|
|
2578
|
-
return malParser.RULE_part
|
|
2579
|
-
|
|
2580
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2581
|
-
if hasattr(listener, "enterPart"):
|
|
2582
|
-
listener.enterPart(self)
|
|
2583
|
-
|
|
2584
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2585
|
-
if hasattr(listener, "exitPart"):
|
|
2586
|
-
listener.exitPart(self)
|
|
2587
|
-
|
|
2588
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2589
|
-
if hasattr(visitor, "visitPart"):
|
|
2590
|
-
return visitor.visitPart(self)
|
|
2591
|
-
return visitor.visitChildren(self)
|
|
2592
|
-
|
|
2593
|
-
def part(self):
|
|
2594
|
-
|
|
2595
|
-
localctx = malParser.PartContext(self, self._ctx, self.state)
|
|
2596
|
-
self.enterRule(localctx, 70, self.RULE_part)
|
|
2597
|
-
self._la = 0 # Token type
|
|
2598
|
-
try:
|
|
2599
|
-
self.enterOuterAlt(localctx, 1)
|
|
2600
|
-
self.state = 355
|
|
2601
|
-
self._errHandler.sync(self)
|
|
2602
|
-
la_ = self._interp.adaptivePredict(self._input, 34, self._ctx)
|
|
2603
|
-
if la_ == 1:
|
|
2604
|
-
self.state = 346
|
|
2605
|
-
self.match(malParser.LPAREN)
|
|
2606
|
-
self.state = 347
|
|
2607
|
-
self.expr()
|
|
2608
|
-
self.state = 348
|
|
2609
|
-
self.match(malParser.RPAREN)
|
|
2610
|
-
|
|
2611
|
-
elif la_ == 2:
|
|
2612
|
-
self.state = 350
|
|
2613
|
-
self.varsubst()
|
|
2614
|
-
self.state = 351
|
|
2615
|
-
self.match(malParser.LPAREN)
|
|
2616
|
-
self.state = 352
|
|
2617
|
-
self.match(malParser.RPAREN)
|
|
2618
|
-
|
|
2619
|
-
elif la_ == 3:
|
|
2620
|
-
self.state = 354
|
|
2621
|
-
self.match(malParser.ID)
|
|
2622
|
-
|
|
2623
|
-
self.state = 358
|
|
2624
|
-
self._errHandler.sync(self)
|
|
2625
|
-
_la = self._input.LA(1)
|
|
2626
|
-
if _la == 28:
|
|
2627
|
-
self.state = 357
|
|
2628
|
-
self.match(malParser.STAR)
|
|
2629
|
-
|
|
2630
|
-
self.state = 363
|
|
2631
|
-
self._errHandler.sync(self)
|
|
2632
|
-
_la = self._input.LA(1)
|
|
2633
|
-
while _la == 26:
|
|
2634
|
-
self.state = 360
|
|
2635
|
-
self.type_()
|
|
2636
|
-
self.state = 365
|
|
2637
|
-
self._errHandler.sync(self)
|
|
2638
|
-
_la = self._input.LA(1)
|
|
2639
|
-
|
|
2640
|
-
except RecognitionException as re:
|
|
2641
|
-
localctx.exception = re
|
|
2642
|
-
self._errHandler.reportError(self, re)
|
|
2643
|
-
self._errHandler.recover(self, re)
|
|
2644
|
-
finally:
|
|
2645
|
-
self.exitRule()
|
|
2646
|
-
return localctx
|
|
2647
|
-
|
|
2648
|
-
class VarsubstContext(ParserRuleContext):
|
|
2649
|
-
__slots__ = 'parser'
|
|
2650
|
-
|
|
2651
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2652
|
-
super().__init__(parent, invokingState)
|
|
2653
|
-
self.parser = parser
|
|
2654
|
-
|
|
2655
|
-
def ID(self):
|
|
2656
|
-
return self.getToken(malParser.ID, 0)
|
|
2657
|
-
|
|
2658
|
-
def getRuleIndex(self):
|
|
2659
|
-
return malParser.RULE_varsubst
|
|
2660
|
-
|
|
2661
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2662
|
-
if hasattr(listener, "enterVarsubst"):
|
|
2663
|
-
listener.enterVarsubst(self)
|
|
2664
|
-
|
|
2665
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2666
|
-
if hasattr(listener, "exitVarsubst"):
|
|
2667
|
-
listener.exitVarsubst(self)
|
|
2668
|
-
|
|
2669
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2670
|
-
if hasattr(visitor, "visitVarsubst"):
|
|
2671
|
-
return visitor.visitVarsubst(self)
|
|
2672
|
-
return visitor.visitChildren(self)
|
|
2673
|
-
|
|
2674
|
-
def varsubst(self):
|
|
2675
|
-
|
|
2676
|
-
localctx = malParser.VarsubstContext(self, self._ctx, self.state)
|
|
2677
|
-
self.enterRule(localctx, 72, self.RULE_varsubst)
|
|
2678
|
-
try:
|
|
2679
|
-
self.enterOuterAlt(localctx, 1)
|
|
2680
|
-
self.state = 366
|
|
2681
|
-
self.match(malParser.ID)
|
|
2682
|
-
except RecognitionException as re:
|
|
2683
|
-
localctx.exception = re
|
|
2684
|
-
self._errHandler.reportError(self, re)
|
|
2685
|
-
self._errHandler.recover(self, re)
|
|
2686
|
-
finally:
|
|
2687
|
-
self.exitRule()
|
|
2688
|
-
return localctx
|
|
2689
|
-
|
|
2690
|
-
class TypeContext(ParserRuleContext):
|
|
2691
|
-
__slots__ = 'parser'
|
|
2692
|
-
|
|
2693
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2694
|
-
super().__init__(parent, invokingState)
|
|
2695
|
-
self.parser = parser
|
|
2696
|
-
|
|
2697
|
-
def LSQUARE(self):
|
|
2698
|
-
return self.getToken(malParser.LSQUARE, 0)
|
|
2699
|
-
|
|
2700
|
-
def ID(self):
|
|
2701
|
-
return self.getToken(malParser.ID, 0)
|
|
2702
|
-
|
|
2703
|
-
def RSQUARE(self):
|
|
2704
|
-
return self.getToken(malParser.RSQUARE, 0)
|
|
2705
|
-
|
|
2706
|
-
def getRuleIndex(self):
|
|
2707
|
-
return malParser.RULE_type
|
|
2708
|
-
|
|
2709
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2710
|
-
if hasattr(listener, "enterType"):
|
|
2711
|
-
listener.enterType(self)
|
|
2712
|
-
|
|
2713
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2714
|
-
if hasattr(listener, "exitType"):
|
|
2715
|
-
listener.exitType(self)
|
|
2716
|
-
|
|
2717
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2718
|
-
if hasattr(visitor, "visitType"):
|
|
2719
|
-
return visitor.visitType(self)
|
|
2720
|
-
return visitor.visitChildren(self)
|
|
2721
|
-
|
|
2722
|
-
def type_(self):
|
|
2723
|
-
|
|
2724
|
-
localctx = malParser.TypeContext(self, self._ctx, self.state)
|
|
2725
|
-
self.enterRule(localctx, 74, self.RULE_type)
|
|
2726
|
-
try:
|
|
2727
|
-
self.enterOuterAlt(localctx, 1)
|
|
2728
|
-
self.state = 368
|
|
2729
|
-
self.match(malParser.LSQUARE)
|
|
2730
|
-
self.state = 369
|
|
2731
|
-
self.match(malParser.ID)
|
|
2732
|
-
self.state = 370
|
|
2733
|
-
self.match(malParser.RSQUARE)
|
|
2734
|
-
except RecognitionException as re:
|
|
2735
|
-
localctx.exception = re
|
|
2736
|
-
self._errHandler.reportError(self, re)
|
|
2737
|
-
self._errHandler.recover(self, re)
|
|
2738
|
-
finally:
|
|
2739
|
-
self.exitRule()
|
|
2740
|
-
return localctx
|
|
2741
|
-
|
|
2742
|
-
class SetopContext(ParserRuleContext):
|
|
2743
|
-
__slots__ = 'parser'
|
|
2744
|
-
|
|
2745
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2746
|
-
super().__init__(parent, invokingState)
|
|
2747
|
-
self.parser = parser
|
|
2748
|
-
|
|
2749
|
-
def UNION(self):
|
|
2750
|
-
return self.getToken(malParser.UNION, 0)
|
|
2751
|
-
|
|
2752
|
-
def INTERSECT(self):
|
|
2753
|
-
return self.getToken(malParser.INTERSECT, 0)
|
|
2754
|
-
|
|
2755
|
-
def MINUS(self):
|
|
2756
|
-
return self.getToken(malParser.MINUS, 0)
|
|
2757
|
-
|
|
2758
|
-
def getRuleIndex(self):
|
|
2759
|
-
return malParser.RULE_setop
|
|
2760
|
-
|
|
2761
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2762
|
-
if hasattr(listener, "enterSetop"):
|
|
2763
|
-
listener.enterSetop(self)
|
|
2764
|
-
|
|
2765
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2766
|
-
if hasattr(listener, "exitSetop"):
|
|
2767
|
-
listener.exitSetop(self)
|
|
2768
|
-
|
|
2769
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2770
|
-
if hasattr(visitor, "visitSetop"):
|
|
2771
|
-
return visitor.visitSetop(self)
|
|
2772
|
-
return visitor.visitChildren(self)
|
|
2773
|
-
|
|
2774
|
-
def setop(self):
|
|
2775
|
-
|
|
2776
|
-
localctx = malParser.SetopContext(self, self._ctx, self.state)
|
|
2777
|
-
self.enterRule(localctx, 76, self.RULE_setop)
|
|
2778
|
-
self._la = 0 # Token type
|
|
2779
|
-
try:
|
|
2780
|
-
self.enterOuterAlt(localctx, 1)
|
|
2781
|
-
self.state = 372
|
|
2782
|
-
_la = self._input.LA(1)
|
|
2783
|
-
if not (((_la) & ~0x3f) == 0 and ((1 << _la) & 15032385536) != 0):
|
|
2784
|
-
self._errHandler.recoverInline(self)
|
|
2785
|
-
else:
|
|
2786
|
-
self._errHandler.reportMatch(self)
|
|
2787
|
-
self.consume()
|
|
2788
|
-
except RecognitionException as re:
|
|
2789
|
-
localctx.exception = re
|
|
2790
|
-
self._errHandler.reportError(self, re)
|
|
2791
|
-
self._errHandler.recover(self, re)
|
|
2792
|
-
finally:
|
|
2793
|
-
self.exitRule()
|
|
2794
|
-
return localctx
|
|
2795
|
-
|
|
2796
|
-
class AssociationsContext(ParserRuleContext):
|
|
2797
|
-
__slots__ = 'parser'
|
|
2798
|
-
|
|
2799
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2800
|
-
super().__init__(parent, invokingState)
|
|
2801
|
-
self.parser = parser
|
|
2802
|
-
|
|
2803
|
-
def ASSOCIATIONS(self):
|
|
2804
|
-
return self.getToken(malParser.ASSOCIATIONS, 0)
|
|
2805
|
-
|
|
2806
|
-
def LCURLY(self):
|
|
2807
|
-
return self.getToken(malParser.LCURLY, 0)
|
|
2808
|
-
|
|
2809
|
-
def RCURLY(self):
|
|
2810
|
-
return self.getToken(malParser.RCURLY, 0)
|
|
2811
|
-
|
|
2812
|
-
def association(self, i: int = None):
|
|
2813
|
-
if i is None:
|
|
2814
|
-
return self.getTypedRuleContexts(malParser.AssociationContext)
|
|
2815
|
-
return self.getTypedRuleContext(malParser.AssociationContext, i)
|
|
2816
|
-
|
|
2817
|
-
def getRuleIndex(self):
|
|
2818
|
-
return malParser.RULE_associations
|
|
2819
|
-
|
|
2820
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2821
|
-
if hasattr(listener, "enterAssociations"):
|
|
2822
|
-
listener.enterAssociations(self)
|
|
2823
|
-
|
|
2824
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2825
|
-
if hasattr(listener, "exitAssociations"):
|
|
2826
|
-
listener.exitAssociations(self)
|
|
2827
|
-
|
|
2828
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2829
|
-
if hasattr(visitor, "visitAssociations"):
|
|
2830
|
-
return visitor.visitAssociations(self)
|
|
2831
|
-
return visitor.visitChildren(self)
|
|
2832
|
-
|
|
2833
|
-
def associations(self):
|
|
2834
|
-
|
|
2835
|
-
localctx = malParser.AssociationsContext(self, self._ctx, self.state)
|
|
2836
|
-
self.enterRule(localctx, 78, self.RULE_associations)
|
|
2837
|
-
self._la = 0 # Token type
|
|
2838
|
-
try:
|
|
2839
|
-
self.enterOuterAlt(localctx, 1)
|
|
2840
|
-
self.state = 374
|
|
2841
|
-
self.match(malParser.ASSOCIATIONS)
|
|
2842
|
-
self.state = 375
|
|
2843
|
-
self.match(malParser.LCURLY)
|
|
2844
|
-
self.state = 379
|
|
2845
|
-
self._errHandler.sync(self)
|
|
2846
|
-
_la = self._input.LA(1)
|
|
2847
|
-
while _la == 17:
|
|
2848
|
-
self.state = 376
|
|
2849
|
-
self.association()
|
|
2850
|
-
self.state = 381
|
|
2851
|
-
self._errHandler.sync(self)
|
|
2852
|
-
_la = self._input.LA(1)
|
|
2853
|
-
|
|
2854
|
-
self.state = 382
|
|
2855
|
-
self.match(malParser.RCURLY)
|
|
2856
|
-
except RecognitionException as re:
|
|
2857
|
-
localctx.exception = re
|
|
2858
|
-
self._errHandler.reportError(self, re)
|
|
2859
|
-
self._errHandler.recover(self, re)
|
|
2860
|
-
finally:
|
|
2861
|
-
self.exitRule()
|
|
2862
|
-
return localctx
|
|
2863
|
-
|
|
2864
|
-
class AssociationContext(ParserRuleContext):
|
|
2865
|
-
__slots__ = 'parser'
|
|
2866
|
-
|
|
2867
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2868
|
-
super().__init__(parent, invokingState)
|
|
2869
|
-
self.parser = parser
|
|
2870
|
-
|
|
2871
|
-
def ID(self, i: int = None):
|
|
2872
|
-
if i is None:
|
|
2873
|
-
return self.getTokens(malParser.ID)
|
|
2874
|
-
return self.getToken(malParser.ID, i)
|
|
2875
|
-
|
|
2876
|
-
def field(self, i: int = None):
|
|
2877
|
-
if i is None:
|
|
2878
|
-
return self.getTypedRuleContexts(malParser.FieldContext)
|
|
2879
|
-
return self.getTypedRuleContext(malParser.FieldContext, i)
|
|
2880
|
-
|
|
2881
|
-
def mult(self, i: int = None):
|
|
2882
|
-
if i is None:
|
|
2883
|
-
return self.getTypedRuleContexts(malParser.MultContext)
|
|
2884
|
-
return self.getTypedRuleContext(malParser.MultContext, i)
|
|
2885
|
-
|
|
2886
|
-
def LARROW(self):
|
|
2887
|
-
return self.getToken(malParser.LARROW, 0)
|
|
2888
|
-
|
|
2889
|
-
def linkname(self):
|
|
2890
|
-
return self.getTypedRuleContext(malParser.LinknameContext, 0)
|
|
2891
|
-
|
|
2892
|
-
def RARROW(self):
|
|
2893
|
-
return self.getToken(malParser.RARROW, 0)
|
|
2894
|
-
|
|
2895
|
-
def meta(self, i: int = None):
|
|
2896
|
-
if i is None:
|
|
2897
|
-
return self.getTypedRuleContexts(malParser.MetaContext)
|
|
2898
|
-
return self.getTypedRuleContext(malParser.MetaContext, i)
|
|
2899
|
-
|
|
2900
|
-
def getRuleIndex(self):
|
|
2901
|
-
return malParser.RULE_association
|
|
2902
|
-
|
|
2903
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2904
|
-
if hasattr(listener, "enterAssociation"):
|
|
2905
|
-
listener.enterAssociation(self)
|
|
2906
|
-
|
|
2907
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2908
|
-
if hasattr(listener, "exitAssociation"):
|
|
2909
|
-
listener.exitAssociation(self)
|
|
2910
|
-
|
|
2911
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2912
|
-
if hasattr(visitor, "visitAssociation"):
|
|
2913
|
-
return visitor.visitAssociation(self)
|
|
2914
|
-
return visitor.visitChildren(self)
|
|
2915
|
-
|
|
2916
|
-
def association(self):
|
|
2917
|
-
|
|
2918
|
-
localctx = malParser.AssociationContext(self, self._ctx, self.state)
|
|
2919
|
-
self.enterRule(localctx, 80, self.RULE_association)
|
|
2920
|
-
try:
|
|
2921
|
-
self.enterOuterAlt(localctx, 1)
|
|
2922
|
-
self.state = 384
|
|
2923
|
-
self.match(malParser.ID)
|
|
2924
|
-
self.state = 385
|
|
2925
|
-
self.field()
|
|
2926
|
-
self.state = 386
|
|
2927
|
-
self.mult()
|
|
2928
|
-
self.state = 387
|
|
2929
|
-
self.match(malParser.LARROW)
|
|
2930
|
-
self.state = 388
|
|
2931
|
-
self.linkname()
|
|
2932
|
-
self.state = 389
|
|
2933
|
-
self.match(malParser.RARROW)
|
|
2934
|
-
self.state = 390
|
|
2935
|
-
self.mult()
|
|
2936
|
-
self.state = 391
|
|
2937
|
-
self.field()
|
|
2938
|
-
self.state = 392
|
|
2939
|
-
self.match(malParser.ID)
|
|
2940
|
-
self.state = 396
|
|
2941
|
-
self._errHandler.sync(self)
|
|
2942
|
-
_alt = self._interp.adaptivePredict(self._input, 38, self._ctx)
|
|
2943
|
-
while _alt != 2 and _alt != ATN.INVALID_ALT_NUMBER:
|
|
2944
|
-
if _alt == 1:
|
|
2945
|
-
self.state = 393
|
|
2946
|
-
self.meta()
|
|
2947
|
-
self.state = 398
|
|
2948
|
-
self._errHandler.sync(self)
|
|
2949
|
-
_alt = self._interp.adaptivePredict(self._input, 38, self._ctx)
|
|
2950
|
-
|
|
2951
|
-
except RecognitionException as re:
|
|
2952
|
-
localctx.exception = re
|
|
2953
|
-
self._errHandler.reportError(self, re)
|
|
2954
|
-
self._errHandler.recover(self, re)
|
|
2955
|
-
finally:
|
|
2956
|
-
self.exitRule()
|
|
2957
|
-
return localctx
|
|
2958
|
-
|
|
2959
|
-
class FieldContext(ParserRuleContext):
|
|
2960
|
-
__slots__ = 'parser'
|
|
2961
|
-
|
|
2962
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
2963
|
-
super().__init__(parent, invokingState)
|
|
2964
|
-
self.parser = parser
|
|
2965
|
-
|
|
2966
|
-
def LSQUARE(self):
|
|
2967
|
-
return self.getToken(malParser.LSQUARE, 0)
|
|
2968
|
-
|
|
2969
|
-
def ID(self):
|
|
2970
|
-
return self.getToken(malParser.ID, 0)
|
|
2971
|
-
|
|
2972
|
-
def RSQUARE(self):
|
|
2973
|
-
return self.getToken(malParser.RSQUARE, 0)
|
|
2974
|
-
|
|
2975
|
-
def getRuleIndex(self):
|
|
2976
|
-
return malParser.RULE_field
|
|
2977
|
-
|
|
2978
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
2979
|
-
if hasattr(listener, "enterField"):
|
|
2980
|
-
listener.enterField(self)
|
|
2981
|
-
|
|
2982
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
2983
|
-
if hasattr(listener, "exitField"):
|
|
2984
|
-
listener.exitField(self)
|
|
2985
|
-
|
|
2986
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
2987
|
-
if hasattr(visitor, "visitField"):
|
|
2988
|
-
return visitor.visitField(self)
|
|
2989
|
-
return visitor.visitChildren(self)
|
|
2990
|
-
|
|
2991
|
-
def field(self):
|
|
2992
|
-
|
|
2993
|
-
localctx = malParser.FieldContext(self, self._ctx, self.state)
|
|
2994
|
-
self.enterRule(localctx, 82, self.RULE_field)
|
|
2995
|
-
try:
|
|
2996
|
-
self.enterOuterAlt(localctx, 1)
|
|
2997
|
-
self.state = 399
|
|
2998
|
-
self.match(malParser.LSQUARE)
|
|
2999
|
-
self.state = 400
|
|
3000
|
-
self.match(malParser.ID)
|
|
3001
|
-
self.state = 401
|
|
3002
|
-
self.match(malParser.RSQUARE)
|
|
3003
|
-
except RecognitionException as re:
|
|
3004
|
-
localctx.exception = re
|
|
3005
|
-
self._errHandler.reportError(self, re)
|
|
3006
|
-
self._errHandler.recover(self, re)
|
|
3007
|
-
finally:
|
|
3008
|
-
self.exitRule()
|
|
3009
|
-
return localctx
|
|
3010
|
-
|
|
3011
|
-
class MultContext(ParserRuleContext):
|
|
3012
|
-
__slots__ = 'parser'
|
|
3013
|
-
|
|
3014
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
3015
|
-
super().__init__(parent, invokingState)
|
|
3016
|
-
self.parser = parser
|
|
3017
|
-
|
|
3018
|
-
def multatom(self, i: int = None):
|
|
3019
|
-
if i is None:
|
|
3020
|
-
return self.getTypedRuleContexts(malParser.MultatomContext)
|
|
3021
|
-
return self.getTypedRuleContext(malParser.MultatomContext, i)
|
|
3022
|
-
|
|
3023
|
-
def RANGE(self):
|
|
3024
|
-
return self.getToken(malParser.RANGE, 0)
|
|
3025
|
-
|
|
3026
|
-
def getRuleIndex(self):
|
|
3027
|
-
return malParser.RULE_mult
|
|
3028
|
-
|
|
3029
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
3030
|
-
if hasattr(listener, "enterMult"):
|
|
3031
|
-
listener.enterMult(self)
|
|
3032
|
-
|
|
3033
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
3034
|
-
if hasattr(listener, "exitMult"):
|
|
3035
|
-
listener.exitMult(self)
|
|
3036
|
-
|
|
3037
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
3038
|
-
if hasattr(visitor, "visitMult"):
|
|
3039
|
-
return visitor.visitMult(self)
|
|
3040
|
-
return visitor.visitChildren(self)
|
|
3041
|
-
|
|
3042
|
-
def mult(self):
|
|
3043
|
-
|
|
3044
|
-
localctx = malParser.MultContext(self, self._ctx, self.state)
|
|
3045
|
-
self.enterRule(localctx, 84, self.RULE_mult)
|
|
3046
|
-
self._la = 0 # Token type
|
|
3047
|
-
try:
|
|
3048
|
-
self.enterOuterAlt(localctx, 1)
|
|
3049
|
-
self.state = 403
|
|
3050
|
-
self.multatom()
|
|
3051
|
-
self.state = 406
|
|
3052
|
-
self._errHandler.sync(self)
|
|
3053
|
-
_la = self._input.LA(1)
|
|
3054
|
-
if _la == 34:
|
|
3055
|
-
self.state = 404
|
|
3056
|
-
self.match(malParser.RANGE)
|
|
3057
|
-
self.state = 405
|
|
3058
|
-
self.multatom()
|
|
3059
|
-
|
|
3060
|
-
except RecognitionException as re:
|
|
3061
|
-
localctx.exception = re
|
|
3062
|
-
self._errHandler.reportError(self, re)
|
|
3063
|
-
self._errHandler.recover(self, re)
|
|
3064
|
-
finally:
|
|
3065
|
-
self.exitRule()
|
|
3066
|
-
return localctx
|
|
3067
|
-
|
|
3068
|
-
class MultatomContext(ParserRuleContext):
|
|
3069
|
-
__slots__ = 'parser'
|
|
3070
|
-
|
|
3071
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
3072
|
-
super().__init__(parent, invokingState)
|
|
3073
|
-
self.parser = parser
|
|
3074
|
-
|
|
3075
|
-
def INT(self):
|
|
3076
|
-
return self.getToken(malParser.INT, 0)
|
|
3077
|
-
|
|
3078
|
-
def STAR(self):
|
|
3079
|
-
return self.getToken(malParser.STAR, 0)
|
|
3080
|
-
|
|
3081
|
-
def getRuleIndex(self):
|
|
3082
|
-
return malParser.RULE_multatom
|
|
3083
|
-
|
|
3084
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
3085
|
-
if hasattr(listener, "enterMultatom"):
|
|
3086
|
-
listener.enterMultatom(self)
|
|
3087
|
-
|
|
3088
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
3089
|
-
if hasattr(listener, "exitMultatom"):
|
|
3090
|
-
listener.exitMultatom(self)
|
|
3091
|
-
|
|
3092
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
3093
|
-
if hasattr(visitor, "visitMultatom"):
|
|
3094
|
-
return visitor.visitMultatom(self)
|
|
3095
|
-
return visitor.visitChildren(self)
|
|
3096
|
-
|
|
3097
|
-
def multatom(self):
|
|
3098
|
-
|
|
3099
|
-
localctx = malParser.MultatomContext(self, self._ctx, self.state)
|
|
3100
|
-
self.enterRule(localctx, 86, self.RULE_multatom)
|
|
3101
|
-
self._la = 0 # Token type
|
|
3102
|
-
try:
|
|
3103
|
-
self.enterOuterAlt(localctx, 1)
|
|
3104
|
-
self.state = 408
|
|
3105
|
-
_la = self._input.LA(1)
|
|
3106
|
-
if not (_la == 11 or _la == 28):
|
|
3107
|
-
self._errHandler.recoverInline(self)
|
|
3108
|
-
else:
|
|
3109
|
-
self._errHandler.reportMatch(self)
|
|
3110
|
-
self.consume()
|
|
3111
|
-
except RecognitionException as re:
|
|
3112
|
-
localctx.exception = re
|
|
3113
|
-
self._errHandler.reportError(self, re)
|
|
3114
|
-
self._errHandler.recover(self, re)
|
|
3115
|
-
finally:
|
|
3116
|
-
self.exitRule()
|
|
3117
|
-
return localctx
|
|
3118
|
-
|
|
3119
|
-
class LinknameContext(ParserRuleContext):
|
|
3120
|
-
__slots__ = 'parser'
|
|
3121
|
-
|
|
3122
|
-
def __init__(self, parser, parent: ParserRuleContext = None, invokingState: int = -1):
|
|
3123
|
-
super().__init__(parent, invokingState)
|
|
3124
|
-
self.parser = parser
|
|
3125
|
-
|
|
3126
|
-
def ID(self):
|
|
3127
|
-
return self.getToken(malParser.ID, 0)
|
|
3128
|
-
|
|
3129
|
-
def getRuleIndex(self):
|
|
3130
|
-
return malParser.RULE_linkname
|
|
3131
|
-
|
|
3132
|
-
def enterRule(self, listener: ParseTreeListener):
|
|
3133
|
-
if hasattr(listener, "enterLinkname"):
|
|
3134
|
-
listener.enterLinkname(self)
|
|
3135
|
-
|
|
3136
|
-
def exitRule(self, listener: ParseTreeListener):
|
|
3137
|
-
if hasattr(listener, "exitLinkname"):
|
|
3138
|
-
listener.exitLinkname(self)
|
|
3139
|
-
|
|
3140
|
-
def accept(self, visitor: ParseTreeVisitor):
|
|
3141
|
-
if hasattr(visitor, "visitLinkname"):
|
|
3142
|
-
return visitor.visitLinkname(self)
|
|
3143
|
-
return visitor.visitChildren(self)
|
|
3144
|
-
|
|
3145
|
-
def linkname(self):
|
|
3146
|
-
|
|
3147
|
-
localctx = malParser.LinknameContext(self, self._ctx, self.state)
|
|
3148
|
-
self.enterRule(localctx, 88, self.RULE_linkname)
|
|
3149
|
-
try:
|
|
3150
|
-
self.enterOuterAlt(localctx, 1)
|
|
3151
|
-
self.state = 410
|
|
3152
|
-
self.match(malParser.ID)
|
|
3153
|
-
except RecognitionException as re:
|
|
3154
|
-
localctx.exception = re
|
|
3155
|
-
self._errHandler.reportError(self, re)
|
|
3156
|
-
self._errHandler.recover(self, re)
|
|
3157
|
-
finally:
|
|
3158
|
-
self.exitRule()
|
|
3159
|
-
return localctx
|