File tree Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change 137
137
(throw-reader reader " Unexpected EOF while reading regular expression." )))))
138
138
139
139
(defn- parse-keyword
140
+ " Parse keyword. Produces `:token` result with an optional map containing a
141
+ `:namespaced?`field for keywords like `::xyz`."
140
142
[reader]
141
143
(ignore reader)
142
- (let [nxt (edn/read reader)]
143
- (cond (keyword? nxt) [:token nxt {:namespaced? true }]
144
- (symbol? nxt) [:token (keyword nxt)]
145
- (not (seq? nxt)) [:token (keyword (str nxt))]
146
- :else (throw-reader reader " Invalid token(s) following ':' prefix: " nxt))))
144
+ (if-let [c (r/peek-char reader)]
145
+ (if (= c \:)
146
+ [:token (edn/read reader) {:namespaced? true }]
147
+ (do
148
+ (r/unread reader \:)
149
+ [:token (edn/read reader)]))
150
+ (throw-reader reader " Unexpected EOF while reading keyword." )))
147
151
148
152
; ; ## Register Parsers
149
153
Original file line number Diff line number Diff line change 20
20
" 0.1" 0.1
21
21
" 1N" 1N
22
22
" :key" :key
23
+ " :1.5" :1.5
24
+ " :1.5.0" :1.5.0
23
25
" :ns/key" :ns/key
24
26
" sym" 'sym
25
27
" sym#" 'sym#
You can’t perform that action at this time.
0 commit comments