Attribute Grammars in Clojure