mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
remove __parseExtern, parse for as while
This commit is contained in:
parent
1d4ac69222
commit
961f0ce300
@ -1,24 +0,0 @@
|
||||
#include "PikaParser.h"
|
||||
#include "dataStrs.h"
|
||||
|
||||
char* __pikaExtern_beforeParseLine(Args* outBuffs, char* line) {
|
||||
Args* buffs = New_strBuff();
|
||||
char* outLine = line;
|
||||
if (0 == strncmp(line, (char*)"for ", 4)) {
|
||||
char* tokens = Lexer_getTokens(buffs, line + 4);
|
||||
Lexer_popToken(buffs, tokens);
|
||||
char* arg_name = Lexer_popToken(buffs, tokens) + 1;
|
||||
Lexer_popToken(buffs, tokens);
|
||||
char* list_name = Lexer_popToken(buffs, tokens) + 1;
|
||||
outLine = strsCopy(buffs, "while ");
|
||||
outLine = strsAppend(buffs, outLine, list_name);
|
||||
outLine = strsAppend(buffs, outLine, ".next() != -9999:");
|
||||
goto output;
|
||||
}
|
||||
output:
|
||||
if (outLine != line) {
|
||||
line = strsCopy(outBuffs, outLine);
|
||||
}
|
||||
args_deinit(buffs);
|
||||
return line;
|
||||
}
|
@ -1373,24 +1373,24 @@ TEST(parser, if_elif_else) {
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
||||
|
||||
// TEST(parser, for_list) {
|
||||
// Args* bf = New_strBuff();
|
||||
// Stack* bs = New_Stack();
|
||||
// char* s = strsCopy(bf, (char*)"");
|
||||
// s = parse("for arg in list:", bf, s, bs);
|
||||
// s = parse(" print(arg)", bf, s, bs);
|
||||
// s = parse("", bf, s, bs);
|
||||
// printf("%s", s);
|
||||
// EXPECT_STREQ(s,
|
||||
// "B0\n"
|
||||
// "0 REF true\n"
|
||||
// "0 JEZ 2\n"
|
||||
// "B1\n"
|
||||
// "0 RUN rgb.flow\n"
|
||||
// "B0\n"
|
||||
// "0 JMP -1\n"
|
||||
// "B0\n");
|
||||
// stack_deinit(bs);
|
||||
// args_deinit(bf);
|
||||
// EXPECT_EQ(pikaMemNow(), 0);
|
||||
// }
|
||||
TEST(parser, for_list) {
|
||||
Args* bf = New_strBuff();
|
||||
Stack* bs = New_Stack();
|
||||
char* s = strsCopy(bf, (char*)"");
|
||||
s = parse("for arg in list:", bf, s, bs);
|
||||
s = parse(" print(arg)", bf, s, bs);
|
||||
s = parse("", bf, s, bs);
|
||||
printf("%s", s);
|
||||
EXPECT_STREQ(s,
|
||||
"B0\n"
|
||||
"0 REF true\n"
|
||||
"0 JEZ 2\n"
|
||||
"B1\n"
|
||||
"0 RUN rgb.flow\n"
|
||||
"B0\n"
|
||||
"0 JMP -1\n"
|
||||
"B0\n");
|
||||
stack_deinit(bs);
|
||||
args_deinit(bf);
|
||||
EXPECT_EQ(pikaMemNow(), 0);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user