Discussion:
Alternative 95 d'une Syntaxe Ada 2005
(trop ancien pour répondre)
d***@gmail.com
2019-07-03 11:06:05 UTC
Permalink
Bonjour, étant nouveau en ADA, je travail actuellement sur un projet où je utiliser un code existant. malheureusement ce code contient certaines syntaxes propre a ADA 2005, mais je ne peux qu'utiliser de l'ADA 95 dans les contraintes de mon projet et je voulais savoir s'il y avait une alternative a cette syntaxe.

J'ai une fonction de type :

function func (PARAMETRE 1 : TYPE,
PARAMETRE 2 : TYPE,
OTHER_FUNC : Access function -- c'est cette partie qui bloque.
(param_1 : in TYPE; param 2 : in TYPE)
return Boolean := null)

return String;

En gros c'est un paramètre de fonction de type Access function avec sa description.

je voulais savoir s'il existait un alternative proche de cette syntaxe pour ne pas trop modifier la structure du code existant.

Merci d'avance !
g***@hotmail.com
2019-07-03 11:21:22 UTC
Permalink
As-tu essayé qqch comme ça?

procedure Test_access_func is

type AF is access function (x: Integer) return Integer;

function Do_something (callback : AF) return Integer is
begin
return 1;
end;

begin
null;
end;
_________________________
Gautier's Ada programming
http://gautiersblog.blogspot.com/search/label/Ada
NB: Pour une réponse directe, adresse e-mail valable par le lien ci-dessus
d***@gmail.com
2019-07-03 11:36:56 UTC
Permalink
Post by g***@hotmail.com
As-tu essayé qqch comme ça?
procedure Test_access_func is
type AF is access function (x: Integer) return Integer;
function Do_something (callback : AF) return Integer is
begin
return 1;
end;
begin
null;
end;
_________________________
Gautier's Ada programming
http://gautiersblog.blogspot.com/search/label/Ada
NB: Pour une réponse directe, adresse e-mail valable par le lien ci-dessus
c'est le type access anonyme alors qui bloque ?

je n'ai aps encore testé de solution précise, mais comme il y a plus de 3000 déclaration différentes de ce genre de paramètre, je vais avoir du boulot ! quitte a faire u nscript !

merci de la réponse rapide en tout cas !
g***@hotmail.com
2019-07-03 16:35:55 UTC
Permalink
Post by d***@gmail.com
c'est le type access anonyme alors qui bloque ?
Cela semble être le cas.
Si je compile:

procedure Test_access_func is

function Do_something (callback : access function (x: Integer) return Integer) return Integer is
begin
return 1;
end;

begin
null;
end;

avec la commande gnatmake -gnat95 test_access_func.adb
(et un GNAT qui a encore l'option -gnat95), j'obtiens:
test_access_func.adb:3:37: access-to-subprogram is an Ada 2005 extension
test_access_func.adb:3:37: unit should be compiled with -gnat05 switch
Post by d***@gmail.com
je n'ai aps encore testé de solution précise, mais comme il y a plus de 3000 déclaration différentes de ce genre de paramètre, je vais avoir du boulot ! quitte a faire u nscript !
Waw! Si tu as de la chance ces 3000+ déclarations ont été générées automatiquement et tu pourrais changer le script qui les génère (si ce script n'est pas perdu...)
_________________________
Gautier's Ada programming
http://sf.net/users/gdemont/
d***@gmail.com
2019-07-04 09:22:22 UTC
Permalink
Post by g***@hotmail.com
Post by d***@gmail.com
c'est le type access anonyme alors qui bloque ?
Cela semble être le cas.
procedure Test_access_func is
function Do_something (callback : access function (x: Integer) return Integer) return Integer is
begin
return 1;
end;
begin
null;
end;
avec la commande gnatmake -gnat95 test_access_func.adb
test_access_func.adb:3:37: access-to-subprogram is an Ada 2005 extension
test_access_func.adb:3:37: unit should be compiled with -gnat05 switch
Post by d***@gmail.com
je n'ai aps encore testé de solution précise, mais comme il y a plus de 3000 déclaration différentes de ce genre de paramètre, je vais avoir du boulot ! quitte a faire u nscript !
Waw! Si tu as de la chance ces 3000+ déclarations ont été générées automatiquement et tu pourrais changer le script qui les génère (si ce script n'est pas perdu...)
_________________________
Gautier's Ada programming
http://sf.net/users/gdemont/
Je vais essayer de trouver un moyen, merci beaucoup de la réponse !
Loading...