From 509f34a6b9bd721ccdbdce7be3ef20d0bafb3e7d Mon Sep 17 00:00:00 2001 From: Yannick Scherer Date: Wed, 4 Feb 2015 19:50:41 +0100 Subject: [PATCH] fix handling of symbols with trailing quote. (closes #24) --- src/rewrite_clj/parser/token.clj | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/rewrite_clj/parser/token.clj b/src/rewrite_clj/parser/token.clj index 27b82f35..d787629e 100644 --- a/src/rewrite_clj/parser/token.clj +++ b/src/rewrite_clj/parser/token.clj @@ -17,6 +17,17 @@ (read-to-boundary reader) "")))) +(defn- symbol-node + "Symbols allow for trailing quotes that have to be handled + explicitly." + [reader value value-string] + (if (= (r/peek reader) \') + (let [s (str value-string (r/next reader))] + (node/token-node + (r/string->edn s) + s)) + (node/token-node value value-string))) + (defn parse-token "Parse a single token." [reader] @@ -26,4 +37,6 @@ (read-to-boundary reader)) (str first-char)) v (r/string->edn s)] - (node/token-node v s))) + (if (symbol? v) + (symbol-node reader v s) + (node/token-node v s))))