Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Common Data

1984 Version of ANSI Standard

1.3 Common Data Used by the MUMPS Diagrams

The following variables are common to the actions used by all of the MUMPS diagrams of Section 2.

  1. naked indicator. This is the n-tuple described in Section 3.2.3 of MDC/28. It is initially undefined and becomes undefined under certain circumstances discussed in Section 3.2.3.
  2. Devicelist. This is an n-tuple of device names with associated device parameters. It is added to whenever a new device is successfully secured with the OPEN command. It is updated when the device parameters of a previously owned device are changed with the OPEN, CLOSE, or USE commands.
  3. Openlist. This is an n-tuple of device names which are created by the OPEN command and can be removed with the CLOSE command.
  4. Devnam. This is the device name from an argument of the OPEN, CLOSE, or USE command. It is used by deviceparameters to get default values for omitted parameters.
  5. Argind. This is the argument-level indirection flag, It is initially False, and is set True if argument-level indirection is encountered. It is saved each time argument-level indirection is detected.
  6. Nameind. This is the name-atom (sub-argument) level indirection flag. It is initially False, and is set True if name-atom indirection is encountered. It is saved each time name-atom indirection is detected.
  7. Indsw. This is the command-level indirection counter. It is initially zero, is incremented each time command-level indirection is detected, and is decremented when an eor is encountered or a QUIT is executed under command-level indirection.
  8. Forsw. This is the FOR command counter. It is initially zero, is incremented each time a FOR command is encountered, and decremented when a FOR has exhausted its FOR list. It is also decremented appropriately by the QUIT and GOTO commands.
  9. Dosw. This is the DO command counter. It is initially zero, is incremented each time a DO command is encountered, and decremented when a DO is completed, either from a QUIT or an eor.
  10. Ifswitch. This is the name used in the diagrams for the special variable $TEST. It is initially 0 (False).
  11. Linact. This has the value True or False. If False, all semantic actions are inhibited for all commands until an eol is detected (see the diagrams for the IF and ELSE commands). Linact is set True prior to executing a new line of a routine.
  12. Comact. This has the value True or False. If False, all semantic actions are inhibited for the duration of the command (see the diagram for postcond). Comact is set True prior to executing a new command.
  13. Present routine name. This defines the scope of label values. It is saved when a DO or XECUTE command is executed for the return.
  14. Window position. This is a pointer which gives the current character position being scanned. It is saved whenever a DO or FOR command is executed, and when any indirection is encountered.
  15. Result. This is used to pass values among various diagrams.
  16. Timeout. This is used to set up a time limit for the following: (1) timed-length reads in the READ command, (2) securing device ownership in the OPEN command, and (3) interlocking software resources in the LOCK command. It is initially 0.
  17. Setsw. This is a flag which is always False unless a SET command is being executed. It is used in the glvn diagram to determine whether or not the naked indicator is immediately affected by a global reference.
  18. Indcom. This is a communications flag used only by indarg and indnam. It is always False unless name level indirection is detected in indarg.

Additionally, a Stack is used in the diagrams to explicitly show the mechanism by which indirection is handled and the transfer of control commands are executed. It is a simple push-down stack operating on a last-pushed, first-pulled basis. Items pushed onto the Stack are listed in the semantic actions following a PUT directive. Items pulled off the Stack are listed in the semantic actions following a GET directive. A RESET directive is used in a few semantic actions to indicate items whose values are recovered from the Stack without actually removing them from the Stack.

Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

This page most recently updated on 28-Nov-2011, 21:03:46.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)