with Text_Io;
separate (Compilation_Unit.Produce_Metrics.Report_Metrics)
procedure Display_Operands (Operand_List : in Halstead_Operand_List.List) is
    --=============================================================
    -- This operation is used to display all the operands in the  =
    -- list of operands plus their frequency. The format used     =
    -- may be found in the User's manual.                         =
    --                                                            =
    --  written by GER with help from Brad and JM                 =
    --=============================================================

    procedure Display_This_Operand (Item : in Halstead_Operand.Definition;
                                    Frequency_Of_Item : in Natural) is
        -- This procedure will be used to instantiate the iterate
        -- procedure in the Halstead_List generic. The procedure is
        -- used in the generic to display an operand and the number
        -- of occurances of the operand in the compilation unit.

        package Frequency_Io is new Text_Io.Integer_Io (Num => Natural);

    begin
        -- Display_This_Operand

        Text_Io.Set_Col (To => 5);
        Text_Io.Put (Item => String (Item));
        if Item'Length >= 35 then
            -- skip a line before printing the frequency
            Text_Io.New_Line (Spacing => 1);
        end if;
        Text_Io.Set_Col (To => 35);
        Frequency_Io.Put (Item => Frequency_Of_Item);
        Text_Io.New_Line (Spacing => 1);

    end Display_This_Operand;

    -- Instantiate the iterate procedure in the Halstead generic.
    -- This will allow us to display all the operands
    procedure Iterate_To_Display_Operands is
       new Halstead_Operand_List.Iterate (Process => Display_This_Operand);

begin
    -- Display_Operands

    Iterate_To_Display_Operands (Operand_List);

end Display_Operands;