Como definimos uma gramática para código clojure usando instaparse?

Eu sou um novato para analisar e gostaria de analisar algum código clojure. Espero que alguém possa fornecer um exemplo de como o código de clojure pode ser analisado usando instaparse. Eu só preciso fazer números, símbolos, palavras-chave, sexps, vetores e espaços em branco.

Alguns exemplos que desejo analisar:

(+ 1 2 
   (+ 3 4))

{:hello "there"
 :look '(i am 
           indented)}

questionAnswers(1)

yourAnswerToTheQuestion