jaclang 0.5.6__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.

Files changed (51) hide show
  1. jaclang/__init__.py +6 -1
  2. jaclang/cli/cli.py +63 -20
  3. jaclang/cli/cmdreg.py +42 -12
  4. jaclang/compiler/__init__.py +6 -3
  5. jaclang/compiler/__jac_gen__/jac_parser.py +2 -2
  6. jaclang/compiler/absyntree.py +1740 -61
  7. jaclang/compiler/codeloc.py +7 -0
  8. jaclang/compiler/compile.py +4 -5
  9. jaclang/compiler/constant.py +52 -6
  10. jaclang/compiler/parser.py +220 -129
  11. jaclang/compiler/passes/main/def_impl_match_pass.py +19 -3
  12. jaclang/compiler/passes/main/def_use_pass.py +1 -1
  13. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +357 -0
  14. jaclang/compiler/passes/main/import_pass.py +7 -3
  15. jaclang/compiler/passes/main/pyast_gen_pass.py +333 -93
  16. jaclang/compiler/passes/main/pyast_load_pass.py +1779 -206
  17. jaclang/compiler/passes/main/pyout_pass.py +2 -2
  18. jaclang/compiler/passes/main/schedules.py +2 -1
  19. jaclang/compiler/passes/main/sym_tab_build_pass.py +20 -28
  20. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +4 -4
  21. jaclang/compiler/passes/main/tests/test_pyast_build_pass.py +14 -5
  22. jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py +8 -8
  23. jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +7 -0
  24. jaclang/compiler/passes/main/type_check_pass.py +0 -1
  25. jaclang/compiler/passes/tool/jac_formatter_pass.py +8 -17
  26. jaclang/compiler/passes/tool/tests/test_unparse_validate.py +43 -0
  27. jaclang/compiler/passes/utils/mypy_ast_build.py +28 -14
  28. jaclang/compiler/symtable.py +23 -2
  29. jaclang/compiler/tests/test_parser.py +53 -0
  30. jaclang/compiler/workspace.py +52 -26
  31. jaclang/core/aott.py +68 -0
  32. jaclang/core/construct.py +58 -6
  33. jaclang/core/importer.py +9 -10
  34. jaclang/core/utils.py +65 -3
  35. jaclang/plugin/builtin.py +42 -0
  36. jaclang/plugin/default.py +163 -18
  37. jaclang/plugin/feature.py +38 -10
  38. jaclang/plugin/spec.py +33 -6
  39. jaclang/utils/helpers.py +25 -0
  40. jaclang/utils/lang_tools.py +4 -1
  41. jaclang/utils/test.py +1 -0
  42. jaclang/utils/tests/test_lang_tools.py +12 -15
  43. jaclang/utils/treeprinter.py +10 -2
  44. {jaclang-0.5.6.dist-info → jaclang-0.5.8.dist-info}/METADATA +1 -1
  45. {jaclang-0.5.6.dist-info → jaclang-0.5.8.dist-info}/RECORD +48 -46
  46. {jaclang-0.5.6.dist-info → jaclang-0.5.8.dist-info}/WHEEL +1 -1
  47. jaclang/compiler/tests/fixtures/__jac_gen__/__init__.py +0 -0
  48. jaclang/compiler/tests/fixtures/__jac_gen__/hello_world.py +0 -5
  49. jaclang/core/jacbuiltins.py +0 -10
  50. {jaclang-0.5.6.dist-info → jaclang-0.5.8.dist-info}/entry_points.txt +0 -0
  51. {jaclang-0.5.6.dist-info → jaclang-0.5.8.dist-info}/top_level.txt +0 -0
jaclang/plugin/feature.py CHANGED
@@ -13,13 +13,15 @@ from jaclang.core.construct import (
13
13
  Root,
14
14
  WalkerArchitype,
15
15
  )
16
- from jaclang.plugin.spec import JacCmdSpec, JacFeatureSpec, T
16
+ from jaclang.plugin.spec import JacBuiltin, JacCmdSpec, JacFeatureSpec, T
17
+
17
18
 
18
19
  import pluggy
19
20
 
