34 lines
1.1 KiB
Text
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))))
|