2024 年 Clojure 状态调查!中分享你的想法。

欢迎!请查看关于页面以了解有关此工作更多详细信息。

0 投票
tools.reader

我想知道是否有可能读取任意 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,如果需要。

1 个答案

+1 投票

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

...