|
47 | 47 | (:ratio-marker #b01000000)
|
48 | 48 | ((:short-float-exponent-marker :single-float-exponent-marker
|
49 | 49 | :double-float-exponent-marker :long-float-exponent-marker
|
50 |
| - :float-exponent-marker) |
| 50 | + :float-exponent-marker :custom-float-exponent-marker) |
51 | 51 | #b10000000)))
|
52 | 52 |
|
53 | 53 | (declaim (type (simple-array (unsigned-byte 8) 1) +constituent-traits+))
|
|
77 | 77 | (#\> . :alphabetic) ("Oo" . :alphadigit)
|
78 | 78 | (#\? . :alphabetic) ("Pp" . :alphadigit)
|
79 | 79 | (#\@ . :alphabetic) ("Qq" . :alphadigit)
|
80 |
| - (#\[ . :alphabetic) ("Rr" . :alphadigit) |
| 80 | + (#\[ . :alphabetic) ("Rr" . (:alphadigit :custom-float-exponent-marker)) |
81 | 81 | (#\\ . :alphabetic) ("Ss" . (:alphadigit :short-float-exponent-marker))
|
82 | 82 | (#\] . :alphabetic) ("Tt" . :alphadigit)
|
83 | 83 | (#\^ . :alphabetic) ("Uu" . :alphadigit)
|
|
128 | 128 | ;; *READ-DEFAULT-FLOAT-FORMAT* may be some other type
|
129 | 129 | ;; specifier which the implementation chooses to allow.
|
130 | 130 | (t
|
131 |
| - (if (subtypep default-format 'float) |
| 131 | + (if (subtypep default-format 'float) ; TODO maybe use (valid-state-value-p client '*read-default-float-format* default-format)? or is the protocol specified such that values returned by (state-value client '*read-default-float-format*) are by definition valid? |
132 | 132 | default-format
|
133 | 133 | (values nil default-format))))))
|
134 | 134 | ((#\f #\F) 'single-float)
|
135 | 135 | ((#\s #\S) 'short-float)
|
136 | 136 | ((#\d #\D) 'double-float)
|
137 |
| - ((#\l #\L) 'long-float))) |
| 137 | + ((#\l #\L) 'long-float) |
| 138 | + ((#\r #\R) :custom))) |
138 | 139 |
|
139 | 140 | (defmacro with-accumulators ((&rest specs) &body body)
|
140 | 141 | (loop for (name base) in specs
|
|
217 | 218 | :report 'use-replacement-float-format))
|
218 | 219 | (setf type 'single-float))
|
219 | 220 | (if exponentp
|
220 |
| - (make-literal client *float-kind* |
| 221 | + (make-literal client float-kind |
221 | 222 | :type type
|
222 | 223 | :sign sign
|
223 | 224 | :decimal-mantissa (decimal-mantissa)
|
224 | 225 | :exponent-sign exponent-sign
|
225 | 226 | :exponent (exponent)
|
226 | 227 | :decimal-exponent decimal-exponent)
|
227 |
| - (make-literal client *float-kind* |
| 228 | + (make-literal client float-kind |
228 | 229 | :type type
|
229 | 230 | :sign sign
|
230 | 231 | :decimal-mantissa (decimal-mantissa)
|
|
0 commit comments