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