AST testing

This commit is contained in:
Michael Schimmel
2025-11-23 00:24:43 +01:00
parent c5167b8550
commit a052dfb20f
23 changed files with 792 additions and 1260 deletions
+7 -5
View File
@@ -375,6 +375,7 @@ type
TVariableDeclarationNodeHandler = class(TInterfacedObject, IAuraNodeHandler)
private
FNode: IVariableDeclarationNode;
FTargetNode: TAuraNode;
FInitializerNode: TAuraNode; // Can be nil
function GetAstNode: IAstNode;
public
@@ -387,6 +388,7 @@ type
TAssignmentNodeHandler = class(TInterfacedObject, IAuraNodeHandler)
private
FNode: IAssignmentNode;
FTargetNode: TAuraNode;
FValueNode: TAuraNode;
function GetAstNode: IAstNode;
public
@@ -1782,9 +1784,9 @@ begin
OwnerNode.Orientation := loHorizontal;
varLabel := OwnerNode.AddLabel(OwnerNode, 'var');
varLabel.Font.Style := varLabel.Font.Style + [TFontStyle.fsBold];
OwnerNode.AddLabel(OwnerNode, FNode.Identifier.Name);
varLabel.Font.Style := varLabel.Font.Style + [TFontStyle.fsBold];
FTargetNode := visu.CallAccept(FNode.Target);
if Assigned(FNode.Initializer) then
begin
@@ -1804,7 +1806,7 @@ begin
initAst := FInitializerNode.CreateAst
else
initAst := nil;
Result := TAst.VarDecl(TAst.Identifier(FNode.Identifier.Name), initAst);
Result := TAst.VarDecl(FTargetNode.CreateAst, initAst);
end;
{ TAssignmentNodeHandler }
@@ -1829,7 +1831,7 @@ begin
try
OwnerNode.Frameless := True;
OwnerNode.Orientation := loHorizontal;
OwnerNode.AddLabel(OwnerNode, FNode.Identifier.Name);
FTargetNode := visu.CallAccept(FNode.Target);
OwnerNode.AddLabel(OwnerNode, ':=');
FValueNode := visu.CallAccept(FNode.Value);
finally
@@ -1839,7 +1841,7 @@ end;
function TAssignmentNodeHandler.ReconstructAst(OwnerNode: TAuraNode): IAstNode;
begin
Result := TAst.Assign(TAst.Identifier(FNode.Identifier.Name), FValueNode.CreateAst);
Result := TAst.Assign(FTargetNode.CreateAst, FValueNode.CreateAst);
end;
{ TMacroDefinitionNodeHandler }