A Channel implements low-level input/output for the AST library. Writing an ObjectObject to a Channel (using astWriteastWrite) will generate a textual representation of that Object, and reading from a Channel (using astReadastRead) will create a new Object from its textual representation.
Normally, when you use a Channel, you should provide "source" and "sink" functions which connect it to an external data store by reading and writing the resulting text. By default, however, a Channel will read from standard input and write to standard output. Alternatively, a Channel can be told to read or write from specific text files using the SinkFileSinkFile and SourceFileSourceFile attributes, in which case no sink or source function need be supplied.
If "source" is NULL and no value has been set for the SourceFile attribute, the Channel will read from standard input instead.
If "sink" is NULL, and no value has been set for the SinkFile attribute, the Channel will write to standard output instead.