The following means exist for describing temporal and logical interdependencies, i.e. the relationship between the members:
Delta tree
A delta tree is a set of members which is formed by the relationship “member-is-successorof”.
Naming conventions
Within a branch of a delta tree the members have the same name and type. They are differentiated only by their version.
Reference entries
Reference entries are entries in the secondary directory of the library. They occur when the user generates reference records (record type 163) in the form <secondary-name> <secondary-attribute> during writing of a member. The layout of record type 163 is described in the manual “LMS Subroutine Interface” [1 (Related publications)].
The reference entries serve to document the relationship “A particular <secondary-name> and <secondary-attribute> occurs in the member”. Type-based sorting of the reference entries permits the query:
“In which member of type TYPE does a particular reference entry occur?”.
This is implemented by means of the following LMS statement:
//SHOW-ELEMENT-ATTRIBUTES *LIB(*STD,*,TYPE=...,SECONDARY-NAME=..,
SECONDARY-ATTRIBUTE=...,)
This relationship is used with modules (type R or L) as the basis for the autolink function (see [5 (Related publications)]); reference entries are for example <name><CSECT> and <name><ENTRY>.
PLAM guarantees the consistency of the relationship; the user is responsible for the generation and integrity of the relationships.
Dependencies on member type
LMS has statements
that are independent of the member type (no relation to the member contents) and
others that are dependent on the member type.
In the latter case, only a few standard types are permitted and must be used to derive any user-defined types desired. Members of other types cannot be processed.
The following table shows which member types can be used in the various LMS statements and what type checks LMS performs during the LMS run:
Only if the conditions specified in the Type check column are true, will the relevant statement be executed.
| Member type | |||
Source | Target | Type check | ||
SHOW-ELEMENT SHOW-ELEMENT- DELETE-ELEMENT MODIFY-ELEMENT- FIND-ELEMENT | alphanum-name1..8 | - | ||
MODIFY-ELEMENT- COPY-ELEMENT PROVIDE-ELEMENT RETURN-ELEMENT | alphanum-name1..8 | alphanum-name1..8 | BT(q)=:=BT(z)) | |
COMPARE-ELEMENT | alphanum-name1..8 | alphanum-name1..8 | BT(p)=:=BT(s) | |
EDIT-ELEMENT | S, M, P, D, J, X, | S, M, P, D, J, X, | ||
MODIFY-ELEMENT | R, C, L | R, C, L | BT(q)=:=BT(z) | |
S, M, P, D, J, X, | S, M, P, D, J, X, | BT(q)=:=BT(z) | ||
MODIFY-LOGGING- | - | S, M, P, D, J, X, | ||
ADD-ELEMENT | „text“ | (I)SAM-f | S, M, P, D, J, X, | |
„blocks“ | PAM-file | X derived type | ||
„module“ | file,*OMF | R | ||
„phase“ | PAM-file | C | ||
“link and load modul“ | PAM LLM | L | ||
EXTRACT-ELEMENT | S, M, P, D, J, X, | (I)SAM-file | ||
X derived type | PAM-file | |||
R | (I)SAM-file | |||
C | PAM-file | |||
L | PAM LLM |
BT BT(q)/BT(z) BT(p)/BT(s) Standardtyp Derived type | Base type (name of type of the highest node) Base type of source/ target member Base type of the primary or secondary member One character in length or with $ or SYS at the beginning Derived from the counted types; |
=:= | The types to the left and right of this sign are either identical or both are text types. |