v0.3.6: map, filter, a lot of fixes
This commit is contained in:
@@ -102,14 +102,26 @@ class Clyx:
|
||||
def _exec_loop(self, c, b):
|
||||
while (self._exec_qform(c), self._stack.pop())[1]: self._exec_qform(b)
|
||||
def _pop_caller_token(self):
|
||||
t = self._token_streams[-1] if self._token_streams else self._tokens
|
||||
t = None
|
||||
for stream in reversed(self._token_streams):
|
||||
if stream:
|
||||
t = stream
|
||||
break
|
||||
if t is None:
|
||||
t = self._tokens
|
||||
if not t: return None
|
||||
val = t.pop(0)
|
||||
if val == '[': return self._parse_qform(t)
|
||||
if isinstance(val, str): return self._norm_token(val)
|
||||
return val
|
||||
def _cmd_defw(self):
|
||||
t = self._token_streams[-1] if self._token_streams else self._tokens
|
||||
t = None
|
||||
for stream in reversed(self._token_streams):
|
||||
if stream:
|
||||
t = stream
|
||||
break
|
||||
if t is None:
|
||||
t = self._tokens
|
||||
val = self._pop_caller_token() if (t and (t[0] == '[' or isinstance(t[0], list))) else self._stack.pop()
|
||||
if isinstance(val, str): val = self._norm_token(val)
|
||||
name = self._stack.pop()
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "clyx"
|
||||
version = "0.3.5"
|
||||
version = "0.3.6"
|
||||
description = "Clyx programming language interpreter"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.7"
|
||||
|
||||
Reference in New Issue
Block a user