Standard statements
The standard statements (see "SDF-A statements") are not specific to SDF-A. They are offered system-globally for user programs that read their statements via SDF. These statements are not to be implemented in the user program. Information on an END or STEP statement that has been read in is passed to the user program via register 15 (old interface) or the return code in the standard header (new interface).
Operand position
In the transfer area into which SDF writes the analyzed statement, operands can be identified only on the basis of their position in the operand array (see section “Format of thestandardized transfer area”). This position can be defined when defining the operands (see ADD-OPERAND..., RESULT-OPERAND-NAME=*POS(...)).
Structure
When defining a value that introduces a structure (see ADD-VALUE ..., STRUCTURE=*YES(...,FORM...)) and when defining the operands within the structure (see ADD-OPERAND ...,RESULT-OPERAND-LEVEL=), the user specifies whether the structure is preserved in the transfer area or is linearized. If the default values of the statements ADD-VALUE and ADD-OPERAND are used, the structure is linearized. ADD-VALUE ...,STRUCTURE=*YES(SIZE=...,...),... is used to determine whether a structure will be integrated in the higher-ranking operand form at the MINIMUM and MEDIUM level of guided dialog or whether SDF will display a separate subform for this structure. By default, the structure is so defined that SDF integrates it in the higher-ranking form.
Passing an operand
An operand needed, for example, only for structuring the statement syntax and not for the implementation may be omitted when operands are passed to the program (see ADD-OPERAND ...,PRESENCE=*EXTERNAL-ONLY).
On the other hand, an operand for which there is only one single permissible value may be so defined that, while it does get passed to the program, it does not appear in the statement syntax (see ADD-OPERAND ..., PRESENCE=*INTERNAL-ONLY). If the operand constitutes the only operand in a structure, then the structure will also be invisible in the statement syntax.
Defining an operand value
When an operand value is defined, the user must specify how SDF is to write the value into the transfer area. If the default values of the ADD-VALUE statement are used, SDF will write any operand value input into the transfer area unchanged.
ADD-VALUE...,VALUE=<c-string>(...,OUTPUT=...,...) can be used to direct SDF to convert defined single values to different values before passing them on to the program or to suppress transfer of the values. For example, it can be specified that SDF passes on the value ’ISD’ to the program instead of the value ’YES’ defined for the input (see example 1 on "Example 1: Assembly command").
The default value of an operand defined with ADD-OPERAND ..., OVERWRITE-POSSIBLE=*YES can be replaced by the user program with another value (internal default) such that, in guided dialog, the internal default value is visible in the operand form (see the DEFAULT operand for the CMDCST, CMDRST and CMDTST macros).
An entered operand value can be replaced by the user program with another value if the value to be replaced has been defined using ADD-VALUE ..., VALUE=<c-string> (...,OVERWRITE-POSSIBLE=*YES),...) The following applies:
The internal default value must be covered by an operand value defined with ADD-VALUE.
Not more than one internal default value can be defined per operand. However, it is possible to assign the same internal default value to several input alternatives of an operand.
If an internal default value is assigned to an input alternative, and if another input alternative has a structure attached to it which is also to have an internal default value, this requires that the structure be linearized in the transfer area (and thus also in the conversion description for internal default values).
Defining an internal default value in alternative structures is possible only if the structures are linearized in the transfer area (one of the alternative structures may be nonlinearized).
If the operands to be defaulted belong to a structure whose introductory value is defined using LIST-ALLOWED=YES (see ADD-VALUE), the following may occur: The conversion description contains several list items to which a structure with operands to be defaulted is attached. At the same time the user also enters several list items to which a structure with operands to be defaulted is attached. SDF attempts first to allocate the structures entered by the user to those specified in the conversion description via the value that introduces the structure. If this value does not allow an unambiguous allocation because none of the values entered corresponds to any of those in the conversion description or because the user has entered the corresponding value several times, the allocation is made via the position in the list of the value introducing the structure.
Normally, the default values of the ADD statements can be used extensively when defining a statement. However, these statements also provide a number of means of tailoring a statement definition to the user’s individual requirements. Further information on this may be found in the descriptions of the ADD statements.