A readable-snip<%> object is treated specially by the port
generated by open-input-text-editor: When a
readable-snip<%> object is encountered for the input stream,
its read-special method is called to
generate the read result for the snip, which is returned from the
port as a “special” value in the sense of
read-char-or-special.
Since read and read-syntax build on read-char-or-special, a snip can implement readable-snip<%> so that it produces a whole S-expression or some other kind of value when read is used on a stream containing the snip.
(send a-readable-snip read-special source line column position) → any/c source : any/c line : (or/c exact-nonnegative-integer? false/c) column : (or/c exact-nonnegative-integer? false/c) position : (or/c exact-nonnegative-integer? false/c)
The arguments are the same as the arguments to a procedure returned by
a custom input port’s read-in; see Custom Ports for
details. The result is also the same as the result from a
read-in-produced procedure.