Lowering для foreach
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Такой код
foreach var x in l do
Print(x);
заменяется на
var a: IEnumerable<auto_foreach> := l;
var en := a.GetEnumerator();
var curr: auto_foreach; // или эта переменная была описана ранее если foreach x
while en.MoveNext do
begin
curr := en.Current;
Print(curr);
end;
на синтаксическом уровне.