35 lines
976 B
Plaintext
35 lines
976 B
Plaintext
|
# testing the prelude
|
||
|
(try (os/cd "janet") ([_] nil))
|
||
|
(import /scanner :as s)
|
||
|
(import /parser :as p)
|
||
|
(import /validate :as v)
|
||
|
(import /interpreter :as i)
|
||
|
(import /errors :as e)
|
||
|
(import /base :as b)
|
||
|
(import /load-prelude :as pre)
|
||
|
(use judge)
|
||
|
|
||
|
(defn run [source]
|
||
|
(when (= :error pre/pkg) (error "could not load prelude"))
|
||
|
(def ctx @{:^parent pre/ctx})
|
||
|
(def scanned (s/scan source :test))
|
||
|
(when (any? (scanned :errors))
|
||
|
(e/scan-error (scanned :errors)) (error "scanning errors"))
|
||
|
(def parsed (p/parse scanned))
|
||
|
(when (any? (parsed :errors))
|
||
|
(e/parse-error (parsed :errors)) (error "parsing errors"))
|
||
|
(def valid (v/valid parsed ctx))
|
||
|
(when (any? (valid :errors)) (each err (valid :errors)
|
||
|
(e/validation-error err)) (error "validation errors"))
|
||
|
(i/interpret (parsed :ast) ctx))
|
||
|
|
||
|
(deftest "debug add_msg"
|
||
|
(test (run `
|
||
|
let msgs = [1, :foo, nil]
|
||
|
let msg = do msgs > map (string, _)
|
||
|
msg
|
||
|
`)
|
||
|
@["1" ":foo" ":^nil"])
|
||
|
# (test (run `print! ("foo", "bar")`) :ok)
|
||
|
)
|