   (get-line-number [reader]
     "Returns the line number of the next character to be read from the stream")
   (get-column-number [reader]
-    "Returns the line number of the next character to be read from the stream"))
+    "Returns the line number of the next character to be read from the stream")
+  (get-file-name [reader]
+    "Returns the file name the reader is reading from, or nil"))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; reader deftypes

  ([s-or-rdr]
     (indexing-push-back-reader s-or-rdr 1))
  ([s-or-rdr buf-len]
     (IndexingPushbackReader.
      (if (string? s-or-rdr) (string-push-back-reader s-or-rdr buf-len) s-or-rdr) 0 1 true nil)))

(defn read-line
  "Reads a line from the reader or from *in* if no reader is specified"

   :get-column-number (compile-if >=clojure-1-5-alpha*?
                        (fn [rdr]
                          (.getColumnNumber ^LineNumberingPushbackReader rdr))
                        (fn [rdr] 0))
   :get-file-name (constantly nil)})

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Public API
