public override HeronValue Eval(VM vm) { using (vm.CreateScope()) { vm.AddVar(new VarDesc(acc), vm.Eval(init)); vm.AddVar(new VarDesc(each), HeronValue.Null); foreach (HeronValue x in vm.EvalListAsDotNet(list)) { vm.SetVar(each, x); vm.SetVar(acc, vm.Eval(expr)); } return(vm.LookupName(acc)); } }
public override void Eval(VM vm) { VarDesc desc = new VarDesc(name); foreach (HeronValue x in vm.EvalListAsDotNet(collection)) { using (vm.CreateScope()) { vm.AddVar(desc, x); vm.Eval(body); if (vm.ShouldExitScope()) { return; } } } }
public override void Eval(VM vm) { VarDesc desc = new VarDesc(name); foreach (HeronValue x in vm.EvalListAsDotNet(collection)) { using (vm.CreateScope()) { vm.AddVar(desc, x); vm.Eval(body); if (vm.ShouldExitScope()) return; } } }