Currently only works in Clojure, but by using [instaparse-cljs](https://github.com/lbradstreet/instaparse-cljs) it should be easy to make this work in Clojurescript too.