diff --git a/src/ludus/node.cljc b/src/ludus/node.cljc index 3c91609..aced522 100644 --- a/src/ludus/node.cljc +++ b/src/ludus/node.cljc @@ -30,33 +30,38 @@ (defn clean-out [value] #?(:clj value :cljs (clj->js value))) -(defn run [source] - (let [user_scanned (s/scan source "user input") - user_tokens (:tokens user_scanned) - user_parsed (p/apply-parser g/script user_tokens) - user_result (i/interpret-safe source user_parsed {}) - result_str (show/show user_result) - post_scanned (s/scan pre/postlude "postlude") - post_tokens (:tokens post_scanned) - post_parsed (p/apply-parser g/script post_tokens) - post_result (i/interpret-safe source post_parsed {}) - ludus_result (assoc post_result :result result_str) - clj_result (ld->clj ludus_result) - ] - (cond - (not-empty (:errors user_tokens)) - (clean-out {:errors (:errors user_tokens)}) +(defn run + ([source] (run source false)) + ([source testing?] + (let [user_scanned (s/scan source "user input") + user_tokens (:tokens user_scanned) + user_parsed (p/apply-parser g/script user_tokens) + user_result (i/interpret-safe source user_parsed {::i/testing? testing?}) + result_str (show/show user_result) + post_scanned (s/scan pre/postlude "postlude") + post_tokens (:tokens post_scanned) + post_parsed (p/apply-parser g/script post_tokens) + post_result (i/interpret-safe source post_parsed {}) + ludus_result (assoc post_result :result result_str) + clj_result (ld->clj ludus_result) + ] + (cond + (not-empty (:errors user_tokens)) + (clean-out {:errors (:errors user_tokens)}) - (= :err (:status user_parsed)) - (clean-out {:errors [(error/parse-error user_parsed)]}) + (= :err (:status user_parsed)) + (clean-out {:errors [(error/parse-error user_parsed)]}) - (::data/error user_result) - (clean-out (assoc (ld->clj post_result) :errors [(error/run-error user_result)])) + (::data/error user_result) + (clean-out (assoc (ld->clj post_result) :errors [(error/run-error user_result)])) - :else - (clean-out clj_result) - ) - )) + :else + (clean-out clj_result) + ) + )) + ) + +(defn test [source] (run source true)) (comment (def source "