change New_Class() to Class()

This commit is contained in:
lyon1998 2021-10-18 11:33:11 +08:00
parent 0eaf7a77d6
commit 709f9437bf
21 changed files with 59 additions and 61 deletions

View File

@ -67,9 +67,9 @@ void checker_objMemChecker(PikaObj *(*NewFun)(Args *), char *objName)
int32_t main() int32_t main()
{ {
checker_objMemChecker(New_TinyObj, "tiny"); checker_objMemChecker(TinyObj, "tiny");
checker_objMemChecker(New_BaseObj, "base"); checker_objMemChecker(BaseObj, "base");
checker_objMemChecker(New_PikaStdLib_SysObj, "sys"); checker_objMemChecker(PikaStdLib_SysObj, "sys");
{ {
Arg *arg = New_arg(NULL); Arg *arg = New_arg(NULL);
checker_printMemUsage("void arg"); checker_printMemUsage("void arg");

View File

@ -20,7 +20,7 @@ PikaObj *New_LED(Args *args)
/* Derive from the tiny object class. /* Derive from the tiny object class.
Tiny object can not import sub object. Tiny object can not import sub object.
Tiny object is the smallest object. */ Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args); PikaObj *self = TinyObj(args);
/* bind the method */ /* bind the method */
class_defineMethod(self, "on()", onMethod); class_defineMethod(self, "on()", onMethod);
@ -35,7 +35,7 @@ PikaObj *New_MYROOT(Args *args)
/* Derive from the base object class . /* Derive from the base object class .
BaseObj is the smallest object that can BaseObj is the smallest object that can
import sub object. */ import sub object. */
PikaObj *self = New_BaseObj(args); PikaObj *self = BaseObj(args);
/* import LED class */ /* import LED class */
obj_import(self, "LED", New_LED); obj_import(self, "LED", New_LED);

View File

@ -16,7 +16,7 @@ PikaObj *New_TEST(Args *args)
/* Derive from the tiny object class. /* Derive from the tiny object class.
Tiny object can not import sub object. Tiny object can not import sub object.
Tiny object is the smallest object. */ Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args); PikaObj *self = TinyObj(args);
/* bind the method */ /* bind the method */
class_defineMethod(self, "add(val1:int, val2:int)->int", addMethod); class_defineMethod(self, "add(val1:int, val2:int)->int", addMethod);
@ -30,7 +30,7 @@ PikaObj *New_MYROOT(Args *args)
/* Derive from the base object class . /* Derive from the base object class .
BaseObj is the smallest object that can BaseObj is the smallest object that can
import sub object. */ import sub object. */
PikaObj *self = New_BaseObj(args); PikaObj *self = BaseObj(args);
/* import LED class */ /* import LED class */
obj_import(self, "TEST", New_TEST); obj_import(self, "TEST", New_TEST);

View File

@ -15,7 +15,7 @@ PikaObj *New_USART(Args *args)
/* Derive from the tiny object class. /* Derive from the tiny object class.
Tiny object can not import sub object. Tiny object can not import sub object.
Tiny object is the smallest object. */ Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args); PikaObj *self = TinyObj(args);
/* bind the method */ /* bind the method */
class_defineMethod(self, "send(data:str)", sendMethod); class_defineMethod(self, "send(data:str)", sendMethod);
@ -29,7 +29,7 @@ PikaObj *New_MYROOT(Args *args)
/* Derive from the base object class . /* Derive from the base object class .
BaseObj is the smallest object that can BaseObj is the smallest object that can
import sub object. */ import sub object. */
PikaObj *self = New_BaseObj(args); PikaObj *self = BaseObj(args);
/* import LED class */ /* import LED class */
obj_import(self, "USART", New_USART); obj_import(self, "USART", New_USART);

View File

@ -27,7 +27,7 @@ PikaObj *New_USART(Args *args)
/* Derive from the tiny object class. /* Derive from the tiny object class.
Tiny object can not import sub object. Tiny object can not import sub object.
Tiny object is the smallest object. */ Tiny object is the smallest object. */
PikaObj *self = New_TinyObj(args); PikaObj *self = TinyObj(args);
/* setArgs */ /* setArgs */
obj_setInt(self, "speed", 9600); obj_setInt(self, "speed", 9600);
@ -65,7 +65,7 @@ PikaObj *New_MYROOT(Args *args)
/* Derive from the base object class . /* Derive from the base object class .
BaseObj is the smallest object that can BaseObj is the smallest object that can
import sub object. */ import sub object. */
PikaObj *self = New_BaseObj(args); PikaObj *self = BaseObj(args);
/* import LED class */ /* import LED class */
obj_import(self, "USART", New_USART); obj_import(self, "USART", New_USART);

View File

@ -11,7 +11,7 @@ void obj_runWithInfo(PikaObj *self, char *cmd)
int main() int main()
{ {
/* new root object */ /* new root object */
PikaObj *root = newRootObj("root", New_PikaStdLib_SysObj); PikaObj *root = newRootObj("root", PikaStdLib_SysObj);
obj_runWithInfo(root, "set('a',1)"); obj_runWithInfo(root, "set('a',1)");
obj_runWithInfo(root, "print(a)"); obj_runWithInfo(root, "print(a)");

View File

@ -15,7 +15,7 @@ TEST(VM, num1) {
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL); char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL);
printf("%s", pikaAsm); printf("%s", pikaAsm);
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
args_deinit(pikaVM_runAsm(self, pikaAsm)); args_deinit(pikaVM_runAsm(self, pikaAsm));
obj_deinit(self); obj_deinit(self);
args_deinit(buffs); args_deinit(buffs);
@ -27,7 +27,7 @@ TEST(VM, a_1) {
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL); char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL);
printf("%s", pikaAsm); printf("%s", pikaAsm);
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
args_deinit(pikaVM_runAsm(self, pikaAsm)); args_deinit(pikaVM_runAsm(self, pikaAsm));
ASSERT_EQ(obj_getInt(self, (char*)"a"), 1); ASSERT_EQ(obj_getInt(self, (char*)"a"), 1);
@ -42,7 +42,7 @@ TEST(VM, a_1d1) {
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL); char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL);
printf("%s", pikaAsm); printf("%s", pikaAsm);
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
args_deinit(pikaVM_runAsm(self, pikaAsm)); args_deinit(pikaVM_runAsm(self, pikaAsm));
ASSERT_FLOAT_EQ(obj_getFloat(self, (char*)"a"), 1.1); ASSERT_FLOAT_EQ(obj_getFloat(self, (char*)"a"), 1.1);
@ -57,7 +57,7 @@ TEST(VM, str_xy) {
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL); char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL);
printf("%s", pikaAsm); printf("%s", pikaAsm);
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
args_deinit(pikaVM_runAsm(self, pikaAsm)); args_deinit(pikaVM_runAsm(self, pikaAsm));
ASSERT_STREQ(obj_getStr(self, (char*)"a"), (char*)"xy"); ASSERT_STREQ(obj_getStr(self, (char*)"a"), (char*)"xy");
@ -72,7 +72,7 @@ TEST(VM, str_xy_space) {
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL); char* pikaAsm = pikaParseLineToAsm(buffs, line, NULL);
printf("%s", pikaAsm); printf("%s", pikaAsm);
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
args_deinit(pikaVM_runAsm(self, pikaAsm)); args_deinit(pikaVM_runAsm(self, pikaAsm));
ASSERT_STREQ(obj_getStr(self, (char*)"a"), (char*)"xy "); ASSERT_STREQ(obj_getStr(self, (char*)"a"), (char*)"xy ");
@ -83,7 +83,7 @@ TEST(VM, str_xy_space) {
} }
TEST(VM, ref_a_b) { TEST(VM, ref_a_b) {
PikaObj* self = newRootObj((char*)"root", New_PikaStdLib_SysObj); PikaObj* self = newRootObj((char*)"root", PikaStdLib_SysObj);
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
args_deinit(pikaVM_runAsm( args_deinit(pikaVM_runAsm(
@ -98,7 +98,7 @@ TEST(VM, ref_a_b) {
} }
TEST(VM, Run_add) { TEST(VM, Run_add) {
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator); PikaObj* self = newRootObj((char*)"root", PikaMath_Operator);
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
args_deinit(pikaVM_runAsm( args_deinit(pikaVM_runAsm(
@ -112,7 +112,7 @@ TEST(VM, Run_add) {
} }
TEST(VM, Run_add_multy) { TEST(VM, Run_add_multy) {
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator); PikaObj* self = newRootObj((char*)"root", PikaMath_Operator);
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
args_deinit( args_deinit(
@ -128,7 +128,7 @@ TEST(VM, Run_add_multy) {
} }
TEST(VM, Run_add_1_2_3) { TEST(VM, Run_add_1_2_3) {
PikaObj* self = newRootObj((char*)"root", New_PikaMath_Operator); PikaObj* self = newRootObj((char*)"root", PikaMath_Operator);
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
args_deinit(pikaVM_runAsm( args_deinit(pikaVM_runAsm(
@ -149,7 +149,7 @@ TEST(VM, JEZ) {
"0 JEZ 2\n" "0 JEZ 2\n"
"B0\n" "B0\n"
"B0\n"; "B0\n";
PikaObj* self = New_TinyObj(NULL); PikaObj* self = TinyObj(NULL);
int lineAddr = 0; int lineAddr = 0;
int size = strGetSize(pikaAsm); int size = strGetSize(pikaAsm);
Args* sysRes = New_args(NULL); Args* sysRes = New_args(NULL);
@ -171,7 +171,7 @@ TEST(VM, JMP) {
"0 JMP 2\n" "0 JMP 2\n"
"B0\n" "B0\n"
"B0\n"; "B0\n";
PikaObj* self = New_TinyObj(NULL); PikaObj* self = TinyObj(NULL);
int lineAddr = 0; int lineAddr = 0;
int size = strGetSize(pikaAsm); int size = strGetSize(pikaAsm);
Args* sysRes = New_args(NULL); Args* sysRes = New_args(NULL);
@ -193,7 +193,7 @@ TEST(VM, JMP_back1) {
"0 JMP -1\n" "0 JMP -1\n"
"B0\n" "B0\n"
"B0\n"; "B0\n";
PikaObj* self = New_TinyObj(NULL); PikaObj* self = TinyObj(NULL);
int lineAddr = 0; int lineAddr = 0;
int size = strGetSize(pikaAsm); int size = strGetSize(pikaAsm);
Args* sysRes = New_args(NULL); Args* sysRes = New_args(NULL);
@ -224,7 +224,7 @@ TEST(VM, WHILE) {
char* pikaAsm = pikaParseMultiLineToAsm(buffs, (char*)lines); char* pikaAsm = pikaParseMultiLineToAsm(buffs, (char*)lines);
printf("%s", pikaAsm); printf("%s", pikaAsm);
pikaMemInfo.heapUsedMax = 0; pikaMemInfo.heapUsedMax = 0;
PikaObj* self = New_TinyObj(NULL); PikaObj* self = TinyObj(NULL);
Args* runRes = pikaVM_runAsm(self, pikaAsm); Args* runRes = pikaVM_runAsm(self, pikaAsm);
EXPECT_EQ(obj_getInt(self, (char*)"a"), 0); EXPECT_EQ(obj_getInt(self, (char*)"a"), 0);
EXPECT_EQ(obj_getInt(self, (char*)"b"), 1); EXPECT_EQ(obj_getInt(self, (char*)"b"), 1);

View File

@ -43,7 +43,7 @@ void add(PikaObj* obj, Args* args) {
} }
PikaObj* New_PikaObj_test(Args* args) { PikaObj* New_PikaObj_test(Args* args) {
PikaObj* self = New_PikaStdLib_SysObj(args); PikaObj* self = PikaStdLib_SysObj(args);
class_defineMethod(self, (char*)"hello(name:str, isShow:int)", hello); class_defineMethod(self, (char*)"hello(name:str, isShow:int)", hello);
class_defineMethod( class_defineMethod(
self, (char*)"hello2(name1:str, name2:str, name3:str, isShow:int)", self, (char*)"hello2(name1:str, name2:str, name3:str, isShow:int)",
@ -65,7 +65,7 @@ PikaObj* New_USART(Args* args) {
/* Derive from the tiny object class. /* Derive from the tiny object class.
Tiny object can not import sub object. Tiny object can not import sub object.
Tiny object is the smallest object. */ Tiny object is the smallest object. */
PikaObj* self = New_TinyObj(args); PikaObj* self = TinyObj(args);
/* bind the method */ /* bind the method */
class_defineMethod(self, (char*)"send(data:str)", sendMethod); class_defineMethod(self, (char*)"send(data:str)", sendMethod);
@ -78,7 +78,7 @@ PikaObj* New_MYROOT1(Args* args) {
/* Derive from the base object class . /* Derive from the base object class .
BaseObj is the smallest object that can BaseObj is the smallest object that can
import sub object. */ import sub object. */
PikaObj* self = New_BaseObj(args); PikaObj* self = BaseObj(args);
/* new led object bellow root object */ /* new led object bellow root object */
obj_newObj(self, (char*)"usart", (char*)"USART", (NewFun)New_USART); obj_newObj(self, (char*)"usart", (char*)"USART", (NewFun)New_USART);
@ -88,7 +88,7 @@ PikaObj* New_MYROOT1(Args* args) {
} }
TEST(object_test, test1) { TEST(object_test, test1) {
PikaObj* process = newRootObj((char*)"sys", New_PikaStdLib_SysObj); PikaObj* process = newRootObj((char*)"sys", PikaStdLib_SysObj);
float floatTest = 12.231; float floatTest = 12.231;
obj_bindFloat(process, (char*)"testFloatBind", &floatTest); obj_bindFloat(process, (char*)"testFloatBind", &floatTest);
EXPECT_TRUE( EXPECT_TRUE(
@ -150,7 +150,7 @@ TEST(object_test, test6) {
} }
TEST(object_test, test7) { TEST(object_test, test7) {
PikaObj* sys = newRootObj((char*)"sys", New_PikaStdLib_SysObj); PikaObj* sys = newRootObj((char*)"sys", PikaStdLib_SysObj);
int32_t a = 0; int32_t a = 0;
obj_bind(sys, (char*)"int", (char*)"a", &a); obj_bind(sys, (char*)"int", (char*)"a", &a);
obj_run(sys, (char*)"set('a', 1)"); obj_run(sys, (char*)"set('a', 1)");
@ -160,7 +160,7 @@ TEST(object_test, test7) {
} }
TEST(object_test, test8) { TEST(object_test, test8) {
PikaObj* sys = newRootObj((char*)"sys", New_PikaStdLib_SysObj); PikaObj* sys = newRootObj((char*)"sys", PikaStdLib_SysObj);
obj_run(sys, (char*)"set('a', 1)"); obj_run(sys, (char*)"set('a', 1)");
obj_run(sys, (char*)"remove('a')"); obj_run(sys, (char*)"remove('a')");
obj_deinit(sys); obj_deinit(sys);
@ -168,9 +168,9 @@ TEST(object_test, test8) {
} }
TEST(object_test, test9) { TEST(object_test, test9) {
PikaObj* sys = newRootObj((char*)"sys", New_PikaStdLib_SysObj); PikaObj* sys = newRootObj((char*)"sys", PikaStdLib_SysObj);
obj_run(sys, (char*)"ls()"); obj_run(sys, (char*)"ls()");
obj_setPtr(sys, (char*)"baseClass", (void*)New_TinyObj); obj_setPtr(sys, (char*)"baseClass", (void*)TinyObj);
obj_run(sys, (char*)"ls()"); obj_run(sys, (char*)"ls()");
obj_deinit(sys); obj_deinit(sys);
EXPECT_EQ(pikaMemNow(), 0); EXPECT_EQ(pikaMemNow(), 0);
@ -213,7 +213,7 @@ TEST(object_test, voidRun) {
} }
TEST(object_test, printa) { TEST(object_test, printa) {
PikaObj* root = newRootObj((char*)"root", New_BaseObj); PikaObj* root = newRootObj((char*)"root", BaseObj);
obj_run(root, (char*)"a = 2"); obj_run(root, (char*)"a = 2");
obj_run(root, (char*)"print(a)"); obj_run(root, (char*)"print(a)");
char* sysOut = obj_getSysOut(root); char* sysOut = obj_getSysOut(root);
@ -223,7 +223,7 @@ TEST(object_test, printa) {
} }
TEST(object_test, copyArg) { TEST(object_test, copyArg) {
PikaObj* root = newRootObj((char*)"root", New_BaseObj); PikaObj* root = newRootObj((char*)"root", BaseObj);
Arg* arg = New_arg(NULL); Arg* arg = New_arg(NULL);
arg = arg_setInt(arg, (char*)"a", 1); arg = arg_setInt(arg, (char*)"a", 1);
obj_setArg(root, (char*)"a", arg); obj_setArg(root, (char*)"a", arg);

View File

@ -65,14 +65,14 @@ TEST(queue, str) {
} }
TEST(queueObj, init) { TEST(queueObj, init) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
obj_deinit(q); obj_deinit(q);
EXPECT_EQ(pikaMemNow(), 0); EXPECT_EQ(pikaMemNow(), 0);
} }
TEST(queueObj, INT) { TEST(queueObj, INT) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
queueObj_pushInt(q, 1); queueObj_pushInt(q, 1);
queueObj_pushInt(q, 2); queueObj_pushInt(q, 2);
@ -85,7 +85,7 @@ TEST(queueObj, INT) {
} }
TEST(queueObj, FLOAT) { TEST(queueObj, FLOAT) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
queueObj_pushFloat(q, 1.1f); queueObj_pushFloat(q, 1.1f);
queueObj_pushFloat(q, 2.2f); queueObj_pushFloat(q, 2.2f);
@ -98,7 +98,7 @@ TEST(queueObj, FLOAT) {
} }
TEST(queueObj, str) { TEST(queueObj, str) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
queueObj_pushStr(q, (char*)"abc"); queueObj_pushStr(q, (char*)"abc");
queueObj_pushStr(q, (char*)"123"); queueObj_pushStr(q, (char*)"123");
@ -111,7 +111,7 @@ TEST(queueObj, str) {
} }
TEST(queueObj, obj) { TEST(queueObj, obj) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
queueObj_pushObj(q, (char*)"type1"); queueObj_pushObj(q, (char*)"type1");
queueObj_pushObj(q, (char*)"type2"); queueObj_pushObj(q, (char*)"type2");
@ -129,7 +129,7 @@ TEST(queueObj, obj) {
} }
TEST(queueObj, currentObj) { TEST(queueObj, currentObj) {
QueueObj* q = New_TinyObj(NULL); QueueObj* q = TinyObj(NULL);
queueObj_init(q); queueObj_init(q);
queueObj_pushObj(q, (char*)"type1"); queueObj_pushObj(q, (char*)"type1");

View File

@ -6,7 +6,7 @@ extern "C" {
} }
TEST(sysObj, print) { TEST(sysObj, print) {
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj); PikaObj* obj = newRootObj((char*)"test", PikaStdLib_SysObj);
Args* res = obj_runDirect(obj, (char*)"print('hello world')"); Args* res = obj_runDirect(obj, (char*)"print('hello world')");
char* sysOut = args_getSysOut(res); char* sysOut = args_getSysOut(res);
int errCode = args_getErrorCode(res); int errCode = args_getErrorCode(res);
@ -19,7 +19,7 @@ TEST(sysObj, print) {
} }
TEST(sysObj, set) { TEST(sysObj, set) {
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj); PikaObj* obj = newRootObj((char*)"test", PikaStdLib_SysObj);
Args* res = obj_runDirect(obj, (char*)"set('a', 1)"); Args* res = obj_runDirect(obj, (char*)"set('a', 1)");
int a = obj_getInt(obj, (char*)"a"); int a = obj_getInt(obj, (char*)"a");
char* sysOut = args_getSysOut(res); char* sysOut = args_getSysOut(res);
@ -34,7 +34,7 @@ TEST(sysObj, set) {
} }
TEST(sysObj, noMethod) { TEST(sysObj, noMethod) {
PikaObj* obj = newRootObj((char*)"test", New_PikaStdLib_SysObj); PikaObj* obj = newRootObj((char*)"test", PikaStdLib_SysObj);
Args* res = obj_runDirect(obj, (char*)"printttt('hello world')"); Args* res = obj_runDirect(obj, (char*)"printttt('hello world')");
char* sysOut = args_getSysOut(res); char* sysOut = args_getSysOut(res);
int errCode = args_getErrorCode(res); int errCode = args_getErrorCode(res);

View File

@ -152,8 +152,8 @@ static void set(PikaObj* self, Args* args) {
return; return;
} }
PikaObj* New_BaseObj(Args* args) { PikaObj* BaseObj(Args* args) {
PikaObj* self = New_TinyObj(args); PikaObj* self = TinyObj(args);
class_defineMethod(self, "print(val:any)", print); class_defineMethod(self, "print(val:any)", print);
class_defineMethod(self, "set(argPath:str, val:any)", set); class_defineMethod(self, "set(argPath:str, val:any)", set);
return self; return self;

View File

@ -9,7 +9,7 @@
#include "TinyObj.h" #include "TinyObj.h"
#include "dataMemory.h" #include "dataMemory.h"
PikaObj* New_BaseObj(Args* args); PikaObj* BaseObj(Args* args);
int32_t obj_newObjFromClassLoader(PikaObj* self, int32_t obj_newObjFromClassLoader(PikaObj* self,
char* objPath, char* objPath,
char* classPath); char* classPath);

View File

@ -150,7 +150,7 @@ AST* pikaParseLine(char* line, Stack* blockStack) {
for (int i = 0; i < blockDeepthLast - blockDeepth; i++) { for (int i = 0; i < blockDeepthLast - blockDeepth; i++) {
QueueObj* exitBlock = obj_getObj(ast, "exitBlock", 0); QueueObj* exitBlock = obj_getObj(ast, "exitBlock", 0);
if (NULL == exitBlock) { if (NULL == exitBlock) {
obj_newObj(ast, "exitBlock", "", New_TinyObj); obj_newObj(ast, "exitBlock", "", TinyObj);
exitBlock = obj_getObj(ast, "exitBlock", 0); exitBlock = obj_getObj(ast, "exitBlock", 0);
queueObj_init(exitBlock); queueObj_init(exitBlock);
} }

View File

@ -13,7 +13,7 @@ void _beforDinit(PikaObj* self) {
/* override in user code */ /* override in user code */
} }
PikaObj* New_TinyObj(Args* args) { PikaObj* TinyObj(Args* args) {
PikaObj* self = pikaMalloc(sizeof(PikaObj)); PikaObj* self = pikaMalloc(sizeof(PikaObj));
/* List */ /* List */

View File

@ -6,5 +6,5 @@
#ifndef __TYNYOBJ__H #ifndef __TYNYOBJ__H
#define __TYNYOBJ__H #define __TYNYOBJ__H
#include "PikaObj.h" #include "PikaObj.h"
PikaObj* New_TinyObj(Args* args); PikaObj* TinyObj(Args* args);
#endif #endif

View File

@ -2,7 +2,7 @@
#include "BaseObj.h" #include "BaseObj.h"
#include "dataQueue.h" #include "dataQueue.h"
QueueObj* New_queueObj() { QueueObj* New_queueObj() {
PikaObj* self = New_TinyObj(NULL); PikaObj* self = TinyObj(NULL);
queueObj_init(self); queueObj_init(self);
return self; return self;
} }
@ -19,7 +19,7 @@ int32_t queueObj_pushObj(QueueObj* self, char* className) {
char *topStr = fast_itoa(buff, top); char *topStr = fast_itoa(buff, top);
/* add top */ /* add top */
obj_setInt(self, "top", top + 1); obj_setInt(self, "top", top + 1);
return obj_newObj(self, topStr, className, New_TinyObj); return obj_newObj(self, topStr, className, TinyObj);
} }
PikaObj* queueObj_getCurrentObj(QueueObj* self) { PikaObj* queueObj_getCurrentObj(QueueObj* self) {

View File

@ -112,7 +112,7 @@ impl ClassInfo {
pub fn script_fn(&self) -> String { pub fn script_fn(&self) -> String {
let mut script_fn = String::new(); let mut script_fn = String::new();
script_fn.push_str("PikaObj * pikaScriptInit(){\r\n"); script_fn.push_str("PikaObj * pikaScriptInit(){\r\n");
script_fn.push_str(" PikaObj * pikaMain = newRootObj(\"pikaMain\", New_PikaMain);\r\n"); script_fn.push_str(" PikaObj * pikaMain = newRootObj(\"pikaMain\", PikaMain);\r\n");
script_fn.push_str(&self.script_list.content); script_fn.push_str(&self.script_list.content);
script_fn.push_str(" obj_run(pikaMain, \"\");\r\n"); script_fn.push_str(" obj_run(pikaMain, \"\");\r\n");
script_fn.push_str(" return pikaMain;\r\n"); script_fn.push_str(" return pikaMain;\r\n");
@ -124,7 +124,7 @@ impl ClassInfo {
let mut new_class_fn = String::new(); let mut new_class_fn = String::new();
let new_class_fn_head = format!("{}{{\n", self.new_class_fn_name()); let new_class_fn_head = format!("{}{{\n", self.new_class_fn_name());
new_class_fn.push_str(&new_class_fn_head); new_class_fn.push_str(&new_class_fn_head);
let derive = format!(" PikaObj *self = New_{}(args);\n", self.super_class_name); let derive = format!(" PikaObj *self = {}(args);\n", self.super_class_name);
new_class_fn.push_str(&derive); new_class_fn.push_str(&derive);
for (_, import_info) in self.import_list.iter() { for (_, import_info) in self.import_list.iter() {
new_class_fn.push_str(&import_info.import_fn()); new_class_fn.push_str(&import_info.import_fn());
@ -143,7 +143,7 @@ impl ClassInfo {
} }
pub fn new_class_fn_name(&self) -> String { pub fn new_class_fn_name(&self) -> String {
return format!("PikaObj *New_{}(Args *args)", self.this_class_name); return format!("PikaObj *{}(Args *args)", self.this_class_name);
} }
pub fn method_impl_declear(&self) -> String { pub fn method_impl_declear(&self) -> String {

View File

@ -10,7 +10,6 @@ pub struct Compiler {
pub source_path: String, pub source_path: String,
pub class_list: BTreeMap<String, ClassInfo>, pub class_list: BTreeMap<String, ClassInfo>,
pub class_now_name: Option<String>, pub class_now_name: Option<String>,
pub package_list: BTreeMap<String, ClassInfo>,
pub package_now_name: Option<String>, pub package_now_name: Option<String>,
} }
@ -21,7 +20,6 @@ impl Compiler {
source_path: source_path.clone(), source_path: source_path.clone(),
class_now_name: None, class_now_name: None,
class_list: BTreeMap::new(), class_list: BTreeMap::new(),
package_list: BTreeMap::new(),
package_now_name: None, package_now_name: None,
}; };
return compiler; return compiler;
@ -64,7 +62,7 @@ impl Compiler {
}; };
let package_name = pacakge_now.this_class_name.clone(); let package_name = pacakge_now.this_class_name.clone();
compiler compiler
.package_list .class_list
.entry(package_name.clone()) .entry(package_name.clone())
.or_insert(pacakge_now); .or_insert(pacakge_now);
compiler.package_now_name = Some(package_name.clone()); compiler.package_now_name = Some(package_name.clone());
@ -113,7 +111,7 @@ impl Compiler {
Some(s) => s, Some(s) => s,
None => return compiler, None => return compiler,
}; };
let package_now = compiler.package_list.get_mut(&package_now_name).unwrap(); let package_now = compiler.class_list.get_mut(&package_now_name).unwrap();
let class_name_without_file = match my_string::get_last_token(&class_name, '_') { let class_name_without_file = match my_string::get_last_token(&class_name, '_') {
Some(s) => s, Some(s) => s,
None => return compiler, None => return compiler,

View File

@ -29,7 +29,7 @@ impl ImportInfo {
} }
pub fn import_fn(&self) -> String { pub fn import_fn(&self) -> String {
return format!( return format!(
" obj_import(self, \"{}\", New_{});\n", " obj_import(self, \"{}\", {});\n",
self.import_class_name, self.import_class_name self.import_class_name, self.import_class_name
); );
} }

View File

@ -36,7 +36,7 @@ impl ObjectInfo {
let mut new_object_fn = String::new(); let mut new_object_fn = String::new();
/* do not generate new object for pikaMain class */ /* do not generate new object for pikaMain class */
let new_fn = format!( let new_fn = format!(
" obj_newObj(self, \"{}\", \"{}\", New_{});\n", " obj_newObj(self, \"{}\", \"{}\", {});\n",
self.name, self.import_class_name, self.import_class_name self.name, self.import_class_name, self.import_class_name
); );
new_object_fn.push_str(&new_fn); new_object_fn.push_str(&new_fn);