check null in strEqu

This commit is contained in:
lyon1998 2021-10-16 18:13:52 +08:00
parent e6c8e23f56
commit f2b4c56977
2 changed files with 9 additions and 0 deletions

View File

@ -147,9 +147,11 @@ AST* pikaParseLine(char* line) {
char* stmt = lineStart;
if (0 == strncmp(lineStart, (char*)"while ", 6)) {
stmt = strsCut(buffs, lineStart, ' ', ':');
obj_setStr(ast, "contralFlow", "while");
}
if (0 == strncmp(lineStart, (char*)"if ", 3)) {
stmt = strsCut(buffs, lineStart, ' ', ':');
obj_setStr(ast, "contralFlow", "if");
}
stmt = strsGetCleanCmd(buffs, stmt);
ast = AST_parseStmt(ast, stmt);
@ -214,6 +216,7 @@ char* AST_appandPikaAsm(AST* ast, AST* subAst, Args* buffs, char* pikaAsm) {
char* AST_toPikaAsm(AST* ast, Args* buffs) {
Args* runBuffs = New_strBuff();
char* pikaAsm = strsCopy(runBuffs, "");
pikaAsm = strsCopy(runBuffs, "");
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"B");
char buff[11];
pikaAsm = strsAppend(buffs, pikaAsm,
@ -221,6 +224,9 @@ char* AST_toPikaAsm(AST* ast, Args* buffs) {
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"\n");
obj_setInt(ast, "deepth", 0);
pikaAsm = AST_appandPikaAsm(ast, ast, runBuffs, pikaAsm);
if (strEqu(obj_getStr(ast, "contralFlow"), "while")) {
pikaAsm = strsAppend(runBuffs, pikaAsm, "JEZ 2\n");
}
pikaAsm = strsCopy(buffs, pikaAsm);
args_deinit(runBuffs);
return pikaAsm;

View File

@ -237,6 +237,9 @@ int32_t strIsStartWith(char* str, char* strStart) {
}
int32_t strEqu(char* str1, char* str2) {
if (NULL == str1 || NULL == str2) {
return 0;
}
return !strcmp(str1, str2);
}