Commands, Menus, and Numbers Commands, Menus, and Numbers

Each input record can contain three types of data. The first word on the record is called the command or description name and it conveys to the program the type of data being communicated with this record. The format of all records does not require that the data be in any particular column, but instead, the various data is separated by a comma, or by as many blanks as desired. The remainder of the information on the record is of two types: DATA or -OPTIONS. DATA must be in the order specified, while -OPTIONS may be in any order. So that the program can distinguish between data and options, all options begin with a -. If the last word of a record image is a \, then the following record is a continuation of the current record. Also, the option lists consist of data which may or may not be needed. As many pieces of this data as required can be specified in any order, and usually consist of an alphanumeric "option keyword" followed by the corresponding alphanumeric or numeric data. Alphanumeric names may consist of up to eight characters, and numeric values may contain up to twenty characters. The general form of a command line is:

     COMMAND, DAT1, DAT2, ... -OPTION1 OD11, OD12, ....., \
     -OPTIONn ODn1, ODn2, ......

While the options can be input in any order, sometimes different results may be obtained with a different order of the options. This will occur when the data used by one option is altered by another one. MOSES parses options from left to right, so options which change data that another option will use should be placed first.

When it comes to the actual task of defining a number to MOSES one can accomplish the task in many ways. The flexibility is due to the fact that the command interpreter will perform a conversion of numerical data in accordance with FORTRAN conventions for arithmetic. In other words, a number can be defined as a series of numbers combined by primitive numerical operations.

As an example, consider the number 64. The following representations would all yield the same value:

     61+3
     8**2
     (6+2)*8
     ((35-1)-2)*4/2

While this ability may appear to be of limited utility, it proves to be quite powerful when combined with the more advanced language features.

To simplify the operation and documentation of the program, MOSES employs the concept of menus. A menu, as used here, is an available list of commands which can currently be executed. If an attempt is made to execute a command which is not contained in the current list, a message to that effect will be reported, and a prompt for another command will be made. There are several menus in MOSES. When an END command is issued, MOSES will return to the next higher menu. To terminate execution of MOSES one simply inputs an &FINISH command, which is a valid command in any menu. In a window environment, the key Alt F can be used instead of typing in &FINISH.

There are several commands within MOSES which can be executed regardless of the current menu. These commands are called Internal Commands. In general, they control the operation of the program, set basic variables which effect the analysis, and can be distinguished by the fact that they all begin with the character &. An example is the &FINISH command, which is valid regardless of the current menu. The primary importance of an internal command is that it can be issued from either the INPUT or COMMAND channel, therefore, it can be set once in the INPUT channel, and later reset interactively.

MOSES uses minimum uniqueness to identify a command in the current list. By this, we mean that only enough of the command need be specified so that the program can uniquely define the intended command. If the command issued is not unique, all valid commands which match the one issued will be printed, and a prompt for a unique response will be given. If one issues a null command (a simple carriage return) MOSES will print a list of all the currently valid commands. For Internal Commands, minimum uniqueness in not employed. Instead, one need only specify the first five characters of the command name. Also, notice that MOSES uses minimum uniqueness for commands, but not for modeling language commands. In other words, commands which enter through the INPUT channel must be specified completely with the exception of internal commands.

MOSES has the notion of an escape character. This character is used to "remove" any special meaning associated with the following character. Here, the escape character is the \. An example of the use of this character was shown previously with the continuation of a command line. In this context, the character is used to escape the end of the line. If one actually wishes to input a \, he must use \\. This is particularly important on a PC when this character is used in defining directory paths.

In addition to the special characters discussed above, MOSES employs several others. A full list of the special characters are: