Resolved cyclic dependencies between environment and compiler stages

This commit is contained in:
Michael Schimmel
2025-11-23 17:55:47 +01:00
parent 7c761e86e5
commit d334ffdc73
5 changed files with 211 additions and 201 deletions
+6 -2
View File
@@ -13,14 +13,18 @@ uses
Myc.Ast.Scope,
Myc.Ast.Types,
Myc.Ast.Compiler.Binder.Upvalues,
Myc.Ast,
Myc.Ast.Environment;
Myc.Ast;
type
IAstBinder = interface(IAstVisitor)
function Execute(const RootNode: IAstNode; out Layout: IScopeLayout): IAstNode;
end;
IFunctionDefinitionRegistry = interface
procedure Register(const Address: TResolvedAddress; const ADef: IFunctionDefinition);
function Resolve(const Address: TResolvedAddress): IFunctionDefinition;
end;
TAstBinder = class(TAstTransformer, IAstBinder)
private
type