Refactoring
This commit is contained in:
@@ -34,7 +34,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Myc.Ast.Types; // Added for TTypes.Unknown
|
Myc.Ast.Types;
|
||||||
|
|
||||||
{ TUpvalueAnalyzer }
|
{ TUpvalueAnalyzer }
|
||||||
|
|
||||||
|
|||||||
@@ -993,12 +993,12 @@ var
|
|||||||
valNode: IAstNode;
|
valNode: IAstNode;
|
||||||
valType: IStaticType;
|
valType: IStaticType;
|
||||||
scalarKind: TScalar.TKind;
|
scalarKind: TScalar.TKind;
|
||||||
allScalar: Boolean; // Added
|
allScalar: Boolean;
|
||||||
begin
|
begin
|
||||||
FNextIsTail := False;
|
FNextIsTail := False;
|
||||||
SetLength(boundFields, Length(Node.Fields));
|
SetLength(boundFields, Length(Node.Fields));
|
||||||
SetLength(scalarDefFields, Length(Node.Fields)); // Renamed
|
SetLength(scalarDefFields, Length(Node.Fields)); // Renamed
|
||||||
allScalar := True; // Added
|
allScalar := True;
|
||||||
|
|
||||||
for i := 0 to High(Node.Fields) do
|
for i := 0 to High(Node.Fields) do
|
||||||
begin
|
begin
|
||||||
|
|||||||
@@ -780,7 +780,7 @@ var
|
|||||||
paramArray: TJSONArray;
|
paramArray: TJSONArray;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
// Added deserialization for macro definitions.
|
|
||||||
name := JsonToIdentifierNode(AObj.GetValue('Name') as TJSONObject);
|
name := JsonToIdentifierNode(AObj.GetValue('Name') as TJSONObject);
|
||||||
|
|
||||||
paramArray := AObj.GetValue<TJSONArray>('Parameters');
|
paramArray := AObj.GetValue<TJSONArray>('Parameters');
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ begin
|
|||||||
stSeries: Result := 'Series';
|
stSeries: Result := 'Series';
|
||||||
stRecord: Result := 'Record';
|
stRecord: Result := 'Record';
|
||||||
stRecordSeries: Result := 'RecordSeries';
|
stRecordSeries: Result := 'RecordSeries';
|
||||||
stGenericRecord: Result := 'GenericRecord'; // Added
|
stGenericRecord: Result := 'GenericRecord';
|
||||||
else
|
else
|
||||||
Result := 'ErrorType';
|
Result := 'ErrorType';
|
||||||
end;
|
end;
|
||||||
@@ -159,7 +159,7 @@ type
|
|||||||
function GetElementType: IStaticType; virtual;
|
function GetElementType: IStaticType; virtual;
|
||||||
function GetSignature: IMethodSignature; virtual;
|
function GetSignature: IMethodSignature; virtual;
|
||||||
function GetDefinition: IScalarRecordDefinition; virtual;
|
function GetDefinition: IScalarRecordDefinition; virtual;
|
||||||
function GetGenericDefinition: IGenericRecordDefinition; virtual; // Added
|
function GetGenericDefinition: IGenericRecordDefinition; virtual;
|
||||||
function IsEqual(const Other: IStaticType): Boolean; virtual;
|
function IsEqual(const Other: IStaticType): Boolean; virtual;
|
||||||
function ToString: string; override;
|
function ToString: string; override;
|
||||||
end;
|
end;
|
||||||
@@ -180,7 +180,6 @@ begin
|
|||||||
Result := Default(IScalarRecordDefinition);
|
Result := Default(IScalarRecordDefinition);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Added
|
|
||||||
function TAbstractStaticType.GetGenericDefinition: IGenericRecordDefinition;
|
function TAbstractStaticType.GetGenericDefinition: IGenericRecordDefinition;
|
||||||
begin
|
begin
|
||||||
Result := nil;
|
Result := nil;
|
||||||
@@ -433,7 +432,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
// Added: Represents stGenericRecord
|
|
||||||
type
|
type
|
||||||
TGenericRecordType = class(TAbstractStaticType)
|
TGenericRecordType = class(TAbstractStaticType)
|
||||||
private
|
private
|
||||||
@@ -532,7 +530,6 @@ begin
|
|||||||
Result := TRecordType.Create(stRecordSeries, ADef);
|
Result := TRecordType.Create(stRecordSeries, ADef);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Added
|
|
||||||
class function TTypes.CreateGenericRecord(const ADef: IGenericRecordDefinition): IStaticType;
|
class function TTypes.CreateGenericRecord(const ADef: IGenericRecordDefinition): IStaticType;
|
||||||
begin
|
begin
|
||||||
Result := TGenericRecordType.Create(ADef);
|
Result := TGenericRecordType.Create(ADef);
|
||||||
|
|||||||
@@ -633,7 +633,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
System.Math, // Added for Power function
|
System.Math,
|
||||||
Myc.Data.Types.Void,
|
Myc.Data.Types.Void,
|
||||||
Myc.Data.Types.Ordinal,
|
Myc.Data.Types.Ordinal,
|
||||||
Myc.Data.Types.Float,
|
Myc.Data.Types.Float,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
System.SysUtils,
|
System.SysUtils,
|
||||||
System.SyncObjs,
|
System.SyncObjs,
|
||||||
System.Generics.Collections, // Added for TDictionary
|
System.Generics.Collections,
|
||||||
Myc.Utils,
|
Myc.Utils,
|
||||||
Myc.Data.Scalar,
|
Myc.Data.Scalar,
|
||||||
Myc.Data.Series,
|
Myc.Data.Series,
|
||||||
@@ -19,7 +19,7 @@ type
|
|||||||
vkSeries,
|
vkSeries,
|
||||||
vkRecordSeries,
|
vkRecordSeries,
|
||||||
vkRecord,
|
vkRecord,
|
||||||
vkGenericRecord, // Added
|
vkGenericRecord,
|
||||||
vkManagedObject,
|
vkManagedObject,
|
||||||
vkMethod,
|
vkMethod,
|
||||||
vkInterface,
|
vkInterface,
|
||||||
@@ -194,7 +194,6 @@ begin
|
|||||||
Result := (FInterface as TVal<TScalarRecord>).Value;
|
Result := (FInterface as TVal<TScalarRecord>).Value;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Added
|
|
||||||
function TDataValue.AsGenericRecord: IKeywordMapping<TDataValue>;
|
function TDataValue.AsGenericRecord: IKeywordMapping<TDataValue>;
|
||||||
begin
|
begin
|
||||||
if (FKind <> vkGenericRecord) then
|
if (FKind <> vkGenericRecord) then
|
||||||
@@ -265,7 +264,6 @@ begin
|
|||||||
TInterlocked.CompareExchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64, Expected.AsScalar.Value.AsInt64)
|
TInterlocked.CompareExchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64, Expected.AsScalar.Value.AsInt64)
|
||||||
= Expected.AsScalar.Value.AsInt64;
|
= Expected.AsScalar.Value.AsInt64;
|
||||||
|
|
||||||
// Added vkGenericRecord
|
|
||||||
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
|
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
|
||||||
Result := IntfCompareExchange(FInterface, NewValue.FInterface, Expected.FInterface) = Expected.FInterface;
|
Result := IntfCompareExchange(FInterface, NewValue.FInterface, Expected.FInterface) = Expected.FInterface;
|
||||||
end;
|
end;
|
||||||
@@ -302,7 +300,6 @@ begin
|
|||||||
Result.FInterface := TVal<TScalarRecord>.Create(AValue);
|
Result.FInterface := TVal<TScalarRecord>.Create(AValue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Added
|
|
||||||
class function TDataValue.FromGenericRecord(const AValue: IKeywordMapping<TDataValue>): TDataValue;
|
class function TDataValue.FromGenericRecord(const AValue: IKeywordMapping<TDataValue>): TDataValue;
|
||||||
begin
|
begin
|
||||||
Result.FKind := vkGenericRecord;
|
Result.FKind := vkGenericRecord;
|
||||||
@@ -367,7 +364,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
vkPointer: Result := TInterlocked.Exchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64);
|
vkPointer: Result := TInterlocked.Exchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64);
|
||||||
|
|
||||||
// Added vkGenericRecord
|
|
||||||
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
|
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
|
||||||
begin
|
begin
|
||||||
Result.FKind := FKind;
|
Result.FKind := FKind;
|
||||||
@@ -380,7 +376,7 @@ function TDataValue.ToString: String;
|
|||||||
var
|
var
|
||||||
sb: TStringBuilder;
|
sb: TStringBuilder;
|
||||||
field: TScalarRecordField;
|
field: TScalarRecordField;
|
||||||
genField: TPair<IKeyword, TDataValue>; // Added
|
genField: TPair<IKeyword, TDataValue>;
|
||||||
first: Boolean;
|
first: Boolean;
|
||||||
begin
|
begin
|
||||||
case FKind of
|
case FKind of
|
||||||
@@ -434,7 +430,7 @@ begin
|
|||||||
sb.Free;
|
sb.Free;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
// Added
|
|
||||||
vkGenericRecord:
|
vkGenericRecord:
|
||||||
begin
|
begin
|
||||||
var rec := AsGenericRecord;
|
var rec := AsGenericRecord;
|
||||||
@@ -513,7 +509,7 @@ begin
|
|||||||
vkSeries: Result := 'Series';
|
vkSeries: Result := 'Series';
|
||||||
vkRecordSeries: Result := 'RecordSeries';
|
vkRecordSeries: Result := 'RecordSeries';
|
||||||
vkRecord: Result := 'Record';
|
vkRecord: Result := 'Record';
|
||||||
vkGenericRecord: Result := 'GenericRecord'; // Added
|
vkGenericRecord: Result := 'GenericRecord';
|
||||||
vkMethod: Result := 'Method';
|
vkMethod: Result := 'Method';
|
||||||
vkInterface: Result := 'Interface';
|
vkInterface: Result := 'Interface';
|
||||||
vkPointer: Result := 'Pointer';
|
vkPointer: Result := 'Pointer';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
DUnitX.TestFramework,
|
DUnitX.TestFramework,
|
||||||
System.SysUtils,
|
System.SysUtils,
|
||||||
System.Generics.Collections, // Added for TObjectList if needed, not strictly for this
|
System.Generics.Collections,
|
||||||
System.SyncObjs,
|
System.SyncObjs,
|
||||||
Myc.Signals, // For IMycLatch, TMycLatch, IMycState, IMycSubscriber [cite: 62, 68, 53, 45]
|
Myc.Signals, // For IMycLatch, TMycLatch, IMycState, IMycSubscriber [cite: 62, 68, 53, 45]
|
||||||
Myc.Core.Tasks, // For IMycTaskFactory, TMycTaskFactory [cite: 97, 113]
|
Myc.Core.Tasks, // For IMycTaskFactory, TMycTaskFactory [cite: 97, 113]
|
||||||
|
|||||||
Reference in New Issue
Block a user