HS parser: fix number+comparison keyword collision, eval-hs uses hs-compile

Parser: skip unit suffix when next ident is a comparison keyword
(starts, ends, contains, matches, is, does, in, precedes, follows).
Fixes "123 starts with '12'" returning "123starts" instead of true.

eval-hs: use hs-compile directly instead of hs-to-sx-from-source with
"return " prefix, which was causing the parser to consume the comparison
as a string suffix.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 11:29:01 +00:00
parent a93e5924df
commit 4f02f82f4e
377 changed files with 9517 additions and 8694 deletions

View File

@@ -0,0 +1,15 @@
(defcomp
(&key effect)
(span
:class (str
"text-xs px-1.5 py-0.5 rounded "
(case
effect
"mutation"
"bg-amber-100 text-amber-700"
"io"
"bg-orange-100 text-orange-700"
"render"
"bg-sky-100 text-sky-700"
:else "bg-stone-100 text-stone-500"))
effect))