Merge pull request #154 from MichaelBlume/handle-args
handle (ignore) extra args from LispReader
This commit is contained in:
commit
5b12600546
1 changed files with 33 additions and 27 deletions
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue