omextra 0.0.0.dev436__py3-none-any.whl → 0.0.0.dev438__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 (99) hide show
  1. omextra/formats/json/_antlr/JsonLexer.py +1 -1
  2. omextra/formats/json/_antlr/JsonListener.py +1 -1
  3. omextra/formats/json/_antlr/JsonParser.py +1 -1
  4. omextra/formats/json/_antlr/JsonVisitor.py +1 -1
  5. omextra/formats/json5/Json5.g4 +168 -0
  6. omextra/formats/json5/__init__.py +0 -0
  7. omextra/formats/json5/_antlr/Json5Lexer.py +354 -0
  8. omextra/formats/json5/_antlr/Json5Listener.py +79 -0
  9. omextra/formats/json5/_antlr/Json5Parser.py +617 -0
  10. omextra/formats/json5/_antlr/Json5Visitor.py +52 -0
  11. omextra/formats/json5/_antlr/__init__.py +0 -0
  12. omextra/formats/json5/parsing.py +101 -0
  13. omextra/specs/proto/_antlr/Protobuf3Lexer.py +1 -1
  14. omextra/specs/proto/_antlr/Protobuf3Listener.py +1 -1
  15. omextra/specs/proto/_antlr/Protobuf3Parser.py +1 -1
  16. omextra/specs/proto/_antlr/Protobuf3Visitor.py +1 -1
  17. omextra/specs/proto/parsing.py +2 -2
  18. omextra/sql/parsing/_antlr/MinisqlLexer.py +1 -1
  19. omextra/sql/parsing/_antlr/MinisqlListener.py +1 -1
  20. omextra/sql/parsing/_antlr/MinisqlParser.py +1 -1
  21. omextra/sql/parsing/_antlr/MinisqlVisitor.py +1 -1
  22. omextra/sql/parsing/parsing.py +3 -3
  23. omextra/text/antlr/__init__.py +3 -0
  24. omextra/text/antlr/_runtime/BufferedTokenStream.py +305 -0
  25. omextra/text/antlr/_runtime/CommonTokenFactory.py +64 -0
  26. omextra/text/antlr/_runtime/CommonTokenStream.py +90 -0
  27. omextra/text/antlr/_runtime/FileStream.py +30 -0
  28. omextra/text/antlr/_runtime/InputStream.py +90 -0
  29. omextra/text/antlr/_runtime/IntervalSet.py +183 -0
  30. omextra/text/antlr/_runtime/LICENSE.txt +28 -0
  31. omextra/text/antlr/_runtime/LL1Analyzer.py +176 -0
  32. omextra/text/antlr/_runtime/Lexer.py +332 -0
  33. omextra/text/antlr/_runtime/ListTokenSource.py +147 -0
  34. omextra/text/antlr/_runtime/Parser.py +583 -0
  35. omextra/text/antlr/_runtime/ParserInterpreter.py +173 -0
  36. omextra/text/antlr/_runtime/ParserRuleContext.py +189 -0
  37. omextra/text/antlr/_runtime/PredictionContext.py +632 -0
  38. omextra/text/antlr/_runtime/Recognizer.py +150 -0
  39. omextra/text/antlr/_runtime/RuleContext.py +230 -0
  40. omextra/text/antlr/_runtime/StdinStream.py +14 -0
  41. omextra/text/antlr/_runtime/Token.py +158 -0
  42. omextra/text/antlr/_runtime/TokenStreamRewriter.py +258 -0
  43. omextra/text/antlr/_runtime/Utils.py +36 -0
  44. omextra/text/antlr/_runtime/__init__.py +2 -0
  45. omextra/text/antlr/_runtime/_all.py +24 -0
  46. omextra/text/antlr/_runtime/_pygrun.py +174 -0
  47. omextra/text/antlr/_runtime/atn/ATN.py +135 -0
  48. omextra/text/antlr/_runtime/atn/ATNConfig.py +162 -0
  49. omextra/text/antlr/_runtime/atn/ATNConfigSet.py +215 -0
  50. omextra/text/antlr/_runtime/atn/ATNDeserializationOptions.py +27 -0
  51. omextra/text/antlr/_runtime/atn/ATNDeserializer.py +449 -0
  52. omextra/text/antlr/_runtime/atn/ATNSimulator.py +50 -0
  53. omextra/text/antlr/_runtime/atn/ATNState.py +267 -0
  54. omextra/text/antlr/_runtime/atn/ATNType.py +20 -0
  55. omextra/text/antlr/_runtime/atn/LexerATNSimulator.py +573 -0
  56. omextra/text/antlr/_runtime/atn/LexerAction.py +301 -0
  57. omextra/text/antlr/_runtime/atn/LexerActionExecutor.py +146 -0
  58. omextra/text/antlr/_runtime/atn/ParserATNSimulator.py +1664 -0
  59. omextra/text/antlr/_runtime/atn/PredictionMode.py +502 -0
  60. omextra/text/antlr/_runtime/atn/SemanticContext.py +333 -0
  61. omextra/text/antlr/_runtime/atn/Transition.py +271 -0
  62. omextra/text/antlr/_runtime/atn/__init__.py +4 -0
  63. omextra/text/antlr/_runtime/dfa/DFA.py +136 -0
  64. omextra/text/antlr/_runtime/dfa/DFASerializer.py +76 -0
  65. omextra/text/antlr/_runtime/dfa/DFAState.py +129 -0
  66. omextra/text/antlr/_runtime/dfa/__init__.py +4 -0
  67. omextra/text/antlr/_runtime/error/DiagnosticErrorListener.py +111 -0
  68. omextra/text/antlr/_runtime/error/ErrorListener.py +75 -0
  69. omextra/text/antlr/_runtime/error/ErrorStrategy.py +712 -0
  70. omextra/text/antlr/_runtime/error/Errors.py +176 -0
  71. omextra/text/antlr/_runtime/error/__init__.py +4 -0
  72. omextra/text/antlr/_runtime/tree/Chunk.py +33 -0
  73. omextra/text/antlr/_runtime/tree/ParseTreeMatch.py +121 -0
  74. omextra/text/antlr/_runtime/tree/ParseTreePattern.py +75 -0
  75. omextra/text/antlr/_runtime/tree/ParseTreePatternMatcher.py +377 -0
  76. omextra/text/antlr/_runtime/tree/RuleTagToken.py +53 -0
  77. omextra/text/antlr/_runtime/tree/TokenTagToken.py +50 -0
  78. omextra/text/antlr/_runtime/tree/Tree.py +194 -0
  79. omextra/text/antlr/_runtime/tree/Trees.py +114 -0
  80. omextra/text/antlr/_runtime/tree/__init__.py +2 -0
  81. omextra/text/antlr/_runtime/xpath/XPath.py +278 -0
  82. omextra/text/antlr/_runtime/xpath/XPathLexer.py +98 -0
  83. omextra/text/antlr/_runtime/xpath/__init__.py +4 -0
  84. omextra/text/antlr/cli/consts.py +1 -1
  85. omextra/text/antlr/delimit.py +110 -0
  86. omextra/text/antlr/dot.py +42 -0
  87. omextra/text/antlr/errors.py +14 -0
  88. omextra/text/antlr/input.py +96 -0
  89. omextra/text/antlr/parsing.py +55 -0
  90. omextra/text/antlr/runtime.py +102 -0
  91. omextra/text/antlr/utils.py +38 -0
  92. omextra-0.0.0.dev438.dist-info/METADATA +28 -0
  93. omextra-0.0.0.dev438.dist-info/RECORD +144 -0
  94. omextra-0.0.0.dev436.dist-info/METADATA +0 -73
  95. omextra-0.0.0.dev436.dist-info/RECORD +0 -69
  96. {omextra-0.0.0.dev436.dist-info → omextra-0.0.0.dev438.dist-info}/WHEEL +0 -0
  97. {omextra-0.0.0.dev436.dist-info → omextra-0.0.0.dev438.dist-info}/entry_points.txt +0 -0
  98. {omextra-0.0.0.dev436.dist-info → omextra-0.0.0.dev438.dist-info}/licenses/LICENSE +0 -0
  99. {omextra-0.0.0.dev436.dist-info → omextra-0.0.0.dev438.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,617 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ # @omlish-generated
5
+ # Generated from Json5.g4 by ANTLR 4.13.2
6
+ # encoding: utf-8
7
+ from ....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,15,74,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,
18
+ 6,1,0,3,0,16,8,0,1,0,1,0,1,1,1,1,1,1,1,1,5,1,24,8,1,10,1,12,1,27,
19
+ 9,1,1,1,3,1,30,8,1,1,1,1,1,1,1,1,1,3,1,36,8,1,1,2,1,2,1,2,1,2,1,
20
+ 3,1,3,1,4,1,4,1,4,1,4,1,4,3,4,49,8,4,1,5,1,5,1,5,1,5,5,5,55,8,5,
21
+ 10,5,12,5,58,9,5,1,5,3,5,61,8,5,1,5,1,5,1,5,1,5,3,5,67,8,5,1,6,3,
22
+ 6,70,8,6,1,6,1,6,1,6,0,0,7,0,2,4,6,8,10,12,0,2,3,0,9,10,12,12,14,
23
+ 14,1,0,11,12,78,0,15,1,0,0,0,2,35,1,0,0,0,4,37,1,0,0,0,6,41,1,0,
24
+ 0,0,8,48,1,0,0,0,10,66,1,0,0,0,12,69,1,0,0,0,14,16,3,8,4,0,15,14,
25
+ 1,0,0,0,15,16,1,0,0,0,16,17,1,0,0,0,17,18,5,0,0,1,18,1,1,0,0,0,19,
26
+ 20,5,1,0,0,20,25,3,4,2,0,21,22,5,2,0,0,22,24,3,4,2,0,23,21,1,0,0,
27
+ 0,24,27,1,0,0,0,25,23,1,0,0,0,25,26,1,0,0,0,26,29,1,0,0,0,27,25,
28
+ 1,0,0,0,28,30,5,2,0,0,29,28,1,0,0,0,29,30,1,0,0,0,30,31,1,0,0,0,
29
+ 31,32,5,3,0,0,32,36,1,0,0,0,33,34,5,1,0,0,34,36,5,3,0,0,35,19,1,
30
+ 0,0,0,35,33,1,0,0,0,36,3,1,0,0,0,37,38,3,6,3,0,38,39,5,4,0,0,39,
31
+ 40,3,8,4,0,40,5,1,0,0,0,41,42,7,0,0,0,42,7,1,0,0,0,43,49,5,10,0,
32
+ 0,44,49,3,12,6,0,45,49,3,2,1,0,46,49,3,10,5,0,47,49,5,9,0,0,48,43,
33
+ 1,0,0,0,48,44,1,0,0,0,48,45,1,0,0,0,48,46,1,0,0,0,48,47,1,0,0,0,
34
+ 49,9,1,0,0,0,50,51,5,5,0,0,51,56,3,8,4,0,52,53,5,2,0,0,53,55,3,8,
35
+ 4,0,54,52,1,0,0,0,55,58,1,0,0,0,56,54,1,0,0,0,56,57,1,0,0,0,57,60,
36
+ 1,0,0,0,58,56,1,0,0,0,59,61,5,2,0,0,60,59,1,0,0,0,60,61,1,0,0,0,
37
+ 61,62,1,0,0,0,62,63,5,6,0,0,63,67,1,0,0,0,64,65,5,5,0,0,65,67,5,
38
+ 6,0,0,66,50,1,0,0,0,66,64,1,0,0,0,67,11,1,0,0,0,68,70,5,13,0,0,69,
39
+ 68,1,0,0,0,69,70,1,0,0,0,70,71,1,0,0,0,71,72,7,1,0,0,72,13,1,0,0,
40
+ 0,9,15,25,29,35,48,56,60,66,69
41
+ ]
42
+
43
+ class Json5Parser ( Parser ):
44
+
45
+ grammarFileName = "Json5.g4"
46
+
47
+ atn = ATNDeserializer().deserialize(serializedATN())
48
+
49
+ decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
50
+
51
+ sharedContextCache = PredictionContextCache()
52
+
53
+ literalNames = [ "<INVALID>", "'{'", "','", "'}'", "':'", "'['", "']'" ]
54
+
55
+ symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
56
+ "<INVALID>", "<INVALID>", "<INVALID>", "SINGLE_LINE_COMMENT",
57
+ "MULTI_LINE_COMMENT", "LITERAL", "STRING", "NUMBER",
58
+ "NUMERIC_LITERAL", "SYMBOL", "IDENTIFIER", "WS" ]
59
+
60
+ RULE_json5 = 0
61
+ RULE_obj = 1
62
+ RULE_pair = 2
63
+ RULE_key = 3
64
+ RULE_value = 4
65
+ RULE_arr = 5
66
+ RULE_number = 6
67
+
68
+ ruleNames = [ "json5", "obj", "pair", "key", "value", "arr", "number" ]
69
+
70
+ EOF = Token.EOF
71
+ T__0=1
72
+ T__1=2
73
+ T__2=3
74
+ T__3=4
75
+ T__4=5
76
+ T__5=6
77
+ SINGLE_LINE_COMMENT=7
78
+ MULTI_LINE_COMMENT=8
79
+ LITERAL=9
80
+ STRING=10
81
+ NUMBER=11
82
+ NUMERIC_LITERAL=12
83
+ SYMBOL=13
84
+ IDENTIFIER=14
85
+ WS=15
86
+
87
+ def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
88
+ super().__init__(input, output)
89
+ self.checkVersion("4.13.2")
90
+ self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
91
+ self._predicates = None
92
+
93
+
94
+
95
+
96
+ class Json5Context(ParserRuleContext):
97
+ __slots__ = 'parser'
98
+
99
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
100
+ super().__init__(parent, invokingState)
101
+ self.parser = parser
102
+
103
+ def EOF(self):
104
+ return self.getToken(Json5Parser.EOF, 0)
105
+
106
+ def value(self):
107
+ return self.getTypedRuleContext(Json5Parser.ValueContext,0)
108
+
109
+
110
+ def getRuleIndex(self):
111
+ return Json5Parser.RULE_json5
112
+
113
+ def enterRule(self, listener:ParseTreeListener):
114
+ if hasattr( listener, "enterJson5" ):
115
+ listener.enterJson5(self)
116
+
117
+ def exitRule(self, listener:ParseTreeListener):
118
+ if hasattr( listener, "exitJson5" ):
119
+ listener.exitJson5(self)
120
+
121
+ def accept(self, visitor:ParseTreeVisitor):
122
+ if hasattr( visitor, "visitJson5" ):
123
+ return visitor.visitJson5(self)
124
+ else:
125
+ return visitor.visitChildren(self)
126
+
127
+
128
+
129
+
130
+ def json5(self):
131
+
132
+ localctx = Json5Parser.Json5Context(self, self._ctx, self.state)
133
+ self.enterRule(localctx, 0, self.RULE_json5)
134
+ self._la = 0 # Token type
135
+ try:
136
+ self.enterOuterAlt(localctx, 1)
137
+ self.state = 15
138
+ self._errHandler.sync(self)
139
+ _la = self._input.LA(1)
140
+ if (((_la) & ~0x3f) == 0 and ((1 << _la) & 15906) != 0):
141
+ self.state = 14
142
+ self.value()
143
+
144
+
145
+ self.state = 17
146
+ self.match(Json5Parser.EOF)
147
+ except RecognitionException as re:
148
+ localctx.exception = re
149
+ self._errHandler.reportError(self, re)
150
+ self._errHandler.recover(self, re)
151
+ finally:
152
+ self.exitRule()
153
+ return localctx
154
+
155
+
156
+ class ObjContext(ParserRuleContext):
157
+ __slots__ = 'parser'
158
+
159
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
160
+ super().__init__(parent, invokingState)
161
+ self.parser = parser
162
+
163
+ def pair(self, i:int=None):
164
+ if i is None:
165
+ return self.getTypedRuleContexts(Json5Parser.PairContext)
166
+ else:
167
+ return self.getTypedRuleContext(Json5Parser.PairContext,i)
168
+
169
+
170
+ def getRuleIndex(self):
171
+ return Json5Parser.RULE_obj
172
+
173
+ def enterRule(self, listener:ParseTreeListener):
174
+ if hasattr( listener, "enterObj" ):
175
+ listener.enterObj(self)
176
+
177
+ def exitRule(self, listener:ParseTreeListener):
178
+ if hasattr( listener, "exitObj" ):
179
+ listener.exitObj(self)
180
+
181
+ def accept(self, visitor:ParseTreeVisitor):
182
+ if hasattr( visitor, "visitObj" ):
183
+ return visitor.visitObj(self)
184
+ else:
185
+ return visitor.visitChildren(self)
186
+
187
+
188
+
189
+
190
+ def obj(self):
191
+
192
+ localctx = Json5Parser.ObjContext(self, self._ctx, self.state)
193
+ self.enterRule(localctx, 2, self.RULE_obj)
194
+ self._la = 0 # Token type
195
+ try:
196
+ self.state = 35
197
+ self._errHandler.sync(self)
198
+ la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
199
+ if la_ == 1:
200
+ self.enterOuterAlt(localctx, 1)
201
+ self.state = 19
202
+ self.match(Json5Parser.T__0)
203
+ self.state = 20
204
+ self.pair()
205
+ self.state = 25
206
+ self._errHandler.sync(self)
207
+ _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
208
+ while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
209
+ if _alt==1:
210
+ self.state = 21
211
+ self.match(Json5Parser.T__1)
212
+ self.state = 22
213
+ self.pair()
214
+ self.state = 27
215
+ self._errHandler.sync(self)
216
+ _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
217
+
218
+ self.state = 29
219
+ self._errHandler.sync(self)
220
+ _la = self._input.LA(1)
221
+ if _la==2:
222
+ self.state = 28
223
+ self.match(Json5Parser.T__1)
224
+
225
+
226
+ self.state = 31
227
+ self.match(Json5Parser.T__2)
228
+ pass
229
+
230
+ elif la_ == 2:
231
+ self.enterOuterAlt(localctx, 2)
232
+ self.state = 33
233
+ self.match(Json5Parser.T__0)
234
+ self.state = 34
235
+ self.match(Json5Parser.T__2)
236
+ pass
237
+
238
+
239
+ except RecognitionException as re:
240
+ localctx.exception = re
241
+ self._errHandler.reportError(self, re)
242
+ self._errHandler.recover(self, re)
243
+ finally:
244
+ self.exitRule()
245
+ return localctx
246
+
247
+
248
+ class PairContext(ParserRuleContext):
249
+ __slots__ = 'parser'
250
+
251
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
252
+ super().__init__(parent, invokingState)
253
+ self.parser = parser
254
+
255
+ def key(self):
256
+ return self.getTypedRuleContext(Json5Parser.KeyContext,0)
257
+
258
+
259
+ def value(self):
260
+ return self.getTypedRuleContext(Json5Parser.ValueContext,0)
261
+
262
+
263
+ def getRuleIndex(self):
264
+ return Json5Parser.RULE_pair
265
+
266
+ def enterRule(self, listener:ParseTreeListener):
267
+ if hasattr( listener, "enterPair" ):
268
+ listener.enterPair(self)
269
+
270
+ def exitRule(self, listener:ParseTreeListener):
271
+ if hasattr( listener, "exitPair" ):
272
+ listener.exitPair(self)
273
+
274
+ def accept(self, visitor:ParseTreeVisitor):
275
+ if hasattr( visitor, "visitPair" ):
276
+ return visitor.visitPair(self)
277
+ else:
278
+ return visitor.visitChildren(self)
279
+
280
+
281
+
282
+
283
+ def pair(self):
284
+
285
+ localctx = Json5Parser.PairContext(self, self._ctx, self.state)
286
+ self.enterRule(localctx, 4, self.RULE_pair)
287
+ try:
288
+ self.enterOuterAlt(localctx, 1)
289
+ self.state = 37
290
+ self.key()
291
+ self.state = 38
292
+ self.match(Json5Parser.T__3)
293
+ self.state = 39
294
+ self.value()
295
+ except RecognitionException as re:
296
+ localctx.exception = re
297
+ self._errHandler.reportError(self, re)
298
+ self._errHandler.recover(self, re)
299
+ finally:
300
+ self.exitRule()
301
+ return localctx
302
+
303
+
304
+ class KeyContext(ParserRuleContext):
305
+ __slots__ = 'parser'
306
+
307
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
308
+ super().__init__(parent, invokingState)
309
+ self.parser = parser
310
+
311
+ def STRING(self):
312
+ return self.getToken(Json5Parser.STRING, 0)
313
+
314
+ def IDENTIFIER(self):
315
+ return self.getToken(Json5Parser.IDENTIFIER, 0)
316
+
317
+ def LITERAL(self):
318
+ return self.getToken(Json5Parser.LITERAL, 0)
319
+
320
+ def NUMERIC_LITERAL(self):
321
+ return self.getToken(Json5Parser.NUMERIC_LITERAL, 0)
322
+
323
+ def getRuleIndex(self):
324
+ return Json5Parser.RULE_key
325
+
326
+ def enterRule(self, listener:ParseTreeListener):
327
+ if hasattr( listener, "enterKey" ):
328
+ listener.enterKey(self)
329
+
330
+ def exitRule(self, listener:ParseTreeListener):
331
+ if hasattr( listener, "exitKey" ):
332
+ listener.exitKey(self)
333
+
334
+ def accept(self, visitor:ParseTreeVisitor):
335
+ if hasattr( visitor, "visitKey" ):
336
+ return visitor.visitKey(self)
337
+ else:
338
+ return visitor.visitChildren(self)
339
+
340
+
341
+
342
+
343
+ def key(self):
344
+
345
+ localctx = Json5Parser.KeyContext(self, self._ctx, self.state)
346
+ self.enterRule(localctx, 6, self.RULE_key)
347
+ self._la = 0 # Token type
348
+ try:
349
+ self.enterOuterAlt(localctx, 1)
350
+ self.state = 41
351
+ _la = self._input.LA(1)
352
+ if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 22016) != 0)):
353
+ self._errHandler.recoverInline(self)
354
+ else:
355
+ self._errHandler.reportMatch(self)
356
+ self.consume()
357
+ except RecognitionException as re:
358
+ localctx.exception = re
359
+ self._errHandler.reportError(self, re)
360
+ self._errHandler.recover(self, re)
361
+ finally:
362
+ self.exitRule()
363
+ return localctx
364
+
365
+
366
+ class ValueContext(ParserRuleContext):
367
+ __slots__ = 'parser'
368
+
369
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
370
+ super().__init__(parent, invokingState)
371
+ self.parser = parser
372
+
373
+ def STRING(self):
374
+ return self.getToken(Json5Parser.STRING, 0)
375
+
376
+ def number(self):
377
+ return self.getTypedRuleContext(Json5Parser.NumberContext,0)
378
+
379
+
380
+ def obj(self):
381
+ return self.getTypedRuleContext(Json5Parser.ObjContext,0)
382
+
383
+
384
+ def arr(self):
385
+ return self.getTypedRuleContext(Json5Parser.ArrContext,0)
386
+
387
+
388
+ def LITERAL(self):
389
+ return self.getToken(Json5Parser.LITERAL, 0)
390
+
391
+ def getRuleIndex(self):
392
+ return Json5Parser.RULE_value
393
+
394
+ def enterRule(self, listener:ParseTreeListener):
395
+ if hasattr( listener, "enterValue" ):
396
+ listener.enterValue(self)
397
+
398
+ def exitRule(self, listener:ParseTreeListener):
399
+ if hasattr( listener, "exitValue" ):
400
+ listener.exitValue(self)
401
+
402
+ def accept(self, visitor:ParseTreeVisitor):
403
+ if hasattr( visitor, "visitValue" ):
404
+ return visitor.visitValue(self)
405
+ else:
406
+ return visitor.visitChildren(self)
407
+
408
+
409
+
410
+
411
+ def value(self):
412
+
413
+ localctx = Json5Parser.ValueContext(self, self._ctx, self.state)
414
+ self.enterRule(localctx, 8, self.RULE_value)
415
+ try:
416
+ self.state = 48
417
+ self._errHandler.sync(self)
418
+ token = self._input.LA(1)
419
+ if token in [10]:
420
+ self.enterOuterAlt(localctx, 1)
421
+ self.state = 43
422
+ self.match(Json5Parser.STRING)
423
+ pass
424
+ elif token in [11, 12, 13]:
425
+ self.enterOuterAlt(localctx, 2)
426
+ self.state = 44
427
+ self.number()
428
+ pass
429
+ elif token in [1]:
430
+ self.enterOuterAlt(localctx, 3)
431
+ self.state = 45
432
+ self.obj()
433
+ pass
434
+ elif token in [5]:
435
+ self.enterOuterAlt(localctx, 4)
436
+ self.state = 46
437
+ self.arr()
438
+ pass
439
+ elif token in [9]:
440
+ self.enterOuterAlt(localctx, 5)
441
+ self.state = 47
442
+ self.match(Json5Parser.LITERAL)
443
+ pass
444
+ else:
445
+ raise NoViableAltException(self)
446
+
447
+ except RecognitionException as re:
448
+ localctx.exception = re
449
+ self._errHandler.reportError(self, re)
450
+ self._errHandler.recover(self, re)
451
+ finally:
452
+ self.exitRule()
453
+ return localctx
454
+
455
+
456
+ class ArrContext(ParserRuleContext):
457
+ __slots__ = 'parser'
458
+
459
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
460
+ super().__init__(parent, invokingState)
461
+ self.parser = parser
462
+
463
+ def value(self, i:int=None):
464
+ if i is None:
465
+ return self.getTypedRuleContexts(Json5Parser.ValueContext)
466
+ else:
467
+ return self.getTypedRuleContext(Json5Parser.ValueContext,i)
468
+
469
+
470
+ def getRuleIndex(self):
471
+ return Json5Parser.RULE_arr
472
+
473
+ def enterRule(self, listener:ParseTreeListener):
474
+ if hasattr( listener, "enterArr" ):
475
+ listener.enterArr(self)
476
+
477
+ def exitRule(self, listener:ParseTreeListener):
478
+ if hasattr( listener, "exitArr" ):
479
+ listener.exitArr(self)
480
+
481
+ def accept(self, visitor:ParseTreeVisitor):
482
+ if hasattr( visitor, "visitArr" ):
483
+ return visitor.visitArr(self)
484
+ else:
485
+ return visitor.visitChildren(self)
486
+
487
+
488
+
489
+
490
+ def arr(self):
491
+
492
+ localctx = Json5Parser.ArrContext(self, self._ctx, self.state)
493
+ self.enterRule(localctx, 10, self.RULE_arr)
494
+ self._la = 0 # Token type
495
+ try:
496
+ self.state = 66
497
+ self._errHandler.sync(self)
498
+ la_ = self._interp.adaptivePredict(self._input,7,self._ctx)
499
+ if la_ == 1:
500
+ self.enterOuterAlt(localctx, 1)
501
+ self.state = 50
502
+ self.match(Json5Parser.T__4)
503
+ self.state = 51
504
+ self.value()
505
+ self.state = 56
506
+ self._errHandler.sync(self)
507
+ _alt = self._interp.adaptivePredict(self._input,5,self._ctx)
508
+ while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
509
+ if _alt==1:
510
+ self.state = 52
511
+ self.match(Json5Parser.T__1)
512
+ self.state = 53
513
+ self.value()
514
+ self.state = 58
515
+ self._errHandler.sync(self)
516
+ _alt = self._interp.adaptivePredict(self._input,5,self._ctx)
517
+
518
+ self.state = 60
519
+ self._errHandler.sync(self)
520
+ _la = self._input.LA(1)
521
+ if _la==2:
522
+ self.state = 59
523
+ self.match(Json5Parser.T__1)
524
+
525
+
526
+ self.state = 62
527
+ self.match(Json5Parser.T__5)
528
+ pass
529
+
530
+ elif la_ == 2:
531
+ self.enterOuterAlt(localctx, 2)
532
+ self.state = 64
533
+ self.match(Json5Parser.T__4)
534
+ self.state = 65
535
+ self.match(Json5Parser.T__5)
536
+ pass
537
+
538
+
539
+ except RecognitionException as re:
540
+ localctx.exception = re
541
+ self._errHandler.reportError(self, re)
542
+ self._errHandler.recover(self, re)
543
+ finally:
544
+ self.exitRule()
545
+ return localctx
546
+
547
+
548
+ class NumberContext(ParserRuleContext):
549
+ __slots__ = 'parser'
550
+
551
+ def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
552
+ super().__init__(parent, invokingState)
553
+ self.parser = parser
554
+
555
+ def NUMERIC_LITERAL(self):
556
+ return self.getToken(Json5Parser.NUMERIC_LITERAL, 0)
557
+
558
+ def NUMBER(self):
559
+ return self.getToken(Json5Parser.NUMBER, 0)
560
+
561
+ def SYMBOL(self):
562
+ return self.getToken(Json5Parser.SYMBOL, 0)
563
+
564
+ def getRuleIndex(self):
565
+ return Json5Parser.RULE_number
566
+
567
+ def enterRule(self, listener:ParseTreeListener):
568
+ if hasattr( listener, "enterNumber" ):
569
+ listener.enterNumber(self)
570
+
571
+ def exitRule(self, listener:ParseTreeListener):
572
+ if hasattr( listener, "exitNumber" ):
573
+ listener.exitNumber(self)
574
+
575
+ def accept(self, visitor:ParseTreeVisitor):
576
+ if hasattr( visitor, "visitNumber" ):
577
+ return visitor.visitNumber(self)
578
+ else:
579
+ return visitor.visitChildren(self)
580
+
581
+
582
+
583
+
584
+ def number(self):
585
+
586
+ localctx = Json5Parser.NumberContext(self, self._ctx, self.state)
587
+ self.enterRule(localctx, 12, self.RULE_number)
588
+ self._la = 0 # Token type
589
+ try:
590
+ self.enterOuterAlt(localctx, 1)
591
+ self.state = 69
592
+ self._errHandler.sync(self)
593
+ _la = self._input.LA(1)
594
+ if _la==13:
595
+ self.state = 68
596
+ self.match(Json5Parser.SYMBOL)
597
+
598
+
599
+ self.state = 71
600
+ _la = self._input.LA(1)
601
+ if not(_la==11 or _la==12):
602
+ self._errHandler.recoverInline(self)
603
+ else:
604
+ self._errHandler.reportMatch(self)
605
+ self.consume()
606
+ except RecognitionException as re:
607
+ localctx.exception = re
608
+ self._errHandler.reportError(self, re)
609
+ self._errHandler.recover(self, re)
610
+ finally:
611
+ self.exitRule()
612
+ return localctx
613
+
614
+
615
+
616
+
617
+
@@ -0,0 +1,52 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ # @omlish-generated
5
+ # Generated from Json5.g4 by ANTLR 4.13.2
6
+ from ....text.antlr._runtime._all import *
7
+ if "." in __name__:
8
+ from .Json5Parser import Json5Parser
9
+ else:
10
+ from Json5Parser import Json5Parser
11
+
12
+ # This class defines a complete generic visitor for a parse tree produced by Json5Parser.
13
+
14
+ class Json5Visitor(ParseTreeVisitor):
15
+
16
+ # Visit a parse tree produced by Json5Parser#json5.
17
+ def visitJson5(self, ctx:Json5Parser.Json5Context):
18
+ return self.visitChildren(ctx)
19
+
20
+
21
+ # Visit a parse tree produced by Json5Parser#obj.
22
+ def visitObj(self, ctx:Json5Parser.ObjContext):
23
+ return self.visitChildren(ctx)
24
+
25
+
26
+ # Visit a parse tree produced by Json5Parser#pair.
27
+ def visitPair(self, ctx:Json5Parser.PairContext):
28
+ return self.visitChildren(ctx)
29
+
30
+
31
+ # Visit a parse tree produced by Json5Parser#key.
32
+ def visitKey(self, ctx:Json5Parser.KeyContext):
33
+ return self.visitChildren(ctx)
34
+
35
+
36
+ # Visit a parse tree produced by Json5Parser#value.
37
+ def visitValue(self, ctx:Json5Parser.ValueContext):
38
+ return self.visitChildren(ctx)
39
+
40
+
41
+ # Visit a parse tree produced by Json5Parser#arr.
42
+ def visitArr(self, ctx:Json5Parser.ArrContext):
43
+ return self.visitChildren(ctx)
44
+
45
+
46
+ # Visit a parse tree produced by Json5Parser#number.
47
+ def visitNumber(self, ctx:Json5Parser.NumberContext):
48
+ return self.visitChildren(ctx)
49
+
50
+
51
+
52
+ del Json5Parser
File without changes