20
21
  pm = pluggy.PluginManager("jac")
21
22
  pm.add_hookspecs(JacFeatureSpec)
22
23
  pm.add_hookspecs(JacCmdSpec)
24
+ pm.add_hookspecs(JacBuiltin)
23
25
 
24
26
 
25
27
  class JacFeature:
@@ -94,9 +96,23 @@ class JacFeature:
94
96
  return pm.hook.create_test(test_fun=test_fun)
95
97
 
96
98
  @staticmethod
97
- def run_test(filename: str) -> bool:
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:
98
107
  """Run the test suite in the specified .jac file."""
99
- return pm.hook.run_test(filename=filename)
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
+ )
100
116
 
101
117
  @staticmethod
102
118
  def elvis(op1: Optional[T], op2: T) -> T:
@@ -209,14 +225,26 @@ class JacFeature:
209
225
  is_undirected=is_undirected, conn_type=conn_type, conn_assign=conn_assign
210
226
  )
211
227
 
212
-
213
- class JacBuiltin:
214
- """Jac Builtins."""
215
-
216
228
  @staticmethod
217
- def dotgen(node: NodeArchitype, radius: int = 0) -> str:
218
- """Print the dot graph."""
219
- return pm.hook.dotgen(node=node, radius=radius)
229
+ def with_llm(
230
+ model: Any, # noqa: ANN401
231
+ model_params: dict[str, Any],
232
+ incl_info: tuple,
233
+ excl_info: tuple,
234
+ inputs: tuple,
235
+ outputs: tuple,
236
+ action: str,
237
+ ) -> Any: # noqa: ANN401
238
+ """Jac's with_llm feature."""
239
+ return pm.hook.with_llm(
240
+ model=model,
241
+ model_params=model_params,
242
+ incl_info=incl_info,
243
+ excl_info=excl_info,
244
+ inputs=inputs,
245
+ outputs=outputs,
246
+ action=action,
247
+ )
220
248
 
221
249
 
222
250
  class JacCmd:
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(filename: str) -> bool:
92
- """Run the test suite in the specified .jac file.
93
-
94
- :param filename: The path to the .jac file.
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
@@ -204,13 +208,36 @@ class JacFeatureSpec:
204
208
  """Jac's root getter."""
205
209
  raise NotImplementedError
206
210
 
211
+ @staticmethod
212
+ @hookspec(firstresult=True)
213
+ def with_llm(
214
+ model: Any, # noqa: ANN401
215
+ model_params: dict[str, Any],
216
+ incl_info: tuple,
217
+ excl_info: tuple,
218
+ inputs: tuple,
219
+ outputs: tuple,
220
+ action: str,
221
+ ) -> Any: # noqa: ANN401
222
+ """Jac's with_llm stmt feature."""
223
+ raise NotImplementedError
224
+
207
225
 
208
226
  class JacBuiltin:
209
227
  """Jac Builtins."""
210
228
 
211
229
  @staticmethod
212
230
  @hookspec(firstresult=True)
213
- def dotgen(node: NodeArchitype, radius: int = 0) -> str:
231
+ def dotgen(
232
+ node: NodeArchitype,
233
+ depth: int,
234
+ traverse: bool,
235
+ edge_type: list[str],
236
+ bfs: bool,
237
+ edge_limit: int,
238
+ node_limit: int,
239
+ dot_file: Optional[str],
240
+ ) -> str:
214
241
  """Print the dot graph."""
215
242
  raise NotImplementedError
216
243
 
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()
@@ -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
@@ -109,6 +109,7 @@ class AstSyncTestMixin:
109
109
  "jac_source",
110
110
  "empty_token",
111
111
  "ast_symbol_node",
112
+ "ast_impl_needing_node",
112
113
  "ast_access_node",
113
114
  "token_symbol",
114
115
  "literal",
@@ -31,26 +31,20 @@ class JacFormatPassTests(TestCase):
31
31
  os.path.dirname(jaclang.__file__), "../examples/reference/edges_walk.jac"
32
32
  )
33
33
  out = AstTool().ir(["ast.", jac_file_path])
