Les fichiers sources sont dans le répertoire ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/appel/.
Ne pas oublier de :
[UpsSng]
CheminSources=${UPS_HOME}/demo/sources/${UPS_USER}
upscmp Source=interpreter.upl
interpreter CheminSources=$UPS_HOME/demo/source/${UPS_USER}
upssng Source=interpreter.upl CheminSources=$UPS_HOME/demo/source/${UPS_USER}
Source Module "Exemple d'emploi de l'interpretation" Version 4.0.0 ModuleDynamique;
Composant Dans <libi1.upl>;
Source Composant "Exemple d'emploi de l'interpretation" Version 4.0.0 RattacherA <libi.upl>;
Procedure Appel1()
/****************/
Debut
Ecran.Ecrire("Appel1();");
Fin Procedure
Procedure Appel2(Prm1:Booleen, Prm2:Entier, Prm3:Reel, Prm4:Caractere Entree Sortie)
/**********************************************************************************/
Debut
Ecran.Ecrire("Appel2("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel2";
Fin Procedure
Fonction Appel3() Retourner Booleen
/*********************************/
Debut
Ecran.Ecrire("Appel3();");
Retourner Vrai;
Fin Fonction
Fonction Appel4(Prm1:Booleen, Prm2:Entier, Prm3:Reel, Prm4:Caractere Entree Sortie) Retourner Booleen
/***************************************************************************************************/
Debut
Ecran.Ecrire("Appel4("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel4";
Retourner Vrai;
Fin Fonction
Fonction Appel5() Retourner Entier
/********************************/
Debut
Ecran.Ecrire("Appel5();");
Retourner 10;
Fin Fonction
Fonction Appel6(Prm1:Booleen, Prm2:Entier, Prm3:Reel, Prm4:Caractere Entree Sortie) Retourner Entier
/**************************************************************************************************/
Debut
Ecran.Ecrire("Appel6("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel6";
Retourner 10;
Fin Fonction
Fonction Appel7() Retourner Reel
/******************************/
Debut
Ecran.Ecrire("Appel7();");
Retourner 11.11;
Fin Fonction
Fonction Appel8(Prm1:Booleen, Prm2:Entier, Prm3:Reel, Prm4:Caractere Entree Sortie) Retourner Reel
/************************************************************************************************/
Debut
Ecran.Ecrire("Appel8("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel8";
Retourner 11.11;
Fin Fonction
Fonction Appel9() Retourner Caractere
/***********************************/
Debut
Ecran.Ecrire("Appel9();");
Retourner "schuss";
Fin Fonction
Fonction Appel10(Prm1:Booleen, Prm2:Entier, Prm3:Reel, Prm4:Caractere Entree Sortie) Retourner Caractere
/******************************************************************************************************/
Debut
Ecran.Ecrire("Appel10("+Caractere(Prm1)+","+Caractere(Prm2)+","+Caractere(Prm3)+","+Prm4+");");
Prm4="hello Appel10";
Retourner schuss";
Fin Fonction
Source Composant "Exemple d'emploi de l'interpretation" Version 4.0.0;
ImporterModule
/************/
UpsSng(<UpsSng>,ImporterDefinitions);
Procedure EnvoyerErreur(MessageEnvoye:Caractere, ?:Entier, ?:Entier, ?:Caractere)
/*******************************************************************************/
Debut
Ecran.Ecrire(MessageEnvoye);
Fin Procedure
Principal
/*******/
Variable
/******/
L : Nul Ou ListeDe Nul Ou Objet;
L2 : Nul Ou ListeDe Nul Ou Objet;
Debut
Si Non DebuterInterpretation(EnvoyerErreur) Alors
Retourner 1;
Fin Si
L=ListeDe(Objet(Vrai));
L+=Objet(5);
L+=Objet(3.14159);
L+=Objet("salut");
InterpreterProcedure("libi.upl", "Appel1", L2);
InterpreterProcedure("libi.upl", "Appel2", L);
Ecran.Ecrire(Caractere(Booleen(InterpreterFonction("libi.upl", "Appel3", L2))));
Ecran.Ecrire(Caractere(Booleen(InterpreterFonction("libi.upl", "Appel4", L))));
Ecran.Ecrire(Caractere(Entier(InterpreterFonction("libi.upl", "Appel5", L2))));
Ecran.Ecrire(Caractere(Entier(InterpreterFonction("libi.upl", "Appel6", L))));
Ecran.Ecrire(Caractere(Reel(InterpreterFonction("libi.upl", "Appel7", L2))));
Ecran.Ecrire(Caractere(Reel(InterpreterFonction("libi.upl", "Appel8", L))));
Ecran.Ecrire(Caractere(InterpreterFonction("libi.upl", "Appel9", L2)));
Ecran.Ecrire(Caractere(InterpreterFonction("libi.upl", "Appel10", L)));
Ecran.Ecrire("\n");
InterpreterInstruction("Ecran.Ecrire(\"Bonjour le monde !\");");
InterpreterBlocDInstructions("Variable A:Caractere;\nDebut\nA=\"Bonjour le monde !\";\nEcran.Ecrire(A);");
Ecran.Ecrire(Caractere(Booleen(InterpreterExpression("NumeroProcessus==1"))));
Ecran.Ecrire(Caractere(Entier(InterpreterExpression("NumeroProcessus*10+5"))));
Ecran.Ecrire(Caractere(Reel(InterpreterExpression("NumeroProcessus/10.0-5"))));
Ecran.Ecrire(Caractere(InterpreterExpression("NomProgramme+\"!!!\"")));
TerminerInterpretation();
Fin Principal