?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE SCL Interpreter : Extract SCL Procedure from Object Library' ??
MODULE clm$extract_scl_procedure;

{
{ PURPOSE:
{   This module contains the code for extracting an SCL procedure from an
{   object library.
{

?? NEWTITLE := 'Global Declarations ', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc amt$file_identifier
*copyc clt$command_line
*copyc clt$scl_procedure
*copyc ost$status
?? POP ??
*copyc amp$put_next
*copyc clp$get_next_scl_proc_line

?? TITLE := 'clp$extract_scl_procedure', EJECT ??

  PROCEDURE [XDCL, #GATE] clp$extract_scl_procedure
    (    file_identifier: amt$file_identifier;
         scl_procedure: ^clt$scl_procedure;
     VAR status: ost$status);

    VAR
      line: ^clt$command_line,
      local_scl_procedure: ^clt$scl_procedure,
      ignore_byte_address: amt$file_byte_address;


    status.normal := TRUE;
    local_scl_procedure := scl_procedure;
    RESET local_scl_procedure;

    WHILE TRUE DO
      clp$get_next_scl_proc_line (local_scl_procedure, line, status);
      IF (NOT status.normal) OR (line = NIL) THEN
        RETURN;
      IFEND;
      amp$put_next (file_identifier, line, #SIZE (line^), ignore_byte_address, status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;
    WHILEND;

  PROCEND clp$extract_scl_procedure;

MODEND clm$extract_scl_procedure;
