Refactoring
This commit is contained in:
@@ -356,24 +356,28 @@ begin
|
|||||||
idx := Visit(N.Index);
|
idx := Visit(N.Index);
|
||||||
|
|
||||||
case base.Kind of
|
case base.Kind of
|
||||||
vkSeries: Result := TDataValue(base.AsSeries.Items[Integer(idx.AsScalar.Value.AsInt64)]);
|
vkSeries:
|
||||||
|
begin
|
||||||
|
var i: Integer := idx.AsScalar.Value.AsInt64;
|
||||||
|
Result := base.AsSeries.Items[i];
|
||||||
|
end;
|
||||||
vkRecordSeries:
|
vkRecordSeries:
|
||||||
begin
|
begin
|
||||||
|
var i: Integer := idx.AsScalar.Value.AsInt64;
|
||||||
var rs := base.AsRecordSeries;
|
var rs := base.AsRecordSeries;
|
||||||
var vals: TArray<TScalar.TValue>;
|
var vals: TArray<TScalar.TValue>;
|
||||||
SetLength(vals, rs.Def.Count);
|
SetLength(vals, rs.Def.Count);
|
||||||
var i64 := idx.AsScalar.Value.AsInt64;
|
|
||||||
for var k := 0 to rs.Def.Count - 1 do
|
for var k := 0 to rs.Def.Count - 1 do
|
||||||
vals[k] := rs.Fields[rs.Def.Keywords[k]].Items[Integer(i64)].Value;
|
vals[k] := rs.Fields[rs.Def.Keywords[k]].Items[i].Value;
|
||||||
Result := TScalarRecord.Create(rs.Def, vals);
|
Result := TScalarRecord.Create(rs.Def, vals);
|
||||||
end;
|
end;
|
||||||
vkTuple:
|
vkTuple:
|
||||||
begin
|
begin
|
||||||
|
var i: Integer := idx.AsScalar.Value.AsInt64;
|
||||||
var tpl := base.AsTuple;
|
var tpl := base.AsTuple;
|
||||||
var i := idx.AsScalar.Value.AsInt64;
|
|
||||||
if (i < 0) or (i >= tpl.Count) then
|
if (i < 0) or (i >= tpl.Count) then
|
||||||
raise EEvaluatorException.Create('Tuple index out of bounds');
|
raise EEvaluatorException.Create('Tuple index out of bounds');
|
||||||
Result := tpl.Items[Integer(i)];
|
Result := tpl.Items[i];
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
raise EEvaluatorException.Create('Indexer error');
|
raise EEvaluatorException.Create('Indexer error');
|
||||||
|
|||||||
Reference in New Issue
Block a user