Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/selon.upl.
upscmp Source=selon.upl
selon
upssng Source=selon.upl
Source Composant "Exemple d'emploi de Selon" Version 4.0.0;
Enumere
/*****/
Couleur Dans (Rouge, Vert, Bleu, Jaune, Gris, Noir);
Sexe Dans (Homme, Femme);
Meteo Dans (Beau, Voile, Couvert, Pluie);
Type TA
/*****/
A : Entier;
Selon B : Couleur Faire
Cas B1 Dans (Rouge, Vert) Faire
C : Caractere;
D : Reel;
Fin Cas
Cas B2 Entre Bleu Et Gris Faire
E : Entier;
F : Booleen;
G : Reel;
Selon AA:Sexe Faire
Cas Sexe1 Pour Homme Faire
BB : Entier;
Fin Cas
Cas Sexe2 Pour Femme Faire
CC : Reel;
Fin Cas
Fin Selon
Fin Cas
Defaut
H : Date;
Selon DD : Meteo Faire
Cas Meteo1 Dans (Beau, Voile) Faire
EE : Caractere;
Fin Cas
Cas Meteo2 Dans (Couvert, Pluie) Faire
FF : Entier;
Fin Cas
Fin Selon
Fin Defaut
Fin Selon
I : Entier;
Constructeur();
Procedure Afficher();
Fin Type
Procedure TA.Afficher()
/*********************/
Debut
Ecran.Ecrire("A=");
Ecran.Ecrire(A);
Selon B Faire
Cas Dans (Rouge, Vert) Faire
Ecran.Ecrire("Cas TA.B.B1");
Ecran.Ecrire("C=");
Ecran.Ecrire(B.B1.C);
Ecran.Ecrire("D=");
Ecran.Ecrire(B.B1.D);
Fin Cas
Cas Entre Bleu Et Gris Faire
Ecran.Ecrire("Cas TA.B.B2");
Ecran.Ecrire("E=");
Ecran.Ecrire(B.B2.E);
Ecran.Ecrire("F=");
Ecran.Ecrire(B.B2.F);
Ecran.Ecrire("G=");
Ecran.Ecrire(B.B2.G);
Selon B.B2.AA Faire
Cas Homme Faire
Ecran.Ecrire("Cas TA.B.B2.AA.Sexe1");
Ecran.Ecrire("BB=");
Ecran.Ecrire(B.B2.AA.Sexe1.BB);
Fin Cas
Cas Femme Faire
Ecran.Ecrire("Cas TA.B.B2.AA.Sexe2");
Ecran.Ecrire("CC=");
Ecran.Ecrire(B.B2.AA.Sexe2.CC);
Fin Cas
Fin Selon
Fin Cas
Defaut
Ecran.Ecrire("Cas TA.B.Defaut");
Ecran.Ecrire("H=");
Ecran.Ecrire(Caractere(B.Defaut.H, "%jj-%mm-%A"));
Selon B.Defaut.DD Faire
Cas Entre Beau Et Voile Faire
Ecran.Ecrire("Cas TA.B.Defaut.DD.Meteo1");
Ecran.Ecrire("EE=");
Ecran.Ecrire(B.Defaut.DD.Meteo1.EE);
Fin Cas
Cas Entre Couvert Et Pluie Faire
Ecran.Ecrire("Cas TA.B.Defaut.DD.Meteo2");
Ecran.Ecrire("FF=");
Ecran.Ecrire(B.Defaut.DD.Meteo2.FF);
Fin Cas
Fin Selon
Fin Defaut
Fin Selon
Ecran.Ecrire("I=");
Ecran.Ecrire(I);
Ecran.Ecrire("\n");
Fin Procedure
Principal
/*******/
Variable
/******/
VA : TA;
VB : TA;
VC : TA;
Debut
VA.A=1;
VA.B=Vert;
VA.B.B1.C="bonjour";
VA.B.B1.D=10.2;
VA.I=2;
VA.Afficher();
VB.A=2;
VB.B=Jaune;
VB.B.B2.E=12;
VB.B.B2.F=Vrai;
VB.B.B2.G=3.14;
VB.B.B2.AA=Homme;
VB.B.B2.AA.Sexe1.BB=12345;
VB.I=3;
VB.Afficher();
VC.A=3;
VC.B=Noir;
VC.B.Defaut.H=Date("10-10-1968");
VC.B.Defaut.DD=Pluie;
VC.B.Defaut.DD.Meteo2.FF=-12;
VC.I=4;
VC.Afficher();
VA.B=Rouge;
VA.Afficher();
VA.B=Bleu;
VA.B.B2.E=100;
VA.B.B2.F=Faux;
VA.B.B2.AA=Femme;
VA.B.B2.AA.Sexe2.CC=789.123;
VA.Afficher();
Fin Principal