diff --git a/src/babashka/impl/clojure/tools/reader_types.clj b/src/babashka/impl/clojure/tools/reader_types.clj new file mode 100644 index 00000000..c88f036d --- /dev/null +++ b/src/babashka/impl/clojure/tools/reader_types.clj @@ -0,0 +1,16 @@ +(ns babashka.impl.clojure.tools.reader-types + (:require [clojure.tools.reader.edn :as edn] + [clojure.tools.reader.reader-types :as rt] + [sci.core :as sci])) + +(def edn-namespace {'read-string (sci/copy-var edn/read-string (sci/create-ns 'clojure.tools.reader.edn))}) + +(def rtns (sci/create-ns 'clojure.tools.reader.reader-types)) + +(def reader-types-namespace {'indexing-reader? (sci/copy-var rt/indexing-reader? rtns) + 'get-line-number (sci/copy-var rt/get-line-number rtns) + 'get-column-number (sci/copy-var rt/get-column-number rtns) + 'peek-char (sci/copy-var rt/peek-char rtns) + 'read-char (sci/copy-var rt/read-char rtns) + 'unread (sci/copy-var rt/unread rtns) + 'source-logging-push-back-reader (sci/copy-var rt/source-logging-push-back-reader rtns)}) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 5b30a290..3c6e1d2c 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -18,6 +18,7 @@ [babashka.impl.clojure.main :as clojure-main :refer [demunge]] [babashka.impl.clojure.math :refer [math-namespace]] [babashka.impl.clojure.stacktrace :refer [stacktrace-namespace]] + [babashka.impl.clojure.tools.reader-types :refer [edn-namespace reader-types-namespace]] [babashka.impl.clojure.zip :refer [zip-namespace]] [babashka.impl.common :as common] [babashka.impl.core :as bbcore] @@ -369,6 +370,8 @@ Use bb run --help to show this help output. 'clojure.core.server clojure-core-server-namespace 'babashka.deps deps-namespace 'babashka.tasks tasks-namespace + 'clojure.tools.reader.edn edn-namespace + 'clojure.tools.reader.reader-types reader-types-namespace 'clojure.core.async async-namespace 'clojure.core.async.impl.protocols async-protocols-namespace 'rewrite-clj.node rewrite/node-namespace