While writing a new reader I used clojure.lang.LispReader
code as the reference and I discovered there are two type of spaces:
- pure whitespace (anything that matches
#"[ \t\n\r,]+"
), - unvalued stuff (any sequence of: whitespace, comments, discard (
#_
), elided conditionals).
This leads to some quirks. For example in namespaced map syntax is:
namespaced-map:
"#:" (?! whitespace) unvalued-stuff symbol whitespace map