 
 (defn read-string
   [reader _]
-  (loop [buffer (gsb/StringBuffer.)
+  (loop [buffer (gstring/StringBuffer.)
          ch (read-char reader)]
     (cond
      (nil? ch) (throw "EOF while reading string")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defn macro-terminating? [ch]
  (and (not= ch "#") (not= ch "\'") (contains? macros ch)))

(defn read-token
  [rdr initch]
  (loop [sb (gsb/StringBuffer. initch)
         ch (read-char rdr)]
    (if (or (nil? ch)
            (whitespace? ch)
            (macro-terminating? ch))
      (do (unread rdr ch) (.toString gsb))
      (recur (do (.append sb ch) sb) (read-char rdr)))))

(defn- skip-line


(defn read-number
  [reader initch]
  (loop [buffer (gstring/StringBuffer. initch)
         ch (read-char reader)]
    (if (or (nil? ch) (whitespace? ch) (contains? macros ch))
      (do
