--
-- Copyright (C) 2014-2022, AdaCore
-- SPDX-License-Identifier: Apache-2.0
--
package body Gpr_Parser_Support.Diagnostics is
----------------------
-- To_Pretty_String --
----------------------
function To_Pretty_String (D : Diagnostic) return String is
Sloc : constant Source_Location := Start_Sloc (D.Sloc_Range);
Sloc_Prefix : constant String :=
(if Sloc = No_Source_Location
then ""
else Image (Sloc) & ": ");
begin
return Sloc_Prefix & Image (To_Text (D.Message));
end To_Pretty_String;
------------
-- Create --
------------
function Create
(Sloc_Range : Source_Location_Range;
Message : Wide_Wide_String) return Diagnostic
is
begin
return (Sloc_Range, To_Unbounded_Text (Message));
end Create;
------------
-- Append --
------------
procedure Append
(Diagnostics : in out Diagnostics_Vectors.Vector;
Sloc_Range : Source_Location_Range := No_Source_Location_Range;
Message : Wide_Wide_String)
is
begin
Diagnostics.Append (Create (Sloc_Range, Message));
end Append;
------------
-- Append --
------------
procedure Append
(Diagnostics : in out Diagnostics_Vectors.Vector;
Sloc_Range : Source_Location_Range := No_Source_Location_Range;
Exc : Ada.Exceptions.Exception_Occurrence)
is
Msg : constant String := Ada.Exceptions.Exception_Message (Exc);
begin
Append (Diagnostics, Sloc_Range, To_Text (Msg));
end Append;
end Gpr_Parser_Support.Diagnostics;