"Gosub" permet d'appeler un sous-programme à une étiquette donnée.
Gosub étiquette [From nom_trt]
Elément | Description | Restrictions |
étiquette | étiquette pouvant être précédée du caractère '$'. | Doit être définie dans le traitement. |
nom_trt (1) (2) (3) | nom_d'OBJet '=' expr_c chaine | |
nom_d'OBJet | nom_d'OBJet désignant un traitement | Il doit exister |
expr_c | expression de type Char dont le résultat est une chaine | |
chaine (1) (2) (3) | nom_d'OBJet application"."nom_d'OBJet chemin absolu du traitement |
# Programme de gestion qui pourra être appelé par Gosub GESTION_ZONES$GESTION_ZONES
Gosub INIT_ZONESWhile 1
Gosub SAISIE_CHOIXCase [M]CHOIX
When 'E' : Gosub EFFACE_ZONEWhen 'F' : Gosub FIN_GESTION : ReturnWhen 'M' : Gosub MODIF_ZONEWhen 'C' : Gosub CREER_ZONEWhen Default : Gosub ERREUR_CHOIXEndcase
Wend
Return
# On veut être sûr de lancer le traitement "SECUR" de la premiére
# application de référence et pas un autre
Gosub ETIQ From =adxmother(0)+".SECUR"
"Gosub" permet de faire appel à un sous-programme défini ou non dans le même traitement. Un tel sous-programme est identifié par une étiquette. Son exécution s'arrête sur exécution de l'instruction "Return", et il redonne la main à l'instruction suivant le "Gosub".
Schématiquement, on a l'ordre d'exécution des instructions suivant, (les chiffres entre parenthèses indiquant cet ordre) :
(1) Gosub ETIQUETTE
(2) $ETIQUETTE (3) Instructions du sous-programme (4) Return |
(5) Instructions APRES Gosub
(6) End
Un sous-programme appelé par "Gosub" ne doit pas se terminer par un "End" mais par un "Return".