mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
for_for_range parse error in DEL __list[x]
This commit is contained in:
parent
d9b4666032
commit
a1cdd62a31
@ -6,6 +6,3 @@ from PikaObj import *
|
||||
|
||||
for i in range(0, 100):
|
||||
print(i)
|
||||
|
||||
for i in range(0, 10):
|
||||
print(i)
|
||||
|
@ -1444,3 +1444,68 @@ TEST(parser, for_list) {
|
||||
args_deinit(bf);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
// TEST(parser, for_for_range) {
|
||||
// pikaMemInfo.heapUsedMax = 0;
|
||||
// Args* buffs = New_strBuff();
|
||||
// char* lines = (char*)
|
||||
// "a = 0\n"
|
||||
// "for i in range(0, 10):\n"
|
||||
// " for k in range(0, 3):\n"
|
||||
// " print(k)\n"
|
||||
// " a = a + k\n"
|
||||
// "\n"
|
||||
// ;
|
||||
// printf("%s", lines);
|
||||
// char* pikaAsm = Parser_multiLineToAsm(buffs, (char*)lines);
|
||||
// printf("%s", pikaAsm);
|
||||
// EXPECT_STREQ(pikaAsm,(char *)
|
||||
// "B0\n"
|
||||
// "1 REF a\n"
|
||||
// "1 NUM 1\n"
|
||||
// "0 OPT >\n"
|
||||
// "0 JEZ 1\n"
|
||||
// "B1\n"
|
||||
// "0 NUM 1\n"
|
||||
// "0 OUT b\n"
|
||||
// "B0\n"
|
||||
// "0 NEL 1\n"
|
||||
// "1 REF a\n"
|
||||
// "1 NUM 2\n"
|
||||
// "0 OPT >\n"
|
||||
// "0 JEZ 1\n"
|
||||
// "B1\n"
|
||||
// "0 NUM 2\n"
|
||||
// "0 OUT b\n"
|
||||
// "B1\n"
|
||||
// "1 REF a\n"
|
||||
// "1 NUM 1\n"
|
||||
// "0 OPT >\n"
|
||||
// "0 JEZ 1\n"
|
||||
// "B2\n"
|
||||
// "0 NUM 1\n"
|
||||
// "0 OUT b\n"
|
||||
// "B1\n"
|
||||
// "0 NEL 1\n"
|
||||
// "1 REF a\n"
|
||||
// "1 NUM 2\n"
|
||||
// "0 OPT >\n"
|
||||
// "0 JEZ 1\n"
|
||||
// "B2\n"
|
||||
// "0 NUM 2\n"
|
||||
// "0 OUT b\n"
|
||||
// "B1\n"
|
||||
// "0 NEL 1\n"
|
||||
// "B2\n"
|
||||
// "0 NUM 3\n"
|
||||
// "0 OUT b\n"
|
||||
// "B0\n"
|
||||
// "0 NEL 1\n"
|
||||
// "B1\n"
|
||||
// "0 NUM 3\n"
|
||||
// "0 OUT b\n"
|
||||
// "B0\n"
|
||||
// );
|
||||
// args_deinit(buffs);
|
||||
// EXPECT_EQ(pikaMemNow(), 0);
|
||||
// }
|
@ -378,4 +378,27 @@ TEST(pikaMain, for_in_range) {
|
||||
obj_deinit(pikaMain);
|
||||
/* mem check */
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
// TEST(pikaMain, for_for_in_range) {
|
||||
// /* init */
|
||||
// pikaMemInfo.heapUsedMax = 0;
|
||||
// PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||
// /* run */
|
||||
// obj_runDirect(pikaMain, (char*)
|
||||
// "a = 0\n"
|
||||
// "for i in range(0, 10):\n"
|
||||
// " for k in range(0, 3):\n"
|
||||
// " print(k)\n"
|
||||
// " a = a + k\n"
|
||||
// "\n"
|
||||
// );
|
||||
// /* collect */
|
||||
// int a = obj_getInt(pikaMain, (char*)"a");
|
||||
// /* assert */
|
||||
// EXPECT_EQ(a, 45);
|
||||
// /* deinit */
|
||||
// obj_deinit(pikaMain);
|
||||
// /* mem check */
|
||||
// EXPECT_EQ(pikaMemNow(), 0);
|
||||
// }
|
||||
|
@ -747,8 +747,8 @@ AST* AST_parseLine(char* line, Stack* blockStack) {
|
||||
}
|
||||
goto block_matched;
|
||||
}
|
||||
if (0 == strncmp(line, (char*)"for ", 4)) {
|
||||
char* tokens = Lexer_getTokens(buffs, line + 4);
|
||||
if (0 == strncmp(lineStart, (char*)"for ", 4)) {
|
||||
char* tokens = Lexer_getTokens(buffs, lineStart + 4);
|
||||
Lexer_popToken(buffs, tokens);
|
||||
char* arg_in = Lexer_popToken(buffs, tokens) + 1;
|
||||
obj_setStr(ast, "arg_in", arg_in);
|
||||
@ -756,7 +756,6 @@ AST* AST_parseLine(char* line, Stack* blockStack) {
|
||||
char* token = "";
|
||||
Args* list_buffs = New_strBuff();
|
||||
char* list_in = strsCopy(list_buffs, "");
|
||||
uint8_t isRange = 0;
|
||||
token = Lexer_popToken(list_buffs, tokens) + 1;
|
||||
if (strEqu("range", token)) {
|
||||
obj_setInt(ast, "isRange", 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user