D&Do v. 1.0 Prev Next Top
Note: Cette section n'a d'intérêt que pour ceux qui construisent des métascripts. Les autres lecteurs pourraient éventuellement trouver des informations intéressantes.
Aussi longtemps que l'activité de D&Do n'a pas déclenché, D&Do ne fait que collectionner une liste d'objets déposés sur sa cible. Cette liste est remplie selon la séquence suivante:
- Les objets étiquetés (si le métascript spécifie des étiquettes)
- Les objets non étiquetés
Par exemple, si le métascript spécifie deux étiquettes, la liste d'objets sera remplie dans la séquence suivante:
- Objet numéro 0: Le premier objet, celui qui sera associé à l'étiquette 0
- Objet numéro 1: Le deuxième objet, celui qui sera associé à l'étiquette 1
- Objet numéro 2: Le premier objet; non associé à une étiquette
- Objet numéro 3 et plus: Chaque objet ultérieur. Aucun de ces derniers n'est associé à une étiquette
Dans le texte du modèle de la liste d'arguments (un exemple est décrit dans la section Exploration des fichiers métascripts et la section Tutoriel de métascripts), chaque objet étiqueté est identifié par une variable de modèle *n qui porte le numéro d'étiquette (i.e variable *0 pour l'objet associé à l'étiquette 0, le *1 est associé à l'étiquette 1, etc). Les objets non étiquetés sont identifiés collectivement par la variable *#. (Voir aussi la sous-section Modèle par défaut de la liste d'arguments)
Note: Au besoin, ces paires de caractères peuvent être redéfinies.
Au déclenchement (soit un clic sur la cible, soit l'utilisation de la dernière étiquette ou soit le dépôt de tout objet valide), une chaîne d'événements s'ensuit, telle qu'illustrée et décrite plus bas:

- La variante courante des modèles de liste d'arguments est utilisée pour créer la liste résolue de ses arguments.
- Un modèle de liste d'arguments contient:
- La composante statique (non transformée)
- Zéro, une ou plusieurs instances de la variable de modèle: le presse-papiers; ces instances sont identifiées par la paire de caractères: **.
- Zéro, une ou plusieurs instances de la variable de modèle: objet étiqueté n. Ces instances sont identifiées par la paire de caractères: *n, où n identifie le numéro d'étiquette.
- Zéro, un ou plusieurs instances de la variable de modèle: objets non étiquetés; ces instances sont identifiées par la paire de caractères: *#. Ces objets sont utilisés soit comme liste ou soit un par un. Ce dernier cas s'applique si le paramètre comportement-type BB est réglé à 5 ou 7.
- La liste d'arguments est donc résolue; remplaçant chaque variable de modèle par la la valeur de l'objet correspondant ou du contenu du presse-papiers.
Selon les paramètres KOTE, CKOTE, DKOTE et TKOTE du métascript, des guillemets pourraient être ajoutés au contenu des variables du modèle, selon une méthode donnée.
Un parseur de commandes segmentera la liste résolue d'arguments en ses items. C'est soit un parseur interne spécifié (le paramètre PARS du métascript) ou soit un parseur implicite qui dépend de l'engin virtuel de Java (Java Virtual Machine), en particulier, sur quel système d'exploitation cet engin a été adapté.
- Le programme est exécuté avec la liste résolue d'arguments et propement segmentée. Si le paramètre BB est réglé à 5 ou 7, cette commande sera appelée pour chaque objet non ériqueté de la liste.
- Cette commande génère une réponse sur la sortie de système et éventuellement sur d'autres sorties (ex. sur la carte de son); ces autres sorties ne sont pas traitées par D&Do.
- La sortie du système est captée par D&Do. Si le paramètre OUTC: du métascript est réglé à 1 (OUTC:1), ces données seront transférées vers le presse-papiers.
- Le code exit du programme est aussi capté par D&Do pour être interprété puis pour être ajouté sur la liste de messages de rapport d'activité de D&Do.
À partir de ce point, l'usager peut utiliser le contenu du presse-papiers, collant son contenu dans l'application de son choix.
Note: Le D&Do gratuiciel ne traite que la première instance de chaque variable; c'est une restriction imposée au gratuiciel. Normalement, un argument est associé à une variable de modèle distincte; c'est le cas le plus courant mais ce n'est pas une nécessité.
Prev Next Top
Copyright(c) 2003-2004 Marcel St-Amant