Débuter en Tcl et programmer en Tcl
Première partie : Tcl
–Tcl ne manipule que des chaînes de caractères [strings]
– syntaxe
• command arg1 arg2 ?arg3 ….argn? ?args?
› command : commande intrinsèque [built -in] ou procédure
› arguments : chaîne de caractères !
› séparateur entre commandes et arguments : espace ou tabulation
› séparateur entre commandes : retour à la ligne ou ;
-Evaluation de la commande
• interprétation
› pas de sens appliqué aux mots
› substitution (voir plus loin)
• exécution
› 1er mot = commande (Tcl vérifie que cette commande existe)
› autres mots = arguments passés à la commande
Interprétation
-Substitution de variables : $
set var1 20 => 20
set var2 $var1 => 20
set var3 aaa$var1 => aaa20
‡ set var4 $var1aaa => var1aaa n’existe pas !!!
set var4 ${var1}aaa => 20aaa
– Substitution de commandes : […]
set degreCelsius 37
set degreF [expr $degreCelsius *9/5 +32] => 100
– Substitutions backslash : \
• utilisé pour l’interprétation de certaines séquences spéciales : \n \r 15 puts « Le résultat est : \t$var1\n\n »
• utilisé pour interdire l’interprétation de certains caractères \$ \[ \] \; \<Space> \<Newligne> … puts « Le prix de ce livre est de 26.4 \$ »
Mathématique : expr et tcl_precision
– Pour tout calcul d’expression mathématique, on utilise la commande expr expr 7.2/3
set len [expr [string length Hello] + 7] => 12
set pi [expr 2*asin(1.0)] => 3.141592
-Les opérations prises en compte par Tcl sont résumées dans le Ref. G 4
– Précision des nombres
› par défaut, la précision est de 6 digits
expr 1./3. => 0.333333
› cette précision peut être modifiée en précisant la variable tcl_precision
set tcl_precision 17
expr 1./3. => 0.33333333333333333
Quelques commandes de base
• set varName ?value?
› lors de la définition d’une variable, seul le nom apparaît (!différent de perl)
› sans argument value, cette commande retourne simplement le contenu de la variable varName
set a 20 => 20
• unset varName ?varName2 …?
› supprime la définition de la variable dans le code
• incr varName ?increment?
› incrémente le contenu de la variable varName de increment (1 par défaut)
incr a 4 => 24
› il faut que varName et increment soient entier!
• puts ?fileId? string
› par défaut, fileId vaut stdout; Tcl connaît aussi stdin et stderr puts stderr « Error : x in undefined »
Débuter en Tcl et programmer en Tcl (195 KO) (Cours PDF)