jaclang 0.5.7__py3-none-any.whl → 0.5.8__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 jaclang might be problematic. Click here for more details.
- jaclang/cli/cli.py +55 -7
- jaclang/cli/cmdreg.py +12 -0
- jaclang/compiler/__init__.py +6 -3
- jaclang/compiler/__jac_gen__/jac_parser.py +2 -2
- jaclang/compiler/absyntree.py +1725 -55
- jaclang/compiler/codeloc.py +7 -0
- jaclang/compiler/compile.py +1 -1
- jaclang/compiler/constant.py +17 -0
- jaclang/compiler/parser.py +131 -112
- jaclang/compiler/passes/main/def_impl_match_pass.py +19 -3
- jaclang/compiler/passes/main/def_use_pass.py +1 -1
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +357 -0
- jaclang/compiler/passes/main/import_pass.py +7 -3
- jaclang/compiler/passes/main/pyast_gen_pass.py +112 -76
- jaclang/compiler/passes/main/pyast_load_pass.py +1779 -206
- jaclang/compiler/passes/main/schedules.py +2 -1
- jaclang/compiler/passes/main/sym_tab_build_pass.py +20 -28
- jaclang/compiler/passes/main/tests/test_pyast_build_pass.py +14 -5
- jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py +8 -8
- jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +7 -0
- jaclang/compiler/passes/main/type_check_pass.py +0 -1
- jaclang/compiler/passes/tool/jac_formatter_pass.py +8 -17
- jaclang/compiler/passes/tool/tests/test_unparse_validate.py +43 -0
- jaclang/compiler/passes/utils/mypy_ast_build.py +28 -14
- jaclang/compiler/symtable.py +23 -2
- jaclang/compiler/tests/test_parser.py +53 -0
- jaclang/compiler/workspace.py +52 -26
- jaclang/core/construct.py +54 -2
- jaclang/plugin/default.py +51 -13
- jaclang/plugin/feature.py +16 -2
- jaclang/plugin/spec.py +9 -5
- jaclang/utils/helpers.py +25 -0
- jaclang/utils/lang_tools.py +4 -1
- jaclang/utils/test.py +1 -0
- jaclang/utils/tests/test_lang_tools.py +11 -14
- jaclang/utils/treeprinter.py +10 -2
- {jaclang-0.5.7.dist-info → jaclang-0.5.8.dist-info}/METADATA +1 -1
- {jaclang-0.5.7.dist-info → jaclang-0.5.8.dist-info}/RECORD +41 -38
- {jaclang-0.5.7.dist-info → jaclang-0.5.8.dist-info}/WHEEL +1 -1
- {jaclang-0.5.7.dist-info → jaclang-0.5.8.dist-info}/entry_points.txt +0 -0
- {jaclang-0.5.7.dist-info → jaclang-0.5.8.dist-info}/top_level.txt +0 -0
jaclang/core/construct.py
CHANGED
|
@@ -328,11 +328,57 @@ class DSFunc:
|
|
|
328
328
|
self.func = getattr(cls, self.name)
|
|
329
329
|
|
|
330
330
|
|
|
331
|
+
class JacTestResult(unittest.TextTestResult):
|
|
332
|
+
"""Jac test result class."""
|
|
333
|
+
|
|
334
|
+
def __init__(
|
|
335
|
+
self,
|
|
336
|
+
stream, # noqa
|
|
337
|
+
descriptions, # noqa
|
|
338
|
+
verbosity: int,
|
|
339
|
+
max_failures: Optional[int] = None,
|
|
340
|
+
) -> None:
|
|
341
|
+
"""Initialize FailFastTestResult object."""
|
|
342
|
+
super().__init__(stream, descriptions, verbosity) # noqa
|
|
343
|
+
self.failures_count = 0
|
|
344
|
+
self.max_failures = max_failures
|
|
345
|
+
|
|
346
|
+
def addFailure(self, test, err) -> None: # noqa
|
|
347
|
+
"""Count failures and stop."""
|
|
348
|
+
super().addFailure(test, err)
|
|
349
|
+
self.failures_count += 1
|
|
350
|
+
if self.max_failures is not None and self.failures_count >= self.max_failures:
|
|
351
|
+
self.stop()
|
|
352
|
+
|
|
353
|
+
def stop(self) -> None:
|
|
354
|
+
"""Stop the test execution."""
|
|
355
|
+
self.shouldStop = True
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
class JacTextTestRunner(unittest.TextTestRunner):
|
|
359
|
+
"""Jac test runner class."""
|
|
360
|
+
|
|
361
|
+
def __init__(self, max_failures: Optional[int] = None, **kwargs) -> None: # noqa
|
|
362
|
+
"""Initialize JacTextTestRunner object."""
|
|
363
|
+
self.max_failures = max_failures
|
|
364
|
+
super().__init__(**kwargs)
|
|
365
|
+
|
|
366
|
+
def _makeResult(self) -> JacTestResult: # noqa
|
|
367
|
+
"""Override the method to return an instance of JacTestResult."""
|
|
368
|
+
return JacTestResult(
|
|
369
|
+
self.stream,
|
|
370
|
+
self.descriptions,
|
|
371
|
+
self.verbosity,
|
|
372
|
+
max_failures=self.max_failures,
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
|
|
331
376
|
class JacTestCheck:
|
|
332
377
|
"""Jac Testing and Checking."""
|
|
333
378
|
|
|
334
379
|
test_case = unittest.TestCase()
|
|
335
380
|
test_suite = unittest.TestSuite()
|
|
381
|
+
breaker = False
|
|
336
382
|
|
|
337
383
|
@staticmethod
|
|
338
384
|
def reset() -> None:
|
|
@@ -341,9 +387,15 @@ class JacTestCheck:
|
|
|
341
387
|
JacTestCheck.test_suite = unittest.TestSuite()
|
|
342
388
|
|
|
343
389
|
@staticmethod
|
|
344
|
-
def run_test() -> None:
|
|
390
|
+
def run_test(xit: bool, maxfail: int | None, verbose: bool) -> None:
|
|
345
391
|
"""Run the test suite."""
|
|
346
|
-
|
|
392
|
+
verb = 2 if verbose else 1
|
|
393
|
+
runner = JacTextTestRunner(max_failures=maxfail, failfast=xit, verbosity=verb)
|
|
394
|
+
result = runner.run(JacTestCheck.test_suite)
|
|
395
|
+
if result.wasSuccessful():
|
|
396
|
+
print("Passed successfully.")
|
|
397
|
+
else:
|
|
398
|
+
JacTestCheck.breaker = True
|
|
347
399
|
|
|
348
400
|
@staticmethod
|
|
349
401
|
def add_test(test_fun: Callable) -> None:
|
jaclang/plugin/default.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import fnmatch
|
|
5
6
|
import os
|
|
6
7
|
import types
|
|
7
8
|
from dataclasses import field
|
|
@@ -185,20 +186,57 @@ class JacFeatureDefaults:
|
|
|
185
186
|
|
|
186
187
|
@staticmethod
|
|
187
188
|
@hookimpl
|
|
188
|
-
def run_test(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
189
|
+
def run_test(
|
|
190
|
+
filepath: str,
|
|
191
|
+
filter: Optional[str],
|
|
192
|
+
xit: bool,
|
|
193
|
+
maxfail: Optional[int],
|
|
194
|
+
directory: Optional[str],
|
|
195
|
+
verbose: bool,
|
|
196
|
+
) -> bool:
|
|
197
|
+
"""Run the test suite in the specified .jac file."""
|
|
198
|
+
test_file = False
|
|
199
|
+
if filepath:
|
|
200
|
+
if filepath.endswith(".jac"):
|
|
201
|
+
base, mod_name = os.path.split(filepath)
|
|
202
|
+
base = base if base else "./"
|
|
203
|
+
mod_name = mod_name[:-4]
|
|
204
|
+
JacTestCheck.reset()
|
|
205
|
+
Jac.jac_import(target=mod_name, base_path=base)
|
|
206
|
+
JacTestCheck.run_test(xit, maxfail, verbose)
|
|
207
|
+
else:
|
|
208
|
+
print("Not a .jac file.")
|
|
200
209
|
else:
|
|
201
|
-
|
|
210
|
+
directory = directory if directory else os.getcwd()
|
|
211
|
+
|
|
212
|
+
if filter or directory:
|
|
213
|
+
current_dir = directory if directory else os.getcwd()
|
|
214
|
+
for root_dir, _, files in os.walk(current_dir, topdown=True):
|
|
215
|
+
files = (
|
|
216
|
+
[file for file in files if fnmatch.fnmatch(file, filter)]
|
|
217
|
+
if filter
|
|
218
|
+
else files
|
|
219
|
+
)
|
|
220
|
+
files = [
|
|
221
|
+
file
|
|
222
|
+
for file in files
|
|
223
|
+
if not file.endswith((".test.jac", ".impl.jac"))
|
|
224
|
+
]
|
|
225
|
+
for file in files:
|
|
226
|
+
if file.endswith(".jac"):
|
|
227
|
+
test_file = True
|
|
228
|
+
print(f"\n\n\t\t* Inside {root_dir}" + "/" + f"{file} *")
|
|
229
|
+
JacTestCheck.reset()
|
|
230
|
+
Jac.jac_import(target=file[:-4], base_path=root_dir)
|
|
231
|
+
JacTestCheck.run_test(xit, maxfail, verbose)
|
|
232
|
+
|
|
233
|
+
if JacTestCheck.breaker and (xit or maxfail):
|
|
234
|
+
break
|
|
235
|
+
if JacTestCheck.breaker and (xit or maxfail):
|
|
236
|
+
break
|
|
237
|
+
JacTestCheck.breaker = False
|
|
238
|
+
print("No test files found.") if not test_file else None
|
|
239
|
+
|
|
202
240
|
return True
|
|
203
241
|
|
|
204
242
|
@staticmethod
|
jaclang/plugin/feature.py
CHANGED
|
@@ -96,9 +96,23 @@ class JacFeature:
|
|
|
96
96
|
return pm.hook.create_test(test_fun=test_fun)
|
|
97
97
|
|
|
98
98
|
@staticmethod
|
|
99
|
-
def run_test(
|
|
99
|
+
def run_test(
|
|
100
|
+
filepath: str,
|
|
101
|
+
filter: Optional[str] = None,
|
|
102
|
+
xit: bool = False,
|
|
103
|
+
maxfail: Optional[int] = None,
|
|
104
|
+
directory: Optional[str] = None,
|
|
105
|
+
verbose: bool = False,
|
|
106
|
+
) -> bool:
|
|
100
107
|
"""Run the test suite in the specified .jac file."""
|
|
101
|
-
return pm.hook.run_test(
|
|
108
|
+
return pm.hook.run_test(
|
|
109
|
+
filepath=filepath,
|
|
110
|
+
filter=filter,
|
|
111
|
+
xit=xit,
|
|
112
|
+
maxfail=maxfail,
|
|
113
|
+
directory=directory,
|
|
114
|
+
verbose=verbose,
|
|
115
|
+
)
|
|
102
116
|
|
|
103
117
|
@staticmethod
|
|
104
118
|
def elvis(op1: Optional[T], op2: T) -> T:
|
jaclang/plugin/spec.py
CHANGED
|
@@ -88,11 +88,15 @@ class JacFeatureSpec:
|
|
|
88
88
|
|
|
89
89
|
@staticmethod
|
|
90
90
|
@hookspec(firstresult=True)
|
|
91
|
-
def run_test(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
:
|
|
95
|
-
|
|
91
|
+
def run_test(
|
|
92
|
+
filepath: str,
|
|
93
|
+
filter: Optional[str],
|
|
94
|
+
xit: bool,
|
|
95
|
+
maxfail: Optional[int],
|
|
96
|
+
directory: Optional[str],
|
|
97
|
+
verbose: bool,
|
|
98
|
+
) -> bool:
|
|
99
|
+
"""Run the test suite in the specified .jac file."""
|
|
96
100
|
raise NotImplementedError
|
|
97
101
|
|
|
98
102
|
@staticmethod
|
jaclang/utils/helpers.py
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"""Utility functions and classes for Jac compilation toolchain."""
|
|
2
2
|
|
|
3
|
+
import dis
|
|
4
|
+
import marshal
|
|
3
5
|
import os
|
|
6
|
+
import pdb
|
|
4
7
|
import re
|
|
5
8
|
|
|
6
9
|
|
|
@@ -104,3 +107,25 @@ def import_target_to_relative_path(
|
|
|
104
107
|
base_path = os.path.dirname(base_path)
|
|
105
108
|
relative_path = os.path.join(base_path, *actual_parts) + file_extension
|
|
106
109
|
return relative_path
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class Jdb(pdb.Pdb):
|
|
113
|
+
"""Jac debugger."""
|
|
114
|
+
|
|
115
|
+
def __init__(self, *args, **kwargs) -> None: # noqa
|
|
116
|
+
"""Initialize the Jac debugger."""
|
|
117
|
+
super().__init__(*args, **kwargs)
|
|
118
|
+
self.prompt = "Jdb > "
|
|
119
|
+
|
|
120
|
+
def has_breakpoint(self, bytecode: bytes) -> bool:
|
|
121
|
+
"""Check for breakpoint."""
|
|
122
|
+
code = marshal.loads(bytecode)
|
|
123
|
+
instructions = dis.get_instructions(code)
|
|
124
|
+
return any(
|
|
125
|
+
instruction.opname in ("LOAD_GLOBAL", "LOAD_NAME", "LOAD_FAST")
|
|
126
|
+
and instruction.argval == "breakpoint"
|
|
127
|
+
for instruction in instructions
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
debugger = Jdb()
|
jaclang/utils/lang_tools.py
CHANGED
|
@@ -8,6 +8,7 @@ from typing import List, Optional, Type
|
|
|
8
8
|
|
|
9
9
|
import jaclang.compiler.absyntree as ast
|
|
10
10
|
from jaclang.compiler.compile import jac_file_to_pass
|
|
11
|
+
from jaclang.compiler.passes.main.schedules import py_code_gen_typed
|
|
11
12
|
from jaclang.compiler.symtable import SymbolTable
|
|
12
13
|
from jaclang.utils.helpers import extract_headings, heading_to_snake, pascal_to_snake
|
|
13
14
|
|
|
@@ -209,7 +210,7 @@ class AstTool:
|
|
|
209
210
|
[base, mod] = os.path.split(file_name)
|
|
210
211
|
base = base if base else "./"
|
|
211
212
|
ir = jac_file_to_pass(
|
|
212
|
-
file_name
|
|
213
|
+
file_name, schedule=py_code_gen_typed
|
|
213
214
|
).ir # Assuming jac_file_to_pass is defined elsewhere
|
|
214
215
|
|
|
215
216
|
match output:
|
|
@@ -229,6 +230,8 @@ class AstTool:
|
|
|
229
230
|
return ir.pp()
|
|
230
231
|
case "ast.":
|
|
231
232
|
return ir.dotgen()
|
|
233
|
+
case "unparse":
|
|
234
|
+
return ir.unparse()
|
|
232
235
|
case "pyast":
|
|
233
236
|
return (
|
|
234
237
|
f"\n{py_ast.dump(ir.gen.py_ast[0], indent=2)}"
|
jaclang/utils/test.py
CHANGED
|
@@ -37,20 +37,14 @@ class JacFormatPassTests(TestCase):
|
|
|
37
37
|
|
|
38
38
|
def test_print(self) -> None:
|
|
39
39
|
"""Testing for print AstTool."""
|
|
40
|
-
|
|
41
|
-
os.path.dirname(jaclang.__file__),
|
|
40
|
+
jac_file = os.path.join(
|
|
41
|
+
os.path.dirname(jaclang.__file__),
|
|
42
|
+
"../examples/reference/names_and_references.jac",
|
|
42
43
|
)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
out = AstTool().ir(["ast", jac_directory + jac_file])
|
|
48
|
-
if out == "0:0 - 0:0\tModule\n0:0 - 0:0\t+-- EmptyToken - \n":
|
|
49
|
-
continue
|
|
50
|
-
self.assertIn("+-- Token", out, msg)
|
|
51
|
-
self.assertIsNotNone(out, msg=msg)
|
|
52
|
-
passed += 1
|
|
53
|
-
self.assertGreater(passed, 10)
|
|
44
|
+
msg = "error in " + jac_file
|
|
45
|
+
out = AstTool().ir(["ast", jac_file])
|
|
46
|
+
self.assertIn("+-- Token", out, msg)
|
|
47
|
+
self.assertIsNotNone(out, msg=msg)
|
|
54
48
|
|
|
55
49
|
def test_print_py(self) -> None:
|
|
56
50
|
"""Testing for print_py AstTool."""
|
|
@@ -58,8 +52,11 @@ class JacFormatPassTests(TestCase):
|
|
|
58
52
|
os.path.dirname(jaclang.__file__), "../examples/reference/"
|
|
59
53
|
)
|
|
60
54
|
jac_py_files = [
|
|
61
|
-
f
|
|
55
|
+
f
|
|
56
|
+
for f in os.listdir(jac_py_directory)
|
|
57
|
+
if f.endswith(("names_and_references.jac", "names_and_references.py"))
|
|
62
58
|
]
|
|
59
|
+
|
|
63
60
|
for file in jac_py_files:
|
|
64
61
|
msg = "error in " + file
|
|
65
62
|
out = AstTool().ir(["pyast", jac_py_directory + file])
|
jaclang/utils/treeprinter.py
CHANGED
|
@@ -88,10 +88,14 @@ def print_ast_tree(
|
|
|
88
88
|
from jaclang.compiler.absyntree import AstSymbolNode, Token
|
|
89
89
|
|
|
90
90
|
def __node_repr_in_tree(node: AstNode) -> str:
|
|
91
|
-
if isinstance(node, Token):
|
|
91
|
+
if isinstance(node, Token) and isinstance(node, AstSymbolNode):
|
|
92
|
+
return (
|
|
93
|
+
f"{node.__class__.__name__} - {node.value} - Type: {node.sym_info.typ}"
|
|
94
|
+
)
|
|
95
|
+
elif isinstance(node, Token):
|
|
92
96
|
return f"{node.__class__.__name__} - {node.value}"
|
|
93
97
|
elif isinstance(node, AstSymbolNode):
|
|
94
|
-
return f"{node.__class__.__name__} - {node.sym_name}"
|
|
98
|
+
return f"{node.__class__.__name__} - {node.sym_name} - Type: {node.sym_info.typ}"
|
|
95
99
|
else:
|
|
96
100
|
return f"{node.__class__.__name__}"
|
|
97
101
|
|
|
@@ -211,6 +215,10 @@ def _build_symbol_tree_common(
|
|
|
211
215
|
symbol_node = SymbolTree(node_name=f"{sym.sym_name}", parent=symbols)
|
|
212
216
|
SymbolTree(node_name=f"{sym.access} {sym.sym_type}", parent=symbol_node)
|
|
213
217
|
|
|
218
|
+
# if isinstance(node.owner, ast.AstSymbolNode) and node.owner.sym_info:
|
|
219
|
+
# print("From tree printer", id(node.owner))
|
|
220
|
+
# SymbolTree(node_name=f"Datatype: {node.owner.sym_info.typ}", parent=symbol_node)
|
|
221
|
+
|
|
214
222
|
if sym.decl and sym.decl.loc.first_line > 0:
|
|
215
223
|
SymbolTree(
|
|
216
224
|
node_name=f"decl: line {sym.decl.loc.first_line}, col {sym.decl.loc.col_start}",
|
|
@@ -1,77 +1,80 @@
|
|
|
1
1
|
jaclang/__init__.py,sha256=8y03wUXOs-_OI-SQfXzmQBUPHkwKyEM2zGDQvnWMS_k,693
|
|
2
2
|
jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
|
|
3
|
-
jaclang/cli/cli.py,sha256=
|
|
4
|
-
jaclang/cli/cmdreg.py,sha256=
|
|
5
|
-
jaclang/compiler/__init__.py,sha256=
|
|
6
|
-
jaclang/compiler/absyntree.py,sha256=
|
|
7
|
-
jaclang/compiler/codeloc.py,sha256=
|
|
8
|
-
jaclang/compiler/compile.py,sha256=
|
|
9
|
-
jaclang/compiler/constant.py,sha256=
|
|
10
|
-
jaclang/compiler/parser.py,sha256=
|
|
11
|
-
jaclang/compiler/symtable.py,sha256=
|
|
12
|
-
jaclang/compiler/workspace.py,sha256=
|
|
3
|
+
jaclang/cli/cli.py,sha256=kE7ZR0ZgKuhlFGfszMcNu239uhSO6rt7PIP6UtsHyko,7822
|
|
4
|
+
jaclang/cli/cmdreg.py,sha256=bn2UdOkNbE-4zfbomO2j8rTtkXhsltH4jE5rKqA5HbY,7862
|
|
5
|
+
jaclang/compiler/__init__.py,sha256=Ulx-OBWcdr6Uh9m7vmDUNjA2zy-rx9uKJ59kb63tFGY,955
|
|
6
|
+
jaclang/compiler/absyntree.py,sha256=K58UU0VO3oAjmza6gbyYnm4J1U_YFQ7Nh4J9p4XW_rk,124652
|
|
7
|
+
jaclang/compiler/codeloc.py,sha256=KMwf5OMQu3_uDjIdH7ta2piacUtXNPgUV1t8OuLjpzE,2828
|
|
8
|
+
jaclang/compiler/compile.py,sha256=fS6Uvor93EavESKrwadqp7bstcpMRRACvBkqbr4En04,2682
|
|
9
|
+
jaclang/compiler/constant.py,sha256=C8nOgWLAg-fRg8Qax_jRcYp6jGyWSSA1gwzk9Zdy7HE,6534
|
|
10
|
+
jaclang/compiler/parser.py,sha256=nARBmZhrtBNN140pY1e8z0773GGtK7C95dShjOXJ484,135292
|
|
11
|
+
jaclang/compiler/symtable.py,sha256=SRYSwZtLHXLIOkE9CfdWDkkwx0vDLXvMeYiFfh6-wP4,5769
|
|
12
|
+
jaclang/compiler/workspace.py,sha256=auTT5VDJzwz1w8_WYlt65U6wAYxGtTl1u1v0lofOfo4,7521
|
|
13
13
|
jaclang/compiler/__jac_gen__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
jaclang/compiler/__jac_gen__/jac_parser.py,sha256=
|
|
14
|
+
jaclang/compiler/__jac_gen__/jac_parser.py,sha256=jP8ZLmt-q4X-MTzDGX4IDKmVsDCfnY7KTIcFByhuwmU,334046
|
|
15
15
|
jaclang/compiler/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
|
|
16
16
|
jaclang/compiler/passes/ir_pass.py,sha256=ZCcERZZfcOxRurJjOlW5UFj-C1mlp44qpDMsUCH2dUQ,4893
|
|
17
17
|
jaclang/compiler/passes/transform.py,sha256=6t-bbX_s615i7_naOIBjT4wvAkvLFM4niRHYyF4my8A,2086
|
|
18
18
|
jaclang/compiler/passes/main/__init__.py,sha256=93aNqSyI2GyRBrzIkxVc7N8JENKPdwtVWpR3XmZ6wG8,831
|
|
19
|
-
jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=
|
|
20
|
-
jaclang/compiler/passes/main/def_use_pass.py,sha256=
|
|
21
|
-
jaclang/compiler/passes/main/
|
|
22
|
-
jaclang/compiler/passes/main/
|
|
23
|
-
jaclang/compiler/passes/main/
|
|
19
|
+
jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=_KgAVVzMAatigKDp1vAnhyY2GcWf0rRoD8MkfYg-POU,3297
|
|
20
|
+
jaclang/compiler/passes/main/def_use_pass.py,sha256=d2REmfme2HjUj8avDcXUuPbv3yKfvYHqpL49sxniLhQ,8576
|
|
21
|
+
jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=QY-0Cxpb3rYDU4JlO4_WILo9ppsv9GJLlR65YqG32sw,13809
|
|
22
|
+
jaclang/compiler/passes/main/import_pass.py,sha256=d2vguYz7z-aNtVnJUfBoSmbYVdGeKmZbnSnrRnE4cg4,6198
|
|
23
|
+
jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=MqDl2QrO3ECjKSjM-l6nNerm2qo9oweEG87p7mcL9Zo,124064
|
|
24
|
+
jaclang/compiler/passes/main/pyast_load_pass.py,sha256=S2U2rjHGbVIP6oYezW1YCUBvxNGC0c_5OdTpfUpuXZ0,79234
|
|
24
25
|
jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=CjA9AqyMO3Pv_b5Hh0YI6JmCqIru2ASonO6rhrkau-M,1336
|
|
25
26
|
jaclang/compiler/passes/main/pyout_pass.py,sha256=jw-ApCvVyAqynBFCArPQ20wq2ou0s7lTCGqcUyxrJWI,3018
|
|
26
|
-
jaclang/compiler/passes/main/schedules.py,sha256=
|
|
27
|
+
jaclang/compiler/passes/main/schedules.py,sha256=H8KIzdTq1Iwj7vkk3J2ek6Sd5fgLzmwPwNu0BJkM-l0,976
|
|
27
28
|
jaclang/compiler/passes/main/sub_node_tab_pass.py,sha256=fGgK0CBWsuD6BS4BsLwXPl1b5UC2N2YEOGa6jNMu8N8,1332
|
|
28
|
-
jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=
|
|
29
|
-
jaclang/compiler/passes/main/type_check_pass.py,sha256=
|
|
29
|
+
jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=_NPfmSnDioQb80rVmOJWO_38KCtE238jnImFNlhuYsA,40986
|
|
30
|
+
jaclang/compiler/passes/main/type_check_pass.py,sha256=BT5gUxlBEPYACLyZyoMNPjh4WJY8-wDKRmOIxMRRoMo,3231
|
|
30
31
|
jaclang/compiler/passes/main/tests/__init__.py,sha256=UBAATLUEH3yuBN4LYKnXXV79kokRc4XB-rX12qfu0ds,28
|
|
31
32
|
jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=QDsvTEpJt3AuS3GRwfq-1mezRCpx7rwEEyg1AbusaBs,1374
|
|
32
33
|
jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=dmyZgXugOCN-_YY7dxkNHgt8vqey8qzNJf8sWyLLZ5w,1013
|
|
33
34
|
jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=KDTIhUnAVyp0iQ64lC6RQvOkdS7CNVtVbfPbG1aX1L8,580
|
|
34
|
-
jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=
|
|
35
|
+
jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=LIT4TP-nhtftRtY5rNySRQlim-dWMSlkfUvkhZTk4pc,1383
|
|
35
36
|
jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=QAw3kPE58pQYjVmuqwsd-G-fzlksbiiqvFWrhbaXkdM,4607
|
|
36
37
|
jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py,sha256=If8PE4exN5g9o1NRElNC0XdfIwJAp7M7f69rzmYRYUQ,655
|
|
37
38
|
jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=I8m2SM2Z-OJkRG3CfpzhZkxh4lrKNtFmcu6UuYzZpY0,877
|
|
38
|
-
jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=
|
|
39
|
+
jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=85mUM6mYYLCrQ9AivBIbreG7CgdsJH2zrNOqdcpnwBo,730
|
|
39
40
|
jaclang/compiler/passes/main/tests/test_type_check_pass.py,sha256=bzrVcsBZra2HkQH2_qLdX0CY9wbx9gVxs-mSIeWGvqc,1553
|
|
41
|
+
jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=ehC0_giLg7NwB7fR10nW5Te8mZ76qmUFxkK1bEjtmrw,129
|
|
40
42
|
jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
|
|
41
43
|
jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=N9a84qArNuTXX1iaXsBzqcufx6A3zYq2p-1ieH6FmHc,3133
|
|
42
|
-
jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=
|
|
44
|
+
jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=8VXwe7Ffh89tMGGmmdK28FRUyC5vKOyXiVm38EItxjI,77537
|
|
43
45
|
jaclang/compiler/passes/tool/schedules.py,sha256=kmbsCazAMizGAdQuZpFky5BPlYlMXqNw7wOUzdi_wBo,432
|
|
44
46
|
jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
|
|
45
47
|
jaclang/compiler/passes/tool/tests/test_fuse_comments_pass.py,sha256=ZeWHsm7VIyyS8KKpoB2SdlHM4jF22fMfSrfTfxt2MQw,398
|
|
46
48
|
jaclang/compiler/passes/tool/tests/test_jac_format_pass.py,sha256=5RrRgd8WFB_5qk9mBlEgWD0GdoQu8DsG2rgRCsfoObw,4829
|
|
49
|
+
jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=vKcI3jMSDphBt9Arr8THe7CdDVNZZ6hsHl6XwCIR_Rk,1546
|
|
47
50
|
jaclang/compiler/passes/utils/__init__.py,sha256=UsI5rUopTUiStAzup4kbPwIwrnC5ofCrqWBCBbM2-k4,35
|
|
48
|
-
jaclang/compiler/passes/utils/mypy_ast_build.py,sha256=
|
|
51
|
+
jaclang/compiler/passes/utils/mypy_ast_build.py,sha256=qY_QO7rxMOCoPppph0OrCXJD-RJlPQekkDYYfGgfox0,22659
|
|
49
52
|
jaclang/compiler/tests/__init__.py,sha256=qiXa5UNRBanGOcplFKTT9a_9GEyiv7goq1OzuCjDCFE,27
|
|
50
53
|
jaclang/compiler/tests/test_importer.py,sha256=uaiUZVTf_zP5mRZhYZKrRS-vq9RZ7qLrWVhgnqjCd5s,769
|
|
51
|
-
jaclang/compiler/tests/test_parser.py,sha256=
|
|
54
|
+
jaclang/compiler/tests/test_parser.py,sha256=C81mUo8EGwypPTTLRVS9BglP0Dyye9xaPSQtw7cwnnI,4814
|
|
52
55
|
jaclang/compiler/tests/test_workspace.py,sha256=SEBcvz_daTbonrLHK9FbjiH86TUbOtVGH-iZ3xkJSMk,3184
|
|
53
56
|
jaclang/compiler/tests/fixtures/__init__.py,sha256=udQ0T6rajpW_nMiYKJNckqP8izZ-pH3P4PNTJEln2NU,36
|
|
54
57
|
jaclang/compiler/tests/fixtures/activity.py,sha256=fSvxYDKufsPeQIrbuh031zHw_hdbRv5iK9mS7dD8E54,263
|
|
55
58
|
jaclang/core/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
|
|
56
59
|
jaclang/core/aott.py,sha256=DYk_jFdcTY5AMXpHePeHONquaPcq9UgIGk_sUrtwsbQ,1741
|
|
57
|
-
jaclang/core/construct.py,sha256=
|
|
60
|
+
jaclang/core/construct.py,sha256=jZLere0irH-z2hjfc3Enuq9FmvWSiMjmDpDc5x4WkV0,13436
|
|
58
61
|
jaclang/core/importer.py,sha256=_ahfUAg8egcLkBxkh-2xzOPEa4gz1a0-6zrxeQDxkRg,3370
|
|
59
62
|
jaclang/core/utils.py,sha256=n400FVGmps2mLvXXoyhN5Ovr78YMD7a8f5yrSwSO4cY,3173
|
|
60
63
|
jaclang/plugin/__init__.py,sha256=qLbQ2KjwyTvlV50Q7JTIznyIzuGDPjuwM_ZJjdk-avo,182
|
|
61
64
|
jaclang/plugin/builtin.py,sha256=D1R4GGNHX96P-wZnGm9OI4dMeCJvuXuHkCw2Cl5vaAU,1201
|
|
62
|
-
jaclang/plugin/default.py,sha256=
|
|
63
|
-
jaclang/plugin/feature.py,sha256=
|
|
64
|
-
jaclang/plugin/spec.py,sha256=
|
|
65
|
+
jaclang/plugin/default.py,sha256=Nl_yxjr7g5jZ1atblCfDs6oWZBFF99dZCzzsdTBXvAk,17573
|
|
66
|
+
jaclang/plugin/feature.py,sha256=p7kVaoX7JZvxde5Ms9tSiRWCZ8nOBANPZ_NwwN5uWas,7643
|
|
67
|
+
jaclang/plugin/spec.py,sha256=0oL0eJP-gWHyvGI4zpRz5OhK-wMq9kWyYAsV-okgJxk,6949
|
|
65
68
|
jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
|
|
66
69
|
jaclang/plugin/tests/test_features.py,sha256=uNQ52HHc0GiOGg5xUZk-ddafdtud0IHN4H_EUAs4er4,3547
|
|
67
70
|
jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
|
|
68
|
-
jaclang/utils/helpers.py,sha256=
|
|
69
|
-
jaclang/utils/lang_tools.py,sha256=
|
|
71
|
+
jaclang/utils/helpers.py,sha256=V4mMBGP6cVp5lN9Dq99HQTZLMLyg8EVxuMR1I0ABV5I,4093
|
|
72
|
+
jaclang/utils/lang_tools.py,sha256=4GAeTTITQhzR2nUzSt16WXRjctMM0BEpW93JBvGXOaU,10905
|
|
70
73
|
jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
|
|
71
|
-
jaclang/utils/test.py,sha256=
|
|
72
|
-
jaclang/utils/treeprinter.py,sha256=
|
|
74
|
+
jaclang/utils/test.py,sha256=LQKtY_DnWXUBbGVnpp05oMeGn24bTxawqrz5ZqZK0dQ,5444
|
|
75
|
+
jaclang/utils/treeprinter.py,sha256=RV7mmnlUdla_dYxIrwxsV2F32ncgEnB9PdA3ZnKLxPE,10934
|
|
73
76
|
jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
|
|
74
|
-
jaclang/utils/tests/test_lang_tools.py,sha256=
|
|
77
|
+
jaclang/utils/tests/test_lang_tools.py,sha256=F95RBtFlk04z4me90yq-1p-p8QZzadjJ8mOLm7CblMc,3874
|
|
75
78
|
jaclang/vendor/__init__.py,sha256=pbflH5hBfDiKfTJEjIXId44Eof8CVmXQlZwFYDG6_4E,35
|
|
76
79
|
jaclang/vendor/mypy_extensions.py,sha256=iOL3eH2aQfacxQHcut7VgXt69Fh0BUTVW6D0TYjeV7U,6903
|
|
77
80
|
jaclang/vendor/typing_extensions.py,sha256=46svwxMQkcZjZuJyb-kYHy_FgpXPZQY4vjGJmUcVLJ0,104792
|
|
@@ -397,8 +400,8 @@ jaclang/vendor/pluggy/_manager.py,sha256=fcYU7VER0CplRym4jAJ7RCFYl6cfDSeVM589YHH
|
|
|
397
400
|
jaclang/vendor/pluggy/_result.py,sha256=wXDoVy68bOaOrBzQ0bWFb3HTbpqhvdQMgYwaZvfzxfA,3239
|
|
398
401
|
jaclang/vendor/pluggy/_tracing.py,sha256=kSBr25F_rNklV2QhLD6h1jx6Z1kcKDRbuYvF5jv35pU,2089
|
|
399
402
|
jaclang/vendor/pluggy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
400
|
-
jaclang-0.5.
|
|
401
|
-
jaclang-0.5.
|
|
402
|
-
jaclang-0.5.
|
|
403
|
-
jaclang-0.5.
|
|
404
|
-
jaclang-0.5.
|
|
403
|
+
jaclang-0.5.8.dist-info/METADATA,sha256=UTKjkxxbfs09CnrqWJw5acY-YqYIzV8YnhVgTgthcwQ,152
|
|
404
|
+
jaclang-0.5.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
405
|
+
jaclang-0.5.8.dist-info/entry_points.txt,sha256=Z-snS3MDBdV1Z4znXDZTenyyndovaNjqRkDW1t2kYSs,50
|
|
406
|
+
jaclang-0.5.8.dist-info/top_level.txt,sha256=ZOAoLpE67ozkUJd-v3C59wBNXiteRD8IWPbsYB3M08g,8
|
|
407
|
+
jaclang-0.5.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|