omlish 0.0.0.dev423__py3-none-any.whl → 0.0.0.dev484__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.

Potentially problematic release.


This version of omlish might be problematic. Click here for more details.

Files changed (464) hide show
  1. omlish/{.manifests.json → .omlish-manifests.json} +12 -0
  2. omlish/__about__.py +21 -18
  3. omlish/argparse/all.py +17 -9
  4. omlish/argparse/cli.py +16 -3
  5. omlish/argparse/utils.py +21 -0
  6. omlish/asyncs/all.py +0 -13
  7. omlish/asyncs/asyncio/rlock.py +110 -0
  8. omlish/asyncs/asyncio/subprocesses.py +2 -2
  9. omlish/asyncs/asyncio/sync.py +43 -0
  10. omlish/asyncs/asyncio/utils.py +2 -0
  11. omlish/asyncs/ioproxy/proxy.py +1 -1
  12. omlish/asyncs/sync.py +25 -0
  13. omlish/bootstrap/_marshal.py +1 -1
  14. omlish/bootstrap/diag.py +12 -21
  15. omlish/bootstrap/main.py +2 -5
  16. omlish/bootstrap/sys.py +27 -28
  17. omlish/c3.py +4 -1
  18. omlish/cexts/include/omlish/omlish.hh +1 -0
  19. omlish/collections/__init__.py +13 -1
  20. omlish/collections/attrregistry.py +210 -0
  21. omlish/collections/cache/impl.py +3 -2
  22. omlish/collections/identity.py +1 -0
  23. omlish/collections/mappings.py +28 -0
  24. omlish/collections/trie.py +5 -1
  25. omlish/collections/utils.py +77 -0
  26. omlish/concurrent/__init__.py +0 -11
  27. omlish/concurrent/all.py +18 -0
  28. omlish/concurrent/futures.py +25 -0
  29. omlish/concurrent/threadlets.py +1 -1
  30. omlish/configs/processing/flattening.py +1 -1
  31. omlish/configs/processing/merging.py +8 -6
  32. omlish/configs/types.py +1 -1
  33. omlish/daemons/__init__.py +70 -0
  34. omlish/daemons/daemon.py +2 -2
  35. omlish/daemons/launching.py +2 -2
  36. omlish/daemons/reparent.py +2 -3
  37. omlish/daemons/spawning.py +2 -3
  38. omlish/dataclasses/__init__.py +5 -5
  39. omlish/dataclasses/errors.py +1 -1
  40. omlish/dataclasses/impl/api/classes/decorator.py +3 -0
  41. omlish/dataclasses/impl/api/classes/make.py +4 -1
  42. omlish/dataclasses/impl/concerns/doc.py +1 -1
  43. omlish/dataclasses/impl/concerns/repr.py +15 -2
  44. omlish/dataclasses/impl/configs.py +97 -36
  45. omlish/dataclasses/impl/generation/compilation.py +21 -19
  46. omlish/dataclasses/impl/generation/globals.py +1 -0
  47. omlish/dataclasses/impl/generation/ops.py +1 -0
  48. omlish/dataclasses/impl/generation/processor.py +105 -24
  49. omlish/dataclasses/impl/processing/base.py +8 -0
  50. omlish/dataclasses/impl/processing/driving.py +8 -8
  51. omlish/dataclasses/specs.py +34 -2
  52. omlish/dataclasses/tools/as_.py +0 -12
  53. omlish/dataclasses/tools/modifiers.py +5 -0
  54. omlish/dataclasses/tools/static.py +1 -1
  55. omlish/diag/_pycharm/runhack.py +1 -1
  56. omlish/diag/{lslocks.py → cmds/lslocks.py} +6 -6
  57. omlish/diag/{lsof.py → cmds/lsof.py} +6 -6
  58. omlish/diag/{ps.py → cmds/ps.py} +6 -6
  59. omlish/diag/procfs.py +4 -4
  60. omlish/diag/pycharm.py +16 -2
  61. omlish/diag/pydevd.py +58 -40
  62. omlish/diag/replserver/console.py +3 -3
  63. omlish/diag/replserver/server.py +2 -2
  64. omlish/dispatch/__init__.py +18 -12
  65. omlish/dispatch/methods.py +50 -140
  66. omlish/dom/rendering.py +1 -1
  67. omlish/formats/dotenv.py +8 -8
  68. omlish/formats/json/stream/__init__.py +18 -3
  69. omlish/formats/json/stream/building.py +2 -2
  70. omlish/formats/json/stream/lexing.py +401 -67
  71. omlish/formats/json/stream/parsing.py +32 -10
  72. omlish/formats/json/stream/rendering.py +6 -6
  73. omlish/formats/json/stream/utils.py +132 -30
  74. omlish/formats/json5/literals.py +7 -4
  75. omlish/formats/json5/parsing.py +33 -79
  76. omlish/formats/json5/stream.py +77 -0
  77. omlish/formats/logfmt.py +8 -2
  78. omlish/funcs/genmachine.py +2 -2
  79. omlish/funcs/guard.py +225 -0
  80. omlish/graphs/dot/rendering.py +1 -1
  81. omlish/http/all.py +122 -53
  82. omlish/http/asgi.py +2 -2
  83. omlish/http/clients/__init__.py +0 -34
  84. omlish/http/clients/asyncs.py +153 -0
  85. omlish/http/clients/base.py +63 -122
  86. omlish/http/clients/coro/sync.py +171 -0
  87. omlish/http/clients/default.py +209 -30
  88. omlish/http/clients/executor.py +56 -0
  89. omlish/http/clients/httpx.py +78 -13
  90. omlish/http/clients/middleware.py +181 -0
  91. omlish/http/clients/sync.py +151 -0
  92. omlish/http/clients/syncasync.py +49 -0
  93. omlish/http/clients/urllib.py +8 -5
  94. omlish/http/coro/client/{client.py → connection.py} +43 -37
  95. omlish/http/coro/client/headers.py +5 -5
  96. omlish/http/coro/client/response.py +37 -38
  97. omlish/http/coro/client/status.py +4 -4
  98. omlish/http/coro/{client/io.py → io.py} +19 -2
  99. omlish/http/coro/server/fdio.py +10 -9
  100. omlish/http/coro/server/server.py +14 -41
  101. omlish/http/coro/server/sockets.py +7 -6
  102. omlish/http/flasky/__init__.py +40 -0
  103. omlish/http/flasky/_compat.py +2 -0
  104. omlish/http/flasky/api.py +82 -0
  105. omlish/http/flasky/app.py +203 -0
  106. omlish/http/flasky/cvs.py +59 -0
  107. omlish/http/flasky/requests.py +20 -0
  108. omlish/http/flasky/responses.py +23 -0
  109. omlish/http/flasky/routes.py +23 -0
  110. omlish/http/flasky/types.py +15 -0
  111. omlish/http/handlers.py +3 -2
  112. omlish/http/headers.py +69 -35
  113. omlish/http/sse.py +1 -1
  114. omlish/http/urls.py +67 -0
  115. omlish/inject/__init__.py +173 -126
  116. omlish/inject/_dataclasses.py +4986 -0
  117. omlish/inject/binder.py +10 -49
  118. omlish/inject/elements.py +27 -0
  119. omlish/inject/{utils.py → helpers/constfn.py} +3 -3
  120. omlish/inject/{tags.py → helpers/id.py} +2 -2
  121. omlish/inject/helpers/multis.py +143 -0
  122. omlish/inject/helpers/wrappers.py +54 -0
  123. omlish/inject/impl/elements.py +52 -22
  124. omlish/inject/impl/injector.py +76 -49
  125. omlish/inject/impl/inspect.py +11 -1
  126. omlish/inject/impl/maysync.py +43 -0
  127. omlish/inject/impl/multis.py +10 -7
  128. omlish/inject/impl/privates.py +8 -8
  129. omlish/inject/impl/providers.py +23 -34
  130. omlish/inject/impl/providersmap.py +43 -0
  131. omlish/inject/impl/proxy.py +0 -2
  132. omlish/inject/impl/scopes.py +19 -23
  133. omlish/inject/impl/sync.py +41 -0
  134. omlish/inject/injector.py +37 -8
  135. omlish/inject/inspect.py +35 -0
  136. omlish/inject/listeners.py +4 -4
  137. omlish/inject/managed.py +54 -18
  138. omlish/inject/maysync.py +27 -0
  139. omlish/inject/multis.py +8 -0
  140. omlish/inject/overrides.py +3 -3
  141. omlish/inject/privates.py +6 -0
  142. omlish/inject/providers.py +8 -1
  143. omlish/inject/scopes.py +40 -12
  144. omlish/inject/sync.py +49 -0
  145. omlish/io/buffers.py +119 -1
  146. omlish/io/readers.py +29 -0
  147. omlish/iterators/__init__.py +28 -20
  148. omlish/iterators/transforms.py +204 -0
  149. omlish/lang/__init__.py +240 -129
  150. omlish/lang/_asyncs.cc +186 -0
  151. omlish/lang/asyncs.py +67 -43
  152. omlish/lang/{attrs.py → attrstorage.py} +15 -15
  153. omlish/lang/cached/property.py +2 -2
  154. omlish/lang/casing.py +11 -0
  155. omlish/lang/classes/bindable.py +2 -3
  156. omlish/lang/classes/restrict.py +8 -0
  157. omlish/lang/classes/simple.py +26 -4
  158. omlish/lang/collections.py +1 -1
  159. omlish/lang/contextmanagers.py +59 -9
  160. omlish/lang/functions.py +31 -33
  161. omlish/lang/imports/_capture.cc +103 -0
  162. omlish/lang/imports/capture.py +902 -0
  163. omlish/lang/imports/lazy.py +0 -25
  164. omlish/lang/imports/proxy.py +559 -0
  165. omlish/lang/iterables.py +2 -2
  166. omlish/lang/lazyglobals.py +49 -14
  167. omlish/lang/maybes.py +2 -1
  168. omlish/lang/maysync.py +2 -2
  169. omlish/lang/params.py +17 -0
  170. omlish/lang/recursion.py +0 -1
  171. omlish/lang/resources.py +1 -1
  172. omlish/lang/sequences.py +124 -0
  173. omlish/lifecycles/contextmanagers.py +1 -2
  174. omlish/lifecycles/controller.py +1 -2
  175. omlish/lite/abstract.py +54 -24
  176. omlish/lite/asyncs.py +146 -0
  177. omlish/lite/attrops.py +415 -0
  178. omlish/lite/cached.py +57 -1
  179. omlish/lite/contextmanagers.py +4 -4
  180. omlish/lite/dataclasses.py +55 -0
  181. omlish/lite/inject.py +5 -4
  182. omlish/lite/marshal.py +1 -0
  183. omlish/lite/maybes.py +10 -2
  184. omlish/lite/maysync.py +22 -5
  185. omlish/lite/pycharm.py +1 -1
  186. omlish/lite/strings.py +0 -7
  187. omlish/lite/timing.py +6 -3
  188. omlish/lite/typing.py +6 -0
  189. omlish/logs/_amalg.py +8 -0
  190. omlish/logs/all.py +59 -31
  191. omlish/logs/base.py +204 -0
  192. omlish/logs/contexts.py +171 -0
  193. omlish/logs/formatters.py +13 -0
  194. omlish/logs/infos.py +377 -0
  195. omlish/logs/levels.py +97 -0
  196. omlish/logs/modules.py +13 -0
  197. omlish/logs/protocols.py +32 -0
  198. omlish/logs/standard.py +20 -15
  199. omlish/logs/std/configs.py +29 -0
  200. omlish/logs/{filters.py → std/filters.py} +1 -1
  201. omlish/logs/std/formatters.py +25 -0
  202. omlish/logs/std/handlers.py +19 -0
  203. omlish/logs/{json.py → std/json.py} +2 -2
  204. omlish/logs/std/loggers.py +48 -0
  205. omlish/logs/{proxy.py → std/proxy.py} +3 -3
  206. omlish/logs/std/records.py +671 -0
  207. omlish/logs/typed/bindings.py +108 -37
  208. omlish/logs/typed/types.py +17 -1
  209. omlish/logs/typed/values.py +2 -2
  210. omlish/logs/utils.py +60 -4
  211. omlish/logs/warnings.py +8 -0
  212. omlish/manifests/loading.py +8 -1
  213. omlish/marshal/__init__.py +54 -22
  214. omlish/marshal/_dataclasses.py +2774 -0
  215. omlish/marshal/base/configs.py +12 -0
  216. omlish/marshal/base/contexts.py +36 -21
  217. omlish/marshal/base/funcs.py +8 -11
  218. omlish/marshal/base/options.py +8 -0
  219. omlish/marshal/base/registries.py +146 -44
  220. omlish/marshal/base/types.py +40 -16
  221. omlish/marshal/composite/iterables.py +33 -20
  222. omlish/marshal/composite/literals.py +20 -18
  223. omlish/marshal/composite/mappings.py +36 -23
  224. omlish/marshal/composite/maybes.py +29 -19
  225. omlish/marshal/composite/newtypes.py +16 -16
  226. omlish/marshal/composite/optionals.py +14 -14
  227. omlish/marshal/composite/special.py +15 -15
  228. omlish/marshal/composite/unions/literals.py +93 -0
  229. omlish/marshal/composite/unions/primitives.py +103 -0
  230. omlish/marshal/factories/invalidate.py +18 -68
  231. omlish/marshal/factories/method.py +26 -0
  232. omlish/marshal/factories/moduleimport/factories.py +22 -65
  233. omlish/marshal/factories/multi.py +13 -25
  234. omlish/marshal/factories/recursive.py +42 -56
  235. omlish/marshal/factories/typecache.py +29 -74
  236. omlish/marshal/factories/typemap.py +42 -43
  237. omlish/marshal/objects/dataclasses.py +129 -106
  238. omlish/marshal/objects/marshal.py +18 -14
  239. omlish/marshal/objects/namedtuples.py +48 -42
  240. omlish/marshal/objects/unmarshal.py +19 -15
  241. omlish/marshal/polymorphism/marshal.py +9 -11
  242. omlish/marshal/polymorphism/metadata.py +16 -5
  243. omlish/marshal/polymorphism/standard.py +13 -1
  244. omlish/marshal/polymorphism/unions.py +15 -105
  245. omlish/marshal/polymorphism/unmarshal.py +9 -10
  246. omlish/marshal/singular/enums.py +14 -18
  247. omlish/marshal/standard.py +10 -6
  248. omlish/marshal/trivial/any.py +1 -1
  249. omlish/marshal/trivial/forbidden.py +21 -26
  250. omlish/math/fixed.py +2 -2
  251. omlish/metadata.py +23 -1
  252. omlish/os/atomics.py +2 -2
  253. omlish/os/forkhooks.py +4 -0
  254. omlish/os/journald.py +3 -3
  255. omlish/os/pidfiles/pinning.py +2 -2
  256. omlish/reflect/ops.py +9 -0
  257. omlish/reflect/types.py +44 -8
  258. omlish/secrets/marshal.py +1 -1
  259. omlish/secrets/secrets.py +6 -3
  260. omlish/sockets/addresses.py +1 -1
  261. omlish/sockets/server/handlers.py +2 -2
  262. omlish/sockets/server/server.py +4 -3
  263. omlish/sockets/server/ssl.py +2 -2
  264. omlish/specs/jmespath/__init__.py +12 -3
  265. omlish/specs/jmespath/_dataclasses.py +2893 -0
  266. omlish/specs/jmespath/ast.py +1 -1
  267. omlish/specs/jsonrpc/__init__.py +13 -0
  268. omlish/specs/jsonrpc/_marshal.py +32 -23
  269. omlish/specs/jsonrpc/conns.py +10 -7
  270. omlish/specs/jsonschema/_marshal.py +1 -1
  271. omlish/specs/jsonschema/keywords/__init__.py +7 -0
  272. omlish/specs/jsonschema/keywords/_dataclasses.py +1644 -0
  273. omlish/specs/openapi/_marshal.py +31 -22
  274. omlish/sql/__init__.py +15 -20
  275. omlish/sql/{tabledefs/alchemy.py → alchemy/tabledefs.py} +2 -2
  276. omlish/sql/queries/_marshal.py +3 -3
  277. omlish/sql/queries/params.py +1 -1
  278. omlish/sql/queries/rendering.py +1 -1
  279. omlish/sql/tabledefs/_marshal.py +1 -1
  280. omlish/subprocesses/all.py +135 -0
  281. omlish/subprocesses/base.py +8 -3
  282. omlish/subprocesses/editor.py +1 -1
  283. omlish/sync.py +181 -20
  284. omlish/term/alt.py +60 -0
  285. omlish/term/confirm.py +8 -8
  286. omlish/term/pager.py +235 -0
  287. omlish/term/terminfo.py +935 -0
  288. omlish/term/termstate.py +67 -0
  289. omlish/term/vt100/terminal.py +0 -3
  290. omlish/testing/pytest/plugins/asyncs/fixtures.py +4 -1
  291. omlish/testing/pytest/plugins/skips.py +2 -5
  292. omlish/testing/unittest/main.py +3 -3
  293. omlish/text/docwrap/__init__.py +3 -0
  294. omlish/text/docwrap/__main__.py +11 -0
  295. omlish/text/docwrap/api.py +83 -0
  296. omlish/text/docwrap/cli.py +86 -0
  297. omlish/text/docwrap/groups.py +84 -0
  298. omlish/text/docwrap/lists.py +167 -0
  299. omlish/text/docwrap/parts.py +146 -0
  300. omlish/text/docwrap/reflowing.py +106 -0
  301. omlish/text/docwrap/rendering.py +151 -0
  302. omlish/text/docwrap/utils.py +11 -0
  303. omlish/text/docwrap/wrapping.py +59 -0
  304. omlish/text/filecache.py +2 -2
  305. omlish/text/lorem.py +6 -0
  306. omlish/text/parts.py +2 -2
  307. omlish/text/textwrap.py +51 -0
  308. omlish/typedvalues/__init__.py +1 -1
  309. omlish/typedvalues/marshal.py +85 -59
  310. omlish/typedvalues/values.py +2 -1
  311. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/METADATA +36 -38
  312. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/RECORD +323 -385
  313. omlish/asyncs/bluelet/LICENSE +0 -6
  314. omlish/asyncs/bluelet/all.py +0 -67
  315. omlish/asyncs/bluelet/api.py +0 -23
  316. omlish/asyncs/bluelet/core.py +0 -178
  317. omlish/asyncs/bluelet/events.py +0 -79
  318. omlish/asyncs/bluelet/files.py +0 -80
  319. omlish/asyncs/bluelet/runner.py +0 -417
  320. omlish/asyncs/bluelet/sockets.py +0 -216
  321. omlish/asyncs/bridge.py +0 -359
  322. omlish/asyncs/utils.py +0 -18
  323. omlish/dataclasses/impl/generation/mangling.py +0 -18
  324. omlish/defs.py +0 -216
  325. omlish/dispatch/_dispatch2.py +0 -69
  326. omlish/dispatch/_dispatch3.py +0 -108
  327. omlish/dynamic.py +0 -219
  328. omlish/formats/json/Json.g4 +0 -77
  329. omlish/formats/json/_antlr/JsonLexer.py +0 -109
  330. omlish/formats/json/_antlr/JsonListener.py +0 -61
  331. omlish/formats/json/_antlr/JsonParser.py +0 -457
  332. omlish/formats/json/_antlr/JsonVisitor.py +0 -42
  333. omlish/formats/json5/Json5.g4 +0 -168
  334. omlish/formats/json5/_antlr/Json5Lexer.py +0 -354
  335. omlish/formats/json5/_antlr/Json5Listener.py +0 -79
  336. omlish/formats/json5/_antlr/Json5Parser.py +0 -617
  337. omlish/formats/json5/_antlr/Json5Visitor.py +0 -52
  338. omlish/funcs/match.py +0 -227
  339. omlish/io/trampoline.py +0 -289
  340. omlish/lang/imports/proxyinit.py +0 -665
  341. omlish/lite/logs.py +0 -4
  342. omlish/lite/reprs.py +0 -85
  343. omlish/logs/abc.py +0 -319
  344. omlish/logs/callers.py +0 -67
  345. omlish/logs/color.py +0 -27
  346. omlish/logs/configs.py +0 -29
  347. omlish/logs/handlers.py +0 -17
  348. omlish/logs/protocol.py +0 -218
  349. omlish/logs/timing.py +0 -58
  350. omlish/marshal/factories/match.py +0 -34
  351. omlish/marshal/factories/simple.py +0 -28
  352. omlish/specs/irc/messages/base.py +0 -49
  353. omlish/specs/irc/messages/formats.py +0 -92
  354. omlish/specs/irc/messages/messages.py +0 -774
  355. omlish/specs/irc/messages/parsing.py +0 -98
  356. omlish/specs/irc/numerics/formats.py +0 -97
  357. omlish/specs/irc/numerics/numerics.py +0 -865
  358. omlish/specs/irc/numerics/types.py +0 -59
  359. omlish/specs/irc/protocol/LICENSE +0 -11
  360. omlish/specs/irc/protocol/__init__.py +0 -61
  361. omlish/specs/irc/protocol/consts.py +0 -6
  362. omlish/specs/irc/protocol/errors.py +0 -30
  363. omlish/specs/irc/protocol/message.py +0 -21
  364. omlish/specs/irc/protocol/nuh.py +0 -55
  365. omlish/specs/irc/protocol/parsing.py +0 -158
  366. omlish/specs/irc/protocol/rendering.py +0 -153
  367. omlish/specs/irc/protocol/tags.py +0 -102
  368. omlish/specs/irc/protocol/utils.py +0 -30
  369. omlish/specs/proto/Protobuf3.g4 +0 -396
  370. omlish/specs/proto/__init__.py +0 -0
  371. omlish/specs/proto/_antlr/Protobuf3Lexer.py +0 -340
  372. omlish/specs/proto/_antlr/Protobuf3Listener.py +0 -448
  373. omlish/specs/proto/_antlr/Protobuf3Parser.py +0 -3909
  374. omlish/specs/proto/_antlr/Protobuf3Visitor.py +0 -257
  375. omlish/specs/proto/_antlr/__init__.py +0 -0
  376. omlish/specs/proto/nodes.py +0 -54
  377. omlish/specs/proto/parsing.py +0 -97
  378. omlish/sql/parsing/Minisql.g4 +0 -292
  379. omlish/sql/parsing/__init__.py +0 -0
  380. omlish/sql/parsing/_antlr/MinisqlLexer.py +0 -322
  381. omlish/sql/parsing/_antlr/MinisqlListener.py +0 -511
  382. omlish/sql/parsing/_antlr/MinisqlParser.py +0 -3763
  383. omlish/sql/parsing/_antlr/MinisqlVisitor.py +0 -292
  384. omlish/sql/parsing/_antlr/__init__.py +0 -0
  385. omlish/sql/parsing/parsing.py +0 -119
  386. omlish/text/antlr/__init__.py +0 -3
  387. omlish/text/antlr/_runtime/BufferedTokenStream.py +0 -305
  388. omlish/text/antlr/_runtime/CommonTokenFactory.py +0 -64
  389. omlish/text/antlr/_runtime/CommonTokenStream.py +0 -90
  390. omlish/text/antlr/_runtime/FileStream.py +0 -30
  391. omlish/text/antlr/_runtime/InputStream.py +0 -90
  392. omlish/text/antlr/_runtime/IntervalSet.py +0 -183
  393. omlish/text/antlr/_runtime/LICENSE.txt +0 -28
  394. omlish/text/antlr/_runtime/LL1Analyzer.py +0 -176
  395. omlish/text/antlr/_runtime/Lexer.py +0 -332
  396. omlish/text/antlr/_runtime/ListTokenSource.py +0 -147
  397. omlish/text/antlr/_runtime/Parser.py +0 -583
  398. omlish/text/antlr/_runtime/ParserInterpreter.py +0 -173
  399. omlish/text/antlr/_runtime/ParserRuleContext.py +0 -189
  400. omlish/text/antlr/_runtime/PredictionContext.py +0 -632
  401. omlish/text/antlr/_runtime/Recognizer.py +0 -150
  402. omlish/text/antlr/_runtime/RuleContext.py +0 -230
  403. omlish/text/antlr/_runtime/StdinStream.py +0 -14
  404. omlish/text/antlr/_runtime/Token.py +0 -158
  405. omlish/text/antlr/_runtime/TokenStreamRewriter.py +0 -258
  406. omlish/text/antlr/_runtime/Utils.py +0 -36
  407. omlish/text/antlr/_runtime/__init__.py +0 -2
  408. omlish/text/antlr/_runtime/_all.py +0 -24
  409. omlish/text/antlr/_runtime/_pygrun.py +0 -174
  410. omlish/text/antlr/_runtime/atn/ATN.py +0 -135
  411. omlish/text/antlr/_runtime/atn/ATNConfig.py +0 -162
  412. omlish/text/antlr/_runtime/atn/ATNConfigSet.py +0 -215
  413. omlish/text/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -27
  414. omlish/text/antlr/_runtime/atn/ATNDeserializer.py +0 -449
  415. omlish/text/antlr/_runtime/atn/ATNSimulator.py +0 -50
  416. omlish/text/antlr/_runtime/atn/ATNState.py +0 -267
  417. omlish/text/antlr/_runtime/atn/ATNType.py +0 -20
  418. omlish/text/antlr/_runtime/atn/LexerATNSimulator.py +0 -573
  419. omlish/text/antlr/_runtime/atn/LexerAction.py +0 -301
  420. omlish/text/antlr/_runtime/atn/LexerActionExecutor.py +0 -146
  421. omlish/text/antlr/_runtime/atn/ParserATNSimulator.py +0 -1664
  422. omlish/text/antlr/_runtime/atn/PredictionMode.py +0 -502
  423. omlish/text/antlr/_runtime/atn/SemanticContext.py +0 -333
  424. omlish/text/antlr/_runtime/atn/Transition.py +0 -271
  425. omlish/text/antlr/_runtime/atn/__init__.py +0 -4
  426. omlish/text/antlr/_runtime/dfa/DFA.py +0 -136
  427. omlish/text/antlr/_runtime/dfa/DFASerializer.py +0 -76
  428. omlish/text/antlr/_runtime/dfa/DFAState.py +0 -129
  429. omlish/text/antlr/_runtime/dfa/__init__.py +0 -4
  430. omlish/text/antlr/_runtime/error/DiagnosticErrorListener.py +0 -111
  431. omlish/text/antlr/_runtime/error/ErrorListener.py +0 -75
  432. omlish/text/antlr/_runtime/error/ErrorStrategy.py +0 -712
  433. omlish/text/antlr/_runtime/error/Errors.py +0 -176
  434. omlish/text/antlr/_runtime/error/__init__.py +0 -4
  435. omlish/text/antlr/_runtime/tree/Chunk.py +0 -33
  436. omlish/text/antlr/_runtime/tree/ParseTreeMatch.py +0 -121
  437. omlish/text/antlr/_runtime/tree/ParseTreePattern.py +0 -75
  438. omlish/text/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -377
  439. omlish/text/antlr/_runtime/tree/RuleTagToken.py +0 -53
  440. omlish/text/antlr/_runtime/tree/TokenTagToken.py +0 -50
  441. omlish/text/antlr/_runtime/tree/Tree.py +0 -194
  442. omlish/text/antlr/_runtime/tree/Trees.py +0 -114
  443. omlish/text/antlr/_runtime/tree/__init__.py +0 -2
  444. omlish/text/antlr/_runtime/xpath/XPath.py +0 -278
  445. omlish/text/antlr/_runtime/xpath/XPathLexer.py +0 -98
  446. omlish/text/antlr/_runtime/xpath/__init__.py +0 -4
  447. omlish/text/antlr/delimit.py +0 -109
  448. omlish/text/antlr/dot.py +0 -41
  449. omlish/text/antlr/errors.py +0 -14
  450. omlish/text/antlr/input.py +0 -96
  451. omlish/text/antlr/parsing.py +0 -54
  452. omlish/text/antlr/runtime.py +0 -102
  453. omlish/text/antlr/utils.py +0 -38
  454. /omlish/{asyncs/bluelet → cexts}/__init__.py +0 -0
  455. /omlish/{formats/json/_antlr → diag/cmds}/__init__.py +0 -0
  456. /omlish/{formats/json5/_antlr → http/clients/coro}/__init__.py +0 -0
  457. /omlish/{specs/irc → inject/helpers}/__init__.py +0 -0
  458. /omlish/{specs/irc/messages → logs/std}/__init__.py +0 -0
  459. /omlish/logs/{noisy.py → std/noisy.py} +0 -0
  460. /omlish/{specs/irc/numerics → marshal/composite/unions}/__init__.py +0 -0
  461. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/WHEEL +0 -0
  462. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/entry_points.txt +0 -0
  463. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/licenses/LICENSE +0 -0
  464. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/top_level.txt +0 -0
