3.4.2 Language Constructs for Concrete Types

Concrete types support structure assignments between types that are not identical. For example:

     reqV1: DRS_MSG_REPADD_V1
     reqV2: DRS_MSG_REPADD_V2
  
     reqV2 := reqV1

Such an assignment is shorthand for a field-by-field assignment for fields with the same name in the two structures. The preceding example is equivalent to the following:

  
     reqV1: DRS_MSG_REPADD_V1
     reqV2: DRS_MSG_REPADD_V2
  
     reqV2.pNC := reqV1.pNC
     reqV2.rtSchedule := reqV1.rtSchedule
     reqV2.ulOptions := reqV1.ulOptions

The ADR built-in function returns the address of a variable. The ADDRESS OF type constructor creates a pointer type. These are needed occasionally when dealing with concrete structures.

Pseudocode does not perform storage allocation for concrete response structures. An implementation is free to allocate any amount of memory sufficient to contain the structures within the response.