separate (Find_Unit.Build_Ada_Compilation_Unit)
procedure Add_On_Insignificant_Tokens
             (Current_Unit : in out Compilation_Unit.Ada_Compilation_Unit) is
    --==============================================================
    -- This procedure adds all insignificant tokens to the         =
    -- current compilation unit. The insignificant tokens include  =
    -- comments, new lines, and blank lines.                       =
    --                                                             =
    -- written  by  Gary Russell                                   =
    -- reviewed by Brad Balford and Johan Margono                  =
    -- May 1985  EVB Software Engineering Inc.                     =
    --==============================================================

    Current_Token : Token_Package.Token;
    -- The current token from the input

    Peek_Token : Token_Package.Token;
    -- A future token to be used later

    Found_A_Significant_Token : Boolean := False;
    -- This object becomes true when a significant token is found

begin
    -- Add_On_Insignificant_Tokens

    -- Set the peek back

    Token_Package.Set_Peek_Back;

    -- Repeatly peek at tokens until a significant token is found

    Get_The_Insignificant:
        loop

            Token_Package.Peek (Next_Token => Peek_Token);

            case Token_Package.Class_Of (Peek_Token) is
                when Token_Package.Comment | Token_Package.Blank_Line |
                     Token_Package.New_Line =>

                    Token_Package.Get (Next_Token => Current_Token);
                    Compilation_Unit.Add_Token_To_Compilation_Unit
                       (Token_To_Add => Current_Token,
                        Unit_To_Add_To => Current_Unit);

                    --** flush buffer
                when Token_Package.End_Of_File =>
                    Token_Package.Get (Next_Token => Current_Token);
                    Found_A_Significant_Token := True;

                when others =>
                    Found_A_Significant_Token := True;
            end case;

            exit Get_The_Insignificant when Found_A_Significant_Token;

        end loop Get_The_Insignificant;

    -- Set the peek back

    Token_Package.Set_Peek_Back;

end Add_On_Insignificant_Tokens;