L`interface utilisateur multilingue en ARIANE-85, dernières

Transcription

L`interface utilisateur multilingue en ARIANE-85, dernières
Documentation du système Ariane-G5
Document DOCMSG2.SCRIPT
L'INTERFACE UTILISATEUR
MULTILINGUE EN ARIANE-85.
DERNIERES MODIFICATIONS APPORTEES
ET INTERFACE POUR PL/1.
Auteur : Pierre Guillaume
L'INTERFACE UTILISATEUR
MULTILINGUE ENARIANE-85.
DERNIERES MODIFICATIONS APPORTEES ET
INTERFACE POUR PL/1.
PRESENTATION.
Ce document présente d'abord, les dernières modifications apportées à l'interface des messages d'ARIANE-85, et ensuite, la
façon dont a été réalisée son adaptation aux programmes, écrits en PL/1, qui participent à la compilation des données
linguistiques d'une phase SYGMOR.
MODIFICATIONS APPORTEES A L'INTERFACE DES MESSAGES.
En vue de faciliter l'utilisation de l'interface programmes/messages d'ARIANE-85 (2,3), on a été conduit à apporter
quelques modifications au logiciel associé.
Introduction de l'insertion entre fichiers messages sources.
On peut désormais insérer, dans un fichier messages sources, d'autres fichiers de messages sources. Il est donc possible de
partager un unique fichier de messages sources entre modules de messages distincts. Cette possibilité s'applique aux fichiers
insérés, jusqu'à une profondeur maximale de cinq niveaux.
L'ordre d'insertion doit figurer en colonnes 1 et 2 d'un enregistrement du fichier message, sous la forme ".I", et être suivi du
nom et du type du fichier à insérer (<n> <t>). Ces nom et type sont paramétrables (par emploi de "&01" ...), les paramètres
prenant leurs valeurs dans le fichier des valeurs de paramètres. Les valeurs résultantes pour <n> et <t>, sont transcrites en
majuscules et tronquées à huit caractères.
Exemple:
.I f&01 m&02
Pour le logiciel d'interface, le résultat de ces insertions est équivalent à un unique fichier de messages sources. Il en résulte
que la propriété d'unicité des noms de messages doit être vérifiée entre tous les fichiers messages élémentaires qui
participent à la constitution d'un même fichier messages source.
Retour, lors d'une demande de positionnement, de sa valeur antérieure.
Lorsqu'une demande de positionnement est correctement satisfaite, on retourne au programme appelant, la valeur antérieure
de ce positionnement, et cela en vue d'une éventuelle restauration, en fin du programme, du contexte des positionnements.
La valeur est retournée, pointée par R1, sous la forme:
Les paramètres pouvant figurer dans <n> et <t>, sont évidemment substitués par leurs valeurs.
Rappelons que la valeur courante du positionnement est accessible, par appel au positionnement, avec pour valeurs de
paramètres: "* *".
Modification de la liste des messages et codes associés a PREPAMSG.
On se reportera au document (2), et aux pages 26 et 27, pour replacer ces modifications, dans leur contexte.
Deux messages ont changé de code: 26 devient 27, et 27 devient 30.
Quatre messages nouveaux sont introduits, les deux premiers s'appliquant en mode multi-zones:
26 => MSGZDP :
"PREPAMSG": ZONE DONT L'ADRESSE EST DUPLIQUEE.
27 => MSGNZD :
"PREPAMSG": PLUS DE DEUX ZONES SIMULTANEES.
28 => MSGLZN :
"PREPAMSG": ZONE A LIBERER NON TROUVEE.
31 => MSGINCL :
FICHIER "&01" "&02": INCLUDE ".I" TROP PROFOND.
L'INTERFACE MESSAGES ARIANE-85 / PL/1.
Les messages d'erreurs figurant dans les programmes PL/1, utilisés lors des compilations des données linguistiques, en
phase SYGMOR, posaient un problème particulier. En effet, la composante "PREPAMSG", de traitement des messages,
n'est aisément interfaçable qu'avec des langages tels que l'Assembleur 370, ou PL360. On a donc développé un interface (de
nom "PLIMSG") entre "PREPAMSG" et PL/1, et dont l'utilisation a conduit à quelques adaptations des programmes PL/1.
Présentation du problème.
En ARIANE-78, tous les messages figurant dans les programmes PL/1 sont, soit extraits sur un fichier "FILE ERREURS",
sous le contrôle d'une instruction PL/1 du type:
- a) PUT FILE (ERREURS) EDIT (<data-list>) (<format-list>) ;
soit affichés directement au terminal par:
- b) DISPLAY (<element-expression>) ; où :
-
<data-list> comporte des chaînes de caractères explicites (donc liées à la langue de dialogue), des
noms de variables PL/1, éditées selon le <data-format-item> associé.
-
- <format-list> est une liste, contrôlant le formatage, qui comporte des éléments de contrôle de
l'édition des données (<data-format-item>), et des éléments de contrôle du formatage de la sortie
associée (<control-format-item> tels que "SKIP": saut de ligne; "COL": positionnement dans la
ligne).
2
-
- <element expression> est une expression évaluée en chaîne de caractères (varying).
Modifications apportées.
Les modifications apportées sont telles que l'on reste très proche des anciennes conventions, et que l'on garde le bénéfice de
l'édition par PL/1, des valeurs de variables.
Une première étape édite les variables PL/1 et les noms de messages (remplaçant les chaînes explicites) vers une variable
PL/1 de type chaîne de caractères (longueur maximale = 256). Ensuite, on fait appel à l'interface (procédure "PLIMSG"),
avec la chaîne précédente en entrée. En retour, on obtient une chaîne (longueur maximale de 132), correspondant à la chaîne
d'entrée, et où les noms de messages ont été substitués par leurs valeurs (prises dans le module de messages associé). La
troisième et dernière étape réalise l'affichage ("DISPLAY"), ou la sortie sur fichier ("PUT FILE") du résultat de l'appel à
"PLIMSG", augmenté des "<control-format-item>" figurant primitivement.
La convention adoptée pour distinguer noms de messages et texte consiste à encadrer les premiers entre "/*" et "*/". Les
"<control-format-item>" ne peuvent figurer lors de la première étape, car leur emploi est illicite pour l'édition d'une chaîne.
On notera qu'avec les conventions adoptées, on considère que le message résultant est déterminé par une séquence de
"<noms-de-message>" et "valeurs", en alternance. Cela explique que, dans le fichier des messages, tout message
élémentaire se termine par "&01", et qu'on y fasse figurer un message particulier (message vide de nom "MSGVD"), dont la
valeur est '&01', qui est pris en compte lorsque la séquence débute par une valeur.
Emploi des nouvelles conventions.
Ce qui précède conduit à des séquences analogues à:
- dans le cas a)
PUT STRING (CHAIN1) EDIT (<data-list>) (<format-list>) ;
CALL PLIMSG (CHAIN1, CHAIN2) ;
PUT FILE (ERREURS) EDIT (CHAIN2) (<format-list>) ;
- dans le cas b)
PUT STRING (CHAIN1) EDIT (<data-list>) (<format-list>) ;
CALL PLIMSG (CHAIN1,CHAIN2) ;
DISPLAY (CHAIN2) ;
Initialisation et fermeture des messages.
Ces opérations doivent figurer en début et fin d'un module PL/1. Elles se traduisent par un appel à la procédure "INIMSG",
avec trois paramètres:
- a) le nom du programme principal (qui est aussi le nom du fichier des messages sources à prendre en compte)
(type CHAR(8)),
- b) le nom du module de messages associé (type CHAR(8)),
3
- c) une chaîne de caractères, qui est passée en paramètres lors de l'appel du module PL/1 (type CHAR(48)), et
qui comporte:
- c1) <cld> : le code langue de dialogue,
- c2) <tsm> : le type de sortie des messages (T/I/D/N),
- c3) <n> : le nom (ou "*"),
- c4) <t> : le type, (ou "*"), de l'éventuel fichier des valeurs de paramètres pour les messages,
- c5) <nb> : le nombre de blocs de 1K.octets, pour la zone des messages,
Ces éléments doivent être séparés par des "," et la liste se termine par ".".
La fermeture est obtenue en mettant "*" comme premier caractère de <cld> (c1)).
Paramétrage des programmes PL/1, et retour d'un code d'erreur.
L'appel des modules PL/1 a été paramétré par une variable chaîne de caractères ("VALPAR") de longueur maximale = 48.
L'emploi des conventions d'appel direct d'un module PL/1 permet son affectation.
<nom-du-module> / <cld> , <tsm> , <n> , <t> , <nb> .
Tout comme les autres modules d'ARIANE-85, les modules PL/1 retournent désormais un "code erreur", indiquant la
rencontre d'anomalies en cours de traitement. Les diagnostics d'erreurs sont toujours consignés dans le fichier "FILE
ERREURS".
La génération des modules PL/1 implique le chargement des programmes "PLIMSG" et "PREPAMSG".
CONCLUSION.
S'ajoutant aux programmes d'exécution déjà adaptés à l'interface des messages ARIANE-85, c'est désormais une grande
partie (65000 lignes) des programmes de compilation des données linguistiques dont la gestion se trouve dissociée de celle
des messages (environ 2000) qui leur correspondent.
DOCUMENTS REFERENCES.
(1) ARIANE-78 version 5 - Transformations à apporter à ARIANE-78 en vue du projet ESOPE.
Ch.BOITET - 22/09/82.
(2) L'interface utilisateur multilingue en ARIANE-85.
P.GUILLAUME - 16/06/86.
(3) L'interface utilisateur multilingue en ARIANE-85, modifications apportées.
P.GUILLAUME - 03/12/86.
4