2024 Clojure状态调查!分享您的想法。

欢迎!请参见关于页面以了解更多关于此工作方式的信息。

0 投票
tools.reader

我在想是否有办法读取任意Clojure代码,但又想忽略读-评估功能。也就是说,当*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))

我主要对元数据的列/行信息感兴趣,所以如果这超出了库的范围或还有更好的方法,请随意告诉我。如果需要,我也愿意做拉取请求。

1 答案

+1 投票

我认为这不是一个好主意。有一些其他Clojure解析器可能更适合您的需求,例如https://github.com/borkdude/edamame

...