Interface File parsing is case-insensitive, the file is interpreted as a sequence of tokens, where a token is
a sequence of characters which are either all alphanumeric (with .;:+-()_[]"’<>
being honorary
alphanumerics) or all non-alphanumeric (i.e. anything other than alphanumeric and ‘white’). Tokens
are thus terminated by anything of the opposite class or by a ‘white’ character. For this purpose,
‘white’ characters are space, tab, newline, comma or non-printable. Apart from their role as delimiters,
‘white’ characters are not significant.
The one exception to this is that, as a special case, a token may be a quoted string, i.e. a character
string consisting of a set of characters enclosed in single quotes. The first quote must be the first
character of the token and the token is terminated by the next isolated (i.e. not ”
) quote or the end of
line. Thus two consecutive quotes in a quoted string will be interpreted as a single quote to be
contained in the string.
Tokens may be one of:
ACCESS, ACTION, ASSOCIATION,
CANCEL,
DEFAULT,
ENDACTION, ENDCANCEL, ENDINTERFACE, ENDMESSAGE,
ENDMONOLITH, ENDOBEY, ENDPARAMETER, EPATH,
HELP, HELPKEY, HELPLIB,
IN, INTERFACE,
KEYWORD,
MENU, MENUCOORDS, MESSAGE, MONOLITH,
NEEDS,
OBEY,
PARAMETER, POSITION, PPATH, PROGRAM, PROMPT, PTYPE,
RANGE,
TEXT, TYPE,
VPATH
Fields (but not tokens) may be split across lines if necessary.
Everything following #
on a line (except within a character string) will be ignored. Thus #
can be used
to introduce comments.
The question of what is a valid parameter, action or keyword name is rather complicated. It is affected by Interface File parsing, the parameter system, HDS and the particular user interface in use. Appendix E gives the maximum lengths allowed and, to avoid problems, it is recommended that names begin with a letter and continue with true alphanumeric characters or underscore.
Parameter, action and keyword names are converted to upper case for storage. If they are displayed, in prompts or error messages etc., they will appear in upper case.
If an error is detected during the Interface File compilation phase, it is reported and, in most cases, the system is set into a state which is likely to enable it to continue. No further errors will be reported until a token acceptable in the new state is found. At the end of compilation a message giving the number of errors found will be reported. For some errors, where recovery is unlikely, compilation will stop immediately.
Unless compilation is aborted, a program reading the Interface File at run time, will go on and
attempt to run with the information it has found and compifl
will go on to write the .ifc
file which could be read by the program later. In both cases the information obtained by
the program will probably be incomplete and result in some unexpected defaults being
used.