let fixarr be called on single item

master
cynic 3 years ago
parent 8b165cb5e5
commit eff4b7d89d
  1. 6
      lib.py

@ -14,6 +14,7 @@ def execute(program):
def _destr(t): def _destr(t):
return t[1] if t[0] == "string" else "" return t[1] if t[0] == "string" else ""
def _fixarr(a): def _fixarr(a):
a = [a] if not type(a) == type([]) else a
for i in a: for i in a:
if i[0] == "identifier" and i in idspace: if i[0] == "identifier" and i in idspace:
a[a.index(i)] = idspace[i] 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]) return _execute(subs[2]) if _truthy(_execute(subs[1])) else _execute(subs[3])
elif ctx[0] == _ident("conv"): elif ctx[0] == _ident("conv"):
return (subs[1][1], float(subs[2][1]) if subs[1][1] == "number" else str(subs[2][1])) 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: elif ctx[0] in funcspace:
prototype = funcspace[ctx[0]] prototype = funcspace[ctx[0]]
for idx, arg in enumerate(subs[1:]): for idx, arg in enumerate(subs[1:]):

Loading…
Cancel
Save