<< >> is ok

This commit is contained in:
lyon 2021-11-28 01:44:17 +08:00
parent a5844e896c
commit 26c102802a
2 changed files with 24 additions and 1 deletions

View File

@ -162,3 +162,20 @@ TEST(pikaMain, a_n1) {
obj_deinit(pikaMain); obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0); EXPECT_EQ(pikaMemNow(), 0);
} }
TEST(pikaMain, a_l4) {
/* init */
pikaMemInfo.heapUsedMax = 0;
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
/* run */
obj_runDirect(pikaMain, (char*)"a = 1<<4\n");
/* collect */
int a = obj_getInt(pikaMain, (char*)"a");
/* assert */
EXPECT_EQ(16, a);
/* deinit */
obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0);
}

View File

@ -295,7 +295,13 @@ Arg* pikaVM_runInstruct(PikaObj* self,
outArg = arg_setInt(outArg, "", num1_i | num2_i); outArg = arg_setInt(outArg, "", num1_i | num2_i);
} }
if (strEqu("~", data)) { if (strEqu("~", data)) {
outArg = arg_setInt(outArg, "", ~num2_i); outArg = arg_setInt(outArg, "", ~num1_i);
}
if (strEqu(">>", data)) {
outArg = arg_setInt(outArg, "", num1_i >> num2_i);
}
if (strEqu("<<", data)) {
outArg = arg_setInt(outArg, "", num1_i << num2_i);
} }
OPT_exit: OPT_exit:
arg_deinit(arg1); arg_deinit(arg1);