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>
15 lines
492 B
Plaintext
15 lines
492 B
Plaintext
(define spec-explore
|
|
:effects (io)
|
|
(fn
|
|
(filename title desc)
|
|
(let
|
|
((source (helper "read-spec-file" filename)))
|
|
(if
|
|
(starts-with? source ";; spec file not found")
|
|
nil
|
|
(let
|
|
((forms (sx-parse source))
|
|
(sections (spec-group-sections forms source))
|
|
(stats (spec-compute-stats sections source)))
|
|
{:stats stats :desc desc :title title :filename filename :platform-interface (list) :sections sections})))))
|