AST type infer SoC

This commit is contained in:
Michael Schimmel
2025-11-04 20:35:34 +01:00
parent d82a75aba6
commit f73c0c67b8
3 changed files with 74 additions and 47 deletions
+11 -12
View File
@@ -324,18 +324,6 @@ type
property IsTailCall: Boolean read FIsTailCall write FIsTailCall;
end;
TMacroExpansionNode = class(TFunctionCallNode, IMacroExpansionNode)
private
FExpandedBody: IAstNode;
function GetExpandedBody: IAstNode;
function GetKind: TAstNodeKind; override;
public
constructor Create(const AOriginalCallNode: IFunctionCallNode; const AExpandedBody: IAstNode);
function Accept(const Visitor: IAstVisitor): TDataValue; override;
function AsMacroExpansion: IMacroExpansionNode; override;
property ExpandedBody: IAstNode read FExpandedBody write FExpandedBody; // Writeable
end;
TRecurNode = class(TAstNode, IRecurNode)
private
FArguments: TArray<IAstNode>;
@@ -348,6 +336,17 @@ type
property Arguments: TArray<IAstNode> read FArguments write FArguments; // Writeable
end;
TMacroExpansionNode = class(TFunctionCallNode, IMacroExpansionNode)
private
FExpandedBody: IAstNode;
function GetExpandedBody: IAstNode;
function GetKind: TAstNodeKind; override;
public
constructor Create(const AOriginalCallNode: IFunctionCallNode; const AExpandedBody: IAstNode);
function Accept(const Visitor: IAstVisitor): TDataValue; override;
function AsMacroExpansion: IMacroExpansionNode; override;
property ExpandedBody: IAstNode read FExpandedBody write FExpandedBody; // Writeable
end;
TBlockExpressionNode = class(TAstNode, IBlockExpressionNode)
private
FExpressions: TArray<IAstNode>;