-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2005, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2006, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- enumeration literals (points to enum type) LR={}
-- objects and components (points to type) LR={}
+ -- For a type that implements multiple interfaces, there is an
+ -- entry of the form LR=<> for each of the interfaces appearing
+ -- in the type declaration.
+
-- In the above list LR shows the brackets used in the output,
-- which has one of the two following forms:
-- indicating procedures and functions. If the operation is abstract,
-- these letters are replaced in the xref by 'x' and 'y' respectively.
- Xref_Entity_Letters : array (Entity_Kind) of Character := (
- E_Void => ' ',
- E_Variable => '*',
- E_Component => '*',
- E_Constant => '*',
- E_Discriminant => '*',
-
- E_Loop_Parameter => '*',
- E_In_Parameter => '*',
- E_Out_Parameter => '*',
- E_In_Out_Parameter => '*',
- E_Generic_In_Out_Parameter => '*',
-
- E_Generic_In_Parameter => '*',
- E_Named_Integer => 'N',
- E_Named_Real => 'N',
- E_Enumeration_Type => 'E', -- B for boolean
- E_Enumeration_Subtype => 'E', -- B for boolean
-
- E_Signed_Integer_Type => 'I',
- E_Signed_Integer_Subtype => 'I',
- E_Modular_Integer_Type => 'M',
- E_Modular_Integer_Subtype => 'M',
- E_Ordinary_Fixed_Point_Type => 'O',
-
- E_Ordinary_Fixed_Point_Subtype => 'O',
- E_Decimal_Fixed_Point_Type => 'D',
- E_Decimal_Fixed_Point_Subtype => 'D',
- E_Floating_Point_Type => 'F',
- E_Floating_Point_Subtype => 'F',
-
- E_Access_Type => 'P',
- E_Access_Subtype => 'P',
- E_Access_Attribute_Type => 'P',
- E_Allocator_Type => ' ',
- E_General_Access_Type => 'P',
-
- E_Access_Subprogram_Type => 'P',
- E_Access_Protected_Subprogram_Type => 'P',
- E_Anonymous_Access_Subprogram_Type => ' ',
+ Xref_Entity_Letters : array (Entity_Kind) of Character :=
+ (E_Void => ' ',
+ E_Variable => '*',
+ E_Component => '*',
+ E_Constant => '*',
+ E_Discriminant => '*',
+
+ E_Loop_Parameter => '*',
+ E_In_Parameter => '*',
+ E_Out_Parameter => '*',
+ E_In_Out_Parameter => '*',
+ E_Generic_In_Out_Parameter => '*',
+
+ E_Generic_In_Parameter => '*',
+ E_Named_Integer => 'N',
+ E_Named_Real => 'N',
+ E_Enumeration_Type => 'E', -- B for boolean
+ E_Enumeration_Subtype => 'E', -- B for boolean
+
+ E_Signed_Integer_Type => 'I',
+ E_Signed_Integer_Subtype => 'I',
+ E_Modular_Integer_Type => 'M',
+ E_Modular_Integer_Subtype => 'M',
+ E_Ordinary_Fixed_Point_Type => 'O',
+
+ E_Ordinary_Fixed_Point_Subtype => 'O',
+ E_Decimal_Fixed_Point_Type => 'D',
+ E_Decimal_Fixed_Point_Subtype => 'D',
+ E_Floating_Point_Type => 'F',
+ E_Floating_Point_Subtype => 'F',
+
+ E_Access_Type => 'P',
+ E_Access_Subtype => 'P',
+ E_Access_Attribute_Type => 'P',
+ E_Allocator_Type => ' ',
+ E_General_Access_Type => 'P',
+
+ E_Access_Subprogram_Type => 'P',
+ E_Access_Protected_Subprogram_Type => 'P',
+ E_Anonymous_Access_Subprogram_Type => ' ',
E_Anonymous_Access_Protected_Subprogram_Type => ' ',
- E_Anonymous_Access_Type => ' ',
- E_Array_Type => 'A',
- E_Array_Subtype => 'A',
-
- E_String_Type => 'S',
- E_String_Subtype => 'S',
- E_String_Literal_Subtype => ' ',
- E_Class_Wide_Type => 'C',
-
- E_Class_Wide_Subtype => 'C',
- E_Record_Type => 'R',
- E_Record_Subtype => 'R',
- E_Record_Type_With_Private => 'R',
- E_Record_Subtype_With_Private => 'R',
-
- E_Private_Type => '+',
- E_Private_Subtype => '+',
- E_Limited_Private_Type => '+',
- E_Limited_Private_Subtype => '+',
- E_Incomplete_Type => '+',
-
- E_Task_Type => 'T',
- E_Task_Subtype => 'T',
- E_Protected_Type => 'W',
- E_Protected_Subtype => 'W',
- E_Exception_Type => ' ',
-
- E_Subprogram_Type => ' ',
- E_Enumeration_Literal => 'n',
- E_Function => 'V',
- E_Operator => 'V',
- E_Procedure => 'U',
-
- E_Entry => 'Y',
- E_Entry_Family => 'Y',
- E_Block => 'q',
- E_Entry_Index_Parameter => '*',
- E_Exception => 'X',
-
- E_Generic_Function => 'v',
- E_Generic_Package => 'k',
- E_Generic_Procedure => 'u',
- E_Label => 'L',
- E_Loop => 'l',
-
- E_Package => 'K',
+ E_Anonymous_Access_Type => ' ',
+
+ E_Array_Type => 'A',
+ E_Array_Subtype => 'A',
+ E_String_Type => 'S',
+ E_String_Subtype => 'S',
+ E_String_Literal_Subtype => ' ',
+
+ E_Class_Wide_Type => 'C',
+ E_Class_Wide_Subtype => 'C',
+ E_Record_Type => 'R',
+ E_Record_Subtype => 'R',
+ E_Record_Type_With_Private => 'R',
+
+ E_Record_Subtype_With_Private => 'R',
+ E_Private_Type => '+',
+ E_Private_Subtype => '+',
+ E_Limited_Private_Type => '+',
+ E_Limited_Private_Subtype => '+',
+
+ E_Incomplete_Type => '+',
+ E_Incomplete_Subtype => '+',
+ E_Task_Type => 'T',
+ E_Task_Subtype => 'T',
+ E_Protected_Type => 'W',
+
+ E_Protected_Subtype => 'W',
+ E_Exception_Type => ' ',
+ E_Subprogram_Type => ' ',
+ E_Enumeration_Literal => 'n',
+ E_Function => 'V',
+
+ E_Operator => 'V',
+ E_Procedure => 'U',
+ E_Entry => 'Y',
+ E_Entry_Family => 'Y',
+ E_Block => 'q',
+
+ E_Entry_Index_Parameter => '*',
+ E_Exception => 'X',
+ E_Generic_Function => 'v',
+ E_Generic_Package => 'k',
+ E_Generic_Procedure => 'u',
+
+ E_Label => 'L',
+ E_Loop => 'l',
+ E_Return_Statement => ' ',
+ E_Package => 'K',
-- The following entities are not ones to which we gather
-- cross-references, since it does not make sense to do so
-- Indeed the occurrence of the body entity is considered to
-- be a reference to the spec entity.
- E_Package_Body => ' ',
- E_Protected_Object => ' ',
- E_Protected_Body => ' ',
- E_Task_Body => ' ',
- E_Subprogram_Body => ' ');
+ E_Package_Body => ' ',
+ E_Protected_Object => ' ',
+ E_Protected_Body => ' ',
+ E_Task_Body => ' ',
+ E_Subprogram_Body => ' ');
-- The following table is for information purposes. It shows the
-- use of each character appearing as an entity type.
-- e non-Boolean enumeration object non_Boolean enumeration type
-- f floating-point object floating-point type
-- g (unused) (unused)
- -- h (unused) Abstract type
+ -- h Interface (Ada 2005) Abstract type
-- i signed integer object signed integer type
-- j (unused) (unused)
-- k generic package package