with Unchecked_Conversion;
package Debug10_Pkg is
   type Node_Id is range 0 .. 99_999_999;
   Empty : constant Node_Id := 0;
   subtype Entity_Id is Node_Id;
   type Union_Id is new Integer;
   function My_Is_Entity_Name (N : Node_Id) return Boolean;
   function My_Scalar_Range (Id : Entity_Id) return Node_Id;
   function My_Test (N : Node_Id) return Boolean;
   type Node_Kind is (N_Unused_At_Start, N_Unused_At_End);
   type Entity_Kind is (
      E_Void,
      E_Component,
      E_Constant,
      E_Discriminant,
      E_Loop_Parameter,
      E_Variable,
      E_Out_Parameter,
      E_In_Out_Parameter,
      E_In_Parameter,
      E_Generic_In_Out_Parameter,
      E_Generic_In_Parameter,
      E_Named_Integer,
      E_Named_Real,
      E_Enumeration_Type,
      E_Enumeration_Subtype,
      E_Signed_Integer_Type,
      E_Signed_Integer_Subtype,
      E_Modular_Integer_Type,
      E_Modular_Integer_Subtype,
      E_Ordinary_Fixed_Point_Type,
      E_Ordinary_Fixed_Point_Subtype,
      E_Decimal_Fixed_Point_Type,
      E_Decimal_Fixed_Point_Subtype,
      E_Floating_Point_Type,
      E_Floating_Point_Subtype,
      E_Access_Type,
      E_Access_Subtype,
      E_Access_Attribute_Type,
      E_Allocator_Type,
      E_General_Access_Type,
      E_Access_Subprogram_Type,
      E_Anonymous_Access_Subprogram_Type,
      E_Access_Protected_Subprogram_Type,
      E_Anonymous_Access_Protected_Subprogram_Type,
      E_Anonymous_Access_Type,
      E_Array_Type,
      E_Array_Subtype,
      E_String_Literal_Subtype,
      E_Class_Wide_Type,
      E_Class_Wide_Subtype,
      E_Record_Type,
      E_Record_Subtype,
      E_Record_Type_With_Private,
      E_Record_Subtype_With_Private,
      E_Private_Type,
      E_Private_Subtype,
      E_Limited_Private_Type,
      E_Limited_Private_Subtype,
      E_Incomplete_Type,
      E_Incomplete_Subtype,
      E_Task_Type,
      E_Task_Subtype,
      E_Protected_Type,
      E_Protected_Subtype,
      E_Exception_Type,
      E_Subprogram_Type,
      E_Enumeration_Literal,
      E_Function,
      E_Operator,
      E_Procedure,
      E_Abstract_State,
      E_Entry,
      E_Entry_Family,
      E_Block,
      E_Entry_Index_Parameter,
      E_Exception,
      E_Generic_Function,
      E_Generic_Procedure,
      E_Generic_Package,
      E_Label,
      E_Loop,
      E_Return_Statement,
      E_Package,
      E_Package_Body,
      E_Protected_Object,
      E_Protected_Body,
      E_Task_Body,
      E_Subprogram_Body
   );
   subtype Access_Kind                 is Entity_Kind range
       E_Access_Type ..
       E_Anonymous_Access_Type;
   subtype Array_Kind                  is Entity_Kind range
       E_Array_Type ..
       E_String_Literal_Subtype;
   subtype Object_Kind                 is Entity_Kind range
       E_Component ..
       E_Generic_In_Parameter;
   subtype Record_Kind                 is Entity_Kind range
       E_Class_Wide_Type ..
       E_Record_Subtype_With_Private;
   subtype Scalar_Kind                 is Entity_Kind range
       E_Enumeration_Type ..
       E_Floating_Point_Subtype;
   subtype Type_Kind                   is Entity_Kind range
       E_Enumeration_Type ..
       E_Subprogram_Type;
   type Node_Record (Is_Extension : Boolean := False) is record
      Flag16 : Boolean;
      Nkind : Node_Kind;
   end record;
   function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
   type Arr is array (Node_Id) of Node_Record;
   Nodes : Arr;
end Debug10_Pkg;