如何制作clojure tools.analyzer忽略验证步骤?

我想解决的初始任务是为任意Clojure代码构建AST.所以谷歌建议使用
https://github.com/clojure/tools.analyzer.jvm为此目的.我在简单的Clojure表单(print x)上尝试了这个库,这引发了异常,消息无法解析var:x.我曾经认为将AST构建为一个简单的过程,没有副作用,如验证,解析变量等等.同样奇怪的是,没有关于如何省略这个可变分辨率步骤的干净文档. 最佳答案 所以我明白了. :validate / unresolvable-symbol-handler必须传递:pass-opts作为第三个参数(不在我尝试的环境中)

(clojure.tools.analyzer.jvm/analyze '(print x) 
    (clojure.tools.analyzer.jvm/empty-env)
    {:passes-opts {:validate/unresolvable-symbol-handler
                                     (fn [a b c] nil)}})
点赞