@@ -1,457 +0,0 @@
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 ....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
-
@@ -1,42 +0,0 @@
1
- # type: ignore
2
- # ruff: noqa
3
- # flake8: noqa
4
- # @omlish-generated
5
- # Generated from Json.g4 by ANTLR 4.13.2
6
- from ....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
@@ -1,168 +0,0 @@
1
- // 2020-07-22
2
- // Public domain
3
-
4
- // JSON5 is a superset of JSON, it included some feature from ES5.1
5
- // See https://json5.org/
6
- // Derived from ../json/JSON.g4 which original derived from http://json.org
7
-
8
- grammar Json5;
9
-
10
- json5
11
- : value? EOF
12
- ;
13
-
14
- obj
15
- : '{' pair (',' pair)* ','? '}'
16
- | '{' '}'
17
- ;
18
-
19
- pair
20
- : key ':' value
21
- ;
22
-
23
- key
24
- : STRING
25
- | IDENTIFIER
26
- | LITERAL
27
- | NUMERIC_LITERAL
28
- ;
29
-
30
- value
31
- : STRING
32
- | number
33
- | obj
34
- | arr
35
- | LITERAL
36
- ;
37
-
38
- arr
39
- : '[' value (',' value)* ','? ']'
40
- | '[' ']'
41
- ;
42
-
43
- number
44
- : SYMBOL? (NUMERIC_LITERAL | NUMBER)
45
- ;
46
-
47
- // Lexer
48
-
49
- SINGLE_LINE_COMMENT
50
- : '//' .*? (NEWLINE | EOF) -> skip
51
- ;
52
-
53
- MULTI_LINE_COMMENT
54
- : '/*' .*? '*/' -> skip
55
- ;
56
-
57
- LITERAL
58
- : 'true'
59
- | 'false'
60
- | 'null'
61
- ;
62
-
63
- STRING
64
- : '"' DOUBLE_QUOTE_CHAR* '"'
65
- | '\'' SINGLE_QUOTE_CHAR* '\''
66
- ;
67
-
68
- fragment DOUBLE_QUOTE_CHAR
69
- : ~["\\\r\n]
70
- | ESCAPE_SEQUENCE
71
- ;
72
-
73
- fragment SINGLE_QUOTE_CHAR
74
- : ~['\\\r\n]
75
- | ESCAPE_SEQUENCE
76
- ;
77
-
78
- fragment ESCAPE_SEQUENCE
79
- : '\\' (
80
- NEWLINE
81
- | UNICODE_SEQUENCE // \u1234
82
- | ['"\\/bfnrtv] // single escape char
83
- | ~['"\\bfnrtv0-9xu\r\n] // non escape char
84
- | '0' // \0
85
- | 'x' HEX HEX // \x3a
86
- )
87
- ;
88
-
89
- NUMBER
90
- : INT ('.' [0-9]*)? EXP? // +1.e2, 1234, 1234.5
91
- | '.' [0-9]+ EXP? // -.2e3
92
- | '0' [xX] HEX+ // 0x12345678
93
- ;
94
-
95
- NUMERIC_LITERAL
96
- : 'Infinity'
97
- | 'NaN'
98
- ;
99
-
100
- SYMBOL
101
- : '+'
102
- | '-'
103
- ;
104
-
105
- fragment HEX
106
- : [0-9a-fA-F]
107
- ;
108
-
109
- fragment INT
110
- : '0'
111
- | [1-9] [0-9]*
112
- ;
113
-
114
- fragment EXP
115
- : [Ee] SYMBOL? [0-9]*
116
- ;
117
-
118
- IDENTIFIER
119
- : IDENTIFIER_START IDENTIFIER_PART*
120
- ;
121
-
122
- fragment IDENTIFIER_START
123
- : [\p{L}]
124
- | '$'
125
- | '_'
126
- | '\\' UNICODE_SEQUENCE
127
- ;
128
-
129
- fragment IDENTIFIER_PART
130
- : IDENTIFIER_START
131
- | [\p{M}]
132
- | [\p{N}]
133
- | [\p{Pc}]
134
- | '\u200C'
135
- | '\u200D'
136
- ;
137
-
138
- fragment UNICODE_SEQUENCE
139
- : 'u' HEX HEX HEX HEX
140
- ;
141
-
142
- fragment NEWLINE
143
- : '\r\n'
144
- | [\r\n\u2028\u2029]
145
- ;
146
-
147
- fragment WS1
148
- : '\u0009'
149
- | '\u000A'
150
- | '\u000B'
151
- | '\u000C'
152
- | '\u000D'
153
- | '\u0020'
154
- | '\u00A0'
155
- | '\u2028'
156
- | '\u2029'
157
- | '\uFEFF'
158
-
159
- | '\u1680'
160
- | '\u2000' ..'\u200A'
161
- | '\u202F'
162
- | '\u205F'
163
- | '\u3000'
164
- ;
165
-
166
- WS
167
- : WS1+ -> skip
168
- ;