1 ;; Testing read of numbers
12 ;; Testing read of symbols
24 ;; Testing non-numbers starting with a dash.
32 ;; Testing read of lists
56 ;; Test commas as whitespace
64 ;; -------- Deferrable Functionality --------
66 ;; Testing read of nil/true/false
74 ;; Testing read of strings
80 ;=>"abc (with parens)"
88 ;; Testing reader errors
90 ;/.*(EOF|end of input|unbalanced).*
92 ;/.*(EOF|end of input|unbalanced).*
94 ;;; These should throw some error with no return value
96 ;/.*(EOF|end of input|unbalanced).*
98 ;/.*(EOF|end of input|unbalanced).*
100 ;/.*(EOF|end of input|unbalanced).*
102 ;; Testing read of quoting
110 ;=>(quasiquote (1 2 3))
116 ;=>(quasiquote (1 (unquote a) 3))
118 ;=>(splice-unquote (1 2 3))
123 ;; -------- Optional Functionality --------
131 ;; Testing read of vectors
147 ;; Testing read of hash maps
157 ;=>{"a" {"b" {"c" 3}}}
158 { "a" {"b" { "cde" 3 } }}
159 ;=>{"a" {"b" {"cde" 3}}}
160 ;;; The regexp sorcery here ensures that each key goes with the correct
161 ;;; value and that each key appears only once.
162 {"a1" 1 "a2" 2 "a3" 3}
163 ;/{"a([1-3])" \1 "a(?!\1)([1-3])" \2 "a(?!\1)(?!\2)([1-3])" \3}
164 { :a {:b { :cde 3 } }}
165 ;=>{:a {:b {:cde 3}}}
169 ;; Testing read of comments
170 ;; whole line comment (not an exception)
171 1 ; comment after expression
173 1; comment after expression
176 ;; Testing read of ^/metadata
178 ;=>(with-meta [1 2 3] {"a" 1})
181 ;; Testing read of @/deref