|        | |||||
|  | |||||
| Referents: writing referents to a stream | |||||
| Prerequisite Concepts | Related Syntax | ||||
A stream is usually opened so that any attempt to write a referent to it is in error. OmniMark allows the programmer to specify whether or not referents are allowed for a stream and what is done with them, as follows:
referents-allowed allows referents to be written to a stream, and ensures that their values will be written to the stream. This is the default for the #main-output stream if there is any use of referents in an OmniMark program, and if there is no declare #main-output declaration in the program declaring otherwise.
referents-not-allowed is the same as the default for a stream. Any attempt to write a referent to a stream is a fatal error, whether that referent has a current value or not. This is the default for all streams except #main-output, #suppress, and #error.
referents-displayed specifies that when a referent is written to the stream, it is converted to a text representation that can be immediately evaluated. In other words, instead of writing the actual referent, a string expression describing that referent is written instead. The string expression written contains the referent name, its current value, and the name of the stream to which it is attached, if any. This is the default for #suppress and #error.
Note that there are two ways of writing a referent to a stream:
output referent or put referent to that stream.
All three referent-controlling stream modifiers can be applied to an open, reopen, or set stream action.
| Prerequisite Concepts Referents Streams: attachments | Related Syntax open put...referent referents-allowed referents-displayed referents-not-allowed reopen set set referent | 
| ---- |