jaclang 0.7.18__py3-none-any.whl → 0.7.20__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 +2 -2
- jaclang/compiler/absyntree.py +1 -1
- jaclang/compiler/parser.py +1 -1
- jaclang/compiler/passes/ir_pass.py +2 -0
- jaclang/compiler/passes/main/__init__.py +1 -1
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +50 -13
- jaclang/compiler/passes/main/import_pass.py +29 -1
- jaclang/compiler/passes/main/py_collect_dep_pass.py +8 -0
- jaclang/compiler/passes/main/registry_pass.py +4 -0
- jaclang/compiler/passes/main/sym_tab_build_pass.py +0 -18
- jaclang/compiler/passes/main/tests/fixtures/mod_type_assign.jac +7 -0
- jaclang/compiler/passes/main/tests/fixtures/pygame_mock/__init__.pyi +3 -0
- jaclang/compiler/passes/main/tests/test_import_pass.py +10 -10
- jaclang/compiler/passes/main/tests/test_type_check_pass.py +1 -1
- jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +23 -1
- jaclang/compiler/passes/main/type_check_pass.py +4 -4
- jaclang/compiler/passes/tool/jac_formatter_pass.py +58 -30
- jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +57 -0
- jaclang/compiler/semtable.py +4 -4
- jaclang/compiler/symtable.py +5 -0
- jaclang/langserve/engine.py +68 -7
- jaclang/langserve/tests/test_server.py +3 -3
- jaclang/langserve/utils.py +0 -113
- jaclang/plugin/tests/test_jaseci.py +23 -4
- jaclang/runtimelib/importer.py +3 -0
- jaclang/runtimelib/machine.py +45 -3
- jaclang/runtimelib/memory.py +1 -1
- jaclang/settings.py +4 -0
- jaclang/stubs/jaclang/__init__.pyi +5 -0
- jaclang/stubs/jaclang/cli/__init__.pyi +0 -0
- jaclang/stubs/jaclang/cli/cli.pyi +58 -0
- jaclang/stubs/jaclang/cli/cmdreg.pyi +32 -0
- jaclang/stubs/jaclang/compiler/__init__.pyi +6 -0
- jaclang/stubs/jaclang/compiler/absyntree.pyi +1248 -0
- jaclang/stubs/jaclang/compiler/codeloc.pyi +45 -0
- jaclang/stubs/jaclang/compiler/compile.pyi +29 -0
- jaclang/stubs/jaclang/compiler/constant.pyi +287 -0
- jaclang/stubs/jaclang/compiler/generated/__init__.pyi +0 -0
- jaclang/stubs/jaclang/compiler/generated/jac_parser.pyi +898 -0
- jaclang/stubs/jaclang/compiler/parser.pyi +266 -0
- jaclang/stubs/jaclang/compiler/passes/__init__.pyi +3 -0
- jaclang/stubs/jaclang/compiler/passes/ir_pass.pyi +40 -0
- jaclang/stubs/jaclang/compiler/passes/main/__init__.pyi +27 -0
- jaclang/stubs/jaclang/compiler/passes/main/access_modifier_pass.pyi +23 -0
- jaclang/stubs/jaclang/compiler/passes/main/def_impl_match_pass.pyi +12 -0
- jaclang/stubs/jaclang/compiler/passes/main/def_use_pass.pyi +31 -0
- jaclang/stubs/jaclang/compiler/passes/main/fuse_typeinfo_pass.pyi +66 -0
- jaclang/stubs/jaclang/compiler/passes/main/import_pass.pyi +34 -0
- jaclang/stubs/jaclang/compiler/passes/main/pyast_gen_pass.pyi +178 -0
- jaclang/stubs/jaclang/compiler/passes/main/pyast_load_pass.pyi +135 -0
- jaclang/stubs/jaclang/compiler/passes/main/pybc_gen_pass.pyi +6 -0
- jaclang/stubs/jaclang/compiler/passes/main/pyjac_ast_link_pass.pyi +22 -0
- jaclang/stubs/jaclang/compiler/passes/main/pyout_pass.pyi +9 -0
- jaclang/stubs/jaclang/compiler/passes/main/registry_pass.pyi +15 -0
- jaclang/stubs/jaclang/compiler/passes/main/schedules.pyi +19 -0
- jaclang/stubs/jaclang/compiler/passes/main/sub_node_tab_pass.pyi +6 -0
- jaclang/stubs/jaclang/compiler/passes/main/sym_tab_build_pass.pyi +147 -0
- jaclang/stubs/jaclang/compiler/passes/main/type_check_pass.pyi +11 -0
- jaclang/stubs/jaclang/compiler/passes/tool/__init__.pyi +4 -0
- jaclang/stubs/jaclang/compiler/passes/tool/fuse_comments_pass.pyi +12 -0
- jaclang/stubs/jaclang/compiler/passes/tool/jac_formatter_pass.pyi +134 -0
- jaclang/stubs/jaclang/compiler/passes/tool/schedules.pyi +11 -0
- jaclang/stubs/jaclang/compiler/passes/transform.pyi +28 -0
- jaclang/stubs/jaclang/compiler/passes/utils/__init__.pyi +0 -0
- jaclang/stubs/jaclang/compiler/passes/utils/mypy_ast_build.pyi +151 -0
- jaclang/stubs/jaclang/compiler/semtable.pyi +35 -0
- jaclang/stubs/jaclang/compiler/symtable.pyi +65 -0
- jaclang/stubs/jaclang/langserve/__init__.pyi +0 -0
- jaclang/stubs/jaclang/langserve/engine.pyi +73 -0
- jaclang/stubs/jaclang/langserve/sem_manager.pyi +89 -0
- jaclang/stubs/jaclang/langserve/server.pyi +38 -0
- jaclang/stubs/jaclang/langserve/utils.pyi +55 -0
- jaclang/stubs/jaclang/plugin/__init__.pyi +3 -0
- jaclang/stubs/jaclang/plugin/builtin.pyi +12 -0
- jaclang/stubs/jaclang/plugin/default.pyi +202 -0
- jaclang/stubs/jaclang/plugin/feature.pyi +176 -0
- jaclang/stubs/jaclang/plugin/spec.pyi +181 -0
- jaclang/stubs/jaclang/runtimelib/__init__.pyi +0 -0
- jaclang/stubs/jaclang/runtimelib/architype.pyi +133 -0
- jaclang/stubs/jaclang/runtimelib/constructs.pyi +41 -0
- jaclang/stubs/jaclang/runtimelib/context.pyi +48 -0
- jaclang/stubs/jaclang/runtimelib/importer.pyi +104 -0
- jaclang/stubs/jaclang/runtimelib/machine.pyi +6 -0
- jaclang/stubs/jaclang/runtimelib/memory.pyi +26 -0
- jaclang/stubs/jaclang/runtimelib/utils.pyi +35 -0
- jaclang/stubs/jaclang/settings.pyi +35 -0
- jaclang/stubs/jaclang/utils/__init__.pyi +0 -0
- jaclang/stubs/jaclang/utils/helpers.pyi +18 -0
- jaclang/stubs/jaclang/utils/lang_tools.pyi +43 -0
- jaclang/stubs/jaclang/utils/log.pyi +3 -0
- jaclang/stubs/jaclang/utils/treeprinter.pyi +47 -0
- jaclang/tests/fixtures/bar.jac +1 -1
- jaclang/tests/fixtures/builtins_test.jac +16 -0
- jaclang/tests/fixtures/foo.jac +0 -1
- jaclang/tests/fixtures/match_multi_ex.jac +12 -0
- jaclang/tests/fixtures/walker_update.jac +19 -0
- jaclang/tests/test_cli.py +29 -2
- jaclang/tests/test_language.py +70 -2
- jaclang/utils/treeprinter.py +1 -1
- {jaclang-0.7.18.dist-info → jaclang-0.7.20.dist-info}/METADATA +4 -2
- {jaclang-0.7.18.dist-info → jaclang-0.7.20.dist-info}/RECORD +103 -34
- {jaclang-0.7.18.dist-info → jaclang-0.7.20.dist-info}/WHEEL +0 -0
- {jaclang-0.7.18.dist-info → jaclang-0.7.20.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from jaclang.compiler import jac_lark as jl
|
|
4
|
+
from jaclang.compiler.constant import EdgeDir as EdgeDir
|
|
5
|
+
from jaclang.compiler.passes.ir_pass import Pass as Pass
|
|
6
|
+
from jaclang.vendor.lark import (
|
|
7
|
+
Lark as Lark,
|
|
8
|
+
Transformer as Transformer,
|
|
9
|
+
Tree as Tree,
|
|
10
|
+
logger as logger,
|
|
11
|
+
)
|
|
12
|
+
from typing import Callable, TypeAlias
|
|
13
|
+
|
|
14
|
+
class JacParser(Pass):
|
|
15
|
+
dev_mode: bool
|
|
16
|
+
source: Incomplete
|
|
17
|
+
mod_path: Incomplete
|
|
18
|
+
node_list: Incomplete
|
|
19
|
+
def __init__(self, input_ir: ast.JacSource) -> None: ...
|
|
20
|
+
def transform(self, ir: ast.AstNode) -> ast.Module: ...
|
|
21
|
+
@staticmethod
|
|
22
|
+
def proc_comment(token: jl.Token, mod: ast.AstNode) -> ast.CommentToken: ...
|
|
23
|
+
def error_callback(self, e: jl.UnexpectedInput) -> bool: ...
|
|
24
|
+
@staticmethod
|
|
25
|
+
def parse(
|
|
26
|
+
ir: str, on_error: Callable[[jl.UnexpectedInput], bool]
|
|
27
|
+
) -> tuple[jl.Tree[jl.Tree[str]], list[jl.Token]]: ...
|
|
28
|
+
@staticmethod
|
|
29
|
+
def make_dev() -> None: ...
|
|
30
|
+
comment_cache: list[jl.Token]
|
|
31
|
+
parser: Incomplete
|
|
32
|
+
JacTransformer: TypeAlias
|
|
33
|
+
|
|
34
|
+
class TreeToAST(JacTransformer):
|
|
35
|
+
parse_ref: Incomplete
|
|
36
|
+
terminals: Incomplete
|
|
37
|
+
def __init__(self, parser: JacParser, *args: bool, **kwargs: bool) -> None: ...
|
|
38
|
+
def ice(self) -> Exception: ...
|
|
39
|
+
def nu(self, node: ast.T) -> ast.T: ...
|
|
40
|
+
def start(self, kid: list[ast.Module]) -> ast.Module: ...
|
|
41
|
+
def module(
|
|
42
|
+
self, kid: list[ast.ElementStmt | ast.String | ast.EmptyToken]
|
|
43
|
+
) -> ast.Module: ...
|
|
44
|
+
def element_with_doc(
|
|
45
|
+
self, kid: list[ast.ElementStmt | ast.String]
|
|
46
|
+
) -> ast.ElementStmt: ...
|
|
47
|
+
def element(self, kid: list[ast.AstNode]) -> ast.ElementStmt: ...
|
|
48
|
+
def global_var(self, kid: list[ast.AstNode]) -> ast.GlobalVars: ...
|
|
49
|
+
def access_tag(self, kid: list[ast.AstNode]) -> ast.SubTag[ast.Token]: ...
|
|
50
|
+
def test(self, kid: list[ast.AstNode]) -> ast.Test: ...
|
|
51
|
+
def free_code(self, kid: list[ast.AstNode]) -> ast.ModuleCode: ...
|
|
52
|
+
def doc_tag(self, kid: list[ast.AstNode]) -> ast.String: ...
|
|
53
|
+
def py_code_block(self, kid: list[ast.AstNode]) -> ast.PyInlineCode: ...
|
|
54
|
+
def import_stmt(self, kid: list[ast.AstNode]) -> ast.Import: ...
|
|
55
|
+
def from_path(self, kid: list[ast.AstNode]) -> ast.ModulePath: ...
|
|
56
|
+
def include_stmt(self, kid: list[ast.AstNode]) -> ast.Import: ...
|
|
57
|
+
def import_path(self, kid: list[ast.AstNode]) -> ast.ModulePath: ...
|
|
58
|
+
def import_items(
|
|
59
|
+
self, kid: list[ast.AstNode]
|
|
60
|
+
) -> ast.SubNodeList[ast.ModuleItem]: ...
|
|
61
|
+
def import_item(self, kid: list[ast.AstNode]) -> ast.ModuleItem: ...
|
|
62
|
+
def architype(
|
|
63
|
+
self, kid: list[ast.AstNode]
|
|
64
|
+
) -> ast.ArchSpec | ast.ArchDef | ast.Enum | ast.EnumDef: ...
|
|
65
|
+
def architype_decl(self, kid: list[ast.AstNode]) -> ast.ArchSpec: ...
|
|
66
|
+
def architype_def(self, kid: list[ast.AstNode]) -> ast.ArchDef: ...
|
|
67
|
+
def arch_type(self, kid: list[ast.AstNode]) -> ast.Token: ...
|
|
68
|
+
def decorators(self, kid: list[ast.AstNode]) -> ast.SubNodeList[ast.Expr]: ...
|
|
69
|
+
def inherited_archs(
|
|
70
|
+
self, kid: list[ast.AstNode]
|
|
71
|
+
) -> ast.SubNodeList[ast.Expr]: ...
|
|
72
|
+
def sub_name(self, kid: list[ast.AstNode]) -> ast.SubTag[ast.Name]: ...
|
|
73
|
+
def named_ref(self, kid: list[ast.AstNode]) -> ast.NameAtom: ...
|
|
74
|
+
def special_ref(self, kid: list[ast.AstNode]) -> ast.SpecialVarRef: ...
|
|
75
|
+
def enum(self, kid: list[ast.AstNode]) -> ast.Enum | ast.EnumDef: ...
|
|
76
|
+
def enum_decl(self, kid: list[ast.AstNode]) -> ast.Enum: ...
|
|
77
|
+
def enum_def(self, kid: list[ast.AstNode]) -> ast.EnumDef: ...
|
|
78
|
+
def enum_block(
|
|
79
|
+
self, kid: list[ast.AstNode]
|
|
80
|
+
) -> ast.SubNodeList[ast.EnumBlockStmt]: ...
|
|
81
|
+
def enum_stmt(self, kid: list[ast.AstNode]) -> ast.EnumBlockStmt: ...
|
|
82
|
+
def ability(
|
|
83
|
+
self, kid: list[ast.AstNode]
|
|
84
|
+
) -> ast.Ability | ast.AbilityDef | ast.FuncCall: ...
|
|
85
|
+
def ability_decl(self, kid: list[ast.AstNode]) -> ast.Ability: ...
|
|
86
|
+
def ability_def(self, kid: list[ast.AstNode]) -> ast.AbilityDef: ...
|
|
87
|
+
def abstract_ability(self, kid: list[ast.AstNode]) -> ast.Ability: ...
|
|
88
|
+
def genai_ability(self, kid: list[ast.AstNode]) -> ast.Ability: ...
|
|
89
|
+
def event_clause(self, kid: list[ast.AstNode]) -> ast.EventSignature: ...
|
|
90
|
+
def func_decl(self, kid: list[ast.AstNode]) -> ast.FuncSignature: ...
|
|
91
|
+
def func_decl_params(
|
|
92
|
+
self, kid: list[ast.AstNode]
|
|
93
|
+
) -> ast.SubNodeList[ast.ParamVar]: ...
|
|
94
|
+
def param_var(self, kid: list[ast.AstNode]) -> ast.ParamVar: ...
|
|
95
|
+
def member_block(
|
|
96
|
+
self, kid: list[ast.AstNode]
|
|
97
|
+
) -> ast.SubNodeList[ast.ArchBlockStmt]: ...
|
|
98
|
+
def member_stmt(self, kid: list[ast.AstNode]) -> ast.ArchBlockStmt: ...
|
|
99
|
+
def has_stmt(self, kid: list[ast.AstNode]) -> ast.ArchHas: ...
|
|
100
|
+
def has_assign_list(
|
|
101
|
+
self, kid: list[ast.AstNode]
|
|
102
|
+
) -> ast.SubNodeList[ast.HasVar]: ...
|
|
103
|
+
def typed_has_clause(self, kid: list[ast.AstNode]) -> ast.HasVar: ...
|
|
104
|
+
def type_tag(self, kid: list[ast.AstNode]) -> ast.SubTag[ast.Expr]: ...
|
|
105
|
+
def builtin_type(self, kid: list[ast.AstNode]) -> ast.Token: ...
|
|
106
|
+
def code_block(
|
|
107
|
+
self, kid: list[ast.AstNode]
|
|
108
|
+
) -> ast.SubNodeList[ast.CodeBlockStmt]: ...
|
|
109
|
+
def statement(self, kid: list[ast.AstNode]) -> ast.CodeBlockStmt: ...
|
|
110
|
+
def typed_ctx_block(self, kid: list[ast.AstNode]) -> ast.TypedCtxBlock: ...
|
|
111
|
+
def if_stmt(self, kid: list[ast.AstNode]) -> ast.IfStmt: ...
|
|
112
|
+
def elif_stmt(self, kid: list[ast.AstNode]) -> ast.ElseIf: ...
|
|
113
|
+
def else_stmt(self, kid: list[ast.AstNode]) -> ast.ElseStmt: ...
|
|
114
|
+
def try_stmt(self, kid: list[ast.AstNode]) -> ast.TryStmt: ...
|
|
115
|
+
def except_list(
|
|
116
|
+
self, kid: list[ast.AstNode]
|
|
117
|
+
) -> ast.SubNodeList[ast.Except]: ...
|
|
118
|
+
def except_def(self, kid: list[ast.AstNode]) -> ast.Except: ...
|
|
119
|
+
def finally_stmt(self, kid: list[ast.AstNode]) -> ast.FinallyStmt: ...
|
|
120
|
+
def for_stmt(
|
|
121
|
+
self, kid: list[ast.AstNode]
|
|
122
|
+
) -> ast.IterForStmt | ast.InForStmt: ...
|
|
123
|
+
def while_stmt(self, kid: list[ast.AstNode]) -> ast.WhileStmt: ...
|
|
124
|
+
def with_stmt(self, kid: list[ast.AstNode]) -> ast.WithStmt: ...
|
|
125
|
+
def expr_as_list(
|
|
126
|
+
self, kid: list[ast.AstNode]
|
|
127
|
+
) -> ast.SubNodeList[ast.ExprAsItem]: ...
|
|
128
|
+
def expr_as(self, kid: list[ast.AstNode]) -> ast.ExprAsItem: ...
|
|
129
|
+
def raise_stmt(self, kid: list[ast.AstNode]) -> ast.RaiseStmt: ...
|
|
130
|
+
def assert_stmt(self, kid: list[ast.AstNode]) -> ast.AssertStmt: ...
|
|
131
|
+
def check_stmt(self, kid: list[ast.AstNode]) -> ast.CheckStmt: ...
|
|
132
|
+
def ctrl_stmt(self, kid: list[ast.AstNode]) -> ast.CtrlStmt: ...
|
|
133
|
+
def delete_stmt(self, kid: list[ast.AstNode]) -> ast.DeleteStmt: ...
|
|
134
|
+
def report_stmt(self, kid: list[ast.AstNode]) -> ast.ReportStmt: ...
|
|
135
|
+
def return_stmt(self, kid: list[ast.AstNode]) -> ast.ReturnStmt: ...
|
|
136
|
+
def walker_stmt(self, kid: list[ast.AstNode]) -> ast.CodeBlockStmt: ...
|
|
137
|
+
def ignore_stmt(self, kid: list[ast.AstNode]) -> ast.IgnoreStmt: ...
|
|
138
|
+
def visit_stmt(self, kid: list[ast.AstNode]) -> ast.VisitStmt: ...
|
|
139
|
+
def revisit_stmt(self, kid: list[ast.AstNode]) -> ast.RevisitStmt: ...
|
|
140
|
+
def disengage_stmt(self, kid: list[ast.AstNode]) -> ast.DisengageStmt: ...
|
|
141
|
+
def global_ref(self, kid: list[ast.AstNode]) -> ast.GlobalStmt: ...
|
|
142
|
+
def nonlocal_ref(self, kid: list[ast.AstNode]) -> ast.NonLocalStmt: ...
|
|
143
|
+
def assignment(self, kid: list[ast.AstNode]) -> ast.Assignment: ...
|
|
144
|
+
def expression(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
145
|
+
def walrus_assign(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
146
|
+
def binary_expr_unwind(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
147
|
+
def lambda_expr(self, kid: list[ast.AstNode]) -> ast.LambdaExpr: ...
|
|
148
|
+
def pipe(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
149
|
+
def pipe_back(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
150
|
+
def elvis_check(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
151
|
+
def bitwise_or(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
152
|
+
def bitwise_xor(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
153
|
+
def bitwise_and(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
154
|
+
def shift(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
155
|
+
def logical_or(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
156
|
+
def logical_and(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
157
|
+
def logical_not(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
158
|
+
def compare(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
159
|
+
def cmp_op(self, kid: list[ast.AstNode]) -> ast.Token: ...
|
|
160
|
+
def arithmetic(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
161
|
+
def term(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
162
|
+
def factor(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
163
|
+
def power(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
164
|
+
def connect(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
165
|
+
def atomic_pipe(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
166
|
+
def atomic_pipe_back(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
167
|
+
def ds_spawn(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
168
|
+
def unpack(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
169
|
+
def ref(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
170
|
+
def pipe_call(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
171
|
+
def aug_op(self, kid: list[ast.AstNode]) -> ast.Token: ...
|
|
172
|
+
def atomic_chain(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
173
|
+
def atomic_call(self, kid: list[ast.AstNode]) -> ast.FuncCall: ...
|
|
174
|
+
def index_slice(self, kid: list[ast.AstNode]) -> ast.IndexSlice: ...
|
|
175
|
+
def atom(self, kid: list[ast.AstNode]) -> ast.Expr: ...
|
|
176
|
+
def yield_expr(self, kid: list[ast.AstNode]) -> ast.YieldExpr: ...
|
|
177
|
+
def atom_literal(self, kid: list[ast.AstNode]) -> ast.AtomExpr: ...
|
|
178
|
+
def atom_collection(self, kid: list[ast.AstNode]) -> ast.AtomExpr: ...
|
|
179
|
+
def multistring(self, kid: list[ast.AstNode]) -> ast.AtomExpr: ...
|
|
180
|
+
def fstring(self, kid: list[ast.AstNode]) -> ast.FString: ...
|
|
181
|
+
def fstr_parts(
|
|
182
|
+
self, kid: list[ast.AstNode]
|
|
183
|
+
) -> ast.SubNodeList[ast.String | ast.ExprStmt]: ...
|
|
184
|
+
def fstr_sq_parts(
|
|
185
|
+
self, kid: list[ast.AstNode]
|
|
186
|
+
) -> ast.SubNodeList[ast.String | ast.ExprStmt]: ...
|
|
187
|
+
def list_val(self, kid: list[ast.AstNode]) -> ast.ListVal: ...
|
|
188
|
+
def tuple_val(self, kid: list[ast.AstNode]) -> ast.TupleVal: ...
|
|
189
|
+
def set_val(self, kid: list[ast.AstNode]) -> ast.SetVal: ...
|
|
190
|
+
def expr_list(self, kid: list[ast.AstNode]) -> ast.SubNodeList[ast.Expr]: ...
|
|
191
|
+
def kw_expr_list(
|
|
192
|
+
self, kid: list[ast.AstNode]
|
|
193
|
+
) -> ast.SubNodeList[ast.KWPair]: ...
|
|
194
|
+
def kw_expr(self, kid: list[ast.AstNode]) -> ast.KWPair: ...
|
|
195
|
+
def name_list(self, kid: list[ast.AstNode]) -> ast.SubNodeList[ast.Name]: ...
|
|
196
|
+
def tuple_list(
|
|
197
|
+
self, kid: list[ast.AstNode]
|
|
198
|
+
) -> ast.SubNodeList[ast.Expr | ast.KWPair]: ...
|
|
199
|
+
def dict_val(self, kid: list[ast.AstNode]) -> ast.DictVal: ...
|
|
200
|
+
def kv_pair(self, kid: list[ast.AstNode]) -> ast.KVPair: ...
|
|
201
|
+
def list_compr(self, kid: list[ast.AstNode]) -> ast.ListCompr: ...
|
|
202
|
+
def gen_compr(self, kid: list[ast.AstNode]) -> ast.GenCompr: ...
|
|
203
|
+
def set_compr(self, kid: list[ast.AstNode]) -> ast.SetCompr: ...
|
|
204
|
+
def dict_compr(self, kid: list[ast.AstNode]) -> ast.DictCompr: ...
|
|
205
|
+
def inner_compr(self, kid: list[ast.AstNode]) -> ast.InnerCompr: ...
|
|
206
|
+
def param_list(
|
|
207
|
+
self, kid: list[ast.AstNode]
|
|
208
|
+
) -> ast.SubNodeList[ast.Expr | ast.KWPair]: ...
|
|
209
|
+
def assignment_list(
|
|
210
|
+
self, kid: list[ast.AstNode]
|
|
211
|
+
) -> ast.SubNodeList[ast.Assignment]: ...
|
|
212
|
+
def arch_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
213
|
+
def node_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
214
|
+
def edge_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
215
|
+
def walker_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
216
|
+
def class_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
217
|
+
def object_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
218
|
+
def type_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
219
|
+
def enum_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
220
|
+
def ability_ref(self, kid: list[ast.AstNode]) -> ast.ArchRef: ...
|
|
221
|
+
def arch_or_ability_chain(self, kid: list[ast.AstNode]) -> ast.ArchRefChain: ...
|
|
222
|
+
def abil_to_arch_chain(self, kid: list[ast.AstNode]) -> ast.ArchRefChain: ...
|
|
223
|
+
def arch_to_abil_chain(self, kid: list[ast.AstNode]) -> ast.ArchRefChain: ...
|
|
224
|
+
def arch_to_enum_chain(self, kid: list[ast.AstNode]) -> ast.ArchRefChain: ...
|
|
225
|
+
def edge_ref_chain(self, kid: list[ast.AstNode]) -> ast.EdgeRefTrailer: ...
|
|
226
|
+
def edge_op_ref(self, kid: list[ast.AstNode]) -> ast.EdgeOpRef: ...
|
|
227
|
+
def edge_to(self, kid: list[ast.AstNode]) -> ast.EdgeOpRef: ...
|
|
228
|
+
def edge_from(self, kid: list[ast.AstNode]) -> ast.EdgeOpRef: ...
|
|
229
|
+
def edge_any(self, kid: list[ast.AstNode]) -> ast.EdgeOpRef: ...
|
|
230
|
+
def connect_op(self, kid: list[ast.AstNode]) -> ast.ConnectOp: ...
|
|
231
|
+
def disconnect_op(self, kid: list[ast.AstNode]) -> ast.DisconnectOp: ...
|
|
232
|
+
def connect_to(self, kid: list[ast.AstNode]) -> ast.ConnectOp: ...
|
|
233
|
+
def connect_from(self, kid: list[ast.AstNode]) -> ast.ConnectOp: ...
|
|
234
|
+
def connect_any(self, kid: list[ast.AstNode]) -> ast.ConnectOp: ...
|
|
235
|
+
def filter_compr(self, kid: list[ast.AstNode]) -> ast.FilterCompr: ...
|
|
236
|
+
def filter_compare_list(
|
|
237
|
+
self, kid: list[ast.AstNode]
|
|
238
|
+
) -> ast.SubNodeList[ast.CompareExpr]: ...
|
|
239
|
+
def typed_filter_compare_list(
|
|
240
|
+
self, kid: list[ast.AstNode]
|
|
241
|
+
) -> ast.FilterCompr: ...
|
|
242
|
+
def filter_compare_item(self, kid: list[ast.AstNode]) -> ast.CompareExpr: ...
|
|
243
|
+
def assign_compr(self, kid: list[ast.AstNode]) -> ast.AssignCompr: ...
|
|
244
|
+
def match_stmt(self, kid: list[ast.AstNode]) -> ast.MatchStmt: ...
|
|
245
|
+
def match_case_block(self, kid: list[ast.AstNode]) -> ast.MatchCase: ...
|
|
246
|
+
def pattern_seq(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
247
|
+
def or_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
248
|
+
def as_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
249
|
+
def pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
250
|
+
def literal_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
251
|
+
def singleton_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
252
|
+
def capture_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
253
|
+
def sequence_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
254
|
+
def mapping_pattern(self, kid: list[ast.AstNode]) -> ast.MatchMapping: ...
|
|
255
|
+
def list_inner_pattern(self, kid: list[ast.AstNode]) -> ast.MatchPattern: ...
|
|
256
|
+
def dict_inner_pattern(
|
|
257
|
+
self, kid: list[ast.AstNode]
|
|
258
|
+
) -> ast.MatchKVPair | ast.MatchStar: ...
|
|
259
|
+
def class_pattern(self, kid: list[ast.AstNode]) -> ast.MatchArch: ...
|
|
260
|
+
def pattern_list(
|
|
261
|
+
self, kid: list[ast.AstNode]
|
|
262
|
+
) -> ast.SubNodeList[ast.MatchPattern]: ...
|
|
263
|
+
def kw_pattern_list(
|
|
264
|
+
self, kid: list[ast.AstNode]
|
|
265
|
+
) -> ast.SubNodeList[ast.MatchKVPair]: ...
|
|
266
|
+
def __default_token__(self, token: jl.Token) -> ast.Token: ...
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from jaclang.compiler.passes.transform import Transform as Transform
|
|
4
|
+
from jaclang.settings import settings as settings
|
|
5
|
+
from jaclang.utils.helpers import pascal_to_snake as pascal_to_snake
|
|
6
|
+
from typing import TypeVar
|
|
7
|
+
|
|
8
|
+
T = TypeVar("T", bound=ast.AstNode)
|
|
9
|
+
|
|
10
|
+
class Pass(Transform[T]):
|
|
11
|
+
term_signal: bool
|
|
12
|
+
prune_signal: bool
|
|
13
|
+
ir: Incomplete
|
|
14
|
+
time_taken: float
|
|
15
|
+
def __init__(self, input_ir: T, prior: Transform | None) -> None: ...
|
|
16
|
+
def before_pass(self) -> None: ...
|
|
17
|
+
def after_pass(self) -> None: ...
|
|
18
|
+
def enter_node(self, node: ast.AstNode) -> None: ...
|
|
19
|
+
def exit_node(self, node: ast.AstNode) -> None: ...
|
|
20
|
+
def terminate(self) -> None: ...
|
|
21
|
+
def prune(self) -> None: ...
|
|
22
|
+
@staticmethod
|
|
23
|
+
def get_all_sub_nodes(
|
|
24
|
+
node: ast.AstNode, typ: type[T], brute_force: bool = False
|
|
25
|
+
) -> list[T]: ...
|
|
26
|
+
@staticmethod
|
|
27
|
+
def has_parent_of_type(node: ast.AstNode, typ: type[T]) -> T | None: ...
|
|
28
|
+
@staticmethod
|
|
29
|
+
def has_parent_of_node(node: ast.AstNode, parent: ast.AstNode) -> bool: ...
|
|
30
|
+
def recalculate_parents(self, node: ast.AstNode) -> None: ...
|
|
31
|
+
def transform(self, ir: T) -> ast.AstNode: ...
|
|
32
|
+
cur_node: Incomplete
|
|
33
|
+
def traverse(self, node: ast.AstNode) -> ast.AstNode: ...
|
|
34
|
+
def error(self, msg: str, node_override: ast.AstNode | None = None) -> None: ...
|
|
35
|
+
def warning(self, msg: str, node_override: ast.AstNode | None = None) -> None: ...
|
|
36
|
+
def ice(self, msg: str = "Something went horribly wrong!") -> RuntimeError: ...
|
|
37
|
+
|
|
38
|
+
class PrinterPass(Pass):
|
|
39
|
+
def enter_node(self, node: ast.AstNode) -> None: ...
|
|
40
|
+
def exit_node(self, node: ast.AstNode) -> None: ...
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from .def_impl_match_pass import DeclImplMatchPass as DeclImplMatchPass
|
|
2
|
+
from .def_use_pass import DefUsePass as DefUsePass
|
|
3
|
+
from .import_pass import JacImportPass as JacImportPass, PyImportPass as PyImportPass
|
|
4
|
+
from .pyast_gen_pass import PyastGenPass as PyastGenPass
|
|
5
|
+
from .pyast_load_pass import PyastBuildPass as PyastBuildPass
|
|
6
|
+
from .pyout_pass import PyOutPass as PyOutPass
|
|
7
|
+
from .registry_pass import RegistryPass as RegistryPass
|
|
8
|
+
from .schedules import py_code_gen
|
|
9
|
+
from .sub_node_tab_pass import SubNodeTabPass as SubNodeTabPass
|
|
10
|
+
from .sym_tab_build_pass import SymTabBuildPass as SymTabBuildPass
|
|
11
|
+
from .type_check_pass import JacTypeCheckPass as JacTypeCheckPass
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"SubNodeTabPass",
|
|
15
|
+
"JacImportPass",
|
|
16
|
+
"PyImportPass",
|
|
17
|
+
"SymTabBuildPass",
|
|
18
|
+
"DeclImplMatchPass",
|
|
19
|
+
"DefUsePass",
|
|
20
|
+
"PyOutPass",
|
|
21
|
+
"PyastBuildPass",
|
|
22
|
+
"PyastGenPass",
|
|
23
|
+
"JacTypeCheckPass",
|
|
24
|
+
"RegistryPass",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
pass_schedule = py_code_gen
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from jaclang.compiler.constant import SymbolAccess as SymbolAccess
|
|
3
|
+
from jaclang.compiler.passes import Pass as Pass
|
|
4
|
+
from jaclang.compiler.symtable import SymbolTable as SymbolTable
|
|
5
|
+
from jaclang.settings import settings as settings
|
|
6
|
+
|
|
7
|
+
class AccessCheckPass(Pass):
|
|
8
|
+
def after_pass(self) -> None: ...
|
|
9
|
+
def exit_node(self, node: ast.AstNode) -> None: ...
|
|
10
|
+
def access_check(self, node: ast.Name) -> None: ...
|
|
11
|
+
def access_register(
|
|
12
|
+
self, node: ast.AstSymbolNode, acc_tag: SymbolAccess | None = None
|
|
13
|
+
) -> None: ...
|
|
14
|
+
def enter_global_vars(self, node: ast.GlobalVars) -> None: ...
|
|
15
|
+
def enter_module(self, node: ast.Module) -> None: ...
|
|
16
|
+
def enter_architype(self, node: ast.Architype) -> None: ...
|
|
17
|
+
def enter_enum(self, node: ast.Enum) -> None: ...
|
|
18
|
+
def enter_ability(self, node: ast.Ability) -> None: ...
|
|
19
|
+
def enter_sub_node_list(self, node: ast.SubNodeList) -> None: ...
|
|
20
|
+
def enter_arch_has(self, node: ast.ArchHas) -> None: ...
|
|
21
|
+
def enter_atom_trailer(self, node: ast.AtomTrailer) -> None: ...
|
|
22
|
+
def enter_func_call(self, node: ast.FuncCall) -> None: ...
|
|
23
|
+
def enter_name(self, node: ast.Name) -> None: ...
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from jaclang.compiler.passes import Pass as Pass
|
|
4
|
+
from jaclang.compiler.passes.main import SubNodeTabPass as SubNodeTabPass
|
|
5
|
+
from jaclang.compiler.symtable import Symbol as Symbol, SymbolTable as SymbolTable
|
|
6
|
+
|
|
7
|
+
class DeclImplMatchPass(Pass):
|
|
8
|
+
def enter_module(self, node: ast.Module) -> None: ...
|
|
9
|
+
ir: Incomplete
|
|
10
|
+
def after_pass(self) -> None: ...
|
|
11
|
+
def defn_lookup(self, lookup: Symbol) -> ast.NameAtom | None: ...
|
|
12
|
+
def connect_def_impl(self, sym_tab: SymbolTable) -> None: ...
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from jaclang.compiler.passes import Pass as Pass
|
|
3
|
+
|
|
4
|
+
class DefUsePass(Pass):
|
|
5
|
+
def after_pass(self) -> None: ...
|
|
6
|
+
def enter_architype(self, node: ast.Architype) -> None: ...
|
|
7
|
+
def enter_enum(self, node: ast.Enum) -> None: ...
|
|
8
|
+
def enter_arch_ref(self, node: ast.ArchRef) -> None: ...
|
|
9
|
+
def enter_arch_ref_chain(self, node: ast.ArchRefChain) -> None: ...
|
|
10
|
+
def enter_param_var(self, node: ast.ParamVar) -> None: ...
|
|
11
|
+
def enter_has_var(self, node: ast.HasVar) -> None: ...
|
|
12
|
+
def enter_assignment(self, node: ast.Assignment) -> None: ...
|
|
13
|
+
def enter_inner_compr(self, node: ast.InnerCompr) -> None: ...
|
|
14
|
+
def enter_atom_trailer(self, node: ast.AtomTrailer) -> None: ...
|
|
15
|
+
def enter_func_call(self, node: ast.FuncCall) -> None: ...
|
|
16
|
+
def enter_index_slice(self, node: ast.IndexSlice) -> None: ...
|
|
17
|
+
def enter_special_var_ref(self, node: ast.SpecialVarRef) -> None: ...
|
|
18
|
+
def enter_edge_op_ref(self, node: ast.EdgeOpRef) -> None: ...
|
|
19
|
+
def enter_disconnect_op(self, node: ast.DisconnectOp) -> None: ...
|
|
20
|
+
def enter_connect_op(self, node: ast.ConnectOp) -> None: ...
|
|
21
|
+
def enter_filter_compr(self, node: ast.FilterCompr) -> None: ...
|
|
22
|
+
def enter_token(self, node: ast.Token) -> None: ...
|
|
23
|
+
def enter_float(self, node: ast.Float) -> None: ...
|
|
24
|
+
def enter_int(self, node: ast.Int) -> None: ...
|
|
25
|
+
def enter_string(self, node: ast.String) -> None: ...
|
|
26
|
+
def enter_bool(self, node: ast.Bool) -> None: ...
|
|
27
|
+
def enter_builtin_type(self, node: ast.BuiltinType) -> None: ...
|
|
28
|
+
def enter_name(self, node: ast.Name) -> None: ...
|
|
29
|
+
def enter_in_for_stmt(self, node: ast.InForStmt) -> None: ...
|
|
30
|
+
def enter_delete_stmt(self, node: ast.DeleteStmt) -> None: ...
|
|
31
|
+
def enter_expr_as_item(self, node: ast.ExprAsItem) -> None: ...
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
import mypy.nodes as MypyNodes
|
|
3
|
+
import mypy.types as MypyTypes
|
|
4
|
+
from jaclang.compiler.passes import Pass as Pass
|
|
5
|
+
from jaclang.compiler.symtable import SymbolTable as SymbolTable
|
|
6
|
+
from jaclang.settings import settings as settings
|
|
7
|
+
from jaclang.utils.helpers import pascal_to_snake as pascal_to_snake
|
|
8
|
+
from jaclang.vendor.mypy.nodes import Node as VNode
|
|
9
|
+
from mypy.checkexpr import Type as MyType
|
|
10
|
+
from typing import TypeVar
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound=ast.AstSymbolNode)
|
|
13
|
+
|
|
14
|
+
class FuseTypeInfoPass(Pass):
|
|
15
|
+
node_type_hash: dict[MypyNodes.Node | VNode, MyType]
|
|
16
|
+
def enter_name(self, node: ast.NameAtom) -> None: ...
|
|
17
|
+
def enter_module_path(self, node: ast.ModulePath) -> None: ...
|
|
18
|
+
def enter_module_item(self, node: ast.ModuleItem) -> None: ...
|
|
19
|
+
def enter_architype(self, node: ast.Architype) -> None: ...
|
|
20
|
+
def enter_arch_def(self, node: ast.ArchDef) -> None: ...
|
|
21
|
+
def enter_enum(self, node: ast.Enum) -> None: ...
|
|
22
|
+
def enter_enum_def(self, node: ast.EnumDef) -> None: ...
|
|
23
|
+
def enter_ability(self, node: ast.Ability) -> None: ...
|
|
24
|
+
def enter_ability_def(self, node: ast.AbilityDef) -> None: ...
|
|
25
|
+
def enter_param_var(self, node: ast.ParamVar) -> None: ...
|
|
26
|
+
def enter_has_var(self, node: ast.HasVar) -> None: ...
|
|
27
|
+
def exit_has_var(self, node: ast.HasVar) -> None: ...
|
|
28
|
+
def enter_multi_string(self, node: ast.MultiString) -> None: ...
|
|
29
|
+
def enter_f_string(self, node: ast.FString) -> None: ...
|
|
30
|
+
def enter_list_val(self, node: ast.ListVal) -> None: ...
|
|
31
|
+
def enter_set_val(self, node: ast.SetVal) -> None: ...
|
|
32
|
+
def enter_tuple_val(self, node: ast.TupleVal) -> None: ...
|
|
33
|
+
def enter_dict_val(self, node: ast.DictVal) -> None: ...
|
|
34
|
+
def enter_list_compr(self, node: ast.ListCompr) -> None: ...
|
|
35
|
+
def enter_dict_compr(self, node: ast.DictCompr) -> None: ...
|
|
36
|
+
def enter_index_slice(self, node: ast.IndexSlice) -> None: ...
|
|
37
|
+
def enter_arch_ref(self, node: ast.ArchRef) -> None: ...
|
|
38
|
+
def enter_special_var_ref(self, node: ast.SpecialVarRef) -> None: ...
|
|
39
|
+
def enter_edge_op_ref(self, node: ast.EdgeOpRef) -> None: ...
|
|
40
|
+
def enter_filter_compr(self, node: ast.FilterCompr) -> None: ...
|
|
41
|
+
def enter_assign_compr(self, node: ast.AssignCompr) -> None: ...
|
|
42
|
+
def enter_int(self, node: ast.Int) -> None: ...
|
|
43
|
+
def enter_float(self, node: ast.Float) -> None: ...
|
|
44
|
+
def enter_string(self, node: ast.String) -> None: ...
|
|
45
|
+
def enter_bool(self, node: ast.Bool) -> None: ...
|
|
46
|
+
def enter_builtin_type(self, node: ast.BuiltinType) -> None: ...
|
|
47
|
+
def get_type_from_instance(
|
|
48
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.Instance
|
|
49
|
+
) -> None: ...
|
|
50
|
+
def get_type_from_callable_type(
|
|
51
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.CallableType
|
|
52
|
+
) -> None: ...
|
|
53
|
+
def get_type_from_overloaded(
|
|
54
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.Overloaded
|
|
55
|
+
) -> None: ...
|
|
56
|
+
def get_type_from_none_type(
|
|
57
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.NoneType
|
|
58
|
+
) -> None: ...
|
|
59
|
+
def get_type_from_any_type(
|
|
60
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.AnyType
|
|
61
|
+
) -> None: ...
|
|
62
|
+
def get_type_from_tuple_type(
|
|
63
|
+
self, node: ast.AstSymbolNode, mypy_type: MypyTypes.TupleType
|
|
64
|
+
) -> None: ...
|
|
65
|
+
def exit_assignment(self, node: ast.Assignment) -> None: ...
|
|
66
|
+
def exit_name(self, node: ast.Name) -> None: ...
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import jaclang.compiler.absyntree as ast
|
|
2
|
+
from _typeshed import Incomplete
|
|
3
|
+
from jaclang.compiler.passes import Pass as Pass
|
|
4
|
+
from jaclang.compiler.passes.main import SubNodeTabPass as SubNodeTabPass
|
|
5
|
+
from jaclang.settings import settings as settings
|
|
6
|
+
from jaclang.utils.helpers import is_standard_lib_module as is_standard_lib_module
|
|
7
|
+
from jaclang.utils.log import logging as logging
|
|
8
|
+
|
|
9
|
+
logger: Incomplete
|
|
10
|
+
|
|
11
|
+
class JacImportPass(Pass):
|
|
12
|
+
import_table: Incomplete
|
|
13
|
+
py_resolve_list: Incomplete
|
|
14
|
+
def before_pass(self) -> None: ...
|
|
15
|
+
cur_node: Incomplete
|
|
16
|
+
run_again: bool
|
|
17
|
+
def enter_module(self, node: ast.Module) -> None: ...
|
|
18
|
+
def process_import(self, node: ast.Module, i: ast.ModulePath) -> None: ...
|
|
19
|
+
def attach_mod_to_node(
|
|
20
|
+
self, node: ast.ModulePath | ast.ModuleItem, mod: ast.Module | None
|
|
21
|
+
) -> None: ...
|
|
22
|
+
def enter_module_path(self, node: ast.ModulePath) -> None: ...
|
|
23
|
+
def enter_atom_trailer(self, node: ast.AtomTrailer) -> None: ...
|
|
24
|
+
def import_jac_module(self, node: ast.ModulePath) -> None: ...
|
|
25
|
+
def import_jac_mod_from_dir(self, target: str) -> ast.Module | None: ...
|
|
26
|
+
def import_jac_mod_from_file(self, target: str) -> ast.Module | None: ...
|
|
27
|
+
|
|
28
|
+
class PyImportPass(JacImportPass):
|
|
29
|
+
def before_pass(self) -> None: ...
|
|
30
|
+
run_again: bool
|
|
31
|
+
def process_import(self, node: ast.Module, i: ast.ModulePath) -> None: ...
|
|
32
|
+
def import_py_module(
|
|
33
|
+
self, node: ast.ModulePath, mod_path: str
|
|
34
|
+
) -> ast.Module | None: ...
|