Kaynağa Gözat

Block_eval() executes its body in a new environment

master
Ian Piumarta 1 yıl önce
ebeveyn
işleme
bc3aae1dcb
1 değiştirilmiş dosya ile 4 ekleme ve 2 silme
  1. +4
    -2
      minproto.leg

+ 4
- 2
minproto.leg Dosyayı Görüntüle

@ -1,6 +1,6 @@
# minproto.leg -- minimal prototype langauge for semantic experiments
#
# last edited: 2024-05-07 14:39:10 by piumarta on zora-1034.local
# last edited: 2024-05-07 23:23:22 by piumarta on m1mbp
%{
;
@ -1578,7 +1578,9 @@ oop Block_eval(oop exp, oop env)
oop *indexed = _get(body, Object,indexed);
int size = _get(body, Object,isize);
oop result = nil;
for (int i = 0; i < size; ++i) result = eval(indexed[i], env);
oop env2 = new(pObject);
_setDelegate(env2, env);
for (int i = 0; i < size; ++i) result = eval(indexed[i], env2);
return result;
}

Yükleniyor…
İptal
Kaydet