diff --git a/lib.py b/lib.py index 0ecc7b4..a2ab857 100644 --- a/lib.py +++ b/lib.py @@ -14,6 +14,7 @@ def execute(program): def _destr(t): return t[1] if t[0] == "string" else "" def _fixarr(a): + a = [a] if not type(a) == type([]) else a for i in a: if i[0] == "identifier" and i in idspace: a[a.index(i)] = idspace[i] @@ -77,6 +78,11 @@ def execute(program): return _execute(subs[2]) if _truthy(_execute(subs[1])) else _execute(subs[3]) elif ctx[0] == _ident("conv"): return (subs[1][1], float(subs[2][1]) if subs[1][1] == "number" else str(subs[2][1])) + elif ctx[0] == _ident("all"): + ret = _execute(subs[1]) + for statement in subs[2:]: + ret = _execute(statement) + return ret elif ctx[0] in funcspace: prototype = funcspace[ctx[0]] for idx, arg in enumerate(subs[1:]):