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:
@@ -693,7 +693,12 @@
|
||||
nil
|
||||
(do
|
||||
(when
|
||||
(and (number? left) (= (tp-type) "ident"))
|
||||
(and (number? left) (= (tp-type) "ident")
|
||||
(not (or (= (tp-val) "starts") (= (tp-val) "ends")
|
||||
(= (tp-val) "contains") (= (tp-val) "matches")
|
||||
(= (tp-val) "is") (= (tp-val) "does")
|
||||
(= (tp-val) "in") (= (tp-val) "precedes")
|
||||
(= (tp-val) "follows"))))
|
||||
(let
|
||||
((unit (tp-val)))
|
||||
(do
|
||||
|
||||
Reference in New Issue
Block a user