fix for in empty value
This commit is contained in:
parent
3562cb77b2
commit
536168eee4
3 changed files with 9 additions and 3 deletions
|
|
@ -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); }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 != "")
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue