ITupleNode signature change
This commit is contained in:
@@ -202,13 +202,18 @@ var
|
||||
T: ITupleNode;
|
||||
elemsArray: TJSONArray;
|
||||
i: Integer;
|
||||
elements: TArray<IAstNode>;
|
||||
begin
|
||||
T := Node.AsTuple;
|
||||
Result := TJSONObject.Create;
|
||||
Result.AddPair('NodeType', TJSONString.Create('Tuple'));
|
||||
elemsArray := TJSONArray.Create;
|
||||
for i := 0 to T.Count - 1 do
|
||||
elemsArray.Add(Visit(T.Items[i]));
|
||||
|
||||
// Updated: Use Elements array directly
|
||||
elements := T.Elements;
|
||||
for i := 0 to High(elements) do
|
||||
elemsArray.Add(Visit(elements[i]));
|
||||
|
||||
Result.AddPair('Elements', elemsArray);
|
||||
end;
|
||||
|
||||
@@ -611,7 +616,8 @@ var
|
||||
begin
|
||||
identNodes := TList<IIdentifierNode>.Create;
|
||||
try
|
||||
for node in JsonToNode(AObj.GetValue('Parameters')).AsTuple.ToArray do
|
||||
// Updated: Use Elements instead of ToArray (or iterate if ToArray is missing)
|
||||
for node in JsonToNode(AObj.GetValue('Parameters')).AsTuple.Elements do
|
||||
identNodes.Add(node.AsIdentifier);
|
||||
Result := TAst.LambdaExpr(identNodes.ToArray, JsonToNode(AObj.GetValue('Body')));
|
||||
finally
|
||||
@@ -626,7 +632,8 @@ var
|
||||
begin
|
||||
identNodes := TList<IIdentifierNode>.Create;
|
||||
try
|
||||
for node in JsonToNode(AObj.GetValue('Parameters')).AsTuple.ToArray do
|
||||
// Updated: Use Elements
|
||||
for node in JsonToNode(AObj.GetValue('Parameters')).AsTuple.Elements do
|
||||
identNodes.Add(node.AsIdentifier);
|
||||
Result :=
|
||||
TAst.MacroDef(
|
||||
@@ -656,7 +663,8 @@ end;
|
||||
|
||||
function TJsonAstConverter.JsonToFunctionCallNode(const AObj: TJSONObject): IFunctionCallNode;
|
||||
begin
|
||||
Result := TAst.FunctionCall(JsonToNode(AObj.GetValue('Callee')), JsonToNode(AObj.GetValue('Arguments')).AsTuple.ToArray);
|
||||
// Updated: Use Elements
|
||||
Result := TAst.FunctionCall(JsonToNode(AObj.GetValue('Callee')), JsonToNode(AObj.GetValue('Arguments')).AsTuple.Elements);
|
||||
end;
|
||||
|
||||
function TJsonAstConverter.JsonToMacroExpansionNode(const AObj: TJSONObject): IMacroExpansionNode;
|
||||
@@ -667,17 +675,20 @@ begin
|
||||
callee := JsonToNode(AObj.GetValue('Callee'));
|
||||
expandedBody := JsonToNode(AObj.GetValue('ExpandedBody'));
|
||||
argsTuple := JsonToNode(AObj.GetValue('Arguments')).AsTuple;
|
||||
Result := TAst.MacroExpansionNode(TAst.FunctionCall(callee, argsTuple.ToArray), expandedBody);
|
||||
// Updated: Use Elements
|
||||
Result := TAst.MacroExpansionNode(TAst.FunctionCall(callee, argsTuple.Elements), expandedBody);
|
||||
end;
|
||||
|
||||
function TJsonAstConverter.JsonToRecurNode(const AObj: TJSONObject): IRecurNode;
|
||||
begin
|
||||
Result := TAst.Recur(JsonToNode(AObj.GetValue('Arguments')).AsTuple.ToArray);
|
||||
// Updated: Use Elements
|
||||
Result := TAst.Recur(JsonToNode(AObj.GetValue('Arguments')).AsTuple.Elements);
|
||||
end;
|
||||
|
||||
function TJsonAstConverter.JsonToBlockNode(const AObj: TJSONObject): IBlockExpressionNode;
|
||||
begin
|
||||
Result := TAst.Block(JsonToNode(AObj.GetValue('Expressions')).AsTuple.ToArray);
|
||||
// Updated: Use Elements
|
||||
Result := TAst.Block(JsonToNode(AObj.GetValue('Expressions')).AsTuple.Elements);
|
||||
end;
|
||||
|
||||
function TJsonAstConverter.JsonToVarDeclNode(const AObj: TJSONObject): IVariableDeclarationNode;
|
||||
|
||||
Reference in New Issue
Block a user