Пример #1
0
        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));
            }
        }
Пример #2
0
        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;
                    }
                }
            }
        }
Пример #3
0
 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;
         }
     }
 }