Refactoring Keyword mapping, introducing tuples
This commit is contained in:
@@ -344,7 +344,7 @@ begin
|
||||
var i64 := idx.AsScalar.Value.AsInt64;
|
||||
for var k := 0 to rs.Def.Count - 1 do
|
||||
vals[k] := rs.Fields[rs.Def.Keywords[k]].Items[Integer(i64)].Value;
|
||||
Result := TDataValue.FromScalarRecord(TScalarRecord.Create(rs.Def, vals));
|
||||
Result := TScalarRecord.Create(rs.Def, vals);
|
||||
end
|
||||
else
|
||||
raise EEvaluatorException.Create('Indexer error');
|
||||
@@ -358,10 +358,10 @@ begin
|
||||
if base.IsVoid then
|
||||
exit(TDataValue.Void);
|
||||
case base.Kind of
|
||||
vkRecordSeries: Result := TDataValue.FromSeries(base.AsRecordSeries.Fields[N.Member.Value]);
|
||||
vkScalarRecord: Result := TDataValue(base.AsScalarRecord.Fields[N.Member.Value]);
|
||||
vkRecord: Result := TDataValue(base.AsRecord.Fields[N.Member.Value]);
|
||||
vkStream: Result := TDataValue.FromSeries(base.AsStream.Series.Fields[N.Member.Value]);
|
||||
vkRecordSeries: Result := base.AsRecordSeries.Fields[N.Member.Value];
|
||||
vkScalarRecord: Result := base.AsScalarRecord.Fields[N.Member.Value];
|
||||
vkRecord: Result := base.AsRecord.Fields[N.Member.Value];
|
||||
vkStream: Result := base.AsStream.Series.Fields[N.Member.Value];
|
||||
else
|
||||
raise EEvaluatorException.Create('Member error');
|
||||
end;
|
||||
@@ -377,7 +377,7 @@ begin
|
||||
SetLength(vals, N.Fields.Count);
|
||||
for i := 0 to N.Fields.Count - 1 do
|
||||
vals[i] := Visit(N.Fields[i].Value).AsScalar.Value;
|
||||
Result := TDataValue.FromScalarRecord(TScalarRecord.Create(N.ScalarDefinition, vals));
|
||||
Result := TScalarRecord.Create(N.ScalarDefinition, vals);
|
||||
end
|
||||
else
|
||||
begin
|
||||
@@ -385,16 +385,16 @@ begin
|
||||
SetLength(fields, N.Fields.Count);
|
||||
for i := 0 to N.Fields.Count - 1 do
|
||||
fields[i] := TPair<IKeyword, TDataValue>.Create(N.Fields[i].Key.Value, Visit(N.Fields[i].Value));
|
||||
Result := TDataValue.FromGenericRecord(TGenericRecord<TDataValue>.Create(fields));
|
||||
Result := TGenericRecord<TDataValue>.Create(fields);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TEvaluatorVisitor.VisitCreateSeries(const N: ICreateSeriesNode): TDataValue;
|
||||
begin
|
||||
if N.Definition.Trim.StartsWith('[') then
|
||||
Result := TDataValue.FromRecordSeries(TScalarRecordSeries.Create(TRttiAstHelper.JsonToRecordDefinition(N.Definition)))
|
||||
Result := TScalarRecordSeries.Create(TRttiAstHelper.JsonToRecordDefinition(N.Definition))
|
||||
else
|
||||
Result := TDataValue.FromSeries(TScalarSeries.Create(TScalar.StringToKind(N.Definition)));
|
||||
Result := TScalarSeries.Create(TScalar.StringToKind(N.Definition));
|
||||
end;
|
||||
|
||||
function TEvaluatorVisitor.VisitAddSeriesItem(const N: IAddSeriesItemNode): TDataValue;
|
||||
@@ -465,7 +465,7 @@ begin
|
||||
R[k] := rec.Items[k].Value;
|
||||
Result := True;
|
||||
end;
|
||||
Result := TDataValue.FromStream(TPipeStream.Create(config, outputDef, sources, pipeAdapter));
|
||||
Result := TPipeStream.Create(config, outputDef, sources, pipeAdapter);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user