[Next] [Previous] [Top]

Metteur en page de sources Ada


4. Première application : apparence


4.1. Description

Cette application permet de changer l'apparence des mots réservés et des identificateurs des sources Ada.

Elle importe des services de :

- Ada_To_Foo_G (pour l'analyse lexicale),
- Command_Line (pour l'analyse des arguments de l'application),
- Text_IO (pour la manipulation des fichiers d'E/S).

Sans noms de fichiers en paramètres, elle travaille sur les canaux standard d'E/S.

Les erreurs de syntaxe du code sont tolérées. Cependant, dans ce cas les résultats obtenus peuvent être inattendus.

On a décidé de ne pas faire un traitement des identificateurs apparaissant en commentaires. En effet, ceci présente des inconvénients :

- un double parcourt du fichier se montre nécessaire (le premier parcourt sert à créer la liste des identificateurs trouvés dans le code, pour après au fur et à mesure qu'on traite les commentaires vérifier leur appartenance à la liste). Ceci empêche d'utiliser la redirection Unix (<, >) des canaux d'E/S, car un nom de fichier d'entrée va être toujours obligatoire;

- la visibilité des identificateurs est locale à leur "domaine de déclaration" et donc pas forcement globale à tout le fichier. Il faudrait donc créer une liste selon les règles de visibilité des identificateurs, ce qui n'est pas possible avec une analyse lexicale des sources;

- des ambiguïtés peuvent se présenter avec certains identificateurs (par exemple avec l'article "a" en anglais).


4.2. Options

Forme générale de la commande :

apparence [-r<u|l>] [-i<u|l|m>] [in_file [out_file]]

(1) Traitement désiré pour les mots réservés :

-r<u|l>

u : UPPER (tout en majuscule)
l : lower (tout en minuscule)

Valeur par défaut : -rl

(2) Traitement désiré pour les identificateurs :

-i<u|l|m>

u : UPPER (tout en majuscule)
l : lower (tout en minuscule)
m : Mixed (Majuscule au début et après chaque souligné `_')

Valeur par défaut : -im

Une amélioration possible de cette application serait le traitement "spécial" de certains identificateurs, non conformes aux règles établies, tels que Text_IO (on ne veut pas Text_Io dans le cas -im). Ceci pourrait être réalisable à l'aide d'un fichier auxiliaire contenant ces identificateurs.

(3) Fichier d'entrée :

Valeur par défaut : standard input

(4) Fichier de sortie (seulement si le fichier d'entrée a été spécifié) :

Valeur par défaut : standard output


4.3. Exemples

Etant donné le fichier hello_world.a :

-------------------------------------

--/ Title    : Hello_World
--/ Creation : 11-Mai-1994 M. Larrea

WITH
  text_io;

-- This is a simple Ada program

PROCEDURE hello_world IS

BEGIN
  text_io.put_line ("Hello World !");
END hello_world;
-------------------------------------

(1) apparence hello_world.a (valeurs par défaut, format RM 9X) :

-------------------------------------

--/ Title    : Hello_World
--/ Creation : 11-Mai-1994 M. Larrea

with
  Text_Io;

-- This is a simple Ada program

procedure Hello_World is

begin
  Text_Io.Put_Line ("Hello World !");
end Hello_World;
-------------------------------------

(2) apparence -iu hello_world.a (format LRM 83) :

-------------------------------------

--/ Title    : Hello_World
--/ Creation : 11-Mai-1994 M. Larrea

with
  TEXT_IO;

-- This is a simple Ada program

procedure HELLO_WORLD is

begin
  TEXT_IO.PUT_LINE ("Hello World !");
end HELLO_WORLD;
-------------------------------------


Metteur en page de sources Ada - 29 MAR 95
[Next] [Previous] [Top]

Generated with CERN WebMaker