diff --git a/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.c b/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.c index b18307b30..56e8f6936 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "BaseObj.h" #include "PikaObj.h" #include "TinyObj.h" @@ -6,150 +11,150 @@ #include "dataStrs.h" static void* getClassPtr(PikaObj* classObj, char* classPath) { - char* ptrPath = classPath; - return obj_getPtr(classObj, ptrPath); + char* ptrPath = classPath; + return obj_getPtr(classObj, ptrPath); } int32_t obj_newObjByFun(PikaObj* self, char* objName, char* className, void* newFunPtr) { - /* class means subprocess init */ - Args* buffs = New_strBuff(); + /* class means subprocess init */ + Args* buffs = New_strBuff(); - /* class means subprocess init */ - char* mataObjName = strsAppend(buffs, "[mate]", objName); - obj_setPtr(self, mataObjName, newFunPtr); - /* add void process Ptr, no inited */ - args_setObjectWithClass(self->attributeList, objName, className, NULL); + /* class means subprocess init */ + char* mataObjName = strsAppend(buffs, "[mate]", objName); + obj_setPtr(self, mataObjName, newFunPtr); + /* add void process Ptr, no inited */ + args_setObjectWithClass(self->attributeList, objName, className, NULL); - args_deinit(buffs); - return 0; + args_deinit(buffs); + return 0; } int32_t sysObj_setObjbyClass(PikaObj* self, char* objName, char* classPath) { - /* class means subprocess init */ - Args* buffs = New_strBuff(); - PikaObj* classLoader = obj_getObj(self, "_clsld", 0); - void* newFunPtr = getClassPtr(classLoader, classPath); + /* class means subprocess init */ + Args* buffs = New_strBuff(); + PikaObj* classLoader = obj_getObj(self, "_clsld", 0); + void* newFunPtr = getClassPtr(classLoader, classPath); - /* class means subprocess init */ - char* mataObjName = strsAppend(buffs, "[mate]", objName); - obj_setPtr(self, mataObjName, newFunPtr); - /* add void process Ptr, no inited */ - args_setObjectWithClass(self->attributeList, objName, classPath, NULL); + /* class means subprocess init */ + char* mataObjName = strsAppend(buffs, "[mate]", objName); + obj_setPtr(self, mataObjName, newFunPtr); + /* add void process Ptr, no inited */ + args_setObjectWithClass(self->attributeList, objName, classPath, NULL); - args_deinit(buffs); - return 0; + args_deinit(buffs); + return 0; } static int32_t storeClassInfo(PikaObj* self, Args* buffs, char* classPath, void* classPtr) { - int32_t res = 0; - PikaObj* classHost = obj_getObj(self, classPath, 1); - if (NULL == classHost) { - res = 1; + int32_t res = 0; + PikaObj* classHost = obj_getObj(self, classPath, 1); + if (NULL == classHost) { + res = 1; + goto exit; + } + char* className = strsGetLastToken(buffs, classPath, '.'); + char* classStoreName = className; + obj_setPtr(classHost, classStoreName, classPtr); + res = 0; goto exit; - } - char* className = strsGetLastToken(buffs, classPath, '.'); - char* classStoreName = className; - obj_setPtr(classHost, classStoreName, classPtr); - res = 0; - goto exit; exit: - return res; + return res; } int32_t obj_import(PikaObj* self, char* className, NewFun classPtr) { - PikaObj* classLoader = obj_getObj(self, "_clsld", 0); - Args* buffs = New_args(NULL); - int32_t res = storeClassInfo(classLoader, buffs, className, classPtr); - args_deinit(buffs); - return res; + PikaObj* classLoader = obj_getObj(self, "_clsld", 0); + Args* buffs = New_args(NULL); + int32_t res = storeClassInfo(classLoader, buffs, className, classPtr); + args_deinit(buffs); + return res; } int32_t obj_newObj(PikaObj* self, char* objPath, char* classPath) { - PikaObj* classLoader = obj_getObj(self, "_clsld", 0); - Args* buffs = New_args(NULL); - int res = 0; - void* NewObjPtr = getClassPtr(classLoader, classPath); - if (NULL == NewObjPtr) { - res = 1; + PikaObj* classLoader = obj_getObj(self, "_clsld", 0); + Args* buffs = New_args(NULL); + int res = 0; + void* NewObjPtr = getClassPtr(classLoader, classPath); + if (NULL == NewObjPtr) { + res = 1; + goto exit; + } + PikaObj* objHost = obj_getObj(self, objPath, 1); + if (NULL == objHost) { + res = 2; + goto exit; + } + char* objName = strsGetLastToken(buffs, objPath, '.'); + obj_newObjByFun(objHost, objName, classPath, NewObjPtr); + res = 0; goto exit; - } - PikaObj* objHost = obj_getObj(self, objPath, 1); - if (NULL == objHost) { - res = 2; - goto exit; - } - char* objName = strsGetLastToken(buffs, objPath, '.'); - obj_newObjByFun(objHost, objName, classPath, NewObjPtr); - res = 0; - goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } static void print(PikaObj* self, Args* args) { - obj_setErrorCode(self, 0); - char* res = args_print(args, "val"); - if (NULL == res) { - obj_setSysOut(self, "[error] print: can not print val"); - obj_setErrorCode(self, 1); - return; - } - /* not empty */ - obj_setSysOut(self, res); + obj_setErrorCode(self, 0); + char* res = args_print(args, "val"); + if (NULL == res) { + obj_setSysOut(self, "[error] print: can not print val"); + obj_setErrorCode(self, 1); + return; + } + /* not empty */ + obj_setSysOut(self, res); } static void set(PikaObj* self, Args* args) { - obj_setErrorCode(self, 0); - char* argPath = method_getStr(args, "argPath"); - if (obj_isArgExist(self, argPath)) { - /* update arg */ - char* valStr = args_print(args, "val"); - int32_t res = obj_set(self, argPath, valStr); - if (1 == res) { - obj_setSysOut(self, "[error] set: arg no found."); - obj_setErrorCode(self, 1); - return; + obj_setErrorCode(self, 0); + char* argPath = method_getStr(args, "argPath"); + if (obj_isArgExist(self, argPath)) { + /* update arg */ + char* valStr = args_print(args, "val"); + int32_t res = obj_set(self, argPath, valStr); + if (1 == res) { + obj_setSysOut(self, "[error] set: arg no found."); + obj_setErrorCode(self, 1); + return; + } + if (2 == res) { + obj_setSysOut(self, "[error] set: type not match."); + obj_setErrorCode(self, 1); + return; + } + if (3 == res) { + obj_setSysOut(self, "[error] set: object not found."); + obj_setErrorCode(self, 1); + return; + } + return; } - if (2 == res) { - obj_setSysOut(self, "[error] set: type not match."); - obj_setErrorCode(self, 1); - return; - } - if (3 == res) { - obj_setSysOut(self, "[error] set: object not found."); - obj_setErrorCode(self, 1); - return; + /* new arg */ + Arg* val = args_getArg(args, "val"); + Arg* newArg = arg_copy(val); + char* argName = strsGetLastToken(args, argPath, '.'); + newArg = arg_setName(newArg, argName); + int32_t res = obj_setArg(self, argPath, newArg); + if (res == 1) { + obj_setSysOut(self, "[error] set: object not found."); + obj_setErrorCode(self, 1); } + arg_deinit(newArg); + newArg = NULL; return; - } - /* new arg */ - Arg* val = args_getArg(args, "val"); - Arg* newArg = arg_copy(val); - char* argName = strsGetLastToken(args, argPath, '.'); - newArg = arg_setName(newArg, argName); - int32_t res = obj_setArg(self, argPath, newArg); - if (res == 1) { - obj_setSysOut(self, "[error] set: object not found."); - obj_setErrorCode(self, 1); - } - arg_deinit(newArg); - newArg = NULL; - return; } PikaObj* New_BaseObj(Args* args) { - PikaObj* self = New_TinyObj(args); - obj_setObjWithoutClass(self, "_clsld", New_TinyObj); - obj_getObj(self, "_clsld", 0); - class_defineMethod(self, "print(val:any)", print); - class_defineMethod(self, "set(argPath:str, val:any)", set); - return self; + PikaObj* self = New_TinyObj(args); + obj_setObjWithoutClass(self, "_clsld", New_TinyObj); + obj_getObj(self, "_clsld", 0); + class_defineMethod(self, "print(val:any)", print); + class_defineMethod(self, "set(argPath:str, val:any)", set); + return self; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.h b/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.h index ce1728f7d..ae5a5717e 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/BaseObj.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _PikaObj_baseObj__H #define _PikaObj_baseObj__H #include "PikaObj.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.c b/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.c index 3694d21f8..a3ee65171 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "PikaBlock.h" #include #include "PikaObj.h" @@ -8,76 +13,76 @@ #include "dataStrs.h" void block_deinit(PikaObj* self) { - obj_deinit(self); + obj_deinit(self); } PikaObj* block_init(Args* args) { - PikaObj* self = New_TinyObj(args); - obj_setStr(self, "mode", ""); - obj_setStr(self, "assert", ""); - obj_setStr(self, "body", ""); - obj_setInt(self, "lineSize", 0); - obj_setStr(self, "lineNow", ""); - return self; + PikaObj* self = New_TinyObj(args); + obj_setStr(self, "mode", ""); + obj_setStr(self, "assert", ""); + obj_setStr(self, "body", ""); + obj_setInt(self, "lineSize", 0); + obj_setStr(self, "lineNow", ""); + return self; } char* block_getBody(PikaObj* self) { - return obj_getStr(self, "body"); + return obj_getStr(self, "body"); } void block_setBody(PikaObj* self, char* body) { - obj_setStr(self, "body", body); + obj_setStr(self, "body", body); } uint8_t block_checkAssert(PikaObj* self) { - Args* buffs = New_strBuff(); - PikaObj* host = obj_getContext(self); - char* assert = block_getAssert(self); - obj_run(host, strsFormat(buffs, 32, "_res = %s", assert)); - int res = obj_getInt(host, "_res"); - obj_removeArg(host, "_res"); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + PikaObj* host = obj_getContext(self); + char* assert = block_getAssert(self); + obj_run(host, strsFormat(buffs, 32, "_res = %s", assert)); + int res = obj_getInt(host, "_res"); + obj_removeArg(host, "_res"); + args_deinit(buffs); + return res; } uint16_t block_getLineSize(PikaObj* self) { - return obj_getInt(self, "lineSize"); + return obj_getInt(self, "lineSize"); } void block_setAssert(PikaObj* self, char* assert) { - obj_setStr(self, "assert", assert); + obj_setStr(self, "assert", assert); } char* block_getAssert(PikaObj* self) { - return obj_getStr(self, "assert"); + return obj_getStr(self, "assert"); } void block_setMode(PikaObj* self, char* mode) { - obj_setStr(self, "mode", mode); + obj_setStr(self, "mode", mode); } char* block_getMode(PikaObj* self) { - return obj_getStr(self, "mode"); + return obj_getStr(self, "mode"); } void block_pushLine(PikaObj* self, char* line) { - Args* buffs = New_strBuff(); - char* body = obj_getStr(self, "body"); - body = strsAppend(buffs, body, line); - body = strsAppend(buffs, body, "\n"); - obj_setStr(self, "body", body); - obj_setInt(self, "lineSize", obj_getInt(self, "lineSize") + 1); - args_deinit(buffs); + Args* buffs = New_strBuff(); + char* body = obj_getStr(self, "body"); + body = strsAppend(buffs, body, line); + body = strsAppend(buffs, body, "\n"); + obj_setStr(self, "body", body); + obj_setInt(self, "lineSize", obj_getInt(self, "lineSize") + 1); + args_deinit(buffs); } char* block_popLine(PikaObj* self) { - Args* buffs = New_strBuff(); - char* body = obj_getStr(self, "body"); - char* line = strsPopToken(buffs, body, '\n'); + Args* buffs = New_strBuff(); + char* body = obj_getStr(self, "body"); + char* line = strsPopToken(buffs, body, '\n'); - obj_setStr(self, "body", body); - obj_setStr(self, "lineNow", line); - obj_setInt(self, "lineSize", obj_getInt(self, "lineSize") - 1); - args_deinit(buffs); - return obj_getStr(self, "lineNow"); -} \ No newline at end of file + obj_setStr(self, "body", body); + obj_setStr(self, "lineNow", line); + obj_setInt(self, "lineSize", obj_getInt(self, "lineSize") - 1); + args_deinit(buffs); + return obj_getStr(self, "lineNow"); +} diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.h b/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.h index d5baf55e0..283b9637f 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaBlock.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _pikaBlock__H #define _pikaBlock__H #include "PikaObj.h" @@ -14,4 +19,4 @@ uint16_t block_getLineSize(PikaObj* self); void block_setMode(PikaObj* self, char* mode); char* block_getMode(PikaObj* self); void block_setBody(PikaObj* self, char* body); -#endif \ No newline at end of file +#endif diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.c b/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.c index bdb951d35..81e2885f8 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "PikaIf.h" #include #include "PikaBlock.h" @@ -5,30 +10,30 @@ #include "dataStrs.h" void if_setAssert(PikaObj* self, char* line) { - Args* buffs = New_strBuff(); - char* assert = strsRemovePrefix(buffs, line, "if "); - assert = strsGetFirstToken(buffs, assert, ':'); - block_setAssert(self, assert); - block_setMode(self, "if"); - args_deinit(buffs); + Args* buffs = New_strBuff(); + char* assert = strsRemovePrefix(buffs, line, "if "); + assert = strsGetFirstToken(buffs, assert, ':'); + block_setAssert(self, assert); + block_setMode(self, "if"); + args_deinit(buffs); } void if_pushLine(PikaObj* self, char* line) { - Args* buffs = New_strBuff(); - char* bodyLine = strsRemovePrefix(buffs, line, " "); - block_pushLine(self, bodyLine); - goto exit; + Args* buffs = New_strBuff(); + char* bodyLine = strsRemovePrefix(buffs, line, " "); + block_pushLine(self, bodyLine); + goto exit; exit: - args_deinit(buffs); - return; + args_deinit(buffs); + return; } void if_run(PikaObj* self) { - if (block_checkAssert(self)) { - PikaObj* host = obj_getContext(self); - while (0 != block_getLineSize(self)) { - char* line = block_popLine(self); - obj_run(host, line); + if (block_checkAssert(self)) { + PikaObj* host = obj_getContext(self); + while (0 != block_getLineSize(self)) { + char* line = block_popLine(self); + obj_run(host, line); + } } - } } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.h b/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.h index b90db0484..d11dcdce0 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaIf.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _pikaIf__H #define _pikaIf__H #include "PikaObj.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.c b/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.c index 402f9730c..8492a59f4 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include #include "PikaObj.h" #include "dataArgs.h" @@ -10,282 +15,282 @@ static int32_t loadArgByType(PikaObj* self, char* definedType, char* sourceArgPath, Args* args) { - if (strEqu(definedType, "any")) { - if (0 == obj_getAnyArg(self, definedName, sourceArgPath, args)) { - return 0; + if (strEqu(definedType, "any")) { + if (0 == obj_getAnyArg(self, definedName, sourceArgPath, args)) { + return 0; + } + /* solve arg faild */ + return 3; } - /* solve arg faild */ - return 3; - } - if (strEqu(definedType, "str")) { - /* solve the string type */ - char* directStr = strsGetDirectStr(args, sourceArgPath); - if (NULL != directStr) { - /* direct value */ - args_setStr(args, definedName, directStr); - /* ok */ - return 0; + if (strEqu(definedType, "str")) { + /* solve the string type */ + char* directStr = strsGetDirectStr(args, sourceArgPath); + if (NULL != directStr) { + /* direct value */ + args_setStr(args, definedName, directStr); + /* ok */ + return 0; + } + /* reference value */ + char* refStr = obj_getStr(self, sourceArgPath); + if (NULL == refStr) { + /* faild */ + return 1; + } + args_setStr(args, definedName, refStr); + /* succeed */ + return 0; } - /* reference value */ - char* refStr = obj_getStr(self, sourceArgPath); - if (NULL == refStr) { - /* faild */ - return 1; + if (strEqu(definedType, "int")) { + /* solve the int32_t type */ + args_setInt(args, definedName, 0); + if ((sourceArgPath[0] >= '0') && (sourceArgPath[0] <= '9')) { + /* direct value */ + args_set(args, definedName, sourceArgPath); + /* succeed */ + return 0; + } + /* reference value */ + if (!obj_isArgExist(self, sourceArgPath)) { + /* can not get reference */ + return 3; + } + int32_t referenceVal = obj_getInt(self, sourceArgPath); + args_setInt(args, definedName, referenceVal); + /* succeed */ + return 0; } - args_setStr(args, definedName, refStr); - /* succeed */ - return 0; - } - if (strEqu(definedType, "int")) { - /* solve the int32_t type */ - args_setInt(args, definedName, 0); - if ((sourceArgPath[0] >= '0') && (sourceArgPath[0] <= '9')) { - /* direct value */ - args_set(args, definedName, sourceArgPath); - /* succeed */ - return 0; + if (strEqu(definedType, "float")) { + /* solve the float type */ + args_setFloat(args, definedName, 0); + if ((sourceArgPath[0] >= '0') && (sourceArgPath[0] <= '9')) { + /* direct value */ + args_set(args, definedName, sourceArgPath); + /* succeed */ + return 0; + } + /* reference value */ + if (!obj_isArgExist(self, sourceArgPath)) { + /* can not get reference */ + return 3; + } + float referenceVal = obj_getFloat(self, sourceArgPath); + args_setFloat(args, definedName, referenceVal); + /* succeed */ + return 0; } - /* reference value */ - if (!obj_isArgExist(self, sourceArgPath)) { - /* can not get reference */ - return 3; + if (strEqu(definedType, "pointer")) { + /* only support reference value */ + if (!obj_isArgExist(self, sourceArgPath)) { + /* can not get reference */ + return 3; + } + void* ptr = obj_getPtr(self, sourceArgPath); + args_setPtr(args, definedName, ptr); + return 0; } - int32_t referenceVal = obj_getInt(self, sourceArgPath); - args_setInt(args, definedName, referenceVal); - /* succeed */ - return 0; - } - if (strEqu(definedType, "float")) { - /* solve the float type */ - args_setFloat(args, definedName, 0); - if ((sourceArgPath[0] >= '0') && (sourceArgPath[0] <= '9')) { - /* direct value */ - args_set(args, definedName, sourceArgPath); - /* succeed */ - return 0; - } - /* reference value */ - if (!obj_isArgExist(self, sourceArgPath)) { - /* can not get reference */ - return 3; - } - float referenceVal = obj_getFloat(self, sourceArgPath); - args_setFloat(args, definedName, referenceVal); - /* succeed */ - return 0; - } - if (strEqu(definedType, "pointer")) { - /* only support reference value */ - if (!obj_isArgExist(self, sourceArgPath)) { - /* can not get reference */ - return 3; - } - void* ptr = obj_getPtr(self, sourceArgPath); - args_setPtr(args, definedName, ptr); - return 0; - } - /* type match faild */ - return 2; + /* type match faild */ + return 2; } char* getTypeVal(Args* buffs, char* typeToken) { - if (!strIsContain(typeToken, ':')) { - return strsCopy(buffs, ""); - } - return strsGetLastToken(buffs, typeToken, ':'); + if (!strIsContain(typeToken, ':')) { + return strsCopy(buffs, ""); + } + return strsGetLastToken(buffs, typeToken, ':'); } static Args* getArgsByNameMatch(PikaObj* self, char* typeList, char* argList) { - Args* buffs = New_strBuff(); - char* typeListBuff = strsCopy(buffs, typeList); - Args* args = New_args(NULL); - while (1) { - char* typeToken = strsPopToken(buffs, typeListBuff, ','); - /* poped all type from typeList */ - if (0 == typeToken[0]) { - break; - } - - char* typeName = strsGetFirstToken(buffs, typeToken, ':'); - char* typeVal = getTypeVal(buffs, typeToken); - - char* argListBuff = strsCopy(buffs, argList); + Args* buffs = New_strBuff(); + char* typeListBuff = strsCopy(buffs, typeList); + Args* args = New_args(NULL); while (1) { - char* argToken = strsPopToken(buffs, argListBuff, ','); - char* argName = strsGetFirstToken(buffs, argToken, '='); - char* argVal = strsGetLastToken(buffs, argToken, '='); + char* typeToken = strsPopToken(buffs, typeListBuff, ','); + /* poped all type from typeList */ + if (0 == typeToken[0]) { + break; + } - if (0 == argToken[0]) { - /* arg poped finised */ - break; - } + char* typeName = strsGetFirstToken(buffs, typeToken, ':'); + char* typeVal = getTypeVal(buffs, typeToken); - if (!strEqu(typeName, argName)) { - /* name not match */ - continue; - } + char* argListBuff = strsCopy(buffs, argList); + while (1) { + char* argToken = strsPopToken(buffs, argListBuff, ','); + char* argName = strsGetFirstToken(buffs, argToken, '='); + char* argVal = strsGetLastToken(buffs, argToken, '='); - if (0 != loadArgByType(self, typeName, typeVal, argVal, args)) { - args_deinit(args); - args_deinit(buffs); - return NULL; - } + if (0 == argToken[0]) { + /* arg poped finised */ + break; + } + + if (!strEqu(typeName, argName)) { + /* name not match */ + continue; + } + + if (0 != loadArgByType(self, typeName, typeVal, argVal, args)) { + args_deinit(args); + args_deinit(buffs); + return NULL; + } + } } - } - args_deinit(buffs); - return args; + args_deinit(buffs); + return args; } static Args* getArgsBySort(PikaObj* self, char* typeList, char* argList) { - Args* buffs = New_strBuff(); - char* typeListBuff = strsCopy(buffs, typeList); - char* argListBuff = strsCopy(buffs, argList); - Args* args = New_args(NULL); - while (1) { - char* typeToken = strsPopToken(buffs, typeListBuff, ','); - char* argToken = strsPopToken(buffs, argListBuff, ','); - if ((0 == argToken[0]) || (0 == typeToken[0])) { - /* arg or type poped finised */ - break; - } + Args* buffs = New_strBuff(); + char* typeListBuff = strsCopy(buffs, typeList); + char* argListBuff = strsCopy(buffs, argList); + Args* args = New_args(NULL); + while (1) { + char* typeToken = strsPopToken(buffs, typeListBuff, ','); + char* argToken = strsPopToken(buffs, argListBuff, ','); + if ((0 == argToken[0]) || (0 == typeToken[0])) { + /* arg or type poped finised */ + break; + } - char* typeName = strsGetFirstToken(buffs, typeToken, ':'); - char* typeVal = getTypeVal(buffs, typeToken); - char* argPath = argToken; + char* typeName = strsGetFirstToken(buffs, typeToken, ':'); + char* typeVal = getTypeVal(buffs, typeToken); + char* argPath = argToken; - if (0 != loadArgByType(self, typeName, typeVal, argPath, args)) { - args_deinit(args); - args_deinit(buffs); - return NULL; + if (0 != loadArgByType(self, typeName, typeVal, argPath, args)) { + args_deinit(args); + args_deinit(buffs); + return NULL; + } } - } - args_deinit(buffs); - return args; + args_deinit(buffs); + return args; } static Args* getArgsBySentence(PikaObj* self, char* typeList, char* argList) { - if (strIsContain(argList, '=')) { - return getArgsByNameMatch(self, typeList, argList); - } - return getArgsBySort(self, typeList, argList); + if (strIsContain(argList, '=')) { + return getArgsByNameMatch(self, typeList, argList); + } + return getArgsBySort(self, typeList, argList); } static char* getMethodDeclearation(PikaObj* obj, char* methodName) { - Args* buffs = New_strBuff(); - char* methodDeclearationPath = strsAppend(buffs, "[md]", methodName); - char* res = obj_getStr(obj, methodDeclearationPath); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* methodDeclearationPath = strsAppend(buffs, "[md]", methodName); + char* res = obj_getStr(obj, methodDeclearationPath); + args_deinit(buffs); + return res; } static void* getMethodPtr(PikaObj* methodHost, char* methodName) { - Args* buffs = New_strBuff(); - char* methodPtrPath = strsAppend(buffs, "[mp]", methodName); - void* res = obj_getPtr(methodHost, methodPtrPath); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* methodPtrPath = strsAppend(buffs, "[mp]", methodName); + void* res = obj_getPtr(methodHost, methodPtrPath); + args_deinit(buffs); + return res; } Args* obj_invoke(PikaObj* self, char* cmd) { - /* the Args returned need to be deinit */ - Args* res = New_args(NULL); - args_setErrorCode(res, 0); - Args* buffs = New_strBuff(); - char* methodToken = strsGetFirstToken(buffs, cmd, '('); - char* methodPath = methodToken; - Args* args = NULL; + /* the Args returned need to be deinit */ + Args* res = New_args(NULL); + args_setErrorCode(res, 0); + Args* buffs = New_strBuff(); + char* methodToken = strsGetFirstToken(buffs, cmd, '('); + char* methodPath = methodToken; + Args* args = NULL; - PikaObj* methodHostObj = obj_getObj(self, methodPath, 1); - PikaObj* methodHostClass = NULL; - if (NULL == methodHostObj) { - /* error, not found object */ - args_setErrorCode(res, 1); - args_setSysOut(res, "[error] runner: object no found."); - goto exit; - } - char* methodName = strsGetLastToken(buffs, methodPath, '.'); - - void* classPtr = obj_getPtr(methodHostObj, "_clsptr"); - char* methodHostClassName = - strsAppend(buffs, "classObj-", obj_getName(methodHostObj)); - methodHostClass = - obj_getClassObjByNewFun(methodHostObj, methodHostClassName, classPtr); - /* get method Ptr */ - void (*methodPtr)(PikaObj * self, Args * args) = - getMethodPtr(methodHostClass, methodName); - char* methodDecInClass = getMethodDeclearation(methodHostClass, methodName); - /* assert method*/ - if ((NULL == methodDecInClass) || (NULL == methodPtr)) { - /* error, method no found */ - args_setErrorCode(res, 2); - args_setSysOut(res, "[error] runner: method no found."); - goto exit; - } - char* methodDec = strsCopy(buffs, methodDecInClass); - /* free method host class to save memory */ - obj_deinit(methodHostClass); - methodHostClass = NULL; - - /* get type list */ - char* typeList = strsCut(buffs, methodDec, '(', ')'); - if (typeList == NULL) { - /* typeList no found */ - args_setErrorCode(res, 3); - args_setSysOut(res, "[error] runner: type list no found."); - goto exit; - } - - /* get arg list */ - char* argList = strsCut(buffs, cmd, '(', ')'); - { - if (argList == NULL) { - /* argL List no found */ - args_setErrorCode(res, 4); - args_setSysOut(res, "[error] runner: arg list no found."); - goto exit; + PikaObj* methodHostObj = obj_getObj(self, methodPath, 1); + PikaObj* methodHostClass = NULL; + if (NULL == methodHostObj) { + /* error, not found object */ + args_setErrorCode(res, 1); + args_setSysOut(res, "[error] runner: object no found."); + goto exit; } - } + char* methodName = strsGetLastToken(buffs, methodPath, '.'); - /* get return type */ - char* returnType = strsGetLastToken(buffs, methodDec, ')'); - - /* get args */ - args = getArgsBySentence(self, typeList, argList); - if (NULL == args) { - /* get args faild */ - args_setErrorCode(res, 5); - args_setSysOut(res, "[error] runner: solve arg faild."); - goto exit; - } - obj_setErrorCode(methodHostObj, 0); - obj_setSysOut(methodHostObj, ""); - /* run method */ - methodPtr(methodHostObj, args); - - /* transfer return type */ - args_setStr(res, "returnType", returnType); - /* transfer return */ - args_copyArgByName(args, "return", res); - /* transfer sysOut */ - char* sysOut = obj_getSysOut(methodHostObj); - if (NULL != sysOut) { - args_setSysOut(res, sysOut); - } - /* transfer errCode */ - if (0 != obj_getErrorCode(methodHostObj)) { - /* method error */ - args_setErrorCode(res, 6); - } - goto exit; -exit: - if (NULL != buffs) { - args_deinit(buffs); - } - if (NULL != methodHostClass) { + void* classPtr = obj_getPtr(methodHostObj, "_clsptr"); + char* methodHostClassName = + strsAppend(buffs, "classObj-", obj_getName(methodHostObj)); + methodHostClass = + obj_getClassObjByNewFun(methodHostObj, methodHostClassName, classPtr); + /* get method Ptr */ + void (*methodPtr)(PikaObj * self, Args * args) = + getMethodPtr(methodHostClass, methodName); + char* methodDecInClass = getMethodDeclearation(methodHostClass, methodName); + /* assert method*/ + if ((NULL == methodDecInClass) || (NULL == methodPtr)) { + /* error, method no found */ + args_setErrorCode(res, 2); + args_setSysOut(res, "[error] runner: method no found."); + goto exit; + } + char* methodDec = strsCopy(buffs, methodDecInClass); + /* free method host class to save memory */ obj_deinit(methodHostClass); - } - if (NULL != args) { - args_deinit(args); - } - return res; + methodHostClass = NULL; + + /* get type list */ + char* typeList = strsCut(buffs, methodDec, '(', ')'); + if (typeList == NULL) { + /* typeList no found */ + args_setErrorCode(res, 3); + args_setSysOut(res, "[error] runner: type list no found."); + goto exit; + } + + /* get arg list */ + char* argList = strsCut(buffs, cmd, '(', ')'); + { + if (argList == NULL) { + /* argL List no found */ + args_setErrorCode(res, 4); + args_setSysOut(res, "[error] runner: arg list no found."); + goto exit; + } + } + + /* get return type */ + char* returnType = strsGetLastToken(buffs, methodDec, ')'); + + /* get args */ + args = getArgsBySentence(self, typeList, argList); + if (NULL == args) { + /* get args faild */ + args_setErrorCode(res, 5); + args_setSysOut(res, "[error] runner: solve arg faild."); + goto exit; + } + obj_setErrorCode(methodHostObj, 0); + obj_setSysOut(methodHostObj, ""); + /* run method */ + methodPtr(methodHostObj, args); + + /* transfer return type */ + args_setStr(res, "returnType", returnType); + /* transfer return */ + args_copyArgByName(args, "return", res); + /* transfer sysOut */ + char* sysOut = obj_getSysOut(methodHostObj); + if (NULL != sysOut) { + args_setSysOut(res, sysOut); + } + /* transfer errCode */ + if (0 != obj_getErrorCode(methodHostObj)) { + /* method error */ + args_setErrorCode(res, 6); + } + goto exit; +exit: + if (NULL != buffs) { + args_deinit(buffs); + } + if (NULL != methodHostClass) { + obj_deinit(methodHostClass); + } + if (NULL != args) { + args_deinit(args); + } + return res; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.h b/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.h index 1e97eeb1f..f5400b416 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaInvoke.h @@ -1,4 +1,9 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _invoke__H #define _invoke__H Args* obj_invoke(PikaObj* self, char* cmd); -#endif \ No newline at end of file +#endif diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.c b/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.c index 7a66de78d..bf8fb4bee 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "PikaObj.h" #include #include "PikaBlock.h" @@ -10,749 +15,749 @@ #include "dataStrs.h" PikaObj* obj_getContext(PikaObj* self) { - return obj_getPtr(self, "_ctx"); + return obj_getPtr(self, "_ctx"); } void* getNewObjFunByClass(PikaObj* obj, char* classPath) { - PikaObj* classLoader = args_getPtr(obj->attributeList, "_clsld"); - if (NULL == classLoader) { - return NULL; - } - void* (*newObjFun)(Args * initArgs) = - args_getPtr(classLoader->attributeList, classPath); - return newObjFun; + PikaObj* classLoader = args_getPtr(obj->attributeList, "_clsld"); + if (NULL == classLoader) { + return NULL; + } + void* (*newObjFun)(Args * initArgs) = + args_getPtr(classLoader->attributeList, classPath); + return newObjFun; } int32_t deinitEachSubObj(Arg* argEach, Args* handleArgs) { - if (NULL != handleArgs) { - /* error: tOhis handle not need handle args */ - return 1; - } - char* type = arg_getType(argEach); - if (strIsStartWith(type, "_class")) { - PikaObj* subObj = arg_getPtr(argEach); - if (NULL != subObj) { - obj_deinit(subObj); + if (NULL != handleArgs) { + /* error: tOhis handle not need handle args */ + return 1; } - } - return 0; + char* type = arg_getType(argEach); + if (strIsStartWith(type, "_class")) { + PikaObj* subObj = arg_getPtr(argEach); + if (NULL != subObj) { + obj_deinit(subObj); + } + } + return 0; } void deinitAllSubObj(PikaObj* self) { - Args* args = self->attributeList; - args_foreach(args, deinitEachSubObj, NULL); + Args* args = self->attributeList; + args_foreach(args, deinitEachSubObj, NULL); } int32_t obj_deinit(PikaObj* self) { - deinitAllSubObj(self); - args_deinit(self->attributeList); - // DynMemPut(self->mem); - pikaFree(self, sizeof(PikaObj)); - self = NULL; - return 0; + deinitAllSubObj(self); + args_deinit(self->attributeList); + // DynMemPut(self->mem); + pikaFree(self, sizeof(PikaObj)); + self = NULL; + return 0; } int32_t obj_enable(PikaObj* self) { - obj_setInt(self, "isEnable", 1); - return 0; + obj_setInt(self, "isEnable", 1); + return 0; } int32_t obj_disable(PikaObj* self) { - obj_setInt(self, "isEnable", 0); - return 0; + obj_setInt(self, "isEnable", 0); + return 0; } int32_t obj_setInt(PikaObj* self, char* argPath, int64_t val) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - /* [error] object no found */ - return 1; - } - Args* buffs = New_strBuff(); - char* name = strsGetLastToken(buffs, argPath, '.'); - args_setInt(obj->attributeList, name, val); - args_deinit(buffs); - return 0; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + /* [error] object no found */ + return 1; + } + Args* buffs = New_strBuff(); + char* name = strsGetLastToken(buffs, argPath, '.'); + args_setInt(obj->attributeList, name, val); + args_deinit(buffs); + return 0; } int32_t obj_setPtr(PikaObj* self, char* argPath, void* pointer) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return 1; - } - Args* buffs = New_strBuff(); - char* name = strsGetLastToken(buffs, argPath, '.'); - args_setPtr(obj->attributeList, name, pointer); - args_deinit(buffs); - return 0; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return 1; + } + Args* buffs = New_strBuff(); + char* name = strsGetLastToken(buffs, argPath, '.'); + args_setPtr(obj->attributeList, name, pointer); + args_deinit(buffs); + return 0; } int32_t obj_setFloat(PikaObj* self, char* argPath, float value) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return 1; - } - Args* buffs = New_strBuff(); - char* name = strsGetLastToken(buffs, argPath, '.'); - args_setFloat(obj->attributeList, name, value); - args_deinit(buffs); - return 0; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return 1; + } + Args* buffs = New_strBuff(); + char* name = strsGetLastToken(buffs, argPath, '.'); + args_setFloat(obj->attributeList, name, value); + args_deinit(buffs); + return 0; } int32_t obj_setStr(PikaObj* self, char* argPath, char* str) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return 1; - } - Args* buffs = New_strBuff(); - char* name = strsGetLastToken(buffs, argPath, '.'); - args_setStr(obj->attributeList, name, str); - args_deinit(buffs); - return 0; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return 1; + } + Args* buffs = New_strBuff(); + char* name = strsGetLastToken(buffs, argPath, '.'); + args_setStr(obj->attributeList, name, str); + args_deinit(buffs); + return 0; } int64_t obj_getInt(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return -999999999; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - int res = args_getInt(obj->attributeList, argName); - args_deinit(buffs); - return res; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return -999999999; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + int res = args_getInt(obj->attributeList, argName); + args_deinit(buffs); + return res; } Arg* obj_getArg(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return NULL; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - Arg* res = args_getArg(obj->attributeList, argName); - args_deinit(buffs); - return res; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return NULL; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + Arg* res = args_getArg(obj->attributeList, argName); + args_deinit(buffs); + return res; } int32_t obj_setArg(PikaObj* self, char* argPath, Arg* arg) { - /* setArg would copy arg */ - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - /* object no found */ - return 1; - } - args_copyArg(obj->attributeList, arg); - return 0; + /* setArg would copy arg */ + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + /* object no found */ + return 1; + } + args_copyArg(obj->attributeList, arg); + return 0; } void* obj_getPtr(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return NULL; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - void* res = args_getPtr(obj->attributeList, argName); - args_deinit(buffs); - return res; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return NULL; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + void* res = args_getPtr(obj->attributeList, argName); + args_deinit(buffs); + return res; } float obj_getFloat(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return -999.999; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - float res = args_getFloat(obj->attributeList, argName); - args_deinit(buffs); - return res; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return -999.999; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + float res = args_getFloat(obj->attributeList, argName); + args_deinit(buffs); + return res; } char* obj_getStr(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - return NULL; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - char* res = args_getStr(obj->attributeList, argName); - args_deinit(buffs); - return res; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + return NULL; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + char* res = args_getStr(obj->attributeList, argName); + args_deinit(buffs); + return res; } int32_t obj_load(PikaObj* self, Args* args, char* name) { - args_copyArgByName(args, name, self->attributeList); - return 0; + args_copyArgByName(args, name, self->attributeList); + return 0; } int32_t obj_setObjWithoutClass(PikaObj* self, char* objName, void* newFun) { - /* class means subprocess init */ - Args* buffs = New_strBuff(); - char* mataObjName = strsAppend(buffs, "[mate]", objName); - obj_setPtr(self, mataObjName, newFun); - /* add void object Ptr, no inited */ - args_setObjectWithClass(self->attributeList, objName, "none", NULL); - args_deinit(buffs); - return 0; + /* class means subprocess init */ + Args* buffs = New_strBuff(); + char* mataObjName = strsAppend(buffs, "[mate]", objName); + obj_setPtr(self, mataObjName, newFun); + /* add void object Ptr, no inited */ + args_setObjectWithClass(self->attributeList, objName, "none", NULL); + args_deinit(buffs); + return 0; } int32_t obj_addOther(PikaObj* self, char* subObjectName, void* new_ObjectFun) { - Args* initArgs = New_args(NULL); - args_setPtr(initArgs, "_ctx", self); - void* (*new_Object)(Args * initArgs) = (void* (*)(Args*))new_ObjectFun; - void* subObject = new_Object(initArgs); - obj_setPtr(self, subObjectName, subObject); - args_deinit(initArgs); - return 0; + Args* initArgs = New_args(NULL); + args_setPtr(initArgs, "_ctx", self); + void* (*new_Object)(Args * initArgs) = (void* (*)(Args*))new_ObjectFun; + void* subObject = new_Object(initArgs); + obj_setPtr(self, subObjectName, subObject); + args_deinit(initArgs); + return 0; } int32_t obj_freeObj(PikaObj* self, char* objPath) { - PikaObj* obj = obj_getPtr(self, objPath); - obj_deinit(obj); - return 0; + PikaObj* obj = obj_getPtr(self, objPath); + obj_deinit(obj); + return 0; } int32_t obj_bind(PikaObj* self, char* type, char* name, void* pointer) { - args_bind(self->attributeList, type, name, pointer); - return 0; + args_bind(self->attributeList, type, name, pointer); + return 0; } char* obj_print(PikaObj* self, char* name) { - if (NULL == self) { - return NULL; - } - return args_print(self->attributeList, name); + if (NULL == self) { + return NULL; + } + return args_print(self->attributeList, name); } int32_t obj_bindInt(PikaObj* self, char* name, int32_t* valPtr) { - args_bindInt(self->attributeList, name, valPtr); - return 0; + args_bindInt(self->attributeList, name, valPtr); + return 0; } int32_t obj_bindFloat(PikaObj* self, char* name, float* valPtr) { - args_bindFloat(self->attributeList, name, valPtr); - return 0; + args_bindFloat(self->attributeList, name, valPtr); + return 0; } int32_t obj_bindString(PikaObj* self, char* name, char** valPtr) { - args_bindStr(self->attributeList, name, valPtr); - return 0; + args_bindStr(self->attributeList, name, valPtr); + return 0; } int32_t obj_set(PikaObj* self, char* argPath, char* valStr) { - PikaObj* obj = obj_getObj(self, argPath, 1); - if (NULL == obj) { - /* cant get object */ - return 3; - } - Args* buffs = New_strBuff(); - char* argName = strsGetLastToken(buffs, argPath, '.'); - int32_t res = args_set(obj->attributeList, argName, valStr); - args_deinit(buffs); - if (res == 1) { - /* do not get arg */ - return 1; - } - if (res == 2) { - /* type not match */ - return 2; - } - /* succeed */ - return 0; + PikaObj* obj = obj_getObj(self, argPath, 1); + if (NULL == obj) { + /* cant get object */ + return 3; + } + Args* buffs = New_strBuff(); + char* argName = strsGetLastToken(buffs, argPath, '.'); + int32_t res = args_set(obj->attributeList, argName, valStr); + args_deinit(buffs); + if (res == 1) { + /* do not get arg */ + return 1; + } + if (res == 2) { + /* type not match */ + return 2; + } + /* succeed */ + return 0; } PikaObj* obj_getClassObjByNewFun(PikaObj* context, char* name, NewFun newClassFun) { - Args* initArgs = New_args(NULL); - args_setPtr(initArgs, "_ctx", context); - args_setStr(initArgs, "_n", name); - PikaObj* thisClass = newClassFun(initArgs); - obj_setPtr(thisClass, "_clsptr", newClassFun); - args_deinit(initArgs); - return thisClass; + Args* initArgs = New_args(NULL); + args_setPtr(initArgs, "_ctx", context); + args_setStr(initArgs, "_n", name); + PikaObj* thisClass = newClassFun(initArgs); + obj_setPtr(thisClass, "_clsptr", newClassFun); + args_deinit(initArgs); + return thisClass; } char* obj_getClassPath(PikaObj* objHost, Args* buffs, char* objName) { - Arg* objArg = obj_getArg(objHost, objName); - char* objType = arg_getType(objArg); - char* classPath = strsRemovePrefix(buffs, objType, "_class-"); - return classPath; + Arg* objArg = obj_getArg(objHost, objName); + char* objType = arg_getType(objArg); + char* classPath = strsRemovePrefix(buffs, objType, "_class-"); + return classPath; } void* getNewClassObjFunByName(PikaObj* obj, char* name) { - Args* buffs = New_strBuff(); - char* classPath = strsAppend(buffs, "[mate]", name); - /* init the subprocess */ - void* (*newClassObjFun)(Args * initArgs) = - args_getPtr(obj->attributeList, classPath); - args_deinit(buffs); - return newClassObjFun; + Args* buffs = New_strBuff(); + char* classPath = strsAppend(buffs, "[mate]", name); + /* init the subprocess */ + void* (*newClassObjFun)(Args * initArgs) = + args_getPtr(obj->attributeList, classPath); + args_deinit(buffs); + return newClassObjFun; } int32_t removeEachMethodInfo(Arg* argNow, Args* argList) { - if (strIsStartWith(arg_getName(argNow), "[md]")) { - args_removeArg(argList, arg_getName(argNow)); + if (strIsStartWith(arg_getName(argNow), "[md]")) { + args_removeArg(argList, arg_getName(argNow)); + return 0; + } + if (strIsStartWith(arg_getName(argNow), "[mp]")) { + args_removeArg(argList, arg_getName(argNow)); + return 0; + } return 0; - } - if (strIsStartWith(arg_getName(argNow), "[mp]")) { - args_removeArg(argList, arg_getName(argNow)); - return 0; - } - return 0; } PikaObj* removeMethodInfo(PikaObj* thisClass) { - args_foreach(thisClass->attributeList, removeEachMethodInfo, - thisClass->attributeList); - return thisClass; + args_foreach(thisClass->attributeList, removeEachMethodInfo, + thisClass->attributeList); + return thisClass; } static void removeClassLoader(PikaObj* obj) { - PikaObj* classLoader = args_getPtr(obj->attributeList, "_clsld"); - if (NULL != classLoader) { - obj_deinit(classLoader); - args_removeArg(obj->attributeList, "_clsld"); - } + PikaObj* classLoader = args_getPtr(obj->attributeList, "_clsld"); + if (NULL != classLoader) { + obj_deinit(classLoader); + args_removeArg(obj->attributeList, "_clsld"); + } } PikaObj* newRootObj(char* name, NewFun newObjFun) { - PikaObj* thisClass = obj_getClassObjByNewFun(NULL, name, newObjFun); - PikaObj* newObj = removeMethodInfo(thisClass); - return newObj; + PikaObj* thisClass = obj_getClassObjByNewFun(NULL, name, newObjFun); + PikaObj* newObj = removeMethodInfo(thisClass); + return newObj; } PikaObj* initObj(PikaObj* obj, char* name) { - PikaObj* res = NULL; - NewFun newObjFun = getNewClassObjFunByName(obj, name); - Args* buffs = New_args(NULL); - if (NULL == newObjFun) { - /* no such object */ - res = NULL; - goto exit; - } - PikaObj* thisClass = obj_getClassObjByNewFun(obj, name, newObjFun); - PikaObj* newObj = removeMethodInfo(thisClass); - /* delete [mate] */ - obj_removeArg(obj, strsAppend(buffs, "[mate]", name)); - /* delete "_clsld" object */ - removeClassLoader(newObj); + PikaObj* res = NULL; + NewFun newObjFun = getNewClassObjFunByName(obj, name); + Args* buffs = New_args(NULL); + if (NULL == newObjFun) { + /* no such object */ + res = NULL; + goto exit; + } + PikaObj* thisClass = obj_getClassObjByNewFun(obj, name, newObjFun); + PikaObj* newObj = removeMethodInfo(thisClass); + /* delete [mate] */ + obj_removeArg(obj, strsAppend(buffs, "[mate]", name)); + /* delete "_clsld" object */ + removeClassLoader(newObj); - char* type = args_getType(obj->attributeList, name); - args_setPtrWithType(obj->attributeList, name, type, newObj); - res = obj_getPtr(obj, name); - goto exit; + char* type = args_getType(obj->attributeList, name); + args_setPtrWithType(obj->attributeList, name, type, newObj); + res = obj_getPtr(obj, name); + goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } PikaObj* obj_getObjDirect(PikaObj* self, char* name) { - if (NULL == self) { - return NULL; - } + if (NULL == self) { + return NULL; + } - /* check subprocess */ - if (NULL == args_getPtr(self->attributeList, name)) { - /* no inited subprocess, check subprocess init fun*/ - return initObj(self, name); - } + /* check subprocess */ + if (NULL == args_getPtr(self->attributeList, name)) { + /* no inited subprocess, check subprocess init fun*/ + return initObj(self, name); + } - /* finded subscribe, check type*/ - char* type = args_getType(self->attributeList, name); - if (!strIsStartWith(type, "_class")) { - /* type error, could not found subprocess */ - return NULL; - } - return obj_getPtr(self, name); + /* finded subscribe, check type*/ + char* type = args_getType(self->attributeList, name); + if (!strIsStartWith(type, "_class")) { + /* type error, could not found subprocess */ + return NULL; + } + return obj_getPtr(self, name); } PikaObj* obj_getObj(PikaObj* self, char* objPath, int32_t keepDeepth) { - Args* buffs = New_strBuff(); - char* objPathBuff = strsCopy(buffs, objPath); - int32_t tokenNum = strGetTokenNum(objPath, '.'); - PikaObj* obj = self; - for (int32_t i = 0; i < tokenNum - keepDeepth; i++) { - char* token = strsPopToken(buffs, objPathBuff, '.'); - obj = obj_getObjDirect(obj, token); - if (obj == NULL) { - goto exit; + Args* buffs = New_strBuff(); + char* objPathBuff = strsCopy(buffs, objPath); + int32_t tokenNum = strGetTokenNum(objPath, '.'); + PikaObj* obj = self; + for (int32_t i = 0; i < tokenNum - keepDeepth; i++) { + char* token = strsPopToken(buffs, objPathBuff, '.'); + obj = obj_getObjDirect(obj, token); + if (obj == NULL) { + goto exit; + } } - } - goto exit; + goto exit; exit: - args_deinit(buffs); - return obj; + args_deinit(buffs); + return obj; } char* obj_getName(PikaObj* self) { - return obj_getStr(self, "_n"); + return obj_getStr(self, "_n"); } void loadMethodInfo(PikaObj* methodHost, char* methodName, char* methodDeclearation, void* methodPtr) { - Args* buffs = New_strBuff(); - char* methodPtrPath = strsAppend(buffs, "[mp]", methodName); - char* methodDeclearationPath = strsAppend(buffs, "[md]", methodName); - obj_setPtr(methodHost, methodPtrPath, methodPtr); - obj_setStr(methodHost, methodDeclearationPath, methodDeclearation); - args_deinit(buffs); + Args* buffs = New_strBuff(); + char* methodPtrPath = strsAppend(buffs, "[mp]", methodName); + char* methodDeclearationPath = strsAppend(buffs, "[md]", methodName); + obj_setPtr(methodHost, methodPtrPath, methodPtr); + obj_setStr(methodHost, methodDeclearationPath, methodDeclearation); + args_deinit(buffs); } int32_t class_defineMethod(PikaObj* self, char* declearation, void (*methodPtr)(PikaObj* self, Args* args)) { - int32_t size = strGetSize(declearation); - int32_t res = 0; - Args* buffs = New_strBuff(); - char* cleanDeclearation = - strDeleteChar(args_getBuff(buffs, size), declearation, ' '); - char* methodPath = - strGetFirstToken(args_getBuff(buffs, size), cleanDeclearation, '('); + int32_t size = strGetSize(declearation); + int32_t res = 0; + Args* buffs = New_strBuff(); + char* cleanDeclearation = + strDeleteChar(args_getBuff(buffs, size), declearation, ' '); + char* methodPath = + strGetFirstToken(args_getBuff(buffs, size), cleanDeclearation, '('); - PikaObj* methodHost = obj_getObj(self, methodPath, 1); - if (NULL == methodHost) { - /* no found method object */ - res = 1; + PikaObj* methodHost = obj_getObj(self, methodPath, 1); + if (NULL == methodHost) { + /* no found method object */ + res = 1; + goto exit; + } + char* methodName = strsGetLastToken(buffs, methodPath, '.'); + + loadMethodInfo(methodHost, methodName, cleanDeclearation, methodPtr); + res = 0; goto exit; - } - char* methodName = strsGetLastToken(buffs, methodPath, '.'); - - loadMethodInfo(methodHost, methodName, cleanDeclearation, methodPtr); - res = 0; - goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } static void transferReturnVal(PikaObj* self, char* returnType, char* returnName, Args* args) { - if (strEqu("->int", returnType)) { - int returnVal = args_getInt(args, "return"); - obj_setInt(self, returnName, returnVal); - return; - } - if (strEqu("->float", returnType)) { - float returnVal = args_getFloat(args, "return"); - obj_setFloat(self, returnName, returnVal); - return; - } - if (strEqu("->str", returnType)) { - char* returnVal = args_getStr(args, "return"); - obj_setStr(self, returnName, returnVal); - return; - } + if (strEqu("->int", returnType)) { + int returnVal = args_getInt(args, "return"); + obj_setInt(self, returnName, returnVal); + return; + } + if (strEqu("->float", returnType)) { + float returnVal = args_getFloat(args, "return"); + obj_setFloat(self, returnName, returnVal); + return; + } + if (strEqu("->str", returnType)) { + char* returnVal = args_getStr(args, "return"); + obj_setStr(self, returnName, returnVal); + return; + } } char* getRightCmd(Args* buffs, char* cmd) { - char* right = NULL; - char* cmdBuff = strsCopy(buffs, cmd); - if (strIsContain(cmd, '(')) { - cmdBuff = strsGetFirstToken(buffs, cmdBuff, '('); - } - if (strIsContain(cmdBuff, '=')) { - cmdBuff = strsCopy(buffs, cmd); - strsPopToken(buffs, cmdBuff, '='); - right = cmdBuff; - } else { - right = cmd; - } - return right; + char* right = NULL; + char* cmdBuff = strsCopy(buffs, cmd); + if (strIsContain(cmd, '(')) { + cmdBuff = strsGetFirstToken(buffs, cmdBuff, '('); + } + if (strIsContain(cmdBuff, '=')) { + cmdBuff = strsCopy(buffs, cmd); + strsPopToken(buffs, cmdBuff, '='); + right = cmdBuff; + } else { + right = cmd; + } + return right; } uint8_t obj_getAnyArg(PikaObj* self, char* targetArgName, char* sourceArgPath, Args* targetArgs) { - if (0 == args_setLiteral(targetArgs, targetArgName, sourceArgPath)) { - return 0; - } - if (0 == obj_getRefArg(self, targetArgName, sourceArgPath, targetArgs)) { - return 0; - } - /* solve arg faild */ - return 3; + if (0 == args_setLiteral(targetArgs, targetArgName, sourceArgPath)) { + return 0; + } + if (0 == obj_getRefArg(self, targetArgName, sourceArgPath, targetArgs)) { + return 0; + } + /* solve arg faild */ + return 3; } uint8_t obj_getRefArg(PikaObj* self, char* targetArgName, char* sourceArgPath, Args* targetArgs) { - /* get reference arg */ - Arg* arg = obj_getArg(self, sourceArgPath); - if (arg == NULL) { - /* can not get arg */ - return 3; - } - Arg* argCopied = arg_copy(arg); - argCopied = arg_setName(argCopied, targetArgName); - args_setArg(targetArgs, argCopied); - return 0; + /* get reference arg */ + Arg* arg = obj_getArg(self, sourceArgPath); + if (arg == NULL) { + /* can not get arg */ + return 3; + } + Arg* argCopied = arg_copy(arg); + argCopied = arg_setName(argCopied, targetArgName); + args_setArg(targetArgs, argCopied); + return 0; } Args* getRightRes(PikaObj* self, char* cmd) { - Args* buffs = New_strBuff(); - Args* res = NULL; - if (strIsContain(cmd, '(') && strIsContain(cmd, ')')) { - res = obj_invoke(self, cmd); + Args* buffs = New_strBuff(); + Args* res = NULL; + if (strIsContain(cmd, '(') && strIsContain(cmd, ')')) { + res = obj_invoke(self, cmd); + goto exit; + } + res = New_args(NULL); + args_setSysOut(res, ""); + int err = obj_getAnyArg(self, "return", cmd, res); + if (err != 0) { + args_setSysOut(res, "[error] get value faild."); + args_setErrorCode(res, 1); + goto exit; + } + char* returnType = args_getType(res, "return"); + returnType = strsAppend(buffs, "->", returnType); + args_setStr(res, "returnType", returnType); goto exit; - } - res = New_args(NULL); - args_setSysOut(res, ""); - int err = obj_getAnyArg(self, "return", cmd, res); - if (err != 0) { - args_setSysOut(res, "[error] get value faild."); - args_setErrorCode(res, 1); - goto exit; - } - char* returnType = args_getType(res, "return"); - returnType = strsAppend(buffs, "->", returnType); - args_setStr(res, "returnType", returnType); - goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } Args* obj_runScript(PikaObj* self, char* cmd) { - Args* buffs = New_strBuff(); - Args* res = NULL; - cmd = strsGetCleanCmd(buffs, cmd); + Args* buffs = New_strBuff(); + Args* res = NULL; + cmd = strsGetCleanCmd(buffs, cmd); - /* get right cmd */ - char* right = getRightCmd(buffs, cmd); + /* get right cmd */ + char* right = getRightCmd(buffs, cmd); - /* get res from right cmd */ - res = getRightRes(self, right); - if (NULL != res) { - if (0 != args_getErrorCode(res)) { - goto exit; + /* get res from right cmd */ + res = getRightRes(self, right); + if (NULL != res) { + if (0 != args_getErrorCode(res)) { + goto exit; + } + } + /* check res */ + if (NULL == res) { + res = New_args(NULL); + args_setErrorCode(res, 1); + args_setSysOut(res, "[error] solve script format faild!"); + goto exit; } - } - /* check res */ - if (NULL == res) { - res = New_args(NULL); - args_setErrorCode(res, 1); - args_setSysOut(res, "[error] solve script format faild!"); - goto exit; - } - /* transfer return */ - if (strIsContain(cmd, '=')) { - char* returnName = strsGetFirstToken(buffs, cmd, '='); - returnName = strsDeleteChar(buffs, returnName, ' '); - char* returnType = args_getStr(res, "returnType"); - transferReturnVal(self, returnType, returnName, res); - } + /* transfer return */ + if (strIsContain(cmd, '=')) { + char* returnName = strsGetFirstToken(buffs, cmd, '='); + returnName = strsDeleteChar(buffs, returnName, ' '); + char* returnType = args_getStr(res, "returnType"); + transferReturnVal(self, returnType, returnName, res); + } exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } Args* obj_runDirect(PikaObj* self, char* cmd) { - Args* buffs = New_strBuff(); - Args* res = NULL; - cmd = strsDeleteChar(buffs, cmd, '\n'); - /* in block */ - if (NULL != obj_getArg(self, "_isInBlock")) { - PikaObj* block = obj_getObj(self, "_block", 0); - if (strIsStartWith(cmd, " ")) { - if (strEqu(block_getMode(block), "if")) { - if_pushLine(block, cmd); - goto exit; - } - if (strEqu(block_getMode(block), "while")) { - while_pushLine(block, cmd); - goto exit; - } - goto exit; + Args* buffs = New_strBuff(); + Args* res = NULL; + cmd = strsDeleteChar(buffs, cmd, '\n'); + /* in block */ + if (NULL != obj_getArg(self, "_isInBlock")) { + PikaObj* block = obj_getObj(self, "_block", 0); + if (strIsStartWith(cmd, " ")) { + if (strEqu(block_getMode(block), "if")) { + if_pushLine(block, cmd); + goto exit; + } + if (strEqu(block_getMode(block), "while")) { + while_pushLine(block, cmd); + goto exit; + } + goto exit; + } + /* the block is end */ + else { + obj_removeArg(self, "_isInBlock"); + if (strEqu(block_getMode(block), "if")) { + if_run(block); + } + if (strEqu(block_getMode(block), "while")) { + while_run(block); + } + obj_removeArg(self, "_block"); + /* not finished */ + } } - /* the block is end */ - else { - obj_removeArg(self, "_isInBlock"); - if (strEqu(block_getMode(block), "if")) { - if_run(block); - } - if (strEqu(block_getMode(block), "while")) { - while_run(block); - } - obj_removeArg(self, "_block"); - /* not finished */ + + /* if block */ + if (strIsStartWith(cmd, "if ")) { + obj_setInt(self, "_isInBlock", 1); + obj_setObjWithoutClass(self, "_block", block_init); + PikaObj* block = obj_getObj(self, "_block", 0); + if_setAssert(block, cmd); + /* this line processed ok */ + goto exit; } - } - /* if block */ - if (strIsStartWith(cmd, "if ")) { - obj_setInt(self, "_isInBlock", 1); - obj_setObjWithoutClass(self, "_block", block_init); - PikaObj* block = obj_getObj(self, "_block", 0); - if_setAssert(block, cmd); - /* this line processed ok */ - goto exit; - } + /* while block */ + if (strIsStartWith(cmd, "while ")) { + obj_setInt(self, "_isInBlock", 1); + obj_setObjWithoutClass(self, "_block", block_init); + PikaObj* block = obj_getObj(self, "_block", 0); + while_setAssert(block, cmd); + /* this line processed ok */ + goto exit; + } - /* while block */ - if (strIsStartWith(cmd, "while ")) { - obj_setInt(self, "_isInBlock", 1); - obj_setObjWithoutClass(self, "_block", block_init); - PikaObj* block = obj_getObj(self, "_block", 0); - while_setAssert(block, cmd); - /* this line processed ok */ - goto exit; - } + /* run script */ + if (strIsContain(cmd, '(') && strIsContain(cmd, ')')) { + res = obj_runScript(self, cmd); + goto exit; + } - /* run script */ - if (strIsContain(cmd, '(') && strIsContain(cmd, ')')) { - res = obj_runScript(self, cmd); - goto exit; - } - - /* run script */ - if (strIsContain(cmd, '=')) { - res = obj_runScript(self, cmd); - goto exit; - } + /* run script */ + if (strIsContain(cmd, '=')) { + res = obj_runScript(self, cmd); + goto exit; + } exit: - /* check res */ - if (NULL == res) { - res = New_args(NULL); - args_setErrorCode(res, 0); - args_setSysOut(res, ""); - goto exit; - } - args_deinit(buffs); - return res; + /* check res */ + if (NULL == res) { + res = New_args(NULL); + args_setErrorCode(res, 0); + args_setSysOut(res, ""); + goto exit; + } + args_deinit(buffs); + return res; } int32_t obj_removeArg(PikaObj* self, char* argPath) { - PikaObj* objHost = obj_getObj(self, argPath, 1); - PikaObj* obj = obj_getObj(self, argPath, 0); - Args* buffs = New_strBuff(); - if (NULL != obj) { - obj_deinit(obj); - } - int32_t err = 0; - if (NULL == objHost) { - /* [error] object no found */ - err = 1; + PikaObj* objHost = obj_getObj(self, argPath, 1); + PikaObj* obj = obj_getObj(self, argPath, 0); + Args* buffs = New_strBuff(); + if (NULL != obj) { + obj_deinit(obj); + } + int32_t err = 0; + if (NULL == objHost) { + /* [error] object no found */ + err = 1; + goto exit; + } + char* argName = strsGetLastToken(buffs, argPath, '.'); + int32_t res = args_removeArg(objHost->attributeList, argName); + if (1 == res) { + /*[error] not found arg*/ + err = 2; + goto exit; + } goto exit; - } - char* argName = strsGetLastToken(buffs, argPath, '.'); - int32_t res = args_removeArg(objHost->attributeList, argName); - if (1 == res) { - /*[error] not found arg*/ - err = 2; - goto exit; - } - goto exit; exit: - args_deinit(buffs); - return err; + args_deinit(buffs); + return err; } int32_t obj_isArgExist(PikaObj* self, char* argPath) { - PikaObj* obj = obj_getObj(self, argPath, 1); - Args* buffs = New_strBuff(); - int32_t res = 0; - if (NULL == obj) { - /* [error] object no found */ + PikaObj* obj = obj_getObj(self, argPath, 1); + Args* buffs = New_strBuff(); + int32_t res = 0; + if (NULL == obj) { + /* [error] object no found */ + res = 1; + goto exit; + } + char* argName = strsGetLastToken(buffs, argPath, '.'); + Arg* arg = args_getArg(obj->attributeList, argName); + if (NULL == arg) { + /* no found arg */ + res = 0; + goto exit; + } + /* found arg */ res = 1; goto exit; - } - char* argName = strsGetLastToken(buffs, argPath, '.'); - Arg* arg = args_getArg(obj->attributeList, argName); - if (NULL == arg) { - /* no found arg */ - res = 0; - goto exit; - } - /* found arg */ - res = 1; - goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } void obj_runNoRes(PikaObj* slef, char* cmd) { - /* unsafe, nothing would happend when error occord */ - args_deinit(obj_runDirect(slef, cmd)); + /* unsafe, nothing would happend when error occord */ + args_deinit(obj_runDirect(slef, cmd)); } void obj_run(PikaObj* self, char* cmd) { - /* safe, stop when error occord and error info would be print32_t */ - Args* res = obj_runDirect(self, cmd); - char* sysOut = args_getSysOut(res); - uint8_t errcode = args_getErrorCode(res); - obj_setSysOut(self, sysOut); - obj_setErrorCode(self, errcode); - if (!strEqu("", sysOut)) { - printf("%s\r\n", sysOut); - } - if (0 != errcode) { - printf("[info] input commond: %s\r\n", cmd); - while (1) - ; - } - if (NULL != res) { - args_deinit(res); - } + /* safe, stop when error occord and error info would be print32_t */ + Args* res = obj_runDirect(self, cmd); + char* sysOut = args_getSysOut(res); + uint8_t errcode = args_getErrorCode(res); + obj_setSysOut(self, sysOut); + obj_setErrorCode(self, errcode); + if (!strEqu("", sysOut)) { + printf("%s\r\n", sysOut); + } + if (0 != errcode) { + printf("[info] input commond: %s\r\n", cmd); + while (1) + ; + } + if (NULL != res) { + args_deinit(res); + } } void obj_setErrorCode(PikaObj* self, int32_t errCode) { - obj_setInt(self, "__errCode", errCode); + obj_setInt(self, "__errCode", errCode); } int32_t obj_getErrorCode(PikaObj* self) { - if (!obj_isArgExist(self, "__errCode")) { - return 0; - } - return obj_getInt(self, "__errCode"); + if (!obj_isArgExist(self, "__errCode")) { + return 0; + } + return obj_getInt(self, "__errCode"); } void args_setErrorCode(Args* args, int32_t errCode) { - args_setInt(args, "__errCode", errCode); + args_setInt(args, "__errCode", errCode); } int32_t args_getErrorCode(Args* args) { - if (!args_isArgExist(args, "__errCode")) { - return 0; - } - return args_getInt(args, "__errCode"); + if (!args_isArgExist(args, "__errCode")) { + return 0; + } + return args_getInt(args, "__errCode"); } void obj_setSysOut(PikaObj* self, char* str) { - obj_setStr(self, "__sysOut", str); + obj_setStr(self, "__sysOut", str); } char* obj_getSysOut(PikaObj* self) { - return obj_getStr(self, "__sysOut"); + return obj_getStr(self, "__sysOut"); } char* args_getSysOut(Args* args) { - return args_getStr(args, "__sysOut"); + return args_getStr(args, "__sysOut"); } void args_setSysOut(Args* args, char* str) { - args_setStr(args, "__sysOut", str); + args_setStr(args, "__sysOut", str); } void obj_sysPrintf(PikaObj* self, char* fmt, ...) { - va_list args; - va_start(args, fmt); - char sysOut[128] = {0}; - vsprintf(sysOut, fmt, args); - obj_setSysOut(self, sysOut); - va_end(args); + va_list args; + va_start(args, fmt); + char sysOut[128] = {0}; + vsprintf(sysOut, fmt, args); + obj_setSysOut(self, sysOut); + va_end(args); } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.h b/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.h index 3c20d7d3a..dd3c60154 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaObj.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _Process__H #define _Process__H #include "dataArgs.h" @@ -9,8 +14,8 @@ typedef PikaObj* (*NewFun)(Args* args); typedef PikaObj* (*InitFun)(PikaObj* self, Args* args); struct PikaObj_t { - /* list */ - Args* attributeList; + /* list */ + Args* attributeList; }; /* operation */ diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.c b/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.c index 2ddb137cf..de5054629 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include #include "PikaBlock.h" #include "PikaObj.h" @@ -7,36 +12,36 @@ #include "dataStrs.h" void while_setAssert(PikaObj* self, char* line) { - Args* buffs = New_strBuff(); - char* assert = strsRemovePrefix(buffs, line, "while "); - assert = strsGetFirstToken(buffs, assert, ':'); - block_setAssert(self, assert); - block_setMode(self, "while"); - args_deinit(buffs); + Args* buffs = New_strBuff(); + char* assert = strsRemovePrefix(buffs, line, "while "); + assert = strsGetFirstToken(buffs, assert, ':'); + block_setAssert(self, assert); + block_setMode(self, "while"); + args_deinit(buffs); } void while_pushLine(PikaObj* self, char* line) { - Args* buffs = New_strBuff(); - char* bodyLine = strsRemovePrefix(buffs, line, " "); - block_pushLine(self, bodyLine); - goto exit; + Args* buffs = New_strBuff(); + char* bodyLine = strsRemovePrefix(buffs, line, " "); + block_pushLine(self, bodyLine); + goto exit; exit: - args_deinit(buffs); - return; + args_deinit(buffs); + return; } void while_run(PikaObj* self) { - Args* buffs = New_strBuff(); - char* body = strsCopy(buffs, block_getBody(self)); - uint16_t lineSize = block_getLineSize(self); - while (block_checkAssert(self)) { - PikaObj* host = obj_getContext(self); - for (int i = 0; i < lineSize; i++) { - char* line = block_popLine(self); - obj_run(host, line); + Args* buffs = New_strBuff(); + char* body = strsCopy(buffs, block_getBody(self)); + uint16_t lineSize = block_getLineSize(self); + while (block_checkAssert(self)) { + PikaObj* host = obj_getContext(self); + for (int i = 0; i < lineSize; i++) { + char* line = block_popLine(self); + obj_run(host, line); + } + block_setBody(self, body); } - block_setBody(self, body); - } exit: - args_deinit(buffs); + args_deinit(buffs); } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.h b/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.h index 2b7e75e98..0c9c75e36 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/PikaWhile.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _pikaWhile__H #define _pikaWhile__H #include "PikaObj.h" @@ -6,4 +11,4 @@ void while_setAssert(PikaObj* self, char* line); void while_pushLine(PikaObj* self, char* line); void while_run(PikaObj* self); -#endif \ No newline at end of file +#endif diff --git a/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.c b/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.c index df7a56c88..fdd824a1d 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.c @@ -1,29 +1,34 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "PikaObj.h" void _UpdateHandle(PikaObj* self) { - // override the handle function here + // override the handle function here } void _beforDinit(PikaObj* self) { - /* override in user code */ + /* override in user code */ } PikaObj* New_TinyObj(Args* args) { - PikaObj* self = pikaMalloc(sizeof(PikaObj)); + PikaObj* self = pikaMalloc(sizeof(PikaObj)); - /* List */ - self->attributeList = New_args(NULL); + /* List */ + self->attributeList = New_args(NULL); - /* attribute */ - obj_setPtr(self, "_ctx", self); - obj_setStr(self, "_n", "root"); + /* attribute */ + obj_setPtr(self, "_ctx", self); + obj_setStr(self, "_n", "root"); - /* load */ - if (NULL != args) { - obj_load(self, args, "_n"); - obj_load(self, args, "_ctx"); - } + /* load */ + if (NULL != args) { + obj_load(self, args, "_n"); + obj_load(self, args, "_ctx"); + } - /* hard attribute */ - return self; + /* hard attribute */ + return self; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.h b/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.h index 3f24093d7..2e5049f57 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/TinyObj.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef __TYNYOBJ__H #define __TYNYOBJ__H #include "PikaObj.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataArg.c b/demo/stm32g030c8/pikascript/pikascript-core/dataArg.c index a11310f8a..353a2a179 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataArg.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataArg.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataArg.h" #include @@ -8,35 +13,35 @@ #include "stdlib.h" void arg_deinit(Arg* self) { - arg_freeContent(self); + arg_freeContent(self); } uint16_t arg_getTotleSize(Arg* self) { - return content_totleSize(self); + return content_totleSize(self); } uint16_t content_sizeOffset(uint8_t* self) { - const uint8_t nextLength = sizeof(uint8_t*); - return nextLength; + const uint8_t nextLength = sizeof(uint8_t*); + return nextLength; } uint16_t content_getSize(uint8_t* self) { - uint16_t size = 0; - // add 0x30 to avoid 0 - size += self[content_sizeOffset(self) + 1]; - size = (size << 8); - size += self[content_sizeOffset(self)]; - return size; + uint16_t size = 0; + // add 0x30 to avoid 0 + size += self[content_sizeOffset(self) + 1]; + size = (size << 8); + size += self[content_sizeOffset(self)]; + return size; } void content_setNext(uint8_t* self, uint8_t* next) { - uint8_t* nextDir = self + content_nextOffset(self); - uint64_t pointerTemp = (uint64_t)next; - for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { - // aboid \0 - nextDir[i] = pointerTemp; - pointerTemp = pointerTemp >> 8; - } + uint8_t* nextDir = self + content_nextOffset(self); + uint64_t pointerTemp = (uint64_t)next; + for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { + // aboid \0 + nextDir[i] = pointerTemp; + pointerTemp = pointerTemp >> 8; + } } uint8_t* content_init(char* name, @@ -44,279 +49,279 @@ uint8_t* content_init(char* name, uint8_t* content, uint16_t size, uint8_t* next) { - const uint8_t nextLength = sizeof(uint8_t*); - const uint8_t sizeLength = 2; - uint16_t nameSize = strGetSize(name); - uint16_t typeSize = strGetSize(type); - uint8_t* self = (uint8_t*)pikaMalloc(nextLength + sizeLength + nameSize + 1 + - size + typeSize + 1); + const uint8_t nextLength = sizeof(uint8_t*); + const uint8_t sizeLength = 2; + uint16_t nameSize = strGetSize(name); + uint16_t typeSize = strGetSize(type); + uint8_t* self = (uint8_t*)pikaMalloc(nextLength + sizeLength + nameSize + + 1 + size + typeSize + 1); - uint8_t* nextDir = self; - uint8_t* sizeDir = nextDir + nextLength; - uint8_t* nameDir = sizeDir + sizeLength; - uint8_t* contentDir = nameDir + nameSize + 1; - uint8_t* typeDir = contentDir + size; + uint8_t* nextDir = self; + uint8_t* sizeDir = nextDir + nextLength; + uint8_t* nameDir = sizeDir + sizeLength; + uint8_t* contentDir = nameDir + nameSize + 1; + uint8_t* typeDir = contentDir + size; - memcpy(nameDir, name, nameSize + 1); - memcpy(typeDir, type, typeSize + 1); - sizeDir[0] = size; - sizeDir[1] = size >> 8; - if (NULL != content) { - memcpy(contentDir, content, size); - } else { - memset(contentDir, 0, size); - } + memcpy(nameDir, name, nameSize + 1); + memcpy(typeDir, type, typeSize + 1); + sizeDir[0] = size; + sizeDir[1] = size >> 8; + if (NULL != content) { + memcpy(contentDir, content, size); + } else { + memset(contentDir, 0, size); + } - uint64_t pointerTemp = (uint64_t)next; - for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { - // aboid \0 - nextDir[i] = pointerTemp; - pointerTemp = pointerTemp >> 8; - } + uint64_t pointerTemp = (uint64_t)next; + for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { + // aboid \0 + nextDir[i] = pointerTemp; + pointerTemp = pointerTemp >> 8; + } - return self; + return self; } uint16_t content_totleSize(uint8_t* self) { - char* name = content_getName(self); - char* type = content_getType(self); - const uint8_t sizeLenth = 2; - const uint8_t nextLength = sizeof(uint8_t*); - uint16_t size = content_getSize(self); - return size + strGetSize(name) + 1 + strGetSize(type) + 1 + sizeLenth + - nextLength; + char* name = content_getName(self); + char* type = content_getType(self); + const uint8_t sizeLenth = 2; + const uint8_t nextLength = sizeof(uint8_t*); + uint16_t size = content_getSize(self); + return size + strGetSize(name) + 1 + strGetSize(type) + 1 + sizeLenth + + nextLength; } void arg_freeContent(Arg* self) { - if (NULL != self) { - content_deinit(self); - } + if (NULL != self) { + content_deinit(self); + } } uint8_t content_nameOffset(uint8_t* self) { - const uint8_t nextLength = sizeof(uint8_t*); - const uint8_t sizeLength = 2; - return nextLength + sizeLength; + const uint8_t nextLength = sizeof(uint8_t*); + const uint8_t sizeLength = 2; + return nextLength + sizeLength; } char* content_getName(uint8_t* self) { - return (char*)self + content_nameOffset(self); + return (char*)self + content_nameOffset(self); } uint8_t* content_deinit(uint8_t* self) { - uint16_t totleSize = content_totleSize(self); - pikaFree(self, totleSize); - return 0; + uint16_t totleSize = content_totleSize(self); + pikaFree(self, totleSize); + return 0; } uint8_t* content_setContent(uint8_t* self, uint8_t* content, uint16_t size) { - if (NULL == self) { - return content_init("", "", content, size, NULL); - } - char* name = content_getName(self); - char* type = content_getType(self); - uint8_t* next = content_getNext(self); - uint8_t* newContent = content_init(name, type, content, size, next); - content_deinit(self); - return newContent; + if (NULL == self) { + return content_init("", "", content, size, NULL); + } + char* name = content_getName(self); + char* type = content_getType(self); + uint8_t* next = content_getNext(self); + uint8_t* newContent = content_init(name, type, content, size, next); + content_deinit(self); + return newContent; } uint8_t* content_setName(uint8_t* self, char* name) { - if (NULL == self) { - return content_init(name, "", NULL, 0, NULL); - } - char* type = content_getType(self); - uint8_t* content = content_getContent(self); - uint16_t size = content_getSize(self); - uint8_t* next = content_getNext(self); - uint8_t* newContent = content_init(name, type, content, size, next); - content_deinit(self); - return newContent; + if (NULL == self) { + return content_init(name, "", NULL, 0, NULL); + } + char* type = content_getType(self); + uint8_t* content = content_getContent(self); + uint16_t size = content_getSize(self); + uint8_t* next = content_getNext(self); + uint8_t* newContent = content_init(name, type, content, size, next); + content_deinit(self); + return newContent; } uint8_t* content_setType(uint8_t* self, char* type) { - if (NULL == self) { - return content_init("", type, NULL, 0, NULL); - } - char* name = content_getName(self); - uint8_t* content = content_getContent(self); - uint16_t size = content_getSize(self); - uint8_t* next = content_getNext(self); - uint8_t* newContent = content_init(name, type, content, size, next); - content_deinit(self); - return newContent; + if (NULL == self) { + return content_init("", type, NULL, 0, NULL); + } + char* name = content_getName(self); + uint8_t* content = content_getContent(self); + uint16_t size = content_getSize(self); + uint8_t* next = content_getNext(self); + uint8_t* newContent = content_init(name, type, content, size, next); + content_deinit(self); + return newContent; } Arg* arg_newContent(Arg* self, uint32_t size) { - uint8_t* newContent = content_init("", "", NULL, size, NULL); - arg_freeContent(self); - return newContent; + uint8_t* newContent = content_init("", "", NULL, size, NULL); + arg_freeContent(self); + return newContent; } Arg* arg_setContent(Arg* self, uint8_t* content, uint32_t size) { - return content_setContent(self, content, size); + return content_setContent(self, content, size); } Arg* arg_setName(Arg* self, char* name) { - return content_setName(self, name); + return content_setName(self, name); } Arg* arg_setType(Arg* self, char* type) { - return content_setType(self, type); + return content_setType(self, type); } char* content_getType(uint8_t* self) { - return (char*)self + content_typeOffset(self); + return (char*)self + content_typeOffset(self); } uint16_t content_contentOffset(uint8_t* self) { - const uint8_t nextLength = sizeof(uint8_t*); - const uint8_t sizeLength = 2; - char* name = content_getName(self); - return nextLength + sizeLength + strGetSize(name) + 1; + const uint8_t nextLength = sizeof(uint8_t*); + const uint8_t sizeLength = 2; + char* name = content_getName(self); + return nextLength + sizeLength + strGetSize(name) + 1; } uint16_t content_nextOffset(uint8_t* self) { - return 0; + return 0; } uint8_t* content_getNext(uint8_t* self) { - uint8_t* nextDir = self + content_nextOffset(self); - uint8_t* next = NULL; - uint64_t pointerTemp = 0; + uint8_t* nextDir = self + content_nextOffset(self); + uint8_t* next = NULL; + uint64_t pointerTemp = 0; - for (int32_t i = sizeof(uint8_t*); i > -1; i--) { - // avoid \0 - uint8_t val = nextDir[i]; - pointerTemp = (pointerTemp << 8); - pointerTemp += val; - } - next = (uint8_t*)pointerTemp; - return next; + for (int32_t i = sizeof(uint8_t*); i > -1; i--) { + // avoid \0 + uint8_t val = nextDir[i]; + pointerTemp = (pointerTemp << 8); + pointerTemp += val; + } + next = (uint8_t*)pointerTemp; + return next; } uint8_t* content_getContent(uint8_t* self) { - return self + content_contentOffset(self); + return self + content_contentOffset(self); } uint8_t* arg_getContent(Arg* self) { - return content_getContent(self); + return content_getContent(self); } Arg* arg_setInt(Arg* self, char* name, int64_t val) { - int64_t int64Temp = val; - uint8_t contentBuff[8]; - for (uint32_t i = 0; i < 4; i++) { - // add 0x30 to void \0 - contentBuff[i] = int64Temp; - int64Temp = int64Temp >> 8; - } - return content_init(name, "int", contentBuff, 4, NULL); + int64_t int64Temp = val; + uint8_t contentBuff[8]; + for (uint32_t i = 0; i < 4; i++) { + // add 0x30 to void \0 + contentBuff[i] = int64Temp; + int64Temp = int64Temp >> 8; + } + return content_init(name, "int", contentBuff, 4, NULL); } Arg* arg_setFloat(Arg* self, char* name, float val) { - uint8_t contentBuff[4]; - uint8_t* valPtr = (uint8_t*)&val; - for (uint32_t i = 0; i < 4; i++) { - // add 0x30 to void \0 - contentBuff[i] = valPtr[i]; - } - return content_init(name, "float", contentBuff, 4, NULL); + uint8_t contentBuff[4]; + uint8_t* valPtr = (uint8_t*)&val; + for (uint32_t i = 0; i < 4; i++) { + // add 0x30 to void \0 + contentBuff[i] = valPtr[i]; + } + return content_init(name, "float", contentBuff, 4, NULL); } float arg_getFloat(Arg* self) { - if (NULL == arg_getContent(self)) { - return -999.999; - } + if (NULL == arg_getContent(self)) { + return -999.999; + } - float valOut = 0; - uint8_t* valOutPtr = (uint8_t*)(&valOut); - uint8_t* valPtr = arg_getContent(self); - for (uint32_t i = 0; i < 4; i++) { - valOutPtr[i] = valPtr[i]; - } - return valOut; + float valOut = 0; + uint8_t* valOutPtr = (uint8_t*)(&valOut); + uint8_t* valPtr = arg_getContent(self); + for (uint32_t i = 0; i < 4; i++) { + valOutPtr[i] = valPtr[i]; + } + return valOut; } Arg* arg_setPtr(Arg* self, char* name, char* type, void* pointer) { - uint64_t pointerTemp = (uint64_t)pointer; - uint8_t contentBuff[8]; - for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { - // aboid \0 - contentBuff[i] = pointerTemp; - pointerTemp = pointerTemp >> 8; - } - return content_init(name, type, contentBuff, sizeof(uint8_t*), NULL); + uint64_t pointerTemp = (uint64_t)pointer; + uint8_t contentBuff[8]; + for (uint32_t i = 0; i < sizeof(uint8_t*); i++) { + // aboid \0 + contentBuff[i] = pointerTemp; + pointerTemp = pointerTemp >> 8; + } + return content_init(name, type, contentBuff, sizeof(uint8_t*), NULL); } Arg* arg_setStr(Arg* self, char* name, char* string) { - return content_init(name, "str", (uint8_t*)string, strGetSize(string) + 1, - NULL); + return content_init(name, "str", (uint8_t*)string, strGetSize(string) + 1, + NULL); } int64_t arg_getInt(Arg* self) { - if (NULL == arg_getContent(self)) { - return -999999; - } - int64_t int64Temp = 0; - for (int32_t i = 3; i > -1; i--) { - // add 0x30 to avoid 0 - int64Temp = (int64Temp << 8); - int64Temp += arg_getContent(self)[i]; - } - return int64Temp; + if (NULL == arg_getContent(self)) { + return -999999; + } + int64_t int64Temp = 0; + for (int32_t i = 3; i > -1; i--) { + // add 0x30 to avoid 0 + int64Temp = (int64Temp << 8); + int64Temp += arg_getContent(self)[i]; + } + return int64Temp; } void* arg_getPtr(Arg* self) { - void* pointer = NULL; - uint64_t pointerTemp = 0; - if (NULL == arg_getContent(self)) { - return NULL; - } - uint8_t* content = arg_getContent(self); - for (int32_t i = sizeof(uint8_t*) - 1; i > -1; i--) { - // avoid \0 - uint8_t val = content[i]; - pointerTemp = (pointerTemp << 8); - pointerTemp += val; - } - pointer = (void*)pointerTemp; - return pointer; + void* pointer = NULL; + uint64_t pointerTemp = 0; + if (NULL == arg_getContent(self)) { + return NULL; + } + uint8_t* content = arg_getContent(self); + for (int32_t i = sizeof(uint8_t*) - 1; i > -1; i--) { + // avoid \0 + uint8_t val = content[i]; + pointerTemp = (pointerTemp << 8); + pointerTemp += val; + } + pointer = (void*)pointerTemp; + return pointer; } char* arg_getStr(Arg* self) { - return (char*)arg_getContent(self); + return (char*)arg_getContent(self); } uint16_t content_typeOffset(uint8_t* self) { - const uint8_t nextLength = sizeof(uint8_t*); - const uint8_t sizeLength = 2; - uint16_t size = content_getSize(self); - char* name = content_getName(self); - uint16_t nameSize = strGetSize(name); - return nextLength + sizeLength + nameSize + 1 + size; + const uint8_t nextLength = sizeof(uint8_t*); + const uint8_t sizeLength = 2; + uint16_t size = content_getSize(self); + char* name = content_getName(self); + uint16_t nameSize = strGetSize(name); + return nextLength + sizeLength + nameSize + 1 + size; } char* arg_getName(Arg* self) { - return content_getName(self); + return content_getName(self); } char* arg_getType(Arg* self) { - return content_getType(self); + return content_getType(self); } uint16_t arg_getContentSize(Arg* self) { - return content_getSize(self); + return content_getSize(self); } Arg* New_arg(void* voidPointer) { - return NULL; + return NULL; } Arg* arg_copy(Arg* argToBeCopy) { - Arg* argCopied = New_arg(NULL); - argCopied = arg_setContent(argCopied, arg_getContent(argToBeCopy), - arg_getContentSize(argToBeCopy)); - argCopied = arg_setName(argCopied, arg_getName(argToBeCopy)); - argCopied = arg_setType(argCopied, arg_getType(argToBeCopy)); - return argCopied; + Arg* argCopied = New_arg(NULL); + argCopied = arg_setContent(argCopied, arg_getContent(argToBeCopy), + arg_getContentSize(argToBeCopy)); + argCopied = arg_setName(argCopied, arg_getName(argToBeCopy)); + argCopied = arg_setType(argCopied, arg_getType(argToBeCopy)); + return argCopied; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataArg.h b/demo/stm32g030c8/pikascript/pikascript-core/dataArg.h index 172357e50..abc8cae6d 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataArg.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataArg.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _arg__H #define _arg__H #include "dataMemory.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.c b/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.c index d445cc700..d380f4156 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataArgs.h" #include #include @@ -9,489 +14,489 @@ #include "dataStrs.h" void args_deinit(Args* self) { - link_deinit(self); + link_deinit(self); } int32_t args_setFloat(Args* self, char* name, float argFloat) { - Arg* argNew = New_arg(NULL); - argNew = arg_setFloat(argNew, name, argFloat); - args_setArg(self, argNew); - return 0; + Arg* argNew = New_arg(NULL); + argNew = arg_setFloat(argNew, name, argFloat); + args_setArg(self, argNew); + return 0; } void* args_getPtr(Args* self, char* name) { - void* pointer = NULL; - Arg* arg = args_getArg(self, name); - if (NULL == arg) { - return NULL; - } + void* pointer = NULL; + Arg* arg = args_getArg(self, name); + if (NULL == arg) { + return NULL; + } - pointer = arg_getPtr(arg); - return pointer; + pointer = arg_getPtr(arg); + return pointer; } int32_t args_setPtr(Args* self, char* name, void* argPointer) { - int32_t errCode = 0; - Arg* argNew = New_arg(NULL); - argNew = arg_setPtr(argNew, name, "pointer", argPointer); - args_setArg(self, argNew); - return errCode; + int32_t errCode = 0; + Arg* argNew = New_arg(NULL); + argNew = arg_setPtr(argNew, name, "pointer", argPointer); + args_setArg(self, argNew); + return errCode; } int32_t args_setStr(Args* self, char* name, char* strIn) { - int32_t errCode = 0; - Arg* argNew = New_arg(NULL); - argNew = arg_setStr(argNew, name, strIn); - args_setArg(self, argNew); - return errCode; + int32_t errCode = 0; + Arg* argNew = New_arg(NULL); + argNew = arg_setStr(argNew, name, strIn); + args_setArg(self, argNew); + return errCode; } void setArgDirect(Args* self, Arg* arg) { - link_addNode(self, arg); + link_addNode(self, arg); } char* args_getBuff(Args* self, int32_t size) { - Arg* argNew = New_arg(NULL); - argNew = arg_newContent(argNew, size + 1); - setArgDirect(self, argNew); - return (char*)arg_getContent(argNew); + Arg* argNew = New_arg(NULL); + argNew = arg_newContent(argNew, size + 1); + setArgDirect(self, argNew); + return (char*)arg_getContent(argNew); } char* args_getStr(Args* self, char* name) { - if (NULL == self) { - return NULL; - } - Arg* arg = args_getArg(self, name); - if (NULL == arg) { - return NULL; - } - if (NULL == arg_getContent(arg)) { - return NULL; - } - return (char*)arg_getContent(arg); + if (NULL == self) { + return NULL; + } + Arg* arg = args_getArg(self, name); + if (NULL == arg) { + return NULL; + } + if (NULL == arg_getContent(arg)) { + return NULL; + } + return (char*)arg_getContent(arg); } int32_t args_setInt(Args* self, char* name, int64_t int64In) { - Arg* argNew = New_arg(NULL); - argNew = arg_setInt(argNew, name, int64In); - args_setArg(self, argNew); - return 0; + Arg* argNew = New_arg(NULL); + argNew = arg_setInt(argNew, name, int64In); + args_setArg(self, argNew); + return 0; } int64_t args_getInt(Args* self, char* name) { - Arg* arg = args_getArg(self, name); - if (NULL == arg) { - return -999999999; - } - return arg_getInt(arg); + Arg* arg = args_getArg(self, name); + if (NULL == arg) { + return -999999999; + } + return arg_getInt(arg); } int32_t args_getSize(Args* self) { - return link_getSize(self); + return link_getSize(self); } char* args_getType(Args* self, char* name) { - Arg* arg = NULL; - arg = args_getArg(self, name); - if (NULL == arg) { - return NULL; - } - return arg_getType(arg); + Arg* arg = NULL; + arg = args_getArg(self, name); + if (NULL == arg) { + return NULL; + } + return arg_getType(arg); } float args_getFloat(Args* self, char* name) { - Arg* arg = args_getArg(self, name); - if (NULL == arg) { - return -999999999.0; - } - return arg_getFloat(arg); + Arg* arg = args_getArg(self, name); + if (NULL == arg) { + return -999999999.0; + } + return arg_getFloat(arg); } int32_t args_copyArg(Args* self, Arg* argToBeCopy) { - if (NULL == argToBeCopy) { - return 1; - } - Arg* argCopied = arg_copy(argToBeCopy); - args_setArg(self, argCopied); + if (NULL == argToBeCopy) { + return 1; + } + Arg* argCopied = arg_copy(argToBeCopy); + args_setArg(self, argCopied); - return 0; + return 0; } int32_t args_copyArgByName(Args* self, char* name, Args* directArgs) { - Arg* argToBeCopy = args_getArg(self, name); - args_copyArg(directArgs, argToBeCopy); - return 0; + Arg* argToBeCopy = args_getArg(self, name); + args_copyArg(directArgs, argToBeCopy); + return 0; } int32_t args_isArgExist(Args* self, char* name) { - if (NULL == name) { + if (NULL == name) { + return 0; + } + if (NULL != args_getArg(self, name)) { + return 1; + } return 0; - } - if (NULL != args_getArg(self, name)) { - return 1; - } - return 0; } int32_t updateArg(Args* self, Arg* argNew) { - LinkNode* nodeToUpdate = NULL; - LinkNode* nodeNow = self->firstNode; - LinkNode* priorNode = NULL; - char* name = arg_getName(argNew); - while (1) { - if (strEqu(content_getName(nodeNow), name)) { - nodeToUpdate = nodeNow; - break; + LinkNode* nodeToUpdate = NULL; + LinkNode* nodeNow = self->firstNode; + LinkNode* priorNode = NULL; + char* name = arg_getName(argNew); + while (1) { + if (strEqu(content_getName(nodeNow), name)) { + nodeToUpdate = nodeNow; + break; + } + if (content_getNext(nodeNow) == NULL) { + // error, node no found + goto exit; + } + priorNode = nodeNow; + nodeNow = content_getNext(nodeNow); } - if (content_getNext(nodeNow) == NULL) { - // error, node no found - goto exit; + + nodeToUpdate = arg_setContent(nodeToUpdate, arg_getContent(argNew), + arg_getContentSize(argNew)); + + // update privior link, because arg_getContent would free origin pointer + if (NULL == priorNode) { + self->firstNode = nodeToUpdate; + goto exit; } - priorNode = nodeNow; - nodeNow = content_getNext(nodeNow); - } - nodeToUpdate = arg_setContent(nodeToUpdate, arg_getContent(argNew), - arg_getContentSize(argNew)); - - // update privior link, because arg_getContent would free origin pointer - if (NULL == priorNode) { - self->firstNode = nodeToUpdate; + content_setNext(priorNode, nodeToUpdate); goto exit; - } - - content_setNext(priorNode, nodeToUpdate); - goto exit; exit: - arg_deinit(argNew); - return 0; + arg_deinit(argNew); + return 0; } int32_t args_setArg(Args* self, Arg* arg) { - char* name = arg_getName(arg); - if (!args_isArgExist(self, name)) { - setArgDirect(self, arg); + char* name = arg_getName(arg); + if (!args_isArgExist(self, name)) { + setArgDirect(self, arg); + return 0; + } + updateArg(self, arg); return 0; - } - updateArg(self, arg); - return 0; } LinkNode* args_getNode(Args* self, char* name) { - LinkNode* nodeNow = self->firstNode; - if (NULL == nodeNow) { - return NULL; - } - while (1) { - Arg* arg = nodeNow; - char* thisName = arg_getName(arg); - if (strEqu(name, thisName)) { - return nodeNow; + LinkNode* nodeNow = self->firstNode; + if (NULL == nodeNow) { + return NULL; } - if (NULL == content_getNext(nodeNow)) { - return NULL; + while (1) { + Arg* arg = nodeNow; + char* thisName = arg_getName(arg); + if (strEqu(name, thisName)) { + return nodeNow; + } + if (NULL == content_getNext(nodeNow)) { + return NULL; + } + nodeNow = content_getNext(nodeNow); } - nodeNow = content_getNext(nodeNow); - } } Arg* args_getArg(Args* self, char* name) { - LinkNode* node = args_getNode(self, name); - if (NULL == node) { - return NULL; - } - return node; + LinkNode* node = args_getNode(self, name); + if (NULL == node) { + return NULL; + } + return node; } void args_bind(Args* self, char* type, char* name, void* pointer) { - Args* buffs = New_strBuff(); - char* typeWithBind = strsAppend(buffs, "_bind-", type); - Arg* argNew = New_arg(NULL); - argNew = arg_setPtr(argNew, name, typeWithBind, pointer); - args_setArg(self, argNew); - args_deinit(buffs); - return; + Args* buffs = New_strBuff(); + char* typeWithBind = strsAppend(buffs, "_bind-", type); + Arg* argNew = New_arg(NULL); + argNew = arg_setPtr(argNew, name, typeWithBind, pointer); + args_setArg(self, argNew); + args_deinit(buffs); + return; } void args_bindInt(Args* self, char* name, int32_t* intPtr) { - args_bind(self, "int", name, intPtr); + args_bind(self, "int", name, intPtr); } void args_bindFloat(Args* self, char* name, float* floatPtr) { - args_bind(self, "float", name, floatPtr); + args_bind(self, "float", name, floatPtr); } void args_bindStr(Args* self, char* name, char** stringPtr) { - args_bind(self, "str", name, stringPtr); + args_bind(self, "str", name, stringPtr); } char* getPrintSring(Args* self, char* name, char* valString) { - Args* buffs = New_strBuff(); - char* printName = strsFormat(buffs, 128, "[printBuff]%s", name); - char* printString = strsCopy(buffs, valString); - args_setStr(self, printName, printString); - char* res = args_getStr(self, printName); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* printName = strsFormat(buffs, 128, "[printBuff]%s", name); + char* printString = strsCopy(buffs, valString); + args_setStr(self, printName, printString); + char* res = args_getStr(self, printName); + args_deinit(buffs); + return res; } char* getPrintStringFromInt(Args* self, char* name, int32_t val) { - Args* buffs = New_strBuff(); - char* res = NULL; - char* valString = strsFormat(buffs, 32, "%d", val); - res = getPrintSring(self, name, valString); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* res = NULL; + char* valString = strsFormat(buffs, 32, "%d", val); + res = getPrintSring(self, name, valString); + args_deinit(buffs); + return res; } char* getPrintStringFromFloat(Args* self, char* name, float val) { - Args* buffs = New_strBuff(); - char* res = NULL; - char* valString = strsFormat(buffs, 32, "%f", val); - res = getPrintSring(self, name, valString); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* res = NULL; + char* valString = strsFormat(buffs, 32, "%f", val); + res = getPrintSring(self, name, valString); + args_deinit(buffs); + return res; } char* getPrintStringFromPtr(Args* self, char* name, void* val) { - Args* buffs = New_strBuff(); - char* res = NULL; - uint64_t intVal = (uint64_t)val; - char* valString = strsFormat(buffs, 32, "0x%llx", intVal); - res = getPrintSring(self, name, valString); - args_deinit(buffs); - return res; + Args* buffs = New_strBuff(); + char* res = NULL; + uint64_t intVal = (uint64_t)val; + char* valString = strsFormat(buffs, 32, "0x%llx", intVal); + res = getPrintSring(self, name, valString); + args_deinit(buffs); + return res; } char* args_print(Args* self, char* name) { - char* res = NULL; - char* type = args_getType(self, name); - Args* buffs = New_strBuff(); - if (NULL == type) { - /* can not get arg */ + char* res = NULL; + char* type = args_getType(self, name); + Args* buffs = New_strBuff(); + if (NULL == type) { + /* can not get arg */ + res = NULL; + goto exit; + } + + if (strEqu(type, "int")) { + int32_t val = args_getInt(self, name); + res = getPrintStringFromInt(self, name, val); + goto exit; + } + + if (strEqu(type, "float")) { + float val = args_getFloat(self, name); + res = getPrintStringFromFloat(self, name, val); + goto exit; + } + + if (strEqu(type, "str")) { + res = args_getStr(self, name); + goto exit; + } + + if (strEqu(type, "pointer")) { + void* val = args_getPtr(self, name); + res = getPrintStringFromPtr(self, name, val); + goto exit; + } + + char* bindTypePrefix = strsCopy(self, "_bind-"); + if (strIsStartWith(type, bindTypePrefix)) { + char* typeWithoutBind = strsRemovePrefix(buffs, type, bindTypePrefix); + if (strEqu(typeWithoutBind, "int")) { + int32_t* valPtr = args_getPtr(self, name); + int32_t val = *valPtr; + res = getPrintStringFromInt(self, name, val); + goto exit; + } + if (strEqu(typeWithoutBind, "float")) { + float* valPtr = args_getPtr(self, name); + float val = *valPtr; + res = getPrintStringFromFloat(self, name, val); + goto exit; + } + if (strEqu(typeWithoutBind, "str")) { + // the value of &string is equal to string it self + char* string = args_getPtr(self, name); + res = string; + goto exit; + } + } + /* can not match type */ res = NULL; goto exit; - } - - if (strEqu(type, "int")) { - int32_t val = args_getInt(self, name); - res = getPrintStringFromInt(self, name, val); - goto exit; - } - - if (strEqu(type, "float")) { - float val = args_getFloat(self, name); - res = getPrintStringFromFloat(self, name, val); - goto exit; - } - - if (strEqu(type, "str")) { - res = args_getStr(self, name); - goto exit; - } - - if (strEqu(type, "pointer")) { - void* val = args_getPtr(self, name); - res = getPrintStringFromPtr(self, name, val); - goto exit; - } - - char* bindTypePrefix = strsCopy(self, "_bind-"); - if (strIsStartWith(type, bindTypePrefix)) { - char* typeWithoutBind = strsRemovePrefix(buffs, type, bindTypePrefix); - if (strEqu(typeWithoutBind, "int")) { - int32_t* valPtr = args_getPtr(self, name); - int32_t val = *valPtr; - res = getPrintStringFromInt(self, name, val); - goto exit; - } - if (strEqu(typeWithoutBind, "float")) { - float* valPtr = args_getPtr(self, name); - float val = *valPtr; - res = getPrintStringFromFloat(self, name, val); - goto exit; - } - if (strEqu(typeWithoutBind, "str")) { - // the value of &string is equal to string it self - char* string = args_getPtr(self, name); - res = string; - goto exit; - } - } - /* can not match type */ - res = NULL; - goto exit; exit: - args_deinit(buffs); - return res; + args_deinit(buffs); + return res; } uint8_t args_setLiteral(Args* self, char* targetArgName, char* literal) { - Args* buffs = New_strBuff(); - literal = strsGetCleanCmd(buffs, literal); - uint8_t err = 0; - char* directStr = strsGetDirectStr(self, literal); - /* get direct Str ok */ - if (NULL != directStr) { - /* direct string value */ - args_setStr(self, targetArgName, directStr); - /* ok */ - err = 0; - goto exit; - } - /* match bool */ - if (strEqu(literal, "True")) { - args_setInt(self, targetArgName, 1); - err = 0; - goto exit; - } - if (strEqu(literal, "False")) { - args_setInt(self, targetArgName, 0); - err = 0; - goto exit; - } - /* match num */ - if ((literal[0] >= '0') && (literal[0] <= '9')) { - /* match float num */ - if (strIsContain(literal, '.')) { - args_setFloat(self, targetArgName, 0); - args_set(self, targetArgName, literal); - /* succeed */ - err = 0; - goto exit; + Args* buffs = New_strBuff(); + literal = strsGetCleanCmd(buffs, literal); + uint8_t err = 0; + char* directStr = strsGetDirectStr(self, literal); + /* get direct Str ok */ + if (NULL != directStr) { + /* direct string value */ + args_setStr(self, targetArgName, directStr); + /* ok */ + err = 0; + goto exit; } - /* match int num */ - args_setInt(self, targetArgName, 0); - args_set(self, targetArgName, literal); - /* succeed */ - err = 0; + /* match bool */ + if (strEqu(literal, "True")) { + args_setInt(self, targetArgName, 1); + err = 0; + goto exit; + } + if (strEqu(literal, "False")) { + args_setInt(self, targetArgName, 0); + err = 0; + goto exit; + } + /* match num */ + if ((literal[0] >= '0') && (literal[0] <= '9')) { + /* match float num */ + if (strIsContain(literal, '.')) { + args_setFloat(self, targetArgName, 0); + args_set(self, targetArgName, literal); + /* succeed */ + err = 0; + goto exit; + } + /* match int num */ + args_setInt(self, targetArgName, 0); + args_set(self, targetArgName, literal); + /* succeed */ + err = 0; + goto exit; + } + err = 1; goto exit; - } - err = 1; - goto exit; exit: - args_deinit(buffs); - return err; + args_deinit(buffs); + return err; } int32_t args_set(Args* self, char* name, char* valStr) { - char* type = args_getType(self, name); - Args* buffs = New_strBuff(); - int32_t err = 0; + char* type = args_getType(self, name); + Args* buffs = New_strBuff(); + int32_t err = 0; - if (NULL == type) { - /* do not get arg */ - err = 1; - goto exit; - } + if (NULL == type) { + /* do not get arg */ + err = 1; + goto exit; + } - if (strEqu("int", type)) { - int32_t val = atoi(valStr); - args_setInt(self, name, val); - // operation succeed - err = 0; - goto exit; - } - if (strEqu("float", type)) { - float val = atof(valStr); - args_setFloat(self, name, val); - // operation succeed - err = 0; - goto exit; - } - if (strEqu("str", type)) { - args_setStr(self, name, valStr); - // operation succeed - err = 0; - goto exit; - } + if (strEqu("int", type)) { + int32_t val = atoi(valStr); + args_setInt(self, name, val); + // operation succeed + err = 0; + goto exit; + } + if (strEqu("float", type)) { + float val = atof(valStr); + args_setFloat(self, name, val); + // operation succeed + err = 0; + goto exit; + } + if (strEqu("str", type)) { + args_setStr(self, name, valStr); + // operation succeed + err = 0; + goto exit; + } - char* bindTypePrefix = strsCopy(self, "_bind-"); - if (strIsStartWith(type, bindTypePrefix)) { - char* typeWithoutBind = strsRemovePrefix(buffs, type, bindTypePrefix); - if (strEqu(typeWithoutBind, "int")) { - int32_t* valPtr = args_getPtr(self, name); - int32_t val = atoi(valStr); - *valPtr = val; - // operation succeed - err = 0; - goto exit; + char* bindTypePrefix = strsCopy(self, "_bind-"); + if (strIsStartWith(type, bindTypePrefix)) { + char* typeWithoutBind = strsRemovePrefix(buffs, type, bindTypePrefix); + if (strEqu(typeWithoutBind, "int")) { + int32_t* valPtr = args_getPtr(self, name); + int32_t val = atoi(valStr); + *valPtr = val; + // operation succeed + err = 0; + goto exit; + } + if (strEqu(typeWithoutBind, "float")) { + float* valPtr = args_getPtr(self, name); + float val = atof(valStr); + *valPtr = val; + // operation succeed + err = 0; + goto exit; + } + if (strEqu(typeWithoutBind, "str")) { + char* stringBinded = args_getPtr(self, name); + /* size add 1 to copy the '\0' */ + memcpy(stringBinded, valStr, strGetSize(valStr) + 1); + // operation succeed + err = 0; + goto exit; + } } - if (strEqu(typeWithoutBind, "float")) { - float* valPtr = args_getPtr(self, name); - float val = atof(valStr); - *valPtr = val; - // operation succeed - err = 0; - goto exit; - } - if (strEqu(typeWithoutBind, "str")) { - char* stringBinded = args_getPtr(self, name); - /* size add 1 to copy the '\0' */ - memcpy(stringBinded, valStr, strGetSize(valStr) + 1); - // operation succeed - err = 0; - goto exit; - } - } - /* type not match */ - err = 2; - goto exit; + /* type not match */ + err = 2; + goto exit; exit: - args_deinit(buffs); - return err; + args_deinit(buffs); + return err; } int32_t args_setPtrWithType(Args* self, char* name, char* type, void* objPtr) { - Arg* argNew = New_arg(NULL); - argNew = arg_setPtr(argNew, name, type, objPtr); - args_setArg(self, argNew); - return 0; + Arg* argNew = New_arg(NULL); + argNew = arg_setPtr(argNew, name, type, objPtr); + args_setArg(self, argNew); + return 0; } int32_t args_setObjectWithClass(Args* self, char* objName, char* className, void* objPtr) { - Args* buffs = New_strBuff(); - char* typeWithClass = strsAppend(buffs, "_class-", className); - args_setPtrWithType(self, objName, typeWithClass, objPtr); - args_deinit(buffs); - return 0; + Args* buffs = New_strBuff(); + char* typeWithClass = strsAppend(buffs, "_class-", className); + args_setPtrWithType(self, objName, typeWithClass, objPtr); + args_deinit(buffs); + return 0; } int32_t args_foreach(Args* self, int32_t (*eachHandle)(Arg* argEach, Args* handleArgs), Args* handleArgs) { - LinkNode* nodeNow = self->firstNode; - while (1) { - Arg* argNow = nodeNow; - if (NULL == argNow) { - continue; - } - LinkNode* nextNode = content_getNext(nodeNow); - eachHandle(argNow, handleArgs); + LinkNode* nodeNow = self->firstNode; + while (1) { + Arg* argNow = nodeNow; + if (NULL == argNow) { + continue; + } + LinkNode* nextNode = content_getNext(nodeNow); + eachHandle(argNow, handleArgs); - if (NULL == nextNode) { - break; + if (NULL == nextNode) { + break; + } + nodeNow = nextNode; } - nodeNow = nextNode; - } - return 0; + return 0; } int32_t args_removeArg(Args* self, char* name) { - Arg* argNow = args_getArg(self, name); - if (NULL == argNow) { - /* can not found arg */ - return 1; - } - link_removeNode(self, argNow); - return 0; + Arg* argNow = args_getArg(self, name); + if (NULL == argNow) { + /* can not found arg */ + return 1; + } + link_removeNode(self, argNow); + return 0; } Args* New_args(Args* args) { - Args* self = New_link(NULL); - return self; + Args* self = New_link(NULL); + return self; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.h b/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.h index 7ba81e105..9ebf8bb0f 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataArgs.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _dataArgs__H #define _dataArgs__H #include "dataArg.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataLink.c b/demo/stm32g030c8/pikascript/pikascript-core/dataLink.c index 5df9ae698..1cd2cb048 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataLink.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataLink.c @@ -1,82 +1,87 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataLink.h" #include "dataArg.h" #include "dataLinkNode.h" #include "dataMemory.h" void link_deinit(Link* self) { - LinkNode* nowNode = self->firstNode; - while (NULL != nowNode) { - LinkNode* nodeNext = content_getNext(nowNode); - linkNode_deinit(nowNode); - nowNode = nodeNext; - } - // DynMemPut(self->mem); - pikaFree(self, sizeof(Link)); - self = NULL; + LinkNode* nowNode = self->firstNode; + while (NULL != nowNode) { + LinkNode* nodeNext = content_getNext(nowNode); + linkNode_deinit(nowNode); + nowNode = nodeNext; + } + // DynMemPut(self->mem); + pikaFree(self, sizeof(Link)); + self = NULL; } void link_addNode(Link* self, void* content) { - // old first node become new second node - LinkNode* secondNode = self->firstNode; + // old first node become new second node + LinkNode* secondNode = self->firstNode; - self->firstNode = content; - // change the first node to new node - content_setNext(content, secondNode); + self->firstNode = content; + // change the first node to new node + content_setNext(content, secondNode); } void link_removeNode(Link* self, void* content) { - LinkNode* nodeToDelete = NULL; - LinkNode* nodeNow = self->firstNode; - LinkNode* priorNode = NULL; - while (1) { - if (nodeNow == content) { - nodeToDelete = nodeNow; - break; + LinkNode* nodeToDelete = NULL; + LinkNode* nodeNow = self->firstNode; + LinkNode* priorNode = NULL; + while (1) { + if (nodeNow == content) { + nodeToDelete = nodeNow; + break; + } + if (nodeNow == NULL) { + // error, node no found + goto exit; + } + priorNode = nodeNow; + nodeNow = content_getNext(nodeNow); } - if (nodeNow == NULL) { - // error, node no found - goto exit; + + LinkNode* nextNode = content_getNext(nodeToDelete); + if (nodeToDelete == self->firstNode) { + self->firstNode = content_getNext(nodeToDelete); } - priorNode = nodeNow; - nodeNow = content_getNext(nodeNow); - } - LinkNode* nextNode = content_getNext(nodeToDelete); - if (nodeToDelete == self->firstNode) { - self->firstNode = content_getNext(nodeToDelete); - } + if (NULL == priorNode) { + self->firstNode = nextNode; + goto exit; + } - if (NULL == priorNode) { - self->firstNode = nextNode; + content_setNext(priorNode, nextNode); goto exit; - } - - content_setNext(priorNode, nextNode); - goto exit; // deinit the node exit: - linkNode_deinit(nodeToDelete); - return; + linkNode_deinit(nodeToDelete); + return; } int32_t link_getSize(Link* self) { - LinkNode* NowNode; - int32_t size = 0; - NowNode = self->firstNode; - while (NULL != NowNode) { - size++; - NowNode = content_getNext(NowNode); - } - return size; + LinkNode* NowNode; + int32_t size = 0; + NowNode = self->firstNode; + while (NULL != NowNode) { + size++; + NowNode = content_getNext(NowNode); + } + return size; } void link_init(Link* self, void* args) { - self->firstNode = NULL; + self->firstNode = NULL; } Link* New_link(void* args) { - Link* self = pikaMalloc(sizeof(Link)); - link_init(self, args); - return self; + Link* self = pikaMalloc(sizeof(Link)); + link_init(self, args); + return self; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataLink.h b/demo/stm32g030c8/pikascript/pikascript-core/dataLink.h index 459c055ed..c685bb908 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataLink.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataLink.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _link2__H #define _link2__H #include "dataLinkNode.h" @@ -5,7 +10,7 @@ typedef struct Class_link Link; struct Class_link { - LinkNode* firstNode; + LinkNode* firstNode; }; void link_deinit(Link* self); diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.c b/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.c index 53c885053..771534921 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.c @@ -1,15 +1,20 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataLinkNode.h" #include "dataArg.h" #include "dataMemory.h" void linkNode_deinit(LinkNode* self) { - arg_deinit(self); + arg_deinit(self); } void linkNode_init(LinkNode* self, void* args) { - /* attribute */ + /* attribute */ } LinkNode* New_linkNode(void* args) { - return NULL; + return NULL; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.h b/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.h index 437a5e3e1..7fe0cb475 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataLinkNode.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef _linkNode__H #define _linkNode__H #include "dataMemory.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.c b/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.c index e259a3893..5af8a79b9 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataMemory.h" #include #include @@ -5,32 +10,32 @@ PikaMemInfo pikaMemInfo = {0}; void* pikaMalloc(uint32_t size) { - pikaMemInfo.heapUsed += size; - if (pikaMemInfo.heapUsedMax < pikaMemInfo.heapUsed) { - pikaMemInfo.heapUsedMax = pikaMemInfo.heapUsed; - } - void* mem = malloc(size); - if (NULL == mem) { - printf("[error]: No heap space!\r\n"); - while (1) { + pikaMemInfo.heapUsed += size; + if (pikaMemInfo.heapUsedMax < pikaMemInfo.heapUsed) { + pikaMemInfo.heapUsedMax = pikaMemInfo.heapUsed; } - } - return mem; + void* mem = malloc(size); + if (NULL == mem) { + printf("[error]: No heap space!\r\n"); + while (1) { + } + } + return mem; } void pikaFree(void* mem, uint32_t size) { - free(mem); - pikaMemInfo.heapUsed -= size; + free(mem); + pikaMemInfo.heapUsed -= size; } uint16_t pikaMemNow(void) { - return pikaMemInfo.heapUsed; + return pikaMemInfo.heapUsed; } uint16_t pikaMemMax(void) { - return pikaMemInfo.heapUsedMax; + return pikaMemInfo.heapUsedMax; } void pikaMemMaxReset(void) { - pikaMemInfo.heapUsedMax = 0; + pikaMemInfo.heapUsedMax = 0; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.h b/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.h index 30f0ca94a..16938a727 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataMemory.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef __MEMORY_H__ #define __MEMORY_H__ @@ -6,8 +11,8 @@ #include typedef struct { - uint32_t heapUsed; - uint32_t heapUsedMax; + uint32_t heapUsed; + uint32_t heapUsedMax; } PikaMemInfo; void pikaFree(void* mem, uint32_t size); diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataString.c b/demo/stm32g030c8/pikascript/pikascript-core/dataString.c index 030e0648b..89837caa7 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataString.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataString.c @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataString.h" #include #include @@ -5,240 +10,240 @@ #include char* strAppendWithSize_unlimited(char* strOut, char* pData, int32_t Size) { - int32_t strOut_i = strGetSize(strOut); - for (int32_t i = 0; i < Size; i++) { - strOut[strOut_i + i] = pData[i]; - } - strOut_i += Size; - // add \0 to the end of strOut - strOut[strOut_i] = 0; + int32_t strOut_i = strGetSize(strOut); + for (int32_t i = 0; i < Size; i++) { + strOut[strOut_i + i] = pData[i]; + } + strOut_i += Size; + // add \0 to the end of strOut + strOut[strOut_i] = 0; - return strOut; + return strOut; } char* strCut(char* strOut, char* strIn, char startSign, char endSign) { - int32_t Size = strGetSize(strIn); - int32_t isStart = 0; - int32_t isEnd = 0; - int32_t iOut = 0; - for (int32_t i = 0; i < Size; i++) { - if (!isStart && (strIn[i] == startSign)) { - isStart = 1; - continue; + int32_t Size = strGetSize(strIn); + int32_t isStart = 0; + int32_t isEnd = 0; + int32_t iOut = 0; + for (int32_t i = 0; i < Size; i++) { + if (!isStart && (strIn[i] == startSign)) { + isStart = 1; + continue; + } + if (isStart && (strIn[i] == endSign)) { + isEnd = 1; + break; + } + if (isStart) { + strOut[iOut] = strIn[i]; + iOut++; + } } - if (isStart && (strIn[i] == endSign)) { - isEnd = 1; - break; + /* add \0 */ + strOut[iOut] = 0; + if (isStart && isEnd) { + /* succeed */ + return strOut; } - if (isStart) { - strOut[iOut] = strIn[i]; - iOut++; - } - } - /* add \0 */ - strOut[iOut] = 0; - if (isStart && isEnd) { - /* succeed */ - return strOut; - } - /* faild */ - return NULL; + /* faild */ + return NULL; } char* strDeleteChar(char* strOut, char* strIn, char ch) { - int32_t iOut = 0; - for (int32_t i = 0; i < strGetSize(strIn); i++) { - if (ch == strIn[i]) { - continue; + int32_t iOut = 0; + for (int32_t i = 0; i < strGetSize(strIn); i++) { + if (ch == strIn[i]) { + continue; + } + strOut[iOut] = strIn[i]; + iOut++; } - strOut[iOut] = strIn[i]; - iOut++; - } - /* add \0 */ - strOut[iOut] = 0; - return strOut; + /* add \0 */ + strOut[iOut] = 0; + return strOut; } char* strDeleteEnter(char* str) { - return strDeleteChar(str, str, '\n'); + return strDeleteChar(str, str, '\n'); } char* strAppendWithSize(char* strOut, char* pData, int32_t Size) { - int32_t strOut_i = strGetSize(strOut); - for (int32_t i = 0; i < Size; i++) { - strOut[strOut_i + i] = pData[i]; - } - strOut_i += Size; - // add \0 to the end of strOut - strOut[strOut_i] = 0; + int32_t strOut_i = strGetSize(strOut); + for (int32_t i = 0; i < Size; i++) { + strOut[strOut_i + i] = pData[i]; + } + strOut_i += Size; + // add \0 to the end of strOut + strOut[strOut_i] = 0; - return strOut; + return strOut; } int32_t strCountSign(char* strIn, char sign) { - int32_t count = 0; - for (int32_t i = 0; i < strGetSize(strIn); i++) { - if (sign == strIn[i]) { - count++; + int32_t count = 0; + for (int32_t i = 0; i < strGetSize(strIn); i++) { + if (sign == strIn[i]) { + count++; + } } - } - return count; + return count; } int32_t strGetTokenNum(char* strIn, char sign) { - return strCountSign(strIn, sign) + 1; + return strCountSign(strIn, sign) + 1; } uint32_t strGetSize(char* pData) { - return strlen(pData); + return strlen(pData); } char* strAppend_unlimited(char* strOut, char* pData) { - uint32_t Size = 0; - Size = strGetSize(pData); - return strAppendWithSize_unlimited(strOut, pData, Size); + uint32_t Size = 0; + Size = strGetSize(pData); + return strAppendWithSize_unlimited(strOut, pData, Size); } char* strGetLastToken(char* strOut, char* strIn, char sign) { - int32_t size = strGetSize(strIn); - int32_t isGetSign = 0; - int32_t buffSize = 0; - for (int32_t i = size - 1; i > -1; i--) { - if (strIn[i] != sign) { - strOut[size - i - 1] = strIn[i]; - buffSize++; + int32_t size = strGetSize(strIn); + int32_t isGetSign = 0; + int32_t buffSize = 0; + for (int32_t i = size - 1; i > -1; i--) { + if (strIn[i] != sign) { + strOut[size - i - 1] = strIn[i]; + buffSize++; + } + if (strIn[i] == sign) { + isGetSign = 1; + break; + } } - if (strIn[i] == sign) { - isGetSign = 1; - break; + int32_t i = 0; + for (i = 0; i < buffSize / 2; i++) { + char buff = strOut[i]; + strOut[i] = strOut[buffSize - i - 1]; + strOut[buffSize - i - 1] = buff; } - } - int32_t i = 0; - for (i = 0; i < buffSize / 2; i++) { - char buff = strOut[i]; - strOut[i] = strOut[buffSize - i - 1]; - strOut[buffSize - i - 1] = buff; - } - strOut[buffSize] = 0; - return strOut; + strOut[buffSize] = 0; + return strOut; } char* strPopToken(char* strOut, char* strIn, char sign) { - int32_t getSign = 0; - int32_t iPoped = 0; - int32_t iOut = 0; - int32_t size = strGetSize(strIn); - int32_t i = 0; - for (i = 0; i < size; i++) { - if (getSign) { - strIn[iPoped++] = strIn[i]; - continue; + int32_t getSign = 0; + int32_t iPoped = 0; + int32_t iOut = 0; + int32_t size = strGetSize(strIn); + int32_t i = 0; + for (i = 0; i < size; i++) { + if (getSign) { + strIn[iPoped++] = strIn[i]; + continue; + } + if (strIn[i] != sign) { + strOut[iOut++] = strIn[i]; + continue; + } + if (strIn[i] == sign) { + getSign = 1; + continue; + } } - if (strIn[i] != sign) { - strOut[iOut++] = strIn[i]; - continue; - } - if (strIn[i] == sign) { - getSign = 1; - continue; - } - } - strOut[iOut] = 0; - strIn[iPoped] = 0; - return strOut; + strOut[iOut] = 0; + strIn[iPoped] = 0; + return strOut; } char* strGetFirstToken(char* strOut, char* strIn, char sign) { - int32_t size = strGetSize(strIn); - for (int32_t i = 0; i < size; i++) { - if (strIn[i] != sign) { - strOut[i] = strIn[i]; + int32_t size = strGetSize(strIn); + for (int32_t i = 0; i < size; i++) { + if (strIn[i] != sign) { + strOut[i] = strIn[i]; + } + if (strIn[i] == sign) { + break; + } } - if (strIn[i] == sign) { - break; - } - } - return strOut; + return strOut; } int32_t strGetToken(char* string, char** argv, char sign) { - int32_t argc = 0; - int32_t i = 0; - // arg_i point32_t to the arg operated now - int32_t arg_i = 0; - // if not found ' ', then put chars from CMD to argv_tem - int32_t char_i = 0; - for (i = 0; (i < strGetSize(string)); i++) { - if (string[i] != sign) { - argv[arg_i][char_i] = string[i]; - char_i++; + int32_t argc = 0; + int32_t i = 0; + // arg_i point32_t to the arg operated now + int32_t arg_i = 0; + // if not found ' ', then put chars from CMD to argv_tem + int32_t char_i = 0; + for (i = 0; (i < strGetSize(string)); i++) { + if (string[i] != sign) { + argv[arg_i][char_i] = string[i]; + char_i++; + } + if (string[i] == sign) { + // write '\0' to the end of argv + argv[arg_i][char_i] = 0; + arg_i++; + char_i = 0; + } + // write '\0' to the end of last argv + argv[arg_i][char_i] = 0; } - if (string[i] == sign) { - // write '\0' to the end of argv - argv[arg_i][char_i] = 0; - arg_i++; - char_i = 0; - } - // write '\0' to the end of last argv - argv[arg_i][char_i] = 0; - } - argc = arg_i + 1; - return argc; + argc = arg_i + 1; + return argc; } char* strAppend(char* strOut, char* pData) { - uint32_t Size = 0; - Size = strGetSize(pData); - return strAppendWithSize(strOut, pData, Size); + uint32_t Size = 0; + Size = strGetSize(pData); + return strAppendWithSize(strOut, pData, Size); } int32_t strIsStartWith(char* str, char* strStart) { - if (NULL == str || NULL == strStart) { - /* input is null */ - return 0; - } - uint32_t size = strGetSize(strStart); - uint32_t CMDName_get = 1; - for (int32_t i = 0; i < size; i++) { - if (str[i] != strStart[i]) { - CMDName_get = 0; + if (NULL == str || NULL == strStart) { + /* input is null */ + return 0; } - } - return CMDName_get; + uint32_t size = strGetSize(strStart); + uint32_t CMDName_get = 1; + for (int32_t i = 0; i < size; i++) { + if (str[i] != strStart[i]) { + CMDName_get = 0; + } + } + return CMDName_get; } int32_t strEqu(char* str1, char* str2) { - return !strcmp(str1, str2); + return !strcmp(str1, str2); } char* strRemovePrefix(char* inputStr, char* prefix, char* outputStr) { - if (!strIsStartWith(inputStr, prefix)) { - return NULL; - } + if (!strIsStartWith(inputStr, prefix)) { + return NULL; + } - for (int32_t i = strGetSize(prefix); i < strGetSize(inputStr); i++) { - outputStr[i - strGetSize(prefix)] = inputStr[i]; - } - return outputStr; + for (int32_t i = strGetSize(prefix); i < strGetSize(inputStr); i++) { + outputStr[i - strGetSize(prefix)] = inputStr[i]; + } + return outputStr; } char* strClear(char* str) { - for (int32_t i = 0; i < sizeof(str); i++) { - str[i] = 0; - } - return str; + for (int32_t i = 0; i < sizeof(str); i++) { + str[i] = 0; + } + return str; } int32_t strIsContain(char* str, char ch) { - for (int32_t i = 0; i < strGetSize(str); i++) { - if (str[i] == ch) { - return 1; + for (int32_t i = 0; i < strGetSize(str); i++) { + if (str[i] == ch) { + return 1; + } } - } - return 0; + return 0; } char* strCopy(char* strBuff, char* strIn) { - memcpy(strBuff, strIn, strGetSize(strIn)); - return strBuff; + memcpy(strBuff, strIn, strGetSize(strIn)); + return strBuff; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataString.h b/demo/stm32g030c8/pikascript/pikascript-core/dataString.h index f1baff3da..8a73aa82d 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataString.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataString.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef __MY_TEST_TOOLS_H #define __MY_TEST_TOOLS_H #include diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.c b/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.c index 220937dba..98c240d6f 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.c @@ -1,100 +1,105 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "dataStrs.h" #include #include #include "dataString.h" Args* New_strBuff(void) { - return New_args(NULL); + return New_args(NULL); } char* strsRemovePrefix(Args* buffs, char* inputStr, char* prefix) { - int32_t size = strGetSize(inputStr); - char* buff = args_getBuff(buffs, size); - return strRemovePrefix(inputStr, prefix, buff); + int32_t size = strGetSize(inputStr); + char* buff = args_getBuff(buffs, size); + return strRemovePrefix(inputStr, prefix, buff); } char* strsGetDirectStr(Args* buffs, char* argPath) { - char* directStr = NULL; - directStr = strsCut(buffs, argPath, '"', '"'); - if (NULL != directStr) { - return directStr; - } - directStr = strsCut(buffs, argPath, '\'', '\''); - if (NULL != directStr) { - return directStr; - } - return NULL; + char* directStr = NULL; + directStr = strsCut(buffs, argPath, '"', '"'); + if (NULL != directStr) { + return directStr; + } + directStr = strsCut(buffs, argPath, '\'', '\''); + if (NULL != directStr) { + return directStr; + } + return NULL; } char* strsAppend(Args* buffs, char* strOrigin, char* strToAppend) { - int32_t size = strGetSize(strOrigin) + strGetSize(strToAppend); - char* buff = args_getBuff(buffs, size); - char* strOut = strCopy(buff, strOrigin); - strAppend(strOut, strToAppend); - return strOut; + int32_t size = strGetSize(strOrigin) + strGetSize(strToAppend); + char* buff = args_getBuff(buffs, size); + char* strOut = strCopy(buff, strOrigin); + strAppend(strOut, strToAppend); + return strOut; } char* strsGetLastToken(Args* buffs, char* argPath, char sign) { - int32_t size = strGetSize(argPath); - char* buff = args_getBuff(buffs, size); - return strGetLastToken(buff, argPath, sign); + int32_t size = strGetSize(argPath); + char* buff = args_getBuff(buffs, size); + return strGetLastToken(buff, argPath, sign); } char* strsCut(Args* buffs, char* strIn, char startSign, char endSign) { - int32_t size = strGetSize(strIn); - char* buff = args_getBuff(buffs, size); - return strCut(buff, strIn, startSign, endSign); + int32_t size = strGetSize(strIn); + char* buff = args_getBuff(buffs, size); + return strCut(buff, strIn, startSign, endSign); } char* strsDeleteChar(Args* buffs, char* strIn, char ch) { - int32_t size = strGetSize(strIn); - return strDeleteChar(args_getBuff(buffs, size), strIn, ch); + int32_t size = strGetSize(strIn); + return strDeleteChar(args_getBuff(buffs, size), strIn, ch); } char* strsGetFirstToken(Args* buffs, char* strIn, char sign) { - int32_t size = strGetSize(strIn); - return strGetFirstToken(args_getBuff(buffs, size), strIn, sign); + int32_t size = strGetSize(strIn); + return strGetFirstToken(args_getBuff(buffs, size), strIn, sign); } char* strsPopToken(Args* buffs, char* tokens, char sign) { - int32_t size = strGetSize(tokens); - char* buff = args_getBuff(buffs, size); - return strPopToken(buff, tokens, sign); + int32_t size = strGetSize(tokens); + char* buff = args_getBuff(buffs, size); + return strPopToken(buff, tokens, sign); } char* strsCopy(Args* buffs, char* source) { - int32_t size = strGetSize(source); - char* buff = args_getBuff(buffs, size); - return strCopy(buff, source); + int32_t size = strGetSize(source); + char* buff = args_getBuff(buffs, size); + return strCopy(buff, source); } char* strsFormat(Args* buffs, uint16_t buffSize, const char* fmt, ...) { - va_list args; - va_start(args, fmt); - char* res = args_getBuff(buffs, buffSize); - vsnprintf(res, buffSize, fmt, args); - va_end(args); - return res; + va_list args; + va_start(args, fmt); + char* res = args_getBuff(buffs, buffSize); + vsnprintf(res, buffSize, fmt, args); + va_end(args); + return res; } char* strsGetCleanCmd(Args* buffs, char* cmd) { - int32_t size = strGetSize(cmd); - char* strOut = args_getBuff(buffs, size); - int32_t iOut = 0; - char delChar = ' '; - int32_t isInStr = 0; - for (int32_t i = 0; i < strGetSize(cmd); i++) { - if ('\'' == cmd[i] || '\"' == cmd[i]) { - isInStr = !isInStr; + int32_t size = strGetSize(cmd); + char* strOut = args_getBuff(buffs, size); + int32_t iOut = 0; + char delChar = ' '; + int32_t isInStr = 0; + for (int32_t i = 0; i < strGetSize(cmd); i++) { + if ('\'' == cmd[i] || '\"' == cmd[i]) { + isInStr = !isInStr; + } + if ((delChar == cmd[i]) && (!isInStr)) { + /* do not load char */ + continue; + } + strOut[iOut] = cmd[i]; + iOut++; } - if ((delChar == cmd[i]) && (!isInStr)) { - /* do not load char */ - continue; - } - strOut[iOut] = cmd[i]; - iOut++; - } - /* add \0 */ - strOut[iOut] = 0; - return strOut; + /* add \0 */ + strOut[iOut] = 0; + return strOut; } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.h b/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.h index 42c27c7f0..64da50727 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/dataStrs.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef __STR_ARGS__H #define __STR_ARGS__H #include "dataArgs.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/method.c b/demo/stm32g030c8/pikascript/pikascript-core/method.c index 45ce0026d..6cfa6f9f7 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/method.c +++ b/demo/stm32g030c8/pikascript/pikascript-core/method.c @@ -1,25 +1,30 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #include "PikaObj.h" #include "dataArgs.h" void method_returnStr(Args* args, char* val) { - args_setStr(args, "return", val); + args_setStr(args, "return", val); } void method_returnInt(Args* args, int32_t val) { - args_setInt(args, "return", val); + args_setInt(args, "return", val); } void method_returnFloat(Args* args, float val) { - args_setFloat(args, "return", val); + args_setFloat(args, "return", val); } void method_returnPtr(Args* args, void* val) { - args_setPtr(args, "return", val); + args_setPtr(args, "return", val); } int32_t method_getInt(Args* args, char* argName) { - return args_getInt(args, argName); + return args_getInt(args, argName); } float method_getFloat(Args* args, char* argName) { - return args_getFloat(args, argName); + return args_getFloat(args, argName); } char* method_getStr(Args* args, char* argName) { - return args_getStr(args, argName); + return args_getStr(args, argName); } diff --git a/demo/stm32g030c8/pikascript/pikascript-core/method.h b/demo/stm32g030c8/pikascript/pikascript-core/method.h index 99b80e17e..1de6c5e46 100644 --- a/demo/stm32g030c8/pikascript/pikascript-core/method.h +++ b/demo/stm32g030c8/pikascript/pikascript-core/method.h @@ -1,3 +1,8 @@ +/* + Author: lyon + Tencent QQ: 645275593 +*/ + #ifndef METHOD__H #define METHOD__H #include "dataArgs.h" diff --git a/demo/stm32g030c8/pikascript/pikascript-core/pikascript-core.lib b/demo/stm32g030c8/pikascript/pikascript-core/pikascript-core.lib deleted file mode 100644 index c163afe95..000000000 Binary files a/demo/stm32g030c8/pikascript/pikascript-core/pikascript-core.lib and /dev/null differ