mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
EST is testd ok in asm
This commit is contained in:
parent
f39530cf39
commit
917ae2515f
@ -594,3 +594,22 @@ TEST(VM, if_else_) {
|
||||
ASSERT_FLOAT_EQ(b, 1);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
TEST(VM, EST) {
|
||||
char* pikaAsm = (char*)
|
||||
"B0\n"
|
||||
"0 EST a\n"
|
||||
"0 OUT b\n"
|
||||
;
|
||||
PikaObj* self = newRootObj((char*)"", New_BaseObj);
|
||||
pikaVM_runAsm(self, pikaAsm);
|
||||
int a = obj_getInt(self, (char*)"a");
|
||||
int b = obj_getInt(self, (char*)"b");
|
||||
/* a is local, should not be exist in globals */
|
||||
EXPECT_EQ(a, -999999999);
|
||||
/* b is local, should not be exist in globals */
|
||||
EXPECT_EQ(b, 0);
|
||||
obj_deinit(self);
|
||||
// obj_deinit(globals);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
10
src/PikaVM.c
10
src/PikaVM.c
@ -171,6 +171,16 @@ Arg* pikaVM_runInstruct(PikaObj* self,
|
||||
}
|
||||
return arg;
|
||||
}
|
||||
if (instruct == EST) {
|
||||
Arg* arg = obj_getArg(locals, data);
|
||||
if (arg == NULL) {
|
||||
return arg_setInt(NULL, "", 0);
|
||||
}
|
||||
if (TYPE_NULL == arg_getType(arg)) {
|
||||
return arg_setInt(NULL, "", 0);
|
||||
}
|
||||
return arg_setInt(NULL, "", 1);
|
||||
}
|
||||
if (instruct == JMP) {
|
||||
*jmp = fast_atoi(data);
|
||||
return NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user