🐐 Various fixes

This commit is contained in:
2026-04-01 14:50:58 +02:00
parent bd27857472
commit f76a1fcfd4
2 changed files with 13 additions and 8 deletions

View File

@@ -259,9 +259,11 @@ class DataRangeArray(Node):
def _eval(self, vtable):
vtable, from_val = self.from_value.eval(vtable)
vtable, to_val = self.to_value.eval(vtable)
if not isinstance(from_val, ValInt) or not isinstance(to_val, ValInt):
if not isinstance(from_val, (ValInt, ValNul)) or not isinstance(to_val, (ValInt, ValNul)):
raise CentvrionError("Range bounds must be numbers")
return vtable, ValList([ValInt(i) for i in range(from_val.value(), to_val.value())])
from_int = from_val.value() or 0
to_int = to_val.value() or 0
return vtable, ValList([ValInt(i) for i in range(from_int, to_int)])
class String(Node):
@@ -894,4 +896,6 @@ class Program(BaseBox):
last_val = ValNul()
for statement in self.statements:
vtable, last_val = statement.eval(vtable)
if vtable["#return"] is not None:
return vtable["#return"]
return last_val