   (and
     (= (.getChildCount exp) 4)
     (= "[" (.getText (.getChild exp 1)))
-    (= "]" (.getText (.getChild exp 3)))
+    (= "]" (.getText (.getChild exp 3)))))
 
 
 ;Contract parsing

    "__vector_access__"
    (visit-rule (.getChild rule 0))
    (hash (.getText (.getChild rule 2)))))
    

(defn visit-children [rule]
  (loop [result "" i 0 max (.getChildCount rule)]
    (if
      (= i max)
      result

(defn ternary? [exp]
  (and
    (= (.getChildCount exp) 5)
    (= "?" (.getText (.getChild exp 1)))
    (= ":" (.getText (.getChild exp 3)))))


(defn method-call? [exp]
  (or
    (and
      (= (.getChildCount exp) 3)
      (= "(" (.getText (.getChild exp 1)))
      (= ")" (.getText (.getChild exp 2))))
    (and
      (= (.getChildCount exp) 4)
      (= "(" (.getText (.getChild exp 1)))
      (= ")" (.getText (.getChild exp 3))))))


(defn member-access? [exp]
