
  TYPE
    nat$translation_attributes = array [1 .. * ] of nat$translation_attribute,

    nat$translation_attribute_kind = (nac$translation_title,
          nac$translation_priority, nac$translation_data,
          nac$translation_protocol),

    nat$translation_attribute = record
{
{ The value of the SELECTOR field must be initialized to identify the attribute
{ whose value is to be returned.  The attribute value is returned in the
{ corresponding variant field or in a variable pointed to by the variant field.
{
{ The value of any input field of pointer type must point to a program variable
{ where the attribute value is to be returned.  If the pointer is an adaptable
{ pointer, then the associated output field returns an adaptable type fixer
{ which specifies the actual size of the attribute value.  If the size of the
{ attribute value exceeds the size of the specified program variable, then an
{ abnormal status is returned.
{
      case selector: {input} nat$translation_attribute_kind of
      = nac$translation_title =
        title: {input} ^nat$title,
        title_length: nat$title_length,
      = nac$translation_priority =
        priority: nat$directory_priority,
      = nac$translation_data =
        data: {input} ^nat$directory_data,
        data_length: nat$directory_data_length,
      = nac$translation_protocol =
        protocol: nat$protocol,
      casend,
    recend;

*copyc nat$title
*copyc nat$directory_priority
*copyc nat$directory_data
*copyc nat$protocol
