2010-08-23 11 views
1

Je traduis un fichier Ada83 en Ada95. Le problème se produit lorsque j'essaie de compiler un fichier qui appelle un fichier séparé. L'erreur est "Caractère illégal" et fait référence à la directive au préprocesseur:Erreur dans le fichier séparé Ada

avec BAS_PUT;

#if ADA_COMPILER = "GNAT" puis

AVEC ADA.GNAT_PUT;

#else

AVEC ADA_PUT;

#end if;

séparé (A_CALL_PUT) Procédure ....

Ce problème ne se produit pas lorsque la même directive préprocesseur est dans un ADB fichier qu'il ne soit pas une fonction distincte.

Quelqu'un peut m'aider ???

Répondre

3

Ada n'a pas de pré-processeur, donc # est en effet un caractère illégal.

Certains compilateurs (ex: Gnat) viennent avec un, mais si c'est le cas, c'est l'un des leurs. Si vous le souhaitez, vous pouvez configurer votre système de compilation pour exécuter vos fichiers source Ada via un préprocesseur externe (par exemple: le pré-processeur C). Je n'ai jamais fait ça, mais on me dit que c'est faisable.

Si votre compilateur est fourni avec un préprocesseur, il n'est pas standard. Utilisez-le si vous le souhaitez, mais par définition, il sera inutile de créer des fichiers source portables (ce qui semble être ce que vous essayez de faire avec).

La plupart des gens considèrent qu'il est préférable de créer simplement différents fichiers sources pour vos différents environnements, et de faire basculer l'environnement de construction (make rules?) Entre eux.