
  PROCEDURE [INLINE] clp$delete_variable_access
    (    hashed_name: clt$variable_name;
         hash: clt$variable_name_hash;
         allowed_classes: clt$internal_variable_classes;
     VAR variable_descriptor: ^clt$variable_descriptor);

?? PUSH (LISTEXT := ON) ??

    VAR
      associated_utility: boolean,
      block: ^clt$block,
      classes: clt$internal_variable_classes,
      inherited_allowed_classes: clt$internal_variable_classes,
      inherited_block: ^clt$block;


    variable_descriptor := NIL;
    classes := allowed_classes * (-$clt$internal_variable_classes [clc$lib_variable, clc$param_variable]);
    clp$find_first_var_block (classes, inherited_allowed_classes, inherited_block, block,
          associated_utility);

    WHILE block <> NIL DO
      IF (inherited_block <> NIL) AND (block^.kind IN $clt$block_kinds [clc$command_proc_block,
            clc$function_proc_block]) AND block^.parameters.evaluated THEN
        classes := classes * $clt$internal_variable_classes [clc$env_variable, clc$pushed_variable];
      IFEND;
      clp$delete_variable_from_tree (hashed_name, hash, classes, block^.variables, variable_descriptor);
      IF variable_descriptor <> NIL THEN
        RETURN;
      IFEND;
      IF block^.kind IN $clt$block_kinds [clc$command_proc_block, clc$function_proc_block] THEN
        classes := classes * $clt$internal_variable_classes [clc$env_variable, clc$pushed_variable];
      IFEND;
      IF associated_utility AND (block = inherited_block) THEN
        classes := classes * $clt$internal_variable_classes [clc$env_variable, clc$pushed_variable];
      IFEND;
      clp$find_next_var_block (classes, inherited_allowed_classes, inherited_block, block,
            associated_utility);
    WHILEND;

  PROCEND clp$delete_variable_access;

*copyc clt$block
*copyc clt$internal_variable_classes
*copyc clt$variable_descriptor
*copyc clt$variable_name
*copyc clt$variable_name_hash
*copyc ost$status
?? POP ??
*copyc clp$delete_variable_from_tree
*copyc clp$find_first_var_block
*copyc clp$find_next_var_block
