|
|
|
|
|
|
|
☜ | Common Data1984 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.
- 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.
- 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.
- Openlist. This is an n-tuple of device names which are
created by the OPEN command and can be removed with the CLOSE
command.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Ifswitch. This is the name used in the diagrams for the
special variable $TEST. It is initially 0 (False).
- 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.
- 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.
- Present routine name. This defines the scope of label
values. It is saved when a DO or XECUTE command is executed for
the return.
- 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.
- Result. This is used to pass values among various
diagrams.
- 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.
- 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.
- 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.
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)