我想知道是否有可能读取任意 Clojure 代码,但又有点忽略 read-eval 功能。所以当 *read-eval* 为 false 时不是抛出错误,而是忽略它。类似于
(require '[clojure.tools.reader :as r])
(require '[clojure.tools.reader.reader-types :as t])
(binding [r/*ignore-read-eval* true]
(r/read (t/source-logging-push-back-reader "#=(+ 3 4)")))
=> (read-eval (+ 3 4))
我主要对元数据的列/行信息感兴趣,所以如果这是该库的范围之外,或者有更好的方法,请随意指出。也乐意做 pull request,如果需要。