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
|
class for_block : public block
|
||||||
{
|
{
|
||||||
public:
|
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() {
|
~for_block() {
|
||||||
if(iter!=nullptr) delete iter;
|
if(iter!=nullptr) delete iter;
|
||||||
if(ops!=nullptr) delete ops;
|
if(ops!=nullptr) delete ops;
|
||||||
|
|
@ -533,6 +533,8 @@ public:
|
||||||
arglist* iter;
|
arglist* iter;
|
||||||
list* ops;
|
list* ops;
|
||||||
|
|
||||||
|
bool in_val;
|
||||||
|
|
||||||
std::string generate(int ind, generate_context* ctx);
|
std::string generate(int ind, generate_context* ctx);
|
||||||
std::string generate(int ind) { return this->generate(ind, nullptr); }
|
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;
|
std::string ret;
|
||||||
|
|
||||||
ret += "for "+var->generate(ind);
|
ret += "for "+var->generate(ind);
|
||||||
|
if(in_val) {
|
||||||
|
ret += " in";
|
||||||
if(iter != nullptr)
|
if(iter != nullptr)
|
||||||
ret += " in " + iter->generate(ind);
|
ret += " " + iter->generate(ind);
|
||||||
|
}
|
||||||
ret += '\n';
|
ret += '\n';
|
||||||
ret += indented("do\n", ind);
|
ret += indented("do\n", ind);
|
||||||
ret += ops->generate(ind+1);
|
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);
|
auto pp = parse_arglist(ctx, false);
|
||||||
ret->iter = pp.first;
|
ret->iter = pp.first;
|
||||||
ctx = pp.second;
|
ctx = pp.second;
|
||||||
|
ret->in_val=true;
|
||||||
}
|
}
|
||||||
else if(wp.first != "")
|
else if(wp.first != "")
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue