fix for in empty value

This commit is contained in:
zawz 2021-08-11 11:56:44 +02:00
parent 3562cb77b2
commit 536168eee4
3 changed files with 9 additions and 3 deletions

View file

@ -521,7 +521,7 @@ public:
class for_block : public block
{
public:
for_block(variable* in=nullptr, arglist* args=nullptr, list* lst=nullptr) { type=_obj::block_for; var=in; iter=args; ops=lst; }
for_block(variable* in=nullptr, arglist* args=nullptr, list* lst=nullptr, bool ii=false) { type=_obj::block_for; var=in; iter=args; ops=lst; in_val=ii; }
~for_block() {
if(iter!=nullptr) delete iter;
if(ops!=nullptr) delete ops;
@ -533,6 +533,8 @@ public:
arglist* iter;
list* ops;
bool in_val;
std::string generate(int ind, generate_context* ctx);
std::string generate(int ind) { return this->generate(ind, nullptr); }
};

View file

@ -202,8 +202,11 @@ std::string for_block::generate(int ind, generate_context* ctx)
std::string ret;
ret += "for "+var->generate(ind);
if(in_val) {
ret += " in";
if(iter != nullptr)
ret += " in " + iter->generate(ind);
ret += " " + iter->generate(ind);
}
ret += '\n';
ret += indented("do\n", ind);
ret += ops->generate(ind+1);

View file

@ -1496,6 +1496,7 @@ std::pair<for_block*, parse_context> parse_for(parse_context ctx)
auto pp = parse_arglist(ctx, false);
ret->iter = pp.first;
ctx = pp.second;
ret->in_val=true;
}
else if(wp.first != "")
{