
  TYPE
    clt$block_kind = (clc$block_block, clc$case_block, clc$command_block,
          clc$for_block, clc$formatter_job_block, clc$formatter_log_block,
          clc$formatter_pipe_block, clc$formatter_task_block,
          clc$formatter_utility_block, clc$if_block, clc$input_block,
          clc$loop_block, clc$proc_block, clc$repeat_block,
          clc$sub_parameters_block, clc$task_block, clc$utility_block,
          clc$var_block, clc$when_block, clc$while_block);

  TYPE
    clt$block_kinds = set of clt$block_kind;

  TYPE
    clt$f_block = bound record
      previous_block: ^clt$f_block,
      interpreter_mode: clt$interpreter_modes,
      line_index: ost$string_index,
      output_line_number: integer,
      being_exited: boolean,
      exit_position: record
        case defined: boolean of
        = TRUE =
          line_index: ost$string_index,
        casend,
      recend,
      label: ost$name,
      kind_name: string (osc$max_name_size),
      kind_end_name: string (osc$max_name_size),
      case kind: clt$block_kind of
      = clc$command_block =
        ,
      = clc$case_block =
        case_condition_met: boolean,
        case_else_allowed: boolean,
      = clc$for_block =
        for_value: array [1 .. 1] of clt$integer,
        for_limit: integer,
        for_increment: integer,
      = clc$if_block =
        if_condition_met: boolean,
        if_else_allowed: boolean,
      = clc$input_block, clc$proc_block, clc$when_block =
{       when_condition: clt$when_condition,
        when_continue_with_retry: boolean,
      = clc$repeat_block, clc$while_block =
        ,
      = clc$task_block =
        task_kind: (clc$job_monitor_task, clc$task_statement_task,
              clc$other_task),
        task_link: ^clt$f_block,
        parent: ^clt$f_block,
        current_block: ^clt$f_block,
      = clc$block_block, clc$loop_block, clc$sub_parameters_block,
            clc$formatter_job_block, clc$formatter_log_block,
            clc$formatter_pipe_block, clc$formatter_task_block, clc$var_block,
            clc$formatter_utility_block, clc$utility_block =
        ,
      casend,
    recend;

*copyc amt$local_file_name
*copyc clt$variable_reference
*copyc clt$interpreter_modes
*copyc ost$name
*copyc ost$status
*copyc ost$string