34
- forbidden_strings = ["<<", ">>", "<init>", "<super>"]
34
+ forbidden_strings = ["<<", ">>", "init", "super"]
35
35
  for i in forbidden_strings:
36
36
  self.assertNotIn(i, out)
37
37
 
38
38
  def test_print(self) -> None:
39
39
  """Testing for print AstTool."""
40
- jac_directory = os.path.join(
41
- os.path.dirname(jaclang.__file__), "../examples/reference/"
40
+ jac_file = os.path.join(
41
+ os.path.dirname(jaclang.__file__),
42
+ "../examples/reference/names_and_references.jac",
42
43
  )
43
- jac_files = [f for f in os.listdir(jac_directory) if f.endswith(".jac")]
44
- passed = 0
45
- for jac_file in jac_files:
46
- msg = "error in " + jac_file
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 for f in os.listdir(jac_py_directory) if f.endswith((".jac", ".py"))
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])
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaclang
3
- Version: 0.5.6
3
+ Version: 0.5.8
4
4
  Home-page: https://github.com/Jaseci-Labs/jaclang
5
5
  Author: Jason Mars
6
6
  Author-email: jason@jaseci.org
@@ -1,78 +1,80 @@
1
- jaclang/__init__.py,sha256=92Q6E1oxeYXTBn8LWwBHciEeQsYLr82lCwwCzzGn5yw,640
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=rSaSxUpyNUZ-HsBiS2iFMWtCeHkomsx5aIpuW9PrD-E,6578
4
- jaclang/cli/cmdreg.py,sha256=Tmxa3oo1BNOBs605TSOOD-KcIOBhUuIn7ZQtEaEGmco,6676
5
- jaclang/compiler/__init__.py,sha256=B07SnAx4emUUZoosOsqNwt9JnHnpEvOtjh5z6jz4hII,845
6
- jaclang/compiler/absyntree.py,sha256=54ZmMNDP44oDn5KfJU9fjnEnYmH8U1_6QGpCU4ck2jg,63970
7
- jaclang/compiler/codeloc.py,sha256=M5kMZ0diqifcH3P0PE3yIvtZaUw8dbgaF_Hrl393ca8,2659
8
- jaclang/compiler/compile.py,sha256=9sgC1iOibTk0zWSuZMOnAvAxBj0KwUBeY4MVvrpcqz8,2738
9
- jaclang/compiler/constant.py,sha256=Yzzz1u3GiRcPYUaBNQ4j3kZFLlonv2OiKNdPQuTusf4,5794
10
- jaclang/compiler/parser.py,sha256=q8B6DAn3ngB2Dv4q5T7UaxijcvPjEr7XnZtWW6rWjBY,130853
11
- jaclang/compiler/symtable.py,sha256=mFSKBiTQIJyWAFknokPHSz-tPy19YLu7XW4kP6Hv9ZQ,5171
12
- jaclang/compiler/workspace.py,sha256=5f_8ShPPT3yY8_vVQhiBRPgyiP_crQhOLy8uEsj-D8k,6741
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=38dMVW8DITq1vudSB6kWMowybfNVuqjfuH50DWcU_kI,320594
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=nFKwhbDkyeKldA1A9teON7zW1zJ9lMblGQ3oNF_nzBM,2579
20
- jaclang/compiler/passes/main/def_use_pass.py,sha256=1NGEfVLy1IsF0iYl6bda6CcrEuiFHTSZHj9pvZcMIFI,8575
21
- jaclang/compiler/passes/main/import_pass.py,sha256=zZ6E1awZLbOfhWRsHVZCPrS7XpjVmSy7rL4Bdo481rg,5983
22
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=ZBZKWfft1GYynvFpUoeEH6ZmmHUBNlpZ3TCe9A-pkDY,110371
23
- jaclang/compiler/passes/main/pyast_load_pass.py,sha256=vHgIYC5YOlv9TT8tXAZ5c7rsFzSBm8kw0AJEeEdY2C4,25332
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
- jaclang/compiler/passes/main/pyout_pass.py,sha256=u2JlV8gF4VF25hIt2GForWqCIMmbSlxDkE24Ehl-Kcc,3016
26
- jaclang/compiler/passes/main/schedules.py,sha256=ODyLVItL-cXxw0lzwan5RJlWlki2a-mhlkrDUngGTZc,895
26
+ jaclang/compiler/passes/main/pyout_pass.py,sha256=jw-ApCvVyAqynBFCArPQ20wq2ou0s7lTCGqcUyxrJWI,3018
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=g9UyCM1ZPsQ0Rzix3a2asdmstLTn3nZ0Zsp6gSJ363I,41194
29
- jaclang/compiler/passes/main/type_check_pass.py,sha256=Ithw0PTsEtf2OropKM4YP7XBRfe_bUk6kfn8XHX3NJc,3311
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
- jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=xxwobYmRS7YbjDojR24F4kd13J3aMCVimxmKUqwCgiM,1358
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=SrXHbWrMMC1obJamGsFzBgXs6InXfgIsJmv05GWDPH4,1131
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=XprSqlWlkq2hGDqdNRDvdFV5HtZdKiAFt9G-H2KVIuA,714
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=f9VfWZ7SyL2Tz9r-lQYltzsZDTiw_NuxUjQWejsyGkE,77769
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=hjVtkhhIJOipDj42nCIvn7-GZGpnLiU-XG7I79_Wuac,22313
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=1FEm2bE8zfwuXbBidF2yOaGJm5StmHLFASGNm1scxHc,3216
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
- jaclang/compiler/tests/fixtures/__jac_gen__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- jaclang/compiler/tests/fixtures/__jac_gen__/hello_world.py,sha256=KTrjDZb7nsRdlxY3Poc_ShDi_SfIfOQqaqG9SYU_6UA,117
57
58
  jaclang/core/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
