2017-09-05 118 views
3

我想要解決的最初任務是爲任意Clojure代碼構建AST。所以谷歌建議爲此使用https://github.com/clojure/tools.analyzer.jvm。我已經在簡單的Clojure表單(print x)上試過這個庫,並且此消息提示異常無法解析var:x。我曾經想過把AST構建成一個簡單的過程,沒有驗證,解析變量等副作用。同樣奇怪的是,沒有關於如何忽略這個可變分辨率步驟的乾淨文檔。如何讓clojure tools.analyzer忽略驗證步驟?

+1

我有一個選項發揮:驗證/無法解決的符號處理程序 - '(AJ /分析 「(打印x) (assoc(aj/empty-env) :passes-opts {:validate/unresolvable-symbol-handler (fn [abc](print a))}))'但沒有運氣 – hsestupin

回答

0

所以我想通了。該:validate/unresolvable-symbol-handler必須與:passes-opts傳遞的第三個參數(不environment當我試着內)

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