comp.lang.ada
 help / color / mirror / Atom feed
From: dale@cs.rmit.edu.au (Dale Stanbrough)
Subject: Re: Preprocessing Ada
Date: 1999/05/26
Date: 1999-05-26T02:38:56+00:00	[thread overview]
Message-ID: <dale-2605991238560001@dale.bu.cs.rmit.edu.au> (raw)
In-Reply-To: 374B3689.33FF57B4@aasaa.ofe.org

David Starner  wrote:

" I'm writing a library in Ada and I've hit a couple things where I would
  use #ifdef's in C. I would like to offer alternate algorithims for the
  same function that can be chosen at compile time."


Use different packages and use package renames...

package Fast_Algorithms is...

package Small_Alogrithms is...


package Chosen_Package renames Fast_Algorithms;


Alternatively get your sccs to select the appropriate package, and have
two different versions of the same named package.


I would also like to
> add an expensive verification call to the front of each function that
> can be turned on and off at compile time (expensive enough that I want
> it to be seperate from Pragma Assert.)
 

package Verification_Control is

   Do_Verification : constant Boolean := true; -- or false!

   procedure Verify (Item : boolean; Message : String);

   pragma Inline (Verify);

end;

package body...

    procedure Verify (...) is
    begin
       if Do_Verification then...

    end;
end;


Even a 1/2 sensible compiler should be able to eliminate calls to the
routine, I would guess that they can completely eliminate this routine.


> 2. Will cpp (the C pre-processor) work cleanly with Ada?

no, it gets caught on attributes (the single ') i believe.


" 3. Is there a DFSG-free preprocessor for Ada? (I hate to go this way,
  because that means that everyone who compiles the program needs a
  special preprocessor.)"

ACT supply a preprocessor that works with Ada. See the documentation
for details.


Dale




  parent reply	other threads:[~1999-05-26  0:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-05-25  0:00 Preprocessing Ada David Starner
1999-05-25  0:00 ` David Botton
1999-05-26  0:00 ` fraser
1999-05-26  0:00 ` Dale Stanbrough [this message]
1999-05-26  0:00 ` Marin David Condic
replies disabled

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