mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
check null in strEqu
This commit is contained in:
parent
e6c8e23f56
commit
f2b4c56977
@ -147,9 +147,11 @@ AST* pikaParseLine(char* line) {
|
|||||||
char* stmt = lineStart;
|
char* stmt = lineStart;
|
||||||
if (0 == strncmp(lineStart, (char*)"while ", 6)) {
|
if (0 == strncmp(lineStart, (char*)"while ", 6)) {
|
||||||
stmt = strsCut(buffs, lineStart, ' ', ':');
|
stmt = strsCut(buffs, lineStart, ' ', ':');
|
||||||
|
obj_setStr(ast, "contralFlow", "while");
|
||||||
}
|
}
|
||||||
if (0 == strncmp(lineStart, (char*)"if ", 3)) {
|
if (0 == strncmp(lineStart, (char*)"if ", 3)) {
|
||||||
stmt = strsCut(buffs, lineStart, ' ', ':');
|
stmt = strsCut(buffs, lineStart, ' ', ':');
|
||||||
|
obj_setStr(ast, "contralFlow", "if");
|
||||||
}
|
}
|
||||||
stmt = strsGetCleanCmd(buffs, stmt);
|
stmt = strsGetCleanCmd(buffs, stmt);
|
||||||
ast = AST_parseStmt(ast, 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) {
|
char* AST_toPikaAsm(AST* ast, Args* buffs) {
|
||||||
Args* runBuffs = New_strBuff();
|
Args* runBuffs = New_strBuff();
|
||||||
char* pikaAsm = strsCopy(runBuffs, "");
|
char* pikaAsm = strsCopy(runBuffs, "");
|
||||||
|
pikaAsm = strsCopy(runBuffs, "");
|
||||||
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"B");
|
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"B");
|
||||||
char buff[11];
|
char buff[11];
|
||||||
pikaAsm = strsAppend(buffs, pikaAsm,
|
pikaAsm = strsAppend(buffs, pikaAsm,
|
||||||
@ -221,6 +224,9 @@ char* AST_toPikaAsm(AST* ast, Args* buffs) {
|
|||||||
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"\n");
|
pikaAsm = strsAppend(buffs, pikaAsm, (char*)"\n");
|
||||||
obj_setInt(ast, "deepth", 0);
|
obj_setInt(ast, "deepth", 0);
|
||||||
pikaAsm = AST_appandPikaAsm(ast, ast, runBuffs, pikaAsm);
|
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);
|
pikaAsm = strsCopy(buffs, pikaAsm);
|
||||||
args_deinit(runBuffs);
|
args_deinit(runBuffs);
|
||||||
return pikaAsm;
|
return pikaAsm;
|
||||||
|
@ -237,6 +237,9 @@ int32_t strIsStartWith(char* str, char* strStart) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int32_t strEqu(char* str1, char* str2) {
|
int32_t strEqu(char* str1, char* str2) {
|
||||||
|
if (NULL == str1 || NULL == str2) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return !strcmp(str1, str2);
|
return !strcmp(str1, str2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user