                shouldVisitStatements   false
                shouldVisitTypeIds      true})))
 
-(defn file-ast
+(defn visit-ast
   [filename]
-  (let [visitor (ast-visitor)]
-    (.accept (translation-unit filename) visitor)))
+  (let [visitor (ast-visitor-proxy)
+        node (translation-unit filename)]
+    (.accept node visitor)
+    ;;(.startVisit visitor node)
+    ))
 
 (defn print-tree [node index]
   (let [children (.getChildren node)

  (prn (file-content filename))
  (for [incld (file-includes filename)] (printf "include - %s\n" (.getName incld)))

  (file-ast filename)
  (ast-visitor)
  (print-tree (translation-unit filename) 1)
  )

  [filename]
  (FileContent/createForExternalFileLocation filename))

;; (defn compilation-unit [filename]
;;   (let [parser (ASTParser/newParser AST/JLS3)
;;         source (file-content filename)]
;;     (.setSource parser source)
;;     (.setKind parser ASTParser/K_COMPILATION_UNIT)
;;     (.createAST parser null)))

(defn translation-unit [filename]
  (let [definedSymbols {}
        includePaths (make-array String 0)
        info (new ScannerInfo definedSymbols includePaths)
