omextra 0.0.0.dev424__py3-none-any.whl → 0.0.0.dev426__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.
Files changed (68) hide show
  1. omextra/.omlish-manifests.json +14 -0
  2. omextra/__about__.py +3 -1
  3. omextra/defs.py +216 -0
  4. omextra/dynamic.py +219 -0
  5. omextra/formats/__init__.py +0 -0
  6. omextra/formats/json/Json.g4 +77 -0
  7. omextra/formats/json/__init__.py +0 -0
  8. omextra/formats/json/_antlr/JsonLexer.py +109 -0
  9. omextra/formats/json/_antlr/JsonListener.py +61 -0
  10. omextra/formats/json/_antlr/JsonParser.py +457 -0
  11. omextra/formats/json/_antlr/JsonVisitor.py +42 -0
  12. omextra/formats/json/_antlr/__init__.py +0 -0
  13. omextra/io/__init__.py +0 -0
  14. omextra/io/trampoline.py +289 -0
  15. omextra/specs/__init__.py +0 -0
  16. omextra/specs/irc/__init__.py +0 -0
  17. omextra/specs/irc/messages/__init__.py +0 -0
  18. omextra/specs/irc/messages/base.py +50 -0
  19. omextra/specs/irc/messages/formats.py +92 -0
  20. omextra/specs/irc/messages/messages.py +775 -0
  21. omextra/specs/irc/messages/parsing.py +99 -0
  22. omextra/specs/irc/numerics/__init__.py +0 -0
  23. omextra/specs/irc/numerics/formats.py +97 -0
  24. omextra/specs/irc/numerics/numerics.py +865 -0
  25. omextra/specs/irc/numerics/types.py +59 -0
  26. omextra/specs/irc/protocol/LICENSE +11 -0
  27. omextra/specs/irc/protocol/__init__.py +61 -0
  28. omextra/specs/irc/protocol/consts.py +6 -0
  29. omextra/specs/irc/protocol/errors.py +30 -0
  30. omextra/specs/irc/protocol/message.py +21 -0
  31. omextra/specs/irc/protocol/nuh.py +55 -0
  32. omextra/specs/irc/protocol/parsing.py +158 -0
  33. omextra/specs/irc/protocol/rendering.py +153 -0
  34. omextra/specs/irc/protocol/tags.py +102 -0
  35. omextra/specs/irc/protocol/utils.py +30 -0
  36. omextra/specs/proto/Protobuf3.g4 +396 -0
  37. omextra/specs/proto/__init__.py +0 -0
  38. omextra/specs/proto/_antlr/Protobuf3Lexer.py +340 -0
  39. omextra/specs/proto/_antlr/Protobuf3Listener.py +448 -0
  40. omextra/specs/proto/_antlr/Protobuf3Parser.py +3909 -0
  41. omextra/specs/proto/_antlr/Protobuf3Visitor.py +257 -0
  42. omextra/specs/proto/_antlr/__init__.py +0 -0
  43. omextra/specs/proto/nodes.py +54 -0
  44. omextra/specs/proto/parsing.py +98 -0
  45. omextra/sql/__init__.py +0 -0
  46. omextra/sql/parsing/Minisql.g4 +292 -0
  47. omextra/sql/parsing/__init__.py +0 -0
  48. omextra/sql/parsing/_antlr/MinisqlLexer.py +322 -0
  49. omextra/sql/parsing/_antlr/MinisqlListener.py +511 -0
  50. omextra/sql/parsing/_antlr/MinisqlParser.py +3763 -0
  51. omextra/sql/parsing/_antlr/MinisqlVisitor.py +292 -0
  52. omextra/sql/parsing/_antlr/__init__.py +0 -0
  53. omextra/sql/parsing/parsing.py +120 -0
  54. omextra/text/__init__.py +0 -0
  55. omextra/text/antlr/__init__.py +0 -0
  56. omextra/text/antlr/cli/__init__.py +0 -0
  57. omextra/text/antlr/cli/__main__.py +11 -0
  58. omextra/text/antlr/cli/cli.py +62 -0
  59. omextra/text/antlr/cli/consts.py +7 -0
  60. omextra/text/antlr/cli/gen.py +193 -0
  61. {omextra-0.0.0.dev424.dist-info → omextra-0.0.0.dev426.dist-info}/METADATA +2 -3
  62. omextra-0.0.0.dev426.dist-info/RECORD +67 -0
  63. omextra/.manifests.json +0 -1
  64. omextra-0.0.0.dev424.dist-info/RECORD +0 -9
  65. {omextra-0.0.0.dev424.dist-info → omextra-0.0.0.dev426.dist-info}/WHEEL +0 -0
  66. {omextra-0.0.0.dev424.dist-info → omextra-0.0.0.dev426.dist-info}/entry_points.txt +0 -0
  67. {omextra-0.0.0.dev424.dist-info → omextra-0.0.0.dev426.dist-info}/licenses/LICENSE +0 -0
  68. {omextra-0.0.0.dev424.dist-info → omextra-0.0.0.dev426.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