POUR-VOUS-AIDER
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

POUR-VOUS-AIDER

Le forum consacré à l'aide informatique
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
-23%
Le deal à ne pas rater :
(Adhérents Fnac) Kit de démarrage 3 ampoules connectées Philips ...
99.99 € 129.99 €
Voir le deal

 

 TCL

Aller en bas 
AuteurMessage
Sara
Fondatrice - Adminstrateur
Fondatrice - Adminstrateur
Sara


Nombre de messages : 56
Date d'inscription : 17/10/2004

TCL Empty
MessageSujet: TCL   TCL Icon_minitimeSam 30 Oct - 6:52

Les règles suivantes définissent la syntaxe et la sémantique du langage TCL en onze règles :

1. Commandes. Un script TCL est une chaîne contenant une ou plusieurs commandes. Les points-virgule et les caractères RL sont des séparateurs de commande sauf s'ils sont commentés comme décrit ci-dessous. Les crochets fermés sont des terminateurs de commande pendant la substitution de commande (voir ci-dessous) à moins qu'ils soient mis en commentaire.

2. Evaluation. Une commande est évaluée en deux étapes. D'abord, l'interprèteur de TCL décompose la commande en mots, puis il exécute des substitutions comme décrites ci-dessous. Ces substitutions sont exécutées de la même manière pour toutes les commandes. Le premier mot est utilisé pour localiser la procédure adéquate pour effectuer la commande, puis, tous les mots de la commande sont passés à la procédure. La procédure de la commande est libre d'interpréter chacun de ses mots comme elle le souhaite, par exemple comme un nombre entier, un nom de variable, une liste, ou un script TCL. Les différentes commandes interprètent leurs mots différemment.

3. Mots. Les mots d'une commande sont séparés par des espaces (excepté les caractères RL (Retour à la Ligne), qui sont les séparateurs de commande).

4. Guillemets. Si le premier caractère d'un mot est un guillemet (« " ») alors le mot sera terminé par le prochain guillemet. Si des points-virgule, des crochets fermants, ou des espaces (caractères RL y compris) apparaissent entre les guillemets, alors ils seront traités comme des caractères ordinaires et inclus dans le mot. Les substitutions de commandes, de variables, et d'antislash sont exécutées sur les caractères entre guillemets comme décrite ci-dessous. Les guillemets ne sont pas considérés comme faisant partie du mot.

5. Accolades. Si le premier caractère d'un mot est une (« { ») accolade ouverte, alors le mot sera terminé par l'accolade fermée («}») correspondante. Imbrication d'accolades : pour chaque accolade ouverte il doit y a une accolade fermée correspondante (cependant, si une accolade ouverte ou fermée est mise en commentaire avec un antislash, elle sera ignorée dans cette recherche de correspondance). Aucune substitution n'est exécutée sur les caractères entre accolades, exceptés les substitutions d'antislash-RL décrites ci-dessous. Les points-virgule, RL, crochets, et les espaces ne sont sujets à aucune interprétation spéciale. Le mot se composera exactement des caractères entre les accolades externes, les accolades elles-mêmes non-comprises.

6. Substitution de commandes. Si un mot contient un crochet ouvert («[») alors TCL exécute une substitution de commande. Pour se faire, il utilise l'interprèteur TCL de manière récursive pour traiter les caractères entre crochets comme un script TCL. Le script peut contenir n'importe quel nombre de commandes et doit se terminer par un crochet fermé («]»). Le résultat du script (c.-à-d. le résultat de sa dernière commande) est substitué dans le mot au lieu des crochets et de tous les caractères entre eux. Il peut y avoir n'importe quel nombre de substitutions de commande dans un unique mot. La substitution de commande n'est pas exécutée sur les mots entre accolades.

7. Substitution de variables. Si un mot contient un symbole dollar («$») alors TCL exécute une substitution de variable : le symbole dollar et les caractères suivants seront remplacés dans le mot par la valeur d'une variable. La substitution de variable peut prendre n'importe laquelle des formes suivantes :

$nom nom est le nom d'une variable scalaire ; le nom est une suite d'un ou plusieurs caractères qui peuvent être une lettre, un chiffre, un souligné, ou des séparateurs d'espace de noms (namespace) (2 deux points («::») ou plus).

