handle (ignore) extra args from LispReader

with the new reader conditionals patch, readers are passed additional
arguments.

Ignore them.

Fixes #153
This commit is contained in:
Mike Blume 2015-05-03 12:23:10 -07:00
parent a34b1c6606
commit 1abd12a9e8

View file

@ -74,24 +74,27 @@
(directive)) (directive))
(not directive))) (not directive)))
(defn read-comment [reader semicolon] (defn read-comment
(let [sb (StringBuilder.)] ([reader semicolon]
(.append sb semicolon) (let [sb (StringBuilder.)]
(loop [c (.read reader)] (.append sb semicolon)
(let [ch (char c)] (loop [c (.read reader)]
(if (or (= ch \newline) (let [ch (char c)]
(= ch \return)) (if (or (= ch \newline)
(let [line (dec (.getLineNumber reader)) (= ch \return))
text (.toString sb) (let [line (dec (.getLineNumber reader))
include? (process-directive! text)] text (.toString sb)
(when (and include? (comments-enabled?)) include? (process-directive! text)]
(swap! *comments* conj {:form (Comment. text) (when (and include? (comments-enabled?))
:start line (swap! *comments* conj {:form (Comment. text)
:end line})) :start line
reader) :end line}))
(do reader)
(.append sb (Character/toString ch)) (do
(recur (.read reader)))))))) (.append sb (Character/toString ch))
(recur (.read reader))))))))
([reader semicolon opts pending]
(read-comment reader semicolon)))
(defn set-comment-reader [reader] (defn set-comment-reader [reader]
(aset (get-field clojure.lang.LispReader :macros nil) (aset (get-field clojure.lang.LispReader :macros nil)
@ -116,15 +119,18 @@
[String] [String]
nil s)) nil s))
(defn read-keyword [reader colon] (defn read-keyword
(let [c (.read reader)] ([reader colon]
(if (= (int \:) c) (let [c (.read reader)]
(-> (read-token reader (char c)) (if (= (int \:) c)
match-symbol (-> (read-token reader (char c))
DoubleColonKeyword.) match-symbol
(do (.unread reader c) DoubleColonKeyword.)
(-> (read-token reader colon) (do (.unread reader c)
match-symbol))))) (-> (read-token reader colon)
match-symbol)))))
([reader colon opts pending]
(read-keyword reader colon)))
(defn set-keyword-reader [reader] (defn set-keyword-reader [reader]
(aset (get-field clojure.lang.LispReader :macros nil) (aset (get-field clojure.lang.LispReader :macros nil)