瀏覽代碼

ForToFrom performs update step after continue.

master
Ian Piumarta 1 年之前
父節點
當前提交
4d570df59e
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. +3
    -2
      minproto.leg

+ 3
- 2
minproto.leg 查看文件

@ -1,6 +1,6 @@
# minproto.leg -- minimal prototype langauge for semantic experiments # minproto.leg -- minimal prototype langauge for semantic experiments
# #
# last edited: 2024-05-11 20:13:21 by piumarta on zora
# last edited: 2024-05-12 07:57:37 by piumarta on zora
%{ %{
; ;
@ -1962,12 +1962,13 @@ oop ForFromTo_eval(oop exp, oop env)
long stop = integerValue(last, "for"); long stop = integerValue(last, "for");
long step = start < stop ? 1 : -1; long step = start < stop ? 1 : -1;
oop result = nil; oop result = nil;
start -= step;
LOOP(); LOOP();
for (;;) { for (;;) {
start += step;
Object_put(env2, identifier, newInteger(start)); Object_put(env2, identifier, newInteger(start));
result = eval(body, env2); result = eval(body, env2);
if (start == stop) break; if (start == stop) break;
start += step;
} }
DONE(); DONE();
return result; return result;

Loading…
取消
儲存