jolt/test/test-ctor.janet
2026-06-02 08:43:27 -04:00

34 lines
1.1 KiB
Text

(use ../src/jolt/types)
(use ../src/jolt/api)
(use ../src/jolt/reader)
(use ../src/jolt/evaluator)
(def ctx (init))
(def sci-base "vendor/sci/src/sci")
(defn load [ctx path]
(var s (slurp path))
(while (> (length (string/trim s)) 0)
(def [form rest] (parse-next s))
(set s rest)
(when (not (nil? form))
(try (eval-form ctx @{} form) ([err] nil))))))
(each f ["impl/macros.cljc" "impl/protocols.cljc" "impl/types.cljc" "impl/unrestrict.cljc" "impl/vars.cljc" "lang.cljc" "impl/utils.cljc" "impl/namespaces.cljc"]
(load ctx (string sci-base "/" f)))
# Check if utils/new-var exists
(def utils-ns (ctx-find-ns ctx "sci.impl.utils"))
(def new-var-v (if utils-ns (ns-find utils-ns "new-var") nil))
(printf "sci.impl.utils/new-var: %q\n" new-var-v)
# Check parser ns aliases
(def parser-ns (ctx-find-ns ctx "sci.impl.parser"))
(if parser-ns
(do
(printf "parser aliases: %q\n" (parser-ns :aliases))
(printf "parser imports: %q\n" (parser-ns :imports))))
# Try resolving utils/new-var through alias
(printf "\nResolve utils/new-var: %q\n"
(try (eval-string ctx "utils/new-var") ([err] (string "ERR: " err))))