$nom(index) nom donne le nom d'un tableau de variables et index donne le nom d'un élément dans ce tableau. nom doit contenir seulement des lettres, des chiffres, des soulignés, et des séparateurs d'espace de noms, il peut être une chaîne vide. Les substitutions de commandes, de variables, et d'antislash sont exécutées sur les caractères d'index.

${nom} nom est le nom d'une variable scalaire. Il peut contenir n'importe quels caractères exceptés une accolade fermée. Il peut y avoir n'importe quel nombre de substitutions de variables dans un unique mot. La substitution variable ne sera pas exécutée sur des mots entre accolades.

8. 'Substitution d'antislash.' Si un antislash («\») apparaît dans un mot alors une substitution d'antislash se produit. Dans tous les cas sauf ceux décrits ci-dessous, l'antislash est abandonné et le caractère suivant est traité comme caractère ordinaire et inclus dans le mot. Ceci permet d'inclure des caractères tels que des guillemets, crochets, dollar sans déclencher de traitement spécial. Le tableau suivant présente les substitutions d'antislash qui sont manipulées particulièrement avec leur valeur de remplacement.

\ a Alerte audible (bell) (0x7).

\ b Retour arrière (0x8).

\ f Avance d'une page (0xc).

\ n Caractère RL (Retour à la ligne) (0xa).

\ r Retour chariot (0xd).

\ t Tabulation (0x9).

\ v Tabulation verticale (0xb).

\ <retour à la ligne>espace Un espace unique remplace l'antislash, le retour à la ligne et les tous les espaces et tabulations qui suivent. Cette substitution d'antislash est unique parcequ'elle sera effectuée dans un cycle distinct avant que la commande ne soit réellement analysée. Ce qui veut dire qu'elle se produira même lorsqu'elle se trouve entre accolades. L'unique espace résultant de cette substitution sera traité comme séparateur de mot s'il n'est pas entre des accolades ou des guillemets.

\ \ Antislash («\»).

\ ooo Le nombre ooo (un, deux, ou trois chiffres) indique la valeur octale de huit bits pour le caractère Unicode désiré. Les bits supérieurs du caractère Unicode auront pour valeur 0.

\ xhh Le nombre hh indique la valeur hexadécimale de huit bits pour le caractère Unicode désiré. N'importe quel nombre de chiffres peut être donné, toutefois, seuls les deux derniers seront considérés (le résultat est toujours un octet). Les bits supérieurs du caractère Unicode auront pour valeur 0.

\ uhhhh Le nombre hhhh (un, deux, trois, ou quatre chiffres) indique la valeur hexadécimale de seize bits pour le caractère Unicode désiré. La substitution d'antislash n'est pas exécutée sur des mots entre accolades, sauf pour l'antislash-&lt;retour à la ligne&gt; comme c'est indiqué ci-dessus.

9. Commentaires. Si le signe dièze («#») apparaît à un endroit où TCL attend le premier caractère d'un mot ou d'une commande, alors le caractère dièze et les caractères qui le suivent, jusqu'au prochain retour à la ligne, seront traités comme commentaire et ignorés. Le caractère de commentaire n'est significatif que s'il apparaît au début d'une commande.

10. Ordre de substitution. Chaque caractère est traité exactement une seule fois par l'interprèteur TCL en tant qu'élément de création des mots d'une commande. Par exemple, si une substitution de variable se produit, alors aucune substitution supplémentaire ne sera faite sur la valeur de cette variable : sa valeur sera insérée in extenso dans le mot. Si une substitution de commande se produit, alors la commande imbriquée est traitée entièrement par un appel récursif de l'interprèteur TCL : aucune autre substitution ne sera faite avant cet appel récursif et aucune substitution additionnelle ne sera exécutée sur le résultat du script.

Les substitutions ont lieu de gauche à droite et chaque substitution est évaluée complètement avant d'essayer d'évaluer la suivante. Ainsi, la commande suivante :

set y [set x 0][incr x][incr x]
affectera toujours la valeur, 012 à la variable y.

11. Bornes des substitutions. Les substitutions n'affectent pas les bornes des mot d'une commande. Ainsi, pendant la substitution d'une variable, l'intégralité de la valeur de la variable devient une partie unique du mot, même si la valeur de cette variable contient des espaces.
Revenir en haut Aller en bas
 
TCL
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
POUR-VOUS-AIDER :: Programmation :: Les langages :: Les scripts Tcl-
Sauter vers: