Skip to content

Instantly share code, notes, and snippets.

@frenchy64
Created April 24, 2012 15:50
Show Gist options
  • Save frenchy64/2480917 to your computer and use it in GitHub Desktop.
Save frenchy64/2480917 to your computer and use it in GitHub Desktop.
(defn analysis->map
"Convert Java Object expr into nested maps"
; then-filter: (U {:op :def
; :env {:source Object
; :line Object}
; :var Var}
; {:op :if
; :env {:source Object
; :line Object}
; :test (analysis->map (.test expr))
; :then (analysis->map (.then expr))
; :else (analysis->map (.else expr))}
; ... }
; else-filter: ff
[expr]
(cond
(Def? expr) {:op :def
:env {:source (.source expr)
:line (.line expr)}
:var (.var expr)}
(If? expr) {:op :if
:env {:source (.source expr)
:line (.line expr)}
:test (analysis->map (.test expr))
:then (analysis->map (.then expr))
:else (analysis->map (.else expr))}
...
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment