mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
rename
This commit is contained in:
parent
7b36f7aa30
commit
ba1c61293b
@ -12,16 +12,16 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
/* test head */
|
/* test head */
|
||||||
VM_Parameters* pikaVM_runAsmWithPars(PikaObj* self,
|
VMParameters* pikaVM_runAsmWithPars(PikaObj* self,
|
||||||
VM_Parameters* locals,
|
VMParameters* locals,
|
||||||
VM_Parameters* globals,
|
VMParameters* globals,
|
||||||
char* pikaAsm);
|
char* pikaAsm);
|
||||||
char* Parser_LineToAsm(Args* buffs, char* line, Stack* blockStack);
|
char* Parser_LineToAsm(Args* buffs, char* line, Stack* blockStack);
|
||||||
char* Parser_multiLineToAsm(Args* outBuffs, char* multiLine);
|
char* Parser_multiLineToAsm(Args* outBuffs, char* multiLine);
|
||||||
int32_t __clearInvokeQueues(VM_Parameters* locals);
|
int32_t __clearInvokeQueues(VMParameters* locals);
|
||||||
int32_t pikaVM_runAsmLine(PikaObj* self,
|
int32_t pikaVM_runAsmLine(PikaObj* self,
|
||||||
VM_Parameters* locals,
|
VMParameters* locals,
|
||||||
VM_Parameters* globals,
|
VMParameters* globals,
|
||||||
char* pikaAsm,
|
char* pikaAsm,
|
||||||
int32_t lineAddr);
|
int32_t lineAddr);
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ TEST(VM, a_1d1) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
ASSERT_FLOAT_EQ(args_getFloat(globals->list, (char*)"a"), 1.1);
|
ASSERT_FLOAT_EQ(args_getFloat(globals->list, (char*)"a"), 1.1);
|
||||||
|
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -73,7 +73,7 @@ TEST(VM, str_xy) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
ASSERT_STREQ(args_getStr(globals->list, (char*)"a"), (char*)"xy");
|
ASSERT_STREQ(args_getStr(globals->list, (char*)"a"), (char*)"xy");
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ TEST(VM, str_xy_space) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
ASSERT_STREQ(args_getStr(globals->list, (char*)"a"), (char*)"xy ");
|
ASSERT_STREQ(args_getStr(globals->list, (char*)"a"), (char*)"xy ");
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ TEST(VM, ref_a_b) {
|
|||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
|
|
||||||
VM_Parameters* globals =
|
VMParameters* globals =
|
||||||
pikaVM_runAsm(self, Parser_LineToAsm(buffs, (char*)"a = 'xy '", NULL));
|
pikaVM_runAsm(self, Parser_LineToAsm(buffs, (char*)"a = 'xy '", NULL));
|
||||||
globals = pikaVM_runAsmWithPars(
|
globals = pikaVM_runAsmWithPars(
|
||||||
self, globals, globals, Parser_LineToAsm(buffs, (char*)"b = a", NULL));
|
self, globals, globals, Parser_LineToAsm(buffs, (char*)"b = a", NULL));
|
||||||
@ -119,7 +119,7 @@ TEST(VM, Run_add) {
|
|||||||
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
|
|
||||||
VM_Parameters* globals = pikaVM_runAsm(
|
VMParameters* globals = pikaVM_runAsm(
|
||||||
self, Parser_LineToAsm(buffs, (char*)"a = plusInt(1,2)", NULL));
|
self, Parser_LineToAsm(buffs, (char*)"a = plusInt(1,2)", NULL));
|
||||||
|
|
||||||
args_deinit(buffs);
|
args_deinit(buffs);
|
||||||
@ -134,7 +134,7 @@ TEST(VM, Run_add_multy) {
|
|||||||
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
|
|
||||||
VM_Parameters* globals =
|
VMParameters* globals =
|
||||||
pikaVM_runAsm(self, Parser_LineToAsm(buffs, (char*)"b = 2", NULL));
|
pikaVM_runAsm(self, Parser_LineToAsm(buffs, (char*)"b = 2", NULL));
|
||||||
globals = pikaVM_runAsmWithPars(
|
globals = pikaVM_runAsmWithPars(
|
||||||
self, globals, globals,
|
self, globals, globals,
|
||||||
@ -152,7 +152,7 @@ TEST(VM, Run_add_1_2_3) {
|
|||||||
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator);
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
|
|
||||||
VM_Parameters* globals = pikaVM_runAsm(
|
VMParameters* globals = pikaVM_runAsm(
|
||||||
self,
|
self,
|
||||||
Parser_LineToAsm(buffs, (char*)"a = plusInt(1, plusInt(2,3) )", NULL));
|
Parser_LineToAsm(buffs, (char*)"a = plusInt(1, plusInt(2,3) )", NULL));
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ TEST(VM, JEZ) {
|
|||||||
Args* sysRes = New_args(NULL);
|
Args* sysRes = New_args(NULL);
|
||||||
args_setErrorCode(sysRes, 0);
|
args_setErrorCode(sysRes, 0);
|
||||||
args_setSysOut(sysRes, (char*)"");
|
args_setSysOut(sysRes, (char*)"");
|
||||||
VM_Parameters* globals = self;
|
VMParameters* globals = self;
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
@ -199,7 +199,7 @@ TEST(VM, JMP) {
|
|||||||
Args* sysRes = New_args(NULL);
|
Args* sysRes = New_args(NULL);
|
||||||
args_setErrorCode(sysRes, 0);
|
args_setErrorCode(sysRes, 0);
|
||||||
args_setSysOut(sysRes, (char*)"");
|
args_setSysOut(sysRes, (char*)"");
|
||||||
VM_Parameters* globals = self;
|
VMParameters* globals = self;
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
__clearInvokeQueues(globals);
|
__clearInvokeQueues(globals);
|
||||||
@ -222,7 +222,7 @@ TEST(VM, JMP_back1) {
|
|||||||
Args* sysRes = New_args(NULL);
|
Args* sysRes = New_args(NULL);
|
||||||
args_setErrorCode(sysRes, 0);
|
args_setErrorCode(sysRes, 0);
|
||||||
args_setSysOut(sysRes, (char*)"");
|
args_setSysOut(sysRes, (char*)"");
|
||||||
VM_Parameters* globals = self;
|
VMParameters* globals = self;
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
lineAddr = pikaVM_runAsmLine(self, globals, globals, pikaAsm, lineAddr);
|
||||||
@ -250,7 +250,7 @@ TEST(VM, WHILE) {
|
|||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
pikaMemInfo.heapUsedMax = 0;
|
pikaMemInfo.heapUsedMax = 0;
|
||||||
PikaObj* self = New_TinyObj(NULL);
|
PikaObj* self = New_TinyObj(NULL);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
EXPECT_EQ(args_getInt(globals->list, (char*)"a"), 0);
|
EXPECT_EQ(args_getInt(globals->list, (char*)"a"), 0);
|
||||||
EXPECT_EQ(args_getInt(globals->list, (char*)"b"), 1);
|
EXPECT_EQ(args_getInt(globals->list, (char*)"b"), 1);
|
||||||
// obj_deinit(globals);
|
// obj_deinit(globals);
|
||||||
@ -265,7 +265,7 @@ TEST(VM, a_1_1) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int res = args_getInt(globals->list, (char*)"a");
|
int res = args_getInt(globals->list, (char*)"a");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -281,7 +281,7 @@ TEST(VM, a_1_1d1) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
float res = args_getFloat(globals->list, (char*)"a");
|
float res = args_getFloat(globals->list, (char*)"a");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -297,7 +297,7 @@ TEST(VM, a_jjcc) {
|
|||||||
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
char* pikaAsm = Parser_LineToAsm(buffs, line, NULL);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
float res = args_getFloat(globals->list, (char*)"a");
|
float res = args_getFloat(globals->list, (char*)"a");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -318,7 +318,7 @@ TEST(VM, while_a_1to10) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int res = args_getInt(globals->list, (char*)"a");
|
int res = args_getInt(globals->list, (char*)"a");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -340,7 +340,7 @@ TEST(VM, mem_x) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"", New_PikaMain);
|
PikaObj* self = newRootObj((char*)"", New_PikaMain);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int res = obj_getInt(globals, (char*)"mem.x");
|
int res = obj_getInt(globals, (char*)"mem.x");
|
||||||
EXPECT_EQ(2, res);
|
EXPECT_EQ(2, res);
|
||||||
@ -382,7 +382,7 @@ TEST(VM, RET_instruct) {
|
|||||||
"0 RET\n"
|
"0 RET\n"
|
||||||
"B0\n";
|
"B0\n";
|
||||||
PikaObj* self = New_TinyObj(NULL);
|
PikaObj* self = New_TinyObj(NULL);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
Arg* returnArg = args_getArg(globals->list, (char*)"return");
|
Arg* returnArg = args_getArg(globals->list, (char*)"return");
|
||||||
int num = arg_getInt(returnArg);
|
int num = arg_getInt(returnArg);
|
||||||
EXPECT_EQ(num, 13);
|
EXPECT_EQ(num, 13);
|
||||||
@ -403,7 +403,7 @@ TEST(VM, RUN_DEF) {
|
|||||||
"0 RUN test\n"
|
"0 RUN test\n"
|
||||||
"0 OUT a\n";
|
"0 OUT a\n";
|
||||||
PikaObj* self = New_TinyObj(NULL);
|
PikaObj* self = New_TinyObj(NULL);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
int num = obj_getInt(globals, (char*)"a");
|
int num = obj_getInt(globals, (char*)"a");
|
||||||
EXPECT_EQ(num, 1);
|
EXPECT_EQ(num, 1);
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -455,7 +455,7 @@ TEST(VM, RUN_local_b) {
|
|||||||
"0 RUN test\n"
|
"0 RUN test\n"
|
||||||
"0 OUT c\n";
|
"0 OUT c\n";
|
||||||
PikaObj* self = newRootObj((char*)"", New_BaseObj);
|
PikaObj* self = newRootObj((char*)"", New_BaseObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
int a = obj_getInt(globals, (char*)"a");
|
int a = obj_getInt(globals, (char*)"a");
|
||||||
int b = obj_getInt(globals, (char*)"b");
|
int b = obj_getInt(globals, (char*)"b");
|
||||||
int c = obj_getInt(globals, (char*)"c");
|
int c = obj_getInt(globals, (char*)"c");
|
||||||
@ -484,7 +484,7 @@ TEST(VM, RUN_DEF_add) {
|
|||||||
"0 RUN add\n"
|
"0 RUN add\n"
|
||||||
"0 OUT c\n";
|
"0 OUT c\n";
|
||||||
PikaObj* self = newRootObj((char*)"", New_BaseObj);
|
PikaObj* self = newRootObj((char*)"", New_BaseObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
int a = obj_getInt(globals, (char*)"a");
|
int a = obj_getInt(globals, (char*)"a");
|
||||||
int b = obj_getInt(globals, (char*)"b");
|
int b = obj_getInt(globals, (char*)"b");
|
||||||
int c = obj_getInt(globals, (char*)"c");
|
int c = obj_getInt(globals, (char*)"c");
|
||||||
@ -508,7 +508,7 @@ TEST(VM, run_def_add) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int c = args_getInt(globals->list, (char*)"c");
|
int c = args_getInt(globals->list, (char*)"c");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -528,7 +528,7 @@ TEST(VM, equ) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int c = args_getInt(globals->list, (char*)"a");
|
int c = args_getInt(globals->list, (char*)"a");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -552,7 +552,7 @@ TEST(VM, if_elif) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int b = args_getInt(globals->list, (char*)"b");
|
int b = args_getInt(globals->list, (char*)"b");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -576,7 +576,7 @@ TEST(VM, if_else) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int b = args_getInt(globals->list, (char*)"b");
|
int b = args_getInt(globals->list, (char*)"b");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
@ -600,7 +600,7 @@ TEST(VM, if_else_) {
|
|||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, line);
|
||||||
printf("%s", pikaAsm);
|
printf("%s", pikaAsm);
|
||||||
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = pikaVM_runAsm(self, pikaAsm);
|
VMParameters* globals = pikaVM_runAsm(self, pikaAsm);
|
||||||
|
|
||||||
int b = args_getInt(globals->list, (char*)"b");
|
int b = args_getInt(globals->list, (char*)"b");
|
||||||
obj_deinit(self);
|
obj_deinit(self);
|
||||||
|
@ -125,7 +125,7 @@ TEST(object_test, test3) {
|
|||||||
|
|
||||||
TEST(object_test, test6) {
|
TEST(object_test, test6) {
|
||||||
PikaObj* obj = newRootObj((char*)"test", New_PikaObj_test);
|
PikaObj* obj = newRootObj((char*)"test", New_PikaObj_test);
|
||||||
VM_Parameters* globals = obj_runDirect(obj, (char*)"res = add(1, 2)");
|
VMParameters* globals = obj_runDirect(obj, (char*)"res = add(1, 2)");
|
||||||
int32_t res = obj_getInt(globals, (char*)"res");
|
int32_t res = obj_getInt(globals, (char*)"res");
|
||||||
EXPECT_EQ(3, res);
|
EXPECT_EQ(3, res);
|
||||||
obj_deinit(obj);
|
obj_deinit(obj);
|
||||||
@ -211,7 +211,7 @@ TEST(object_test, obj_run_while) {
|
|||||||
" b = 1\n"
|
" b = 1\n"
|
||||||
" a = 0\n"
|
" a = 0\n"
|
||||||
"\n";
|
"\n";
|
||||||
VM_Parameters* globals = obj_runDirect(root, lines);
|
VMParameters* globals = obj_runDirect(root, lines);
|
||||||
EXPECT_EQ(obj_getInt(globals, (char*)"a"), 0);
|
EXPECT_EQ(obj_getInt(globals, (char*)"a"), 0);
|
||||||
EXPECT_EQ(obj_getInt(globals, (char*)"b"), 1);
|
EXPECT_EQ(obj_getInt(globals, (char*)"b"), 1);
|
||||||
obj_deinit(root);
|
obj_deinit(root);
|
||||||
|
@ -19,7 +19,7 @@ TEST(pikaMain, init) {
|
|||||||
TEST(pikaMain, new_mem) {
|
TEST(pikaMain, new_mem) {
|
||||||
pikaMemInfo.heapUsedMax = 0;
|
pikaMemInfo.heapUsedMax = 0;
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
VM_Parameters* globals =
|
VMParameters* globals =
|
||||||
obj_runDirect(pikaMain, (char*)
|
obj_runDirect(pikaMain, (char*)
|
||||||
"mem = PikaStdLib.MemChecker()\n"
|
"mem = PikaStdLib.MemChecker()\n"
|
||||||
"mem.max()\n"
|
"mem.max()\n"
|
||||||
@ -37,7 +37,7 @@ TEST(pikaMain, list_new) {
|
|||||||
pikaMemInfo.heapUsedMax = 0;
|
pikaMemInfo.heapUsedMax = 0;
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
/* run */
|
/* run */
|
||||||
VM_Parameters* globals =
|
VMParameters* globals =
|
||||||
obj_runDirect(pikaMain, (char*)
|
obj_runDirect(pikaMain, (char*)
|
||||||
"list = PikaStdData.List()\n"
|
"list = PikaStdData.List()\n"
|
||||||
"list.append(7)\n"
|
"list.append(7)\n"
|
||||||
@ -67,7 +67,7 @@ TEST(pikaMain, int_float_convert) {
|
|||||||
pikaMemInfo.heapUsedMax = 0;
|
pikaMemInfo.heapUsedMax = 0;
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
/* run */
|
/* run */
|
||||||
VM_Parameters* globals =
|
VMParameters* globals =
|
||||||
obj_runDirect(pikaMain, (char*)
|
obj_runDirect(pikaMain, (char*)
|
||||||
"a = 1\n"
|
"a = 1\n"
|
||||||
"a_f = float(a)\n"
|
"a_f = float(a)\n"
|
||||||
|
@ -10,7 +10,7 @@ extern "C" {
|
|||||||
extern char log_buff[LOG_BUFF_MAX][LOG_SIZE];
|
extern char log_buff[LOG_BUFF_MAX][LOG_SIZE];
|
||||||
TEST(sysObj, print) {
|
TEST(sysObj, print) {
|
||||||
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj);
|
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = obj_runDirect(obj, (char*)"print('hello world')");
|
VMParameters* globals = obj_runDirect(obj, (char*)"print('hello world')");
|
||||||
char* sysOut = args_getSysOut(globals->list);
|
char* sysOut = args_getSysOut(globals->list);
|
||||||
int errCode = args_getErrorCode(globals->list);
|
int errCode = args_getErrorCode(globals->list);
|
||||||
printf("sysout = %s\r\n", sysOut);
|
printf("sysout = %s\r\n", sysOut);
|
||||||
@ -24,7 +24,7 @@ TEST(sysObj, print) {
|
|||||||
|
|
||||||
TEST(sysObj, noMethod) {
|
TEST(sysObj, noMethod) {
|
||||||
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj);
|
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj);
|
||||||
VM_Parameters* globals = obj_runDirect(obj, (char*)"printttt('hello world')");
|
VMParameters* globals = obj_runDirect(obj, (char*)"printttt('hello world')");
|
||||||
char* sysOut = args_getSysOut(globals->list);
|
char* sysOut = args_getSysOut(globals->list);
|
||||||
int errCode = args_getErrorCode(globals->list);
|
int errCode = args_getErrorCode(globals->list);
|
||||||
printf("sysout = %s\r\n", sysOut);
|
printf("sysout = %s\r\n", sysOut);
|
||||||
|
@ -471,8 +471,8 @@ PIKA_WEAK int __runExtern_contral(PikaObj* self, char* cmd) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_Parameters* obj_runDirect(PikaObj* self, char* cmd) {
|
VMParameters* obj_runDirect(PikaObj* self, char* cmd) {
|
||||||
VM_Parameters* globals = NULL;
|
VMParameters* globals = NULL;
|
||||||
|
|
||||||
globals = pikaVM_run(self, cmd);
|
globals = pikaVM_run(self, cmd);
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -49,7 +49,7 @@ typedef struct PikaObj_t PikaObj;
|
|||||||
|
|
||||||
typedef PikaObj* (*NewFun)(Args* args);
|
typedef PikaObj* (*NewFun)(Args* args);
|
||||||
typedef PikaObj* (*InitFun)(PikaObj* self, Args* args);
|
typedef PikaObj* (*InitFun)(PikaObj* self, Args* args);
|
||||||
typedef PikaObj VM_Parameters;
|
typedef PikaObj VMParameters;
|
||||||
typedef void (*Method)(PikaObj* self, Args* args);
|
typedef void (*Method)(PikaObj* self, Args* args);
|
||||||
|
|
||||||
struct PikaObj_t {
|
struct PikaObj_t {
|
||||||
@ -149,7 +149,7 @@ void* methodArg_getPtr(Arg* method_arg);
|
|||||||
|
|
||||||
void obj_runNoRes(PikaObj* slef, char* cmd);
|
void obj_runNoRes(PikaObj* slef, char* cmd);
|
||||||
void obj_run(PikaObj* self, char* cmd);
|
void obj_run(PikaObj* self, char* cmd);
|
||||||
VM_Parameters* obj_runDirect(PikaObj* self, char* cmd);
|
VMParameters* obj_runDirect(PikaObj* self, char* cmd);
|
||||||
PikaObj* New_PikaObj(void);
|
PikaObj* New_PikaObj(void);
|
||||||
|
|
||||||
/* tools */
|
/* tools */
|
||||||
|
30
src/PikaVM.c
30
src/PikaVM.c
@ -36,14 +36,14 @@
|
|||||||
#include "dataStrs.h"
|
#include "dataStrs.h"
|
||||||
|
|
||||||
/* local head */
|
/* local head */
|
||||||
VM_Parameters* pikaVM_runAsmWithPars(PikaObj* self,
|
VMParameters* pikaVM_runAsmWithPars(PikaObj* self,
|
||||||
VM_Parameters* locals,
|
VMParameters* locals,
|
||||||
VM_Parameters* globals,
|
VMParameters* globals,
|
||||||
char* pikaAsm);
|
char* pikaAsm);
|
||||||
|
|
||||||
struct VMState {
|
struct VMState {
|
||||||
VM_Parameters* locals;
|
VMParameters* locals;
|
||||||
VM_Parameters* globals;
|
VMParameters* globals;
|
||||||
Queue* q0;
|
Queue* q0;
|
||||||
Queue* q1;
|
Queue* q1;
|
||||||
int32_t jmp;
|
int32_t jmp;
|
||||||
@ -145,7 +145,7 @@ static int32_t __getAddrOffsetFromJmp(char* start, char* code, int32_t jmp) {
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t __clearInvokeQueues(VM_Parameters* vm_pars) {
|
int32_t __clearInvokeQueues(VMParameters* vm_pars) {
|
||||||
for (char deepthChar = '0'; deepthChar < '9'; deepthChar++) {
|
for (char deepthChar = '0'; deepthChar < '9'; deepthChar++) {
|
||||||
char deepth[2] = {0};
|
char deepth[2] = {0};
|
||||||
deepth[0] = deepthChar;
|
deepth[0] = deepthChar;
|
||||||
@ -202,7 +202,7 @@ static Arg* VM_instruction_handler_RUN(PikaObj* self,
|
|||||||
char* data) {
|
char* data) {
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
Arg* returnArg = NULL;
|
Arg* returnArg = NULL;
|
||||||
VM_Parameters* subLocals = NULL;
|
VMParameters* subLocals = NULL;
|
||||||
char* methodPath = data;
|
char* methodPath = data;
|
||||||
PikaObj* methodHostObj;
|
PikaObj* methodHostObj;
|
||||||
Arg* method_arg;
|
Arg* method_arg;
|
||||||
@ -666,8 +666,8 @@ static enum Instruct __getInstruct(char* line) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t pikaVM_runAsmLine(PikaObj* self,
|
int32_t pikaVM_runAsmLine(PikaObj* self,
|
||||||
VM_Parameters* locals,
|
VMParameters* locals,
|
||||||
VM_Parameters* globals,
|
VMParameters* globals,
|
||||||
char* pikaAsm,
|
char* pikaAsm,
|
||||||
int32_t lineAddr) {
|
int32_t lineAddr) {
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
@ -740,9 +740,9 @@ nextLine:
|
|||||||
return nextAddr;
|
return nextAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_Parameters* pikaVM_runAsmWithPars(PikaObj* self,
|
VMParameters* pikaVM_runAsmWithPars(PikaObj* self,
|
||||||
VM_Parameters* locals,
|
VMParameters* locals,
|
||||||
VM_Parameters* globals,
|
VMParameters* globals,
|
||||||
char* pikaAsm) {
|
char* pikaAsm) {
|
||||||
int lineAddr = 0;
|
int lineAddr = 0;
|
||||||
int size = strGetSize(pikaAsm);
|
int size = strGetSize(pikaAsm);
|
||||||
@ -771,13 +771,13 @@ VM_Parameters* pikaVM_runAsmWithPars(PikaObj* self,
|
|||||||
return locals;
|
return locals;
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_Parameters* pikaVM_runAsm(PikaObj* self, char* pikaAsm) {
|
VMParameters* pikaVM_runAsm(PikaObj* self, char* pikaAsm) {
|
||||||
return pikaVM_runAsmWithPars(self, self, self, pikaAsm);
|
return pikaVM_runAsmWithPars(self, self, self, pikaAsm);
|
||||||
}
|
}
|
||||||
|
|
||||||
VM_Parameters* pikaVM_run(PikaObj* self, char* multiLine) {
|
VMParameters* pikaVM_run(PikaObj* self, char* multiLine) {
|
||||||
Args* buffs = New_strBuff();
|
Args* buffs = New_strBuff();
|
||||||
VM_Parameters* globals = NULL;
|
VMParameters* globals = NULL;
|
||||||
char* pikaAsm = Parser_multiLineToAsm(buffs, multiLine);
|
char* pikaAsm = Parser_multiLineToAsm(buffs, multiLine);
|
||||||
if (NULL == pikaAsm) {
|
if (NULL == pikaAsm) {
|
||||||
__platform_printf("[error]: Syntax error.\r\n");
|
__platform_printf("[error]: Syntax error.\r\n");
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#define __PIKA__VM__H
|
#define __PIKA__VM__H
|
||||||
#include "PikaObj.h"
|
#include "PikaObj.h"
|
||||||
|
|
||||||
VM_Parameters* pikaVM_run(PikaObj* self, char* pyLine);
|
VMParameters* pikaVM_run(PikaObj* self, char* pyLine);
|
||||||
VM_Parameters* pikaVM_runAsm(PikaObj* self, char* pikaAsm);
|
VMParameters* pikaVM_runAsm(PikaObj* self, char* pikaAsm);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user