Skip to content

Commit 5fd44e4

Browse files
author
Yannick Scherer
committed
fix reading of '\' character (closes #17).
1 parent 28fbc0f commit 5fd44e4

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/rewrite_clj/parser/token.clj

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,27 @@
33
[node :as node]
44
[reader :as r]]))
55

6+
(defn- read-to-boundary
7+
[reader]
8+
(r/read-until
9+
reader
10+
r/whitespace-or-boundary?))
11+
12+
(defn- read-to-char-boundary
13+
[reader]
14+
(let [c (r/next reader)]
15+
(str c
16+
(if (not= c \\)
17+
(read-to-boundary reader)
18+
""))))
19+
620
(defn parse-token
721
"Parse a single token."
822
[reader]
9-
(let [s (str
10-
(r/next reader)
11-
(r/read-until
12-
reader
13-
r/whitespace-or-boundary?))
23+
(let [first-char (r/next reader)
24+
s (->> (if (= first-char \\)
25+
(read-to-char-boundary reader)
26+
(read-to-boundary reader))
27+
(str first-char))
1428
v (r/string->edn s)]
1529
(node/token-node v s)))

0 commit comments

Comments
 (0)