v0.3.3: is lib word, UTF–8 string support

This commit is contained in:
Luxferre
2026-07-07 08:25:11 +03:00
parent 147089dc23
commit 6ccd7e7350
3 changed files with 16 additions and 1 deletions
+8 -1
View File
@@ -103,10 +103,17 @@ class Clyx:
def _cmd_qset(self): i, v, x = self._stack.pop(), self._stack.pop(), self._stack.pop(); (v.pop(int(i)), v.insert(int(i), x)) if isinstance(v, list) else None; self._stack.append(v if isinstance(v, list) else None)
def _exec_loop(self, c, b):
while (self._exec_qform(c), self._stack.pop())[1]: self._exec_qform(b)
_pop_caller_token = lambda self: (lambda t: (t.pop(0) if t[0] != '[' else self._parse_qform((t.pop(0), t)[1])) if t else None)(self._token_streams[-1] if self._token_streams else self._tokens)
def _pop_caller_token(self):
t = self._token_streams[-1] if self._token_streams else 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
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()
if isinstance(name, str): name = self._norm_token(name)
self._words[name] = val