
{ PROCEDURE def_source_name_switch (
{   name, n : any of
{       name
{       string 1..31
{     anyend = $required
{   next_hop_name, nhn : any of
{       name
{       string 1..31
{     anyend = $required
{   application_qualifier, application_qualifiers, aq : list of key
{       NTFI
{       NTFS
{       QTFI
{       QTFS
{     keyend = $required
{   destination_group_qualifier, dgq : name = $optional
{   status)

?? PUSH (LISTEXT := ON) ??
?? FMT (FORMAT := OFF) ??

  VAR
    pdt: [STATIC, READ, cls$declaration_section] record
      header: clt$pdt_header,
      names: array [1 .. 10] of clt$pdt_parameter_name,
      parameters: array [1 .. 5] of clt$pdt_parameter,
      type1: record
        header: clt$type_specification_header,
        qualifier: clt$union_type_qualifier,
        type_size_1: clt$type_specification_size,
        element_type_spec_1: record
          header: clt$type_specification_header,
          qualifier: clt$name_type_qualifier,
        recend,
        type_size_2: clt$type_specification_size,
        element_type_spec_2: record
          header: clt$type_specification_header,
          qualifier: clt$string_type_qualifier,
        recend,
      recend,
      type2: record
        header: clt$type_specification_header,
        qualifier: clt$union_type_qualifier,
        type_size_1: clt$type_specification_size,
        element_type_spec_1: record
          header: clt$type_specification_header,
          qualifier: clt$name_type_qualifier,
        recend,
        type_size_2: clt$type_specification_size,
        element_type_spec_2: record
          header: clt$type_specification_header,
          qualifier: clt$string_type_qualifier,
        recend,
      recend,
      type3: record
        header: clt$type_specification_header,
        qualifier: clt$list_type_qualifier,
        element_type_spec: record
          header: clt$type_specification_header,
          qualifier: clt$keyword_type_qualifier,
          keyword_specs: array [1 .. 4] of clt$keyword_specification,
        recend,
      recend,
      type4: record
        header: clt$type_specification_header,
        qualifier: clt$name_type_qualifier,
      recend,
      type5: record
        header: clt$type_specification_header,
      recend,
    recend := [
    [1,
    [89, 2, 16, 13, 24, 14, 393],
    clc$command, 10, 5, 3, 0, 0, 0, 5, ''], [
    ['APPLICATION_QUALIFIER          ',clc$nominal_entry, 3],
    ['APPLICATION_QUALIFIERS         ',clc$alias_entry, 3],
    ['AQ                             ',clc$abbreviation_entry, 3],
    ['DESTINATION_GROUP_QUALIFIER    ',clc$nominal_entry, 4],
    ['DGQ                            ',clc$abbreviation_entry, 4],
    ['N                              ',clc$abbreviation_entry, 1],
    ['NAME                           ',clc$nominal_entry, 1],
    ['NEXT_HOP_NAME                  ',clc$nominal_entry, 2],
    ['NHN                            ',clc$abbreviation_entry, 2],
    ['STATUS                         ',clc$nominal_entry, 5]],
    [
{ PARAMETER 1
    [7, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 33, clc$required_parameter, 0, 0],
{ PARAMETER 2
    [8, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 33, clc$required_parameter, 0, 0],
{ PARAMETER 3
    [1, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 171, clc$required_parameter, 0, 0],
{ PARAMETER 4
    [4, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name, clc$specify_positionally],
    clc$pass_by_value, clc$immediate_evaluation,
  clc$standard_parameter_checking, 5, clc$optional_parameter, 0, 0],
{ PARAMETER 5
    [10, clc$normal_usage_entry, clc$non_secure_parameter,
    $clt$parameter_spec_methods[clc$specify_by_name],
    clc$pass_by_reference, clc$immediate_evaluation,
  clc$standard_parameter_checking, 3, clc$optional_parameter, 0, 0]],
{ PARAMETER 1
    [[1, 0, clc$union_type], [[clc$name_type, clc$string_type],
    FALSE, 2],
    5, [[1, 0, clc$name_type], [1, osc$max_name_size]],
    8, [[1, 0, clc$string_type], [1, 31, FALSE]]
    ],
{ PARAMETER 2
    [[1, 0, clc$union_type], [[clc$name_type, clc$string_type],
    FALSE, 2],
    5, [[1, 0, clc$name_type], [1, osc$max_name_size]],
    8, [[1, 0, clc$string_type], [1, 31, FALSE]]
    ],
{ PARAMETER 3
    [[1, 0, clc$list_type], [155, 1, clc$max_list_size, FALSE],
      [[1, 0, clc$keyword_type], [4], [
      ['NTFI                           ', clc$nominal_entry,
  clc$normal_usage_entry, 1],
      ['NTFS                           ', clc$nominal_entry,
  clc$normal_usage_entry, 2],
      ['QTFI                           ', clc$nominal_entry,
  clc$normal_usage_entry, 3],
      ['QTFS                           ', clc$nominal_entry,
  clc$normal_usage_entry, 4]]
      ]
    ],
{ PARAMETER 4
    [[1, 0, clc$name_type], [1, osc$max_name_size]],
{ PARAMETER 5
    [[1, 0, clc$status_type]]];

?? FMT (FORMAT := ON) ??
?? POP ??

    CONST
      p$name = 1,
      p$next_hop_name = 2,
      p$application_qualifier = 3,
      p$destination_group_qualifier = 4,
      p$status = 5;

    VAR
      pvt: array [1 .. 5] of clt$parameter_value;
