DEFINITION MODULE ProgramArgs; (* Access to program arguments *) IMPORT IOChan; TYPE ChanId = IOChan.ChanId; (* Initially, and after a reset operation on the channel, if there are no program arguments a call of IsArg returns FALSE, otherwise input is taken from the first argument to the program, as defined for the implementation. *) PROCEDURE ArgChan () : ChanId; (* The returned value identifies a channel for reading program arguments *) PROCEDURE IsArgPresent () : BOOLEAN; (* Tests if there is a current argument to read from. If not, read < IOChan.CurrentFlags() will be FALSE and attempting to read from the argument channel will cause the exception notAvailable to be raised. *) PROCEDURE NextArg; (* If there is another argument, causes subsequent input from the argument device to come from the start of the next argument. Otherwise there is no argument to read from - a call of IsArgPresent will return FALSE *) END ProgramArgs.