Ada Type Kinds

Use “ada type” to match all Ada type kinds.

Kind Name
Ada Abstract Tagged Type Record
Ada Abstract Tagged Type Record Local
Ada Abstract Tagged Type Record Private
Ada Abstract Tagged Type Record Limited Private
Ada Protected Type
Ada Protected Type Local
Ada Protected Type Private
Ada Protected Type Limited Private
Ada Tagged Type Record
Ada Tagged Type Record Local
Ada Tagged Type Record Private
Ada Tagged Type Record Limited Private
Ada Task Type
Ada Task Type Local
Ada Task Type Private
Ada Task Type Limited Private
Ada Type
Ada Type Local
Ada Type Access
Ada Type Access Local
Ada Type Access Private
Ada Type Access Private Limited
Ada Type Access Subprogram
Ada Type Access Subprogram Local
Ada Type Access Subprogram Private
Ada Type Access Subprogram Limited Private
Ada Type Enumeration
Ada Type Enumeration Local
Ada Type Enumeration Private
Ada Type Enumeration Limited Private
Ada Type Private
Ada Type Limited Private
Ada Type Record
Ada Type Record Local
Ada Type Record Private
Ada Type Record Limited Private

A normal ada type is any type or subtype that is not an access, enumeration, or record type. It may be local or non-local.

type some_int is range 1 .. 2000;   -- Ada Type 

A private type is any type or subtype that is not an access, enumeration, or record type and that is declared as private.

package some_pack is
   type some_int is private;
private
   type some_int is range 1 .. 2000;
        -- Ada Type Private
end; 

An access to an object type may be local or non-local.

type int_access is access integer;  -- Ada Type Access 

An access to object type may be declared as private.

package some_pack is
   type int_access is private;
private
   type int_access is access integer; 
                            -- Ada Type Access Private
end; 

An access to a subprogram type may be local or non-local.

type proc_access is access procedure(a : integer);
                             -- Ada Type Access Subprogram 

An access to a subprogram type may be declared as private.

package some_pack is
   type proc_access is private;
private
   type proc_access is access procedure(a : integer);
                 -- Ada Type Access Subprogram Private
end; 

A type may be an enumeration type.

type light_color is (green, yellow, red);
      -- light_color is of kind Ada Type Enumeration 

An enumeration type may be declared as private.

package some_pack is
   type light_color is private; 
private
   type light_color is (green, yellow, red);
     -- light_color is Ada Type Enumeration Private
end; 

A record type is a non-abstract, non-tagged, record type. It may be local or non-local.

type rec_type is record         -- Ada Type Record
   component : integer;
end record; 

A non-abstract, non-tagged, record type may be declared as private.

package some_pack is
   type rec_type is private;
private
    type rec_type is record  -- Ada Type Record Private
       component : integer;
   end record; 
end; 

A record type may be a non-abstract tagged type. It may be local or non-local.

type tagged_type is tagged null record; 
                        -- Ada Tagged Type Record 

A tagged type may be declared as private.

package some_pack is
   type tagged_priv_type is private; 
private
    type tagged_priv_type is tagged null record;
                      -- Ada Tagged Type Record Private
 end; 

An abstract tagged type may be local or non-local.

type abs_type is abstract tagged null record;
                        -- Ada Abstract Tagged Type Record 

An abstract tagged type may be declared as private.

package some_pack is
   type abs_priv_type is limited private;
     -- Ada Abstract Tagged Type Record Private Limited
private
   type abs_priv_type is abstract tagged null record;
     -- Ada Abstract Tagged Type Record Private
end; 

Scientific Toolworks, Inc.
http://www.scitools.com