1
0

1つまでの値を返せるようにした

This commit is contained in:
otya128
2015-06-13 20:23:40 +09:00
parent dec42422b5
commit c5b2f1af67

View File

@@ -51,6 +51,10 @@ class VM
{
code[pc].execute(this);
}
if(stacki != 0)
{
stderr.writeln("CompilerBug?:stack");
}
}
void push(ref Value value)
{
@@ -697,11 +701,19 @@ class ReturnFunction : Code
override void execute(VM vm)
{
int oldstacki = vm.stacki;
Value retexpr;
if(func.returnExpr)
{
vm.pop(retexpr);
}
vm.stacki = vm.bp + 2;
Value bp, pc;
vm.pop(pc);
vm.pop(bp);
vm.push(Value(235));
if(func.returnExpr)
{
vm.push(retexpr);
}
vm.pc = pc.integerValue;
vm.bp = bp.integerValue;
}