omextra 0.0.0.dev423__py3-none-any.whl → 0.0.0.dev425__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.
- omextra/.omlish-manifests.json +14 -0
- omextra/__about__.py +3 -1
- omextra/defs.py +216 -0
- omextra/dynamic.py +219 -0
- omextra/formats/__init__.py +0 -0
- omextra/formats/json/Json.g4 +77 -0
- omextra/formats/json/__init__.py +0 -0
- omextra/formats/json/_antlr/JsonLexer.py +109 -0
- omextra/formats/json/_antlr/JsonListener.py +61 -0
- omextra/formats/json/_antlr/JsonParser.py +457 -0
- omextra/formats/json/_antlr/JsonVisitor.py +42 -0
- omextra/formats/json/_antlr/__init__.py +0 -0
- omextra/io/__init__.py +0 -0
- omextra/io/trampoline.py +289 -0
- omextra/specs/__init__.py +0 -0
- omextra/specs/irc/__init__.py +0 -0
- omextra/specs/irc/messages/__init__.py +0 -0
- omextra/specs/irc/messages/base.py +50 -0
- omextra/specs/irc/messages/formats.py +92 -0
- omextra/specs/irc/messages/messages.py +775 -0
- omextra/specs/irc/messages/parsing.py +99 -0
- omextra/specs/irc/numerics/__init__.py +0 -0
- omextra/specs/irc/numerics/formats.py +97 -0
- omextra/specs/irc/numerics/numerics.py +865 -0
- omextra/specs/irc/numerics/types.py +59 -0
- omextra/specs/irc/protocol/LICENSE +11 -0
- omextra/specs/irc/protocol/__init__.py +61 -0
- omextra/specs/irc/protocol/consts.py +6 -0
- omextra/specs/irc/protocol/errors.py +30 -0
- omextra/specs/irc/protocol/message.py +21 -0
- omextra/specs/irc/protocol/nuh.py +55 -0
- omextra/specs/irc/protocol/parsing.py +158 -0
- omextra/specs/irc/protocol/rendering.py +153 -0
- omextra/specs/irc/protocol/tags.py +102 -0
- omextra/specs/irc/protocol/utils.py +30 -0
- omextra/specs/proto/Protobuf3.g4 +396 -0
- omextra/specs/proto/__init__.py +0 -0
- omextra/specs/proto/_antlr/Protobuf3Lexer.py +340 -0
- omextra/specs/proto/_antlr/Protobuf3Listener.py +448 -0
- omextra/specs/proto/_antlr/Protobuf3Parser.py +3909 -0
- omextra/specs/proto/_antlr/Protobuf3Visitor.py +257 -0
- omextra/specs/proto/_antlr/__init__.py +0 -0
- omextra/specs/proto/nodes.py +54 -0
- omextra/specs/proto/parsing.py +98 -0
- omextra/sql/__init__.py +0 -0
- omextra/sql/parsing/Minisql.g4 +292 -0
- omextra/sql/parsing/__init__.py +0 -0
- omextra/sql/parsing/_antlr/MinisqlLexer.py +322 -0
- omextra/sql/parsing/_antlr/MinisqlListener.py +511 -0
- omextra/sql/parsing/_antlr/MinisqlParser.py +3763 -0
- omextra/sql/parsing/_antlr/MinisqlVisitor.py +292 -0
- omextra/sql/parsing/_antlr/__init__.py +0 -0
- omextra/sql/parsing/parsing.py +120 -0
- omextra/text/__init__.py +0 -0
- omextra/text/antlr/__init__.py +0 -0
- omextra/text/antlr/cli/__init__.py +0 -0
- omextra/text/antlr/cli/__main__.py +11 -0
- omextra/text/antlr/cli/cli.py +62 -0
- omextra/text/antlr/cli/consts.py +7 -0
- omextra/text/antlr/cli/gen.py +188 -0
- {omextra-0.0.0.dev423.dist-info → omextra-0.0.0.dev425.dist-info}/METADATA +2 -3
- omextra-0.0.0.dev425.dist-info/RECORD +67 -0
- omextra/.manifests.json +0 -1
- omextra-0.0.0.dev423.dist-info/RECORD +0 -9
- {omextra-0.0.0.dev423.dist-info → omextra-0.0.0.dev425.dist-info}/WHEEL +0 -0
- {omextra-0.0.0.dev423.dist-info → omextra-0.0.0.dev425.dist-info}/entry_points.txt +0 -0
- {omextra-0.0.0.dev423.dist-info → omextra-0.0.0.dev425.dist-info}/licenses/LICENSE +0 -0
- {omextra-0.0.0.dev423.dist-info → omextra-0.0.0.dev425.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
# type: ignore
|
2
|
+
# ruff: noqa
|
3
|
+
# flake8: noqa
|
4
|
+
# @omlish-generated
|
5
|
+
# Generated from Json.g4 by ANTLR 4.13.2
|
6
|
+
from omlish.text.antlr._runtime._all import *
|
7
|
+
if "." in __name__:
|
8
|
+
from .JsonParser import JsonParser
|
9
|
+
else:
|
10
|
+
from JsonParser import JsonParser
|
11
|
+
|
12
|
+
# This class defines a complete listener for a parse tree produced by JsonParser.
|
13
|
+
class JsonListener(ParseTreeListener):
|
14
|
+
|
15
|
+
# Enter a parse tree produced by JsonParser#json.
|
16
|
+
def enterJson(self, ctx:JsonParser.JsonContext):
|
17
|
+
pass
|
18
|
+
|
19
|
+
# Exit a parse tree produced by JsonParser#json.
|
20
|
+
def exitJson(self, ctx:JsonParser.JsonContext):
|
21
|
+
pass
|
22
|
+
|
23
|
+
|
24
|
+
# Enter a parse tree produced by JsonParser#obj.
|
25
|
+
def enterObj(self, ctx:JsonParser.ObjContext):
|
26
|
+
pass
|
27
|
+
|
28
|
+
# Exit a parse tree produced by JsonParser#obj.
|
29
|
+
def exitObj(self, ctx:JsonParser.ObjContext):
|
30
|
+
pass
|
31
|
+
|
32
|
+
|
33
|
+
# Enter a parse tree produced by JsonParser#pair.
|
34
|
+
def enterPair(self, ctx:JsonParser.PairContext):
|
35
|
+
pass
|
36
|
+
|
37
|
+
# Exit a parse tree produced by JsonParser#pair.
|
38
|
+
def exitPair(self, ctx:JsonParser.PairContext):
|
39
|
+
pass
|
40
|
+
|
41
|
+
|
42
|
+
# Enter a parse tree produced by JsonParser#arr.
|
43
|
+
def enterArr(self, ctx:JsonParser.ArrContext):
|
44
|
+
pass
|
45
|
+
|
46
|
+
# Exit a parse tree produced by JsonParser#arr.
|
47
|
+
def exitArr(self, ctx:JsonParser.ArrContext):
|
48
|
+
pass
|
49
|
+
|
50
|
+
|
51
|
+
# Enter a parse tree produced by JsonParser#value.
|
52
|
+
def enterValue(self, ctx:JsonParser.ValueContext):
|
53
|
+
pass
|
54
|
+
|
55
|
+
# Exit a parse tree produced by JsonParser#value.
|
56
|
+
def exitValue(self, ctx:JsonParser.ValueContext):
|
57
|
+
pass
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
del JsonParser
|
@@ -0,0 +1,457 @@
|
|
1
|
+
# type: ignore
|
2
|
+
# ruff: noqa
|
3
|
+
# flake8: noqa
|
4
|
+
# @omlish-generated
|
5
|
+
# Generated from Json.g4 by ANTLR 4.13.2
|
6
|
+
# encoding: utf-8
|
7
|
+
from omlish.text.antlr._runtime._all import *
|
8
|
+
from io import StringIO
|
9
|
+
import sys
|
10
|
+
if sys.version_info[1] > 5:
|
11
|
+
from typing import TextIO
|
12
|
+
else:
|
13
|
+
from typing.io import TextIO
|
14
|
+
|
15
|
+
def serializedATN():
|
16
|
+
return [
|
17
|
+
4,1,12,57,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,1,0,1,0,1,0,1,
|
18
|
+
1,1,1,1,1,1,1,5,1,18,8,1,10,1,12,1,21,9,1,1,1,1,1,1,1,1,1,3,1,27,
|
19
|
+
8,1,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,5,3,37,8,3,10,3,12,3,40,9,3,
|
20
|
+
1,3,1,3,1,3,1,3,3,3,46,8,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,55,8,
|
21
|
+
4,1,4,0,0,5,0,2,4,6,8,0,0,61,0,10,1,0,0,0,2,26,1,0,0,0,4,28,1,0,
|
22
|
+
0,0,6,45,1,0,0,0,8,54,1,0,0,0,10,11,3,8,4,0,11,12,5,0,0,1,12,1,1,
|
23
|
+
0,0,0,13,14,5,1,0,0,14,19,3,4,2,0,15,16,5,2,0,0,16,18,3,4,2,0,17,
|
24
|
+
15,1,0,0,0,18,21,1,0,0,0,19,17,1,0,0,0,19,20,1,0,0,0,20,22,1,0,0,
|
25
|
+
0,21,19,1,0,0,0,22,23,5,3,0,0,23,27,1,0,0,0,24,25,5,1,0,0,25,27,
|
26
|
+
5,3,0,0,26,13,1,0,0,0,26,24,1,0,0,0,27,3,1,0,0,0,28,29,5,10,0,0,
|
27
|
+
29,30,5,4,0,0,30,31,3,8,4,0,31,5,1,0,0,0,32,33,5,5,0,0,33,38,3,8,
|
28
|
+
4,0,34,35,5,2,0,0,35,37,3,8,4,0,36,34,1,0,0,0,37,40,1,0,0,0,38,36,
|
29
|
+
1,0,0,0,38,39,1,0,0,0,39,41,1,0,0,0,40,38,1,0,0,0,41,42,5,6,0,0,
|
30
|
+
42,46,1,0,0,0,43,44,5,5,0,0,44,46,5,6,0,0,45,32,1,0,0,0,45,43,1,
|
31
|
+
0,0,0,46,7,1,0,0,0,47,55,5,10,0,0,48,55,5,11,0,0,49,55,3,2,1,0,50,
|
32
|
+
55,3,6,3,0,51,55,5,7,0,0,52,55,5,8,0,0,53,55,5,9,0,0,54,47,1,0,0,
|
33
|
+
0,54,48,1,0,0,0,54,49,1,0,0,0,54,50,1,0,0,0,54,51,1,0,0,0,54,52,
|
34
|
+
1,0,0,0,54,53,1,0,0,0,55,9,1,0,0,0,5,19,26,38,45,54
|
35
|
+
]
|
36
|
+
|
37
|
+
class JsonParser ( Parser ):
|
38
|
+
|
39
|
+
grammarFileName = "Json.g4"
|
40
|
+
|
41
|
+
atn = ATNDeserializer().deserialize(serializedATN())
|
42
|
+
|
43
|
+
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
|
44
|
+
|
45
|
+
sharedContextCache = PredictionContextCache()
|
46
|
+
|
47
|
+
literalNames = [ "<INVALID>", "'{'", "','", "'}'", "':'", "'['", "']'",
|
48
|
+
"'true'", "'false'", "'null'" ]
|
49
|
+
|
50
|
+
symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
51
|
+
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
|
52
|
+
"<INVALID>", "<INVALID>", "STRING", "NUMBER", "WS" ]
|
53
|
+
|
54
|
+
RULE_json = 0
|
55
|
+
RULE_obj = 1
|
56
|
+
RULE_pair = 2
|
57
|
+
RULE_arr = 3
|
58
|
+
RULE_value = 4
|
59
|
+
|
60
|
+
ruleNames = [ "json", "obj", "pair", "arr", "value" ]
|
61
|
+
|
62
|
+
EOF = Token.EOF
|
63
|
+
T__0=1
|
64
|
+
T__1=2
|
65
|
+
T__2=3
|
66
|
+
T__3=4
|
67
|
+
T__4=5
|
68
|
+
T__5=6
|
69
|
+
T__6=7
|
70
|
+
T__7=8
|
71
|
+
T__8=9
|
72
|
+
STRING=10
|
73
|
+
NUMBER=11
|
74
|
+
WS=12
|
75
|
+
|
76
|
+
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
|
77
|
+
super().__init__(input, output)
|
78
|
+
self.checkVersion("4.13.2")
|
79
|
+
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
|
80
|
+
self._predicates = None
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
class JsonContext(ParserRuleContext):
|
86
|
+
__slots__ = 'parser'
|
87
|
+
|
88
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
89
|
+
super().__init__(parent, invokingState)
|
90
|
+
self.parser = parser
|
91
|
+
|
92
|
+
def value(self):
|
93
|
+
return self.getTypedRuleContext(JsonParser.ValueContext,0)
|
94
|
+
|
95
|
+
|
96
|
+
def EOF(self):
|
97
|
+
return self.getToken(JsonParser.EOF, 0)
|
98
|
+
|
99
|
+
def getRuleIndex(self):
|
100
|
+
return JsonParser.RULE_json
|
101
|
+
|
102
|
+
def enterRule(self, listener:ParseTreeListener):
|
103
|
+
if hasattr( listener, "enterJson" ):
|
104
|
+
listener.enterJson(self)
|
105
|
+
|
106
|
+
def exitRule(self, listener:ParseTreeListener):
|
107
|
+
if hasattr( listener, "exitJson" ):
|
108
|
+
listener.exitJson(self)
|
109
|
+
|
110
|
+
def accept(self, visitor:ParseTreeVisitor):
|
111
|
+
if hasattr( visitor, "visitJson" ):
|
112
|
+
return visitor.visitJson(self)
|
113
|
+
else:
|
114
|
+
return visitor.visitChildren(self)
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
def json(self):
|
120
|
+
|
121
|
+
localctx = JsonParser.JsonContext(self, self._ctx, self.state)
|
122
|
+
self.enterRule(localctx, 0, self.RULE_json)
|
123
|
+
try:
|
124
|
+
self.enterOuterAlt(localctx, 1)
|
125
|
+
self.state = 10
|
126
|
+
self.value()
|
127
|
+
self.state = 11
|
128
|
+
self.match(JsonParser.EOF)
|
129
|
+
except RecognitionException as re:
|
130
|
+
localctx.exception = re
|
131
|
+
self._errHandler.reportError(self, re)
|
132
|
+
self._errHandler.recover(self, re)
|
133
|
+
finally:
|
134
|
+
self.exitRule()
|
135
|
+
return localctx
|
136
|
+
|
137
|
+
|
138
|
+
class ObjContext(ParserRuleContext):
|
139
|
+
__slots__ = 'parser'
|
140
|
+
|
141
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
142
|
+
super().__init__(parent, invokingState)
|
143
|
+
self.parser = parser
|
144
|
+
|
145
|
+
def pair(self, i:int=None):
|
146
|
+
if i is None:
|
147
|
+
return self.getTypedRuleContexts(JsonParser.PairContext)
|
148
|
+
else:
|
149
|
+
return self.getTypedRuleContext(JsonParser.PairContext,i)
|
150
|
+
|
151
|
+
|
152
|
+
def getRuleIndex(self):
|
153
|
+
return JsonParser.RULE_obj
|
154
|
+
|
155
|
+
def enterRule(self, listener:ParseTreeListener):
|
156
|
+
if hasattr( listener, "enterObj" ):
|
157
|
+
listener.enterObj(self)
|
158
|
+
|
159
|
+
def exitRule(self, listener:ParseTreeListener):
|
160
|
+
if hasattr( listener, "exitObj" ):
|
161
|
+
listener.exitObj(self)
|
162
|
+
|
163
|
+
def accept(self, visitor:ParseTreeVisitor):
|
164
|
+
if hasattr( visitor, "visitObj" ):
|
165
|
+
return visitor.visitObj(self)
|
166
|
+
else:
|
167
|
+
return visitor.visitChildren(self)
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
def obj(self):
|
173
|
+
|
174
|
+
localctx = JsonParser.ObjContext(self, self._ctx, self.state)
|
175
|
+
self.enterRule(localctx, 2, self.RULE_obj)
|
176
|
+
self._la = 0 # Token type
|
177
|
+
try:
|
178
|
+
self.state = 26
|
179
|
+
self._errHandler.sync(self)
|
180
|
+
la_ = self._interp.adaptivePredict(self._input,1,self._ctx)
|
181
|
+
if la_ == 1:
|
182
|
+
self.enterOuterAlt(localctx, 1)
|
183
|
+
self.state = 13
|
184
|
+
self.match(JsonParser.T__0)
|
185
|
+
self.state = 14
|
186
|
+
self.pair()
|
187
|
+
self.state = 19
|
188
|
+
self._errHandler.sync(self)
|
189
|
+
_la = self._input.LA(1)
|
190
|
+
while _la==2:
|
191
|
+
self.state = 15
|
192
|
+
self.match(JsonParser.T__1)
|
193
|
+
self.state = 16
|
194
|
+
self.pair()
|
195
|
+
self.state = 21
|
196
|
+
self._errHandler.sync(self)
|
197
|
+
_la = self._input.LA(1)
|
198
|
+
|
199
|
+
self.state = 22
|
200
|
+
self.match(JsonParser.T__2)
|
201
|
+
pass
|
202
|
+
|
203
|
+
elif la_ == 2:
|
204
|
+
self.enterOuterAlt(localctx, 2)
|
205
|
+
self.state = 24
|
206
|
+
self.match(JsonParser.T__0)
|
207
|
+
self.state = 25
|
208
|
+
self.match(JsonParser.T__2)
|
209
|
+
pass
|
210
|
+
|
211
|
+
|
212
|
+
except RecognitionException as re:
|
213
|
+
localctx.exception = re
|
214
|
+
self._errHandler.reportError(self, re)
|
215
|
+
self._errHandler.recover(self, re)
|
216
|
+
finally:
|
217
|
+
self.exitRule()
|
218
|
+
return localctx
|
219
|
+
|
220
|
+
|
221
|
+
class PairContext(ParserRuleContext):
|
222
|
+
__slots__ = 'parser'
|
223
|
+
|
224
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
225
|
+
super().__init__(parent, invokingState)
|
226
|
+
self.parser = parser
|
227
|
+
|
228
|
+
def STRING(self):
|
229
|
+
return self.getToken(JsonParser.STRING, 0)
|
230
|
+
|
231
|
+
def value(self):
|
232
|
+
return self.getTypedRuleContext(JsonParser.ValueContext,0)
|
233
|
+
|
234
|
+
|
235
|
+
def getRuleIndex(self):
|
236
|
+
return JsonParser.RULE_pair
|
237
|
+
|
238
|
+
def enterRule(self, listener:ParseTreeListener):
|
239
|
+
if hasattr( listener, "enterPair" ):
|
240
|
+
listener.enterPair(self)
|
241
|
+
|
242
|
+
def exitRule(self, listener:ParseTreeListener):
|
243
|
+
if hasattr( listener, "exitPair" ):
|
244
|
+
listener.exitPair(self)
|
245
|
+
|
246
|
+
def accept(self, visitor:ParseTreeVisitor):
|
247
|
+
if hasattr( visitor, "visitPair" ):
|
248
|
+
return visitor.visitPair(self)
|
249
|
+
else:
|
250
|
+
return visitor.visitChildren(self)
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
def pair(self):
|
256
|
+
|
257
|
+
localctx = JsonParser.PairContext(self, self._ctx, self.state)
|
258
|
+
self.enterRule(localctx, 4, self.RULE_pair)
|
259
|
+
try:
|
260
|
+
self.enterOuterAlt(localctx, 1)
|
261
|
+
self.state = 28
|
262
|
+
self.match(JsonParser.STRING)
|
263
|
+
self.state = 29
|
264
|
+
self.match(JsonParser.T__3)
|
265
|
+
self.state = 30
|
266
|
+
self.value()
|
267
|
+
except RecognitionException as re:
|
268
|
+
localctx.exception = re
|
269
|
+
self._errHandler.reportError(self, re)
|
270
|
+
self._errHandler.recover(self, re)
|
271
|
+
finally:
|
272
|
+
self.exitRule()
|
273
|
+
return localctx
|
274
|
+
|
275
|
+
|
276
|
+
class ArrContext(ParserRuleContext):
|
277
|
+
__slots__ = 'parser'
|
278
|
+
|
279
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
280
|
+
super().__init__(parent, invokingState)
|
281
|
+
self.parser = parser
|
282
|
+
|
283
|
+
def value(self, i:int=None):
|
284
|
+
if i is None:
|
285
|
+
return self.getTypedRuleContexts(JsonParser.ValueContext)
|
286
|
+
else:
|
287
|
+
return self.getTypedRuleContext(JsonParser.ValueContext,i)
|
288
|
+
|
289
|
+
|
290
|
+
def getRuleIndex(self):
|
291
|
+
return JsonParser.RULE_arr
|
292
|
+
|
293
|
+
def enterRule(self, listener:ParseTreeListener):
|
294
|
+
if hasattr( listener, "enterArr" ):
|
295
|
+
listener.enterArr(self)
|
296
|
+
|
297
|
+
def exitRule(self, listener:ParseTreeListener):
|
298
|
+
if hasattr( listener, "exitArr" ):
|
299
|
+
listener.exitArr(self)
|
300
|
+
|
301
|
+
def accept(self, visitor:ParseTreeVisitor):
|
302
|
+
if hasattr( visitor, "visitArr" ):
|
303
|
+
return visitor.visitArr(self)
|
304
|
+
else:
|
305
|
+
return visitor.visitChildren(self)
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
def arr(self):
|
311
|
+
|
312
|
+
localctx = JsonParser.ArrContext(self, self._ctx, self.state)
|
313
|
+
self.enterRule(localctx, 6, self.RULE_arr)
|
314
|
+
self._la = 0 # Token type
|
315
|
+
try:
|
316
|
+
self.state = 45
|
317
|
+
self._errHandler.sync(self)
|
318
|
+
la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
|
319
|
+
if la_ == 1:
|
320
|
+
self.enterOuterAlt(localctx, 1)
|
321
|
+
self.state = 32
|
322
|
+
self.match(JsonParser.T__4)
|
323
|
+
self.state = 33
|
324
|
+
self.value()
|
325
|
+
self.state = 38
|
326
|
+
self._errHandler.sync(self)
|
327
|
+
_la = self._input.LA(1)
|
328
|
+
while _la==2:
|
329
|
+
self.state = 34
|
330
|
+
self.match(JsonParser.T__1)
|
331
|
+
self.state = 35
|
332
|
+
self.value()
|
333
|
+
self.state = 40
|
334
|
+
self._errHandler.sync(self)
|
335
|
+
_la = self._input.LA(1)
|
336
|
+
|
337
|
+
self.state = 41
|
338
|
+
self.match(JsonParser.T__5)
|
339
|
+
pass
|
340
|
+
|
341
|
+
elif la_ == 2:
|
342
|
+
self.enterOuterAlt(localctx, 2)
|
343
|
+
self.state = 43
|
344
|
+
self.match(JsonParser.T__4)
|
345
|
+
self.state = 44
|
346
|
+
self.match(JsonParser.T__5)
|
347
|
+
pass
|
348
|
+
|
349
|
+
|
350
|
+
except RecognitionException as re:
|
351
|
+
localctx.exception = re
|
352
|
+
self._errHandler.reportError(self, re)
|
353
|
+
self._errHandler.recover(self, re)
|
354
|
+
finally:
|
355
|
+
self.exitRule()
|
356
|
+
return localctx
|
357
|
+
|
358
|
+
|
359
|
+
class ValueContext(ParserRuleContext):
|
360
|
+
__slots__ = 'parser'
|
361
|
+
|
362
|
+
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
363
|
+
super().__init__(parent, invokingState)
|
364
|
+
self.parser = parser
|
365
|
+
|
366
|
+
def STRING(self):
|
367
|
+
return self.getToken(JsonParser.STRING, 0)
|
368
|
+
|
369
|
+
def NUMBER(self):
|
370
|
+
return self.getToken(JsonParser.NUMBER, 0)
|
371
|
+
|
372
|
+
def obj(self):
|
373
|
+
return self.getTypedRuleContext(JsonParser.ObjContext,0)
|
374
|
+
|
375
|
+
|
376
|
+
def arr(self):
|
377
|
+
return self.getTypedRuleContext(JsonParser.ArrContext,0)
|
378
|
+
|
379
|
+
|
380
|
+
def getRuleIndex(self):
|
381
|
+
return JsonParser.RULE_value
|
382
|
+
|
383
|
+
def enterRule(self, listener:ParseTreeListener):
|
384
|
+
if hasattr( listener, "enterValue" ):
|
385
|
+
listener.enterValue(self)
|
386
|
+
|
387
|
+
def exitRule(self, listener:ParseTreeListener):
|
388
|
+
if hasattr( listener, "exitValue" ):
|
389
|
+
listener.exitValue(self)
|
390
|
+
|
391
|
+
def accept(self, visitor:ParseTreeVisitor):
|
392
|
+
if hasattr( visitor, "visitValue" ):
|
393
|
+
return visitor.visitValue(self)
|
394
|
+
else:
|
395
|
+
return visitor.visitChildren(self)
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
|
400
|
+
def value(self):
|
401
|
+
|
402
|
+
localctx = JsonParser.ValueContext(self, self._ctx, self.state)
|
403
|
+
self.enterRule(localctx, 8, self.RULE_value)
|
404
|
+
try:
|
405
|
+
self.state = 54
|
406
|
+
self._errHandler.sync(self)
|
407
|
+
token = self._input.LA(1)
|
408
|
+
if token in [10]:
|
409
|
+
self.enterOuterAlt(localctx, 1)
|
410
|
+
self.state = 47
|
411
|
+
self.match(JsonParser.STRING)
|
412
|
+
pass
|
413
|
+
elif token in [11]:
|
414
|
+
self.enterOuterAlt(localctx, 2)
|
415
|
+
self.state = 48
|
416
|
+
self.match(JsonParser.NUMBER)
|
417
|
+
pass
|
418
|
+
elif token in [1]:
|
419
|
+
self.enterOuterAlt(localctx, 3)
|
420
|
+
self.state = 49
|
421
|
+
self.obj()
|
422
|
+
pass
|
423
|
+
elif token in [5]:
|
424
|
+
self.enterOuterAlt(localctx, 4)
|
425
|
+
self.state = 50
|
426
|
+
self.arr()
|
427
|
+
pass
|
428
|
+
elif token in [7]:
|
429
|
+
self.enterOuterAlt(localctx, 5)
|
430
|
+
self.state = 51
|
431
|
+
self.match(JsonParser.T__6)
|
432
|
+
pass
|
433
|
+
elif token in [8]:
|
434
|
+
self.enterOuterAlt(localctx, 6)
|
435
|
+
self.state = 52
|
436
|
+
self.match(JsonParser.T__7)
|
437
|
+
pass
|
438
|
+
elif token in [9]:
|
439
|
+
self.enterOuterAlt(localctx, 7)
|
440
|
+
self.state = 53
|
441
|
+
self.match(JsonParser.T__8)
|
442
|
+
pass
|
443
|
+
else:
|
444
|
+
raise NoViableAltException(self)
|
445
|
+
|
446
|
+
except RecognitionException as re:
|
447
|
+
localctx.exception = re
|
448
|
+
self._errHandler.reportError(self, re)
|
449
|
+
self._errHandler.recover(self, re)
|
450
|
+
finally:
|
451
|
+
self.exitRule()
|
452
|
+
return localctx
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# type: ignore
|
2
|
+
# ruff: noqa
|
3
|
+
# flake8: noqa
|
4
|
+
# @omlish-generated
|
5
|
+
# Generated from Json.g4 by ANTLR 4.13.2
|
6
|
+
from omlish.text.antlr._runtime._all import *
|
7
|
+
if "." in __name__:
|
8
|
+
from .JsonParser import JsonParser
|
9
|
+
else:
|
10
|
+
from JsonParser import JsonParser
|
11
|
+
|
12
|
+
# This class defines a complete generic visitor for a parse tree produced by JsonParser.
|
13
|
+
|
14
|
+
class JsonVisitor(ParseTreeVisitor):
|
15
|
+
|
16
|
+
# Visit a parse tree produced by JsonParser#json.
|
17
|
+
def visitJson(self, ctx:JsonParser.JsonContext):
|
18
|
+
return self.visitChildren(ctx)
|
19
|
+
|
20
|
+
|
21
|
+
# Visit a parse tree produced by JsonParser#obj.
|
22
|
+
def visitObj(self, ctx:JsonParser.ObjContext):
|
23
|
+
return self.visitChildren(ctx)
|
24
|
+
|
25
|
+
|
26
|
+
# Visit a parse tree produced by JsonParser#pair.
|
27
|
+
def visitPair(self, ctx:JsonParser.PairContext):
|
28
|
+
return self.visitChildren(ctx)
|
29
|
+
|
30
|
+
|
31
|
+
# Visit a parse tree produced by JsonParser#arr.
|
32
|
+
def visitArr(self, ctx:JsonParser.ArrContext):
|
33
|
+
return self.visitChildren(ctx)
|
34
|
+
|
35
|
+
|
36
|
+
# Visit a parse tree produced by JsonParser#value.
|
37
|
+
def visitValue(self, ctx:JsonParser.ValueContext):
|
38
|
+
return self.visitChildren(ctx)
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
del JsonParser
|
File without changes
|
omextra/io/__init__.py
ADDED
File without changes
|