comp.lang.ada
 help / color / mirror / Atom feed
From: evangeli@cnam.fr (Evangelista Sami)
Subject: Re: abstract sub programs overriding
Date: 5 Mar 2004 07:02:04 -0800
Date: 2004-03-05T07:02:04-08:00	[thread overview]
Message-ID: <5f59677c.0403050702.5387352b@posting.google.com> (raw)
In-Reply-To: mailman.58.1078278195.327.comp.lang.ada@ada-france.org

here is the code :

----------------------------------------------------
package Generator is

   type Element_Record is abstract tagged private;
   type Element is access all Element_Record'Class;

   procedure Generate
     (El : in Element_Record) is abstract;

private

   type Element_Record is abstract tagged record
      null;
   end record;

end Generator;
----------------------------------------------------
package Generator.Declarations is

   type Decl_Record is abstract new Element_Record with private;

   type Type_Decl_Record is abstract new Decl_Record with private;

   type Discrete_Type_Decl_Record is abstract
     new Type_Decl_Record with private;

   type Enumerate_Type_Decl_Record is
     new Discrete_Type_Decl_Record with private;
   type Enumerate_Type_Decl is access all Enumerate_Type_Decl_Record;

   function New_Enumerate_Type_Decl return Element;

private

   type Decl_Record is abstract new Element_Record with record
      null;
   end record;

   type Type_Decl_Record is abstract new Decl_Record with record
      null;
   end record;

   procedure Generate
     (El : in Type_Decl_Record);

   type Discrete_Type_Decl_Record is abstract new Type_Decl_Record with record
      null;
   end record;

   type Enumerate_Type_Decl_Record is new Discrete_Type_Decl_Record with record
      null;
   end record;

end Generator.Declarations;
----------------------------------------------------
package body Generator.Declarations is

   procedure Generate
     (El : in Type_Decl_Record) is
   begin
      null;
   end;

   function New_Enumerate_Type_Decl return Element is
      Result : Enumerate_Type_Decl := new Enumerate_Type_Decl_Record;
   begin
      return Element(Result);
   end;

end Generator.Declarations;
----------------------------------------------------
with Generator; use Generator;
with Generator.Declarations; use Generator.Declarations;

procedure Main is
   El : Element := New_Enumerate_Type_Decl;
begin
   Generate(El.all);
end;
----------------------------------------------------


in fact i have 5 levels :
element -> decl -> type_decl -> discrete_type_decl -> enumerate_type_decl

it crashes on "Generate(El.all);" :
raised CONSTRAINT_ERROR : main.adb:7 access check failed



  reply	other threads:[~2004-03-05 15:02 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-02 19:01 abstract sub programs overriding Evangelista Sami
2004-03-03  1:43 ` Stephen Leake
2004-03-05 15:02   ` Evangelista Sami [this message]
2004-03-05 16:15     ` Marius Amado Alves
2004-03-08 18:54       ` Adam Beneschan
2004-03-08 23:42         ` Marius Amado Alves
2004-03-05 16:26     ` Marius Amado Alves
2004-03-06  9:31       ` Simon Wright
2004-03-06 15:18         ` Evangelista Sami
2004-03-06 19:09           ` Marius Amado Alves
2004-03-07 12:35             ` Simon Wright
2004-03-07 13:39               ` Marius Amado Alves
2004-03-08 19:08               ` Adam Beneschan
2004-03-08 20:03                 ` Hyman Rosen
2004-03-09  8:51                   ` Dmitry A. Kazakov
2004-03-09 13:34                     ` Hyman Rosen
2004-03-09 14:49                       ` Dmitry A. Kazakov
2004-03-09 15:14                         ` Hyman Rosen
2004-03-09 15:56                           ` Dmitry A. Kazakov
2004-03-09 16:32                             ` Hyman Rosen
2004-03-10  9:32                               ` Dmitry A. Kazakov
2004-03-10 13:08                                 ` Hyman Rosen
2004-03-10 14:58                                   ` Robert I. Eachus
2004-03-10 16:00                                     ` Hyman Rosen
2004-03-10 18:07                                       ` Robert I. Eachus
2004-03-10 20:04                                         ` Hyman Rosen
2004-03-11  2:43                                           ` Robert I. Eachus
2004-03-11 13:55                                             ` Hyman Rosen
2004-03-12 23:02                                               ` Robert I. Eachus
2004-03-14 21:33                                                 ` Hyman Rosen
2004-03-15  5:59                                                   ` Robert I. Eachus
2004-03-15 14:39                                                     ` Hyman Rosen
2004-03-16 16:16                                                       ` Robert I. Eachus
2004-03-16 16:51                                                         ` Hyman Rosen
2004-03-16 19:54                                                         ` Hyman Rosen
2004-03-16 23:16                                                           ` Randy Brukardt
2004-03-17  1:54                                                           ` Robert I. Eachus
2004-03-16 23:14                                                         ` Randy Brukardt
2004-03-17  2:43                                                           ` Robert I. Eachus
2004-03-17 17:40                                                             ` Randy Brukardt
2004-03-18  2:39                                                               ` Robert I. Eachus
2004-03-18  5:57                                                                 ` Randy Brukardt
2004-03-18 15:03                                                                   ` Hyman Rosen
2004-03-18 20:32                                                                     ` Randy Brukardt
2004-03-19  3:59                                                                       ` Hyman Rosen
2004-03-19 19:37                                                                         ` Randy Brukardt
2004-03-16  6:00                                               ` Randy Brukardt
2004-03-11 10:09                                   ` Dmitry A. Kazakov
2004-03-11 14:10                                     ` Hyman Rosen
2004-03-11 14:59                                       ` Dmitry A. Kazakov
2004-03-11 15:40                                         ` Hyman Rosen
2004-03-11 16:28                                           ` Dmitry A. Kazakov
2004-03-11 17:26                                             ` Hyman Rosen
2004-03-12  8:53                                               ` Dmitry A. Kazakov
2004-03-12 13:09                                                 ` Hyman Rosen
2004-03-12 14:00                                                   ` Dmitry A. Kazakov
2004-03-12 14:56                                                     ` Hyman Rosen
2004-03-12 18:19                                                       ` Dmitry A. Kazakov
2004-03-12 18:34                                                         ` Hyman Rosen
2004-03-12 20:05                                                           ` Georg Bauhaus
2004-03-13 10:12                                                           ` Dmitry A. Kazakov
2004-03-12 18:07                                               ` Robert I. Eachus
2004-03-10 15:51                 ` Evangelista Sami
2004-03-11  1:38                   ` Dan Eilers
2004-03-06 23:20     ` Dan Eilers
2004-03-03 12:00 ` Marius Amado Alves
2004-03-13  7:51 ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox