These functions tell the input manager to take input from different streams.
When that input stream reaches its end, input is taken from the previous
stream.
The input can be regarded as a stream of symbols.
In the current situation, there are three types of streams; a file-stream,
a token-stream, a string-stream.
These streams are defined and implemented respectively in the modules
file_in, token_in, str_in.
In a file_stream and a string_stream the symbols are characters,
in a token_stream they are tokens.
A new stream implementation X must define the following functions:
.TS
l l.
int X_next_ch()
int X_current_ch()
void X_pushback_ch(int l)
X new_X_stream()
void delete_X_stream(X x)
.TE
file_input() tells the input manager, that input is read from
the file named file_name.
It tries to open the file. If the file can not be opened,
FALSE is returned and the call is ignored.
If the file can be opened, it will become the current input stream
and TRUE is returned.
string_input() makes str the current input stream.
token_input() makes {tokens, values} the current input stream.
For an explanation of a token-stream, see the module token_in.
The name parameter is the name of the token_input.
It tells where the token input comes from.