Refactoring

This commit is contained in:
Michael Schimmel
2025-11-04 18:22:06 +01:00
parent 2b8a3effed
commit 48ccb23060
4 changed files with 2 additions and 36 deletions
+1 -33
View File
@@ -62,20 +62,16 @@ type
function Execute(const RootNode: IAstNode): TDataValue;
end;
// Registers native Delphi functions into a scope.
procedure RegisterNativeFunctions(const AScope: IExecutionScope);
implementation
uses
System.TypInfo,
System.Generics.Defaults,
Myc.Ast, // Added
Myc.Ast,
Myc.Data.Keyword,
Myc.Data.Decimal,
Myc.Data.Series,
Myc.Data.Scalar.JSON;
// Myc.Ast.Binding.Nodes; // Removed
// Helper type for TCO via trampolining.
type
@@ -93,34 +89,6 @@ begin
Recur := ARecur;
end;
// --- Native Functions Implementation ---
function NativeCreateRecordSeries(const Args: TArray<TDataValue>): TDataValue;
var
jsonDef: string;
recordDef: IScalarRecordDefinition;
series: IRecordSeries;
begin
if (Length(Args) <> 1) or (Args[0].Kind <> vkText) then
raise EArgumentException.Create('CreateRecordSeries requires one string argument.');
jsonDef := Args[0].AsText;
recordDef := TRttiAstHelper.JsonToRecordDefinition(jsonDef);
if Length(recordDef.Fields) = 0 then
raise EArgumentException.Create('Failed to parse record definition from JSON.');
series := TScalarRecordSeries.Create(recordDef);
Result := TDataValue.FromRecordSeries(series);
end;
// --- Registration Procedure ---
procedure RegisterNativeFunctions(const AScope: IExecutionScope);
begin
AScope.Define('CreateRecordSeries', TDataValue(NativeCreateRecordSeries));
end;
{ TDynamicRecord }
type