diff --git a/port/linux/CMakeLists.txt b/port/linux/CMakeLists.txt index 2bb501a2e..8a60b92ed 100644 --- a/port/linux/CMakeLists.txt +++ b/port/linux/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0.0) -add_compile_options(-Wall) +add_compile_options(-Wall -Wextra -Wno-unused-parameter -Werror) project(pikascript VERSION 0.1.0) diff --git a/port/linux/api-make-linux.sh b/port/linux/api-make-linux.sh old mode 100644 new mode 100755 diff --git a/port/linux/api-make-win10.sh b/port/linux/api-make-win10.sh old mode 100644 new mode 100755 diff --git a/port/linux/api-make.sh b/port/linux/api-make.sh old mode 100644 new mode 100755 diff --git a/port/linux/gtest.sh b/port/linux/gtest.sh old mode 100644 new mode 100755 diff --git a/port/linux/init.sh b/port/linux/init.sh old mode 100644 new mode 100755 diff --git a/port/linux/make.sh b/port/linux/make.sh old mode 100644 new mode 100755 diff --git a/port/linux/package/pikascript/rust-msc-latest-linux b/port/linux/package/pikascript/rust-msc-latest-linux old mode 100644 new mode 100755 diff --git a/port/linux/pkg-push.sh b/port/linux/pkg-push.sh old mode 100644 new mode 100755 diff --git a/port/linux/pull-core.sh b/port/linux/pull-core.sh old mode 100644 new mode 100755 diff --git a/port/linux/push-core.sh b/port/linux/push-core.sh old mode 100644 new mode 100755 diff --git a/port/linux/test-banchmark.sh b/port/linux/test-banchmark.sh old mode 100644 new mode 100755 diff --git a/port/linux/update-compiler.sh b/port/linux/update-compiler.sh old mode 100644 new mode 100755 diff --git a/src/PikaParser.c b/src/PikaParser.c index ac650d910..95fb6bcda 100644 --- a/src/PikaParser.c +++ b/src/PikaParser.c @@ -221,7 +221,7 @@ exit: uint8_t Parser_checkIsDirect(char* str) { /* include '0' */ uint32_t size = strGetSize(str) + 1; - for (int i = 1; i + 1 < size; i++) { + for (uint32_t i = 1; i + 1 < size; i++) { if ((str[i - 1] != '%') && (str[i - 1] != '!') && (str[i - 1] != '<') && (str[i - 1] != '>') && (str[i - 1] != '=') && (str[i - 1] != '+') && (str[i - 1] != '-') && (str[i - 1] != '*') && (str[i - 1] != '/') && @@ -239,7 +239,7 @@ char* Lexer_printTokens(Args* outBuffs, char* tokens) { /* process */ uint16_t tokenSize = strCountSign(tokens, 0x1F) + 1; - for (int i = 0; i < tokenSize; i++) { + for (uint16_t i = 0; i < tokenSize; i++) { char* token = strsPopToken(buffs, tokens, 0x1F); if (token[0] == TOKEN_operator) { printOut = strsAppend(buffs, printOut, "{opt}"); @@ -283,8 +283,8 @@ Arg* Lexer_setToken(Arg* tokens_arg, Arg* Lexer_setSymbel(Arg* tokens_arg, char* stmt, - uint32_t i, - int* symbol_start_index) { + int32_t i, + int32_t* symbol_start_index) { Args* buffs = New_strBuff(); char* symbol_buff = NULL; /* nothing to add symbel */ @@ -316,18 +316,18 @@ char* Lexer_getTokens(Args* outBuffs, char* stmt) { /* init */ Arg* tokens_arg = New_arg(NULL); tokens_arg = arg_setStr(tokens_arg, "", ""); - uint32_t size = strGetSize(stmt); + int32_t size = strGetSize(stmt); uint8_t bracket_deepth = 0; uint8_t c0 = 0; uint8_t c1 = 0; uint8_t c2 = 0; uint8_t c3 = 0; - int symbol_start_index = -1; + int32_t symbol_start_index = -1; int is_in_string = 0; char* tokens; /* process */ - for (int i = 0; i < size; i++) { + for (int32_t i = 0; i < size; i++) { /* update char */ c0 = stmt[i]; if (i + 1 < size) { @@ -564,7 +564,7 @@ char* Lexer_getOperator(Args* outBuffs, char* stmt) { "**", "~", "*", "/", "%", "//", "+", "-", ">>", "<<", "&", "^", "|", "<", "<=", ">", ">=", "!=", "==", "%=", "/=", "//=", "-=", "+=", "*=", "**=", " not ", " and ", " or "}; - for (int i = 0; i < sizeof(operators) / 6; i++) { + for (uint32_t i = 0; i < sizeof(operators) / 6; i++) { if (Lexer_isContain(tokens, (char*)operators[i])) { operator= strsCopy(buffs, (char*)operators[i]); } @@ -658,7 +658,7 @@ exit: static int32_t Parser_getPyLineBlockDeepth(char* line) { uint32_t size = strGetSize(line); - for (int i = 0; i < size; i++) { + for (uint32_t i = 0; i < size; i++) { if (line[i] != ' ') { uint32_t spaceNum = i; if (0 == spaceNum % 4) { @@ -673,7 +673,7 @@ static int32_t Parser_getPyLineBlockDeepth(char* line) { char* Parser_removeAnnotation(char* line) { uint8_t is_annotation_exit = 0; - for (int i = 0; i < strGetSize(line); i++) { + for (uint32_t i = 0; i < strGetSize(line); i++) { if ('#' == line[i]) { /* end the line */ line[i] = 0; @@ -686,7 +686,7 @@ char* Parser_removeAnnotation(char* line) { return line; } /* check empty line */ - for (int i = 0; i < strGetSize(line); i++) { + for (uint32_t i = 0; i < strGetSize(line); i++) { if (' ' != line[i]) { return line; } diff --git a/src/PikaVM.c b/src/PikaVM.c index 6025732e3..3547bd5ff 100644 --- a/src/PikaVM.c +++ b/src/PikaVM.c @@ -109,7 +109,6 @@ Arg* pikaVM_runInstruct(PikaObj* self, Queue* invokeQuene0, Queue* invokeQuene1, int32_t* jmp, - int32_t* jmp_block, char* programConter, char* asmStart) { if (instruct == NUM) { @@ -204,10 +203,10 @@ Arg* pikaVM_runInstruct(PikaObj* self, Arg* arg2 = arg_copy(queue_popArg(invokeQuene1)); ArgType type_arg1 = arg_getType(arg1); ArgType type_arg2 = arg_getType(arg2); - int num1_i; - int num2_i; - float num1_f; - float num2_f; + int num1_i = 0; + int num2_i = 0; + float num1_f = 0.0; + float num2_f = 0.0; /* get int and float num */ if (type_arg1 == TYPE_INT) { num1_i = arg_getInt(arg1); @@ -492,11 +491,9 @@ int getThisBlockDeepth(char* start, char* code, int* offset) { return thisBlockDeepth; } -int32_t VM_getAddrOffsetFromJmp(char* start, - char* code, - int32_t jmp, - int32_t offset, - int thisBlockDeepth) { +int32_t getAddrOffsetFromJmp(char* start, char* code, int32_t jmp) { + int offset = 0; + int thisBlockDeepth = getThisBlockDeepth(start, code, &offset); char* codeNow = code + offset; int8_t blockNum = 0; if (jmp > 0) { @@ -534,14 +531,6 @@ int32_t VM_getAddrOffsetFromJmp(char* start, return offset; } -int32_t VM_getAddrOffsetFromJmpByThisBlockDeepth(char* start, - char* code, - int32_t jmp) { - int offset = 0; - int thisBlockDeepth = getThisBlockDeepth(start, code, &offset); - return VM_getAddrOffsetFromJmp(start, code, jmp, offset, thisBlockDeepth); -} - int32_t pikaVM_runAsmLine(PikaObj* self, Parameters* locals, Parameters* globals, @@ -552,7 +541,6 @@ int32_t pikaVM_runAsmLine(PikaObj* self, char* line = strs_getLine(buffs, programCounter); int32_t nextAddr = lineAddr + strGetSize(line) + 1; int32_t jmp = 0; - int32_t jmp_block = -1; enum Instruct instruct; char invokeDeepth0[2] = {0}, invokeDeepth1[2] = {0}; char* data; @@ -581,9 +569,9 @@ int32_t pikaVM_runAsmLine(PikaObj* self, invokeQuene1 = New_queue(); args_setPtr(locals->list, invokeDeepth1, invokeQuene1); } - resArg = pikaVM_runInstruct(self, locals, globals, instruct, data, - invokeQuene0, invokeQuene1, &jmp, &jmp_block, - programCounter, pikaAsm); + resArg = + pikaVM_runInstruct(self, locals, globals, instruct, data, invokeQuene0, + invokeQuene1, &jmp, programCounter, pikaAsm); if (NULL != resArg) { queue_pushArg(invokeQuene0, resArg); } @@ -594,10 +582,7 @@ nextLine: return -99999; } if (jmp != 0) { - if (-1 == jmp_block) { - return lineAddr + VM_getAddrOffsetFromJmpByThisBlockDeepth( - pikaAsm, programCounter, jmp); - } + return lineAddr + getAddrOffsetFromJmp(pikaAsm, programCounter, jmp); } return nextAddr; } diff --git a/src/dataString.c b/src/dataString.c index 8918e24b7..09a63d63f 100644 --- a/src/dataString.c +++ b/src/dataString.c @@ -77,7 +77,7 @@ char* strCut(char* strOut, char* strIn, char startSign, char endSign) { char* strDeleteChar(char* strOut, char* strIn, char ch) { int32_t iOut = 0; - for (int32_t i = 0; i < strGetSize(strIn); i++) { + for (uint32_t i = 0; i < strGetSize(strIn); i++) { if (ch == strIn[i]) { continue; } @@ -107,7 +107,7 @@ char* strAppendWithSize(char* strOut, char* pData, int32_t Size) { int32_t strCountSign(char* strIn, char sign) { int32_t count = 0; - for (int32_t i = 0; i < strGetSize(strIn); i++) { + for (uint32_t i = 0; i < strGetSize(strIn); i++) { if (sign == strIn[i]) { count++; } @@ -210,12 +210,12 @@ char* strGetFirstToken(char* strOut, char* strIn, char sign) { int32_t strGetToken(char* string, char** argv, char sign) { int32_t argc = 0; - int32_t i = 0; + uint32_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++) { + for (i = 0; i < strGetSize(string); i++) { if (string[i] != sign) { argv[arg_i][char_i] = string[i]; char_i++; @@ -246,7 +246,7 @@ int32_t strIsStartWith(char* str, char* strStart) { } uint32_t size = strGetSize(strStart); uint32_t CMDName_get = 1; - for (int32_t i = 0; i < size; i++) { + for (uint32_t i = 0; i < size; i++) { if (str[i] != strStart[i]) { CMDName_get = 0; } @@ -266,21 +266,21 @@ char* strRemovePrefix(char* inputStr, char* prefix, char* outputStr) { return NULL; } - for (int32_t i = strGetSize(prefix); i < strGetSize(inputStr); i++) { + for (uint32_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++) { + for (uint32_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++) { + for (uint32_t i = 0; i < strGetSize(str); i++) { if (str[i] == ch) { return 1; }