58
- jaclang/core/construct.py,sha256=iuDFWmJesyjt2WkMw8idvSrUtsEdXfZWZ4a5rZOoUHo,11805
59
- jaclang/core/importer.py,sha256=e1XAyplPOAwg1cQ5_HjRBLSXaQ_IQZ7nyoynUbLmryw,3378
60
- jaclang/core/jacbuiltins.py,sha256=DyQVrwMH_BL1Fep1lk_3663xHneGAqgBsv3chRXOFss,245
61
- jaclang/core/utils.py,sha256=ZtacZBZVt21-ZRbdloHIbzDnXuiBmoqlEhEM1kUhPdY,810
59
+ jaclang/core/aott.py,sha256=DYk_jFdcTY5AMXpHePeHONquaPcq9UgIGk_sUrtwsbQ,1741
60
+ jaclang/core/construct.py,sha256=jZLere0irH-z2hjfc3Enuq9FmvWSiMjmDpDc5x4WkV0,13436
61
+ jaclang/core/importer.py,sha256=_ahfUAg8egcLkBxkh-2xzOPEa4gz1a0-6zrxeQDxkRg,3370
62
+ jaclang/core/utils.py,sha256=n400FVGmps2mLvXXoyhN5Ovr78YMD7a8f5yrSwSO4cY,3173
62
63
  jaclang/plugin/__init__.py,sha256=qLbQ2KjwyTvlV50Q7JTIznyIzuGDPjuwM_ZJjdk-avo,182
63
- jaclang/plugin/default.py,sha256=iqtTNUj9vDHG9c3eqS5oJyP2wwJDjUZ2fmuby-AO57E,12233
64
- jaclang/plugin/feature.py,sha256=ZSMh0qrEia66Bn8g2vlGgq_H5OLKAkZ-gpguLrZsEJA,6908
65
- jaclang/plugin/spec.py,sha256=SsGQOsVxdtwte9mgNklTQSkqn1Q3lG89AdUNBAGn6NA,6313
64
+ jaclang/plugin/builtin.py,sha256=D1R4GGNHX96P-wZnGm9OI4dMeCJvuXuHkCw2Cl5vaAU,1201
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
66
68
  jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
67
69
  jaclang/plugin/tests/test_features.py,sha256=uNQ52HHc0GiOGg5xUZk-ddafdtud0IHN4H_EUAs4er4,3547
68
70
  jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
