Skip to content

Instantly share code, notes, and snippets.

@farhaven
Created August 26, 2015 20:57
Show Gist options
  • Save farhaven/b132612d6b490a1b820e to your computer and use it in GitHub Desktop.
Save farhaven/b132612d6b490a1b820e to your computer and use it in GitHub Desktop.
(import re)
(import [hy.lex [tokenize]])
(defn extract-exprs [src]
(dict-comp
(, (.start x) (.end x))
(-> x
.group
(cut 1 -1)
tokenize)
[x (re.finditer r"\{.*?\}" src)]))
(defreader f [src]
(setv res (gensym))
`(do
(setv ~res ~src)
(for [(, pos e) (.items (extract-exprs ~src))]
(setv ~res (.join "" [(cut ~src 0 (first pos)) (str (eval (first e) (globals))) (cut ~src (second pos))])))
~res))
(print #f"foo {(+ 1 1)}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment