🐐 Various fixes
This commit is contained in:
@@ -683,9 +683,13 @@ class SiStatement(Node):
|
||||
if cond:
|
||||
for statement in self.statements:
|
||||
vtable, last_val = statement.eval(vtable)
|
||||
if vtable["#return"] is not None:
|
||||
break
|
||||
elif self.else_part:
|
||||
for statement in self.else_part:
|
||||
vtable, last_val = statement.eval(vtable)
|
||||
if vtable["#return"] is not None:
|
||||
break
|
||||
return vtable, last_val
|
||||
|
||||
|
||||
@@ -713,12 +717,14 @@ class DumStatement(Node):
|
||||
while not cond:
|
||||
for statement in self.statements:
|
||||
vtable, val = statement.eval(vtable)
|
||||
if vtable["#break"]:
|
||||
if vtable["#break"] or vtable["#return"] is not None:
|
||||
break
|
||||
last_val = val
|
||||
if vtable["#break"]:
|
||||
vtable["#break"] = False
|
||||
break
|
||||
if vtable["#return"] is not None:
|
||||
break
|
||||
vtable, cond = self.test.eval(vtable)
|
||||
return vtable, last_val
|
||||
|
||||
@@ -753,12 +759,14 @@ class PerStatement(Node):
|
||||
vtable[variable_name] = item
|
||||
for statement in self.statements:
|
||||
vtable, val = statement.eval(vtable)
|
||||
if vtable["#break"]:
|
||||
if vtable["#break"] or vtable["#return"] is not None:
|
||||
break
|
||||
last_val = val
|
||||
if vtable["#break"]:
|
||||
vtable["#break"] = False
|
||||
break
|
||||
if vtable["#return"] is not None:
|
||||
break
|
||||
return vtable, last_val
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user