69
- jaclang/utils/helpers.py,sha256=XQG4Mm49-peGJPy7p8UG0gqRcZ65jW1QiXMKqcFQSGs,3435
70
- jaclang/utils/lang_tools.py,sha256=0lV9VK_MzFB2gj6GGW6bMSbSYFRmLaFZCf4T5Gk1jkw,10736
71
+ jaclang/utils/helpers.py,sha256=V4mMBGP6cVp5lN9Dq99HQTZLMLyg8EVxuMR1I0ABV5I,4093
72
+ jaclang/utils/lang_tools.py,sha256=4GAeTTITQhzR2nUzSt16WXRjctMM0BEpW93JBvGXOaU,10905
71
73
  jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
72
- jaclang/utils/test.py,sha256=8zD1zA8N3S6DCR4sYnTqJDRcAA9uOhiS6GGNIXooio8,5403
73
- jaclang/utils/treeprinter.py,sha256=Y6RnLaBVZ5fvUvOYLPNFRv087Ame45gDJXVDoa75vvY,10476
74
+ jaclang/utils/test.py,sha256=LQKtY_DnWXUBbGVnpp05oMeGn24bTxawqrz5ZqZK0dQ,5444
75
+ jaclang/utils/treeprinter.py,sha256=RV7mmnlUdla_dYxIrwxsV2F32ncgEnB9PdA3ZnKLxPE,10934
74
76
  jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
75
- jaclang/utils/tests/test_lang_tools.py,sha256=wF_tdIZxhmh1k-Xr9vfOTdW_CSnwK4q1w03b7GRHQ8g,4111
77
+ jaclang/utils/tests/test_lang_tools.py,sha256=F95RBtFlk04z4me90yq-1p-p8QZzadjJ8mOLm7CblMc,3874
76
78
  jaclang/vendor/__init__.py,sha256=pbflH5hBfDiKfTJEjIXId44Eof8CVmXQlZwFYDG6_4E,35
77
79
  jaclang/vendor/mypy_extensions.py,sha256=iOL3eH2aQfacxQHcut7VgXt69Fh0BUTVW6D0TYjeV7U,6903
78
80
  jaclang/vendor/typing_extensions.py,sha256=46svwxMQkcZjZuJyb-kYHy_FgpXPZQY4vjGJmUcVLJ0,104792
@@ -398,8 +400,8 @@ jaclang/vendor/pluggy/_manager.py,sha256=fcYU7VER0CplRym4jAJ7RCFYl6cfDSeVM589YHH
398
400
  jaclang/vendor/pluggy/_result.py,sha256=wXDoVy68bOaOrBzQ0bWFb3HTbpqhvdQMgYwaZvfzxfA,3239
399
401
  jaclang/vendor/pluggy/_tracing.py,sha256=kSBr25F_rNklV2QhLD6h1jx6Z1kcKDRbuYvF5jv35pU,2089
400
402
  jaclang/vendor/pluggy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
401
- jaclang-0.5.6.dist-info/METADATA,sha256=ui3WOmmjnbfGHbLg4vAbKuzVbHfs4c5zkSMMuTM57ro,152
402
- jaclang-0.5.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
403
- jaclang-0.5.6.dist-info/entry_points.txt,sha256=Z-snS3MDBdV1Z4znXDZTenyyndovaNjqRkDW1t2kYSs,50
404
- jaclang-0.5.6.dist-info/top_level.txt,sha256=ZOAoLpE67ozkUJd-v3C59wBNXiteRD8IWPbsYB3M08g,8
405
- jaclang-0.5.6.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes
@@ -1,5 +0,0 @@
1
- """ Basic Hello World function """
2
- from __future__ import annotations
3
-
4
- def hello() -> None:
5
- return 'Hello World!'
@@ -1,10 +0,0 @@
1
- """Jac specific builtins."""
2
-
3
- from __future__ import annotations
4
-
5
- from jaclang.core.construct import NodeArchitype
6
-
7
-
8
- def dotgen(node: NodeArchitype, radius: int = 0) -> str:
9
- """Print the dot graph."""
10
- return f"dot graph for {node} here"