errors.ads 3.97 KB
Newer Older
jhugues's avatar
jhugues committed
1 2 3 4 5 6 7 8
------------------------------------------------------------------------------
--                                                                          --
--                           OCARINA COMPONENTS                             --
--                                                                          --
--                               E R R O R S                                --
--                                                                          --
--                                 S p e c                                  --
--                                                                          --
9
--                   Copyright (C) 2012-2015 ESA & ISAE.                    --
jhugues's avatar
jhugues committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
--                                                                          --
-- Ocarina  is free software;  you  can  redistribute  it and/or  modify    --
-- it under terms of the GNU General Public License as published by the     --
-- Free Software Foundation; either version 2, or (at your option) any      --
-- later version. Ocarina is distributed  in  the  hope  that it will be    --
-- useful, but WITHOUT ANY WARRANTY;  without even the implied warranty of  --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General --
-- Public License for more details. You should have received  a copy of the --
-- GNU General Public License distributed with Ocarina; see file COPYING.   --
-- If not, write to the Free Software Foundation, 51 Franklin Street, Fifth --
-- Floor, Boston, MA 02111-1301, USA.                                       --
--                                                                          --
-- As a special exception,  if other files  instantiate  generics from this --
-- unit, or you link  this unit with other files  to produce an executable, --
-- this  unit  does not  by itself cause  the resulting  executable to be   --
-- covered  by the  GNU  General  Public  License. This exception does not  --
-- however invalidate  any other reasons why the executable file might be   --
-- covered by the GNU Public License.                                       --
--                                                                          --
--                 Ocarina is maintained by the TASTE project               --
--                      (taste-users@lists.tuxfamily.org)                   --
--                                                                          --
------------------------------------------------------------------------------

34
with Locations; use Locations;
35
with Ocarina.Types;     use Ocarina.Types;
36 37 38 39
with Ada.Exceptions;

package Errors is

40
   procedure Display_Error (S : String);
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
   procedure DE (S : String) renames Display_Error;
   procedure Display_Warning (S : String);
   procedure DW (S : String) renames Display_Warning;
   procedure Display_Message (S : String);
   procedure DM (S : String) renames Display_Message;
   --  Display an error and output error message S. S may include
   --  meta-characters.
   --
   --  '%' designates a string representing Error_Name (N) where N is
   --  the number of '%' and '#' in the substring.
   --
   --  '#' designates a quoted string representing Error_Name (N).
   --
   --  '!' designates a location representing Error_Loc (L) where L is
   --  the number of '!' in the substring.
   --
   --  '$' designates an integer representing Error_Int (I) where I is
   --  the number of '$' in the substring.

   procedure Initialize;

   Error_Loc  : array (1 .. 2) of Location;
   Error_Int  : array (1 .. 2) of Int;
   Error_Name : array (1 .. 2) of Name_Id;

   N_Errors   : Int := 0;
   N_Warnings : Int := 0;

   procedure Display_Bug_Box (E : Ada.Exceptions.Exception_Occurrence);

71 72 73 74 75 76 77 78
   --  Error reporting
   --  * by default, Exit_On_Error directly exists;
   --  * if Use_Exception_To_Exit is called, Exit_On_Error raises the
   --    Ocarina_Error exception

   procedure Use_Exception_To_Exit;
   Ocarina_Error : exception;

79 80
   procedure Exit_On_Error (Error : Boolean; Reason : String);

81
end Errors;