Введение в
    синтаксис Tcl.

Для скриптового языка Tcl имеет достаточно простой синтаксис.

cmd arg arg arg
$foo
[clock seconds]
"some stuff"
{some stuff}
\
Теперь небольшой пример.
Ниже код, который выводит текущее время. В нем использовано три Tcl команды: set, clock и puts. Команда set присваивает значения переменным. Clock манипулирует временем. Puts выводит значения.
Заметьте, что мы не использовали $, когда инициализировали переменную. $ необходим, только когда нужно получить значение переменной. Вообще-то переменная seconds не нужна в этом примере. Текущее время можно вывести и следующим способом:

Разбор Tcl синтаксиса происходит в три этапа: группировка аргументов (argument grouping), подстановка результата (result substitution) и отправка команды (command dispatch).

1. Группировка аргументов (argument grouping).

2. Подстановка результата (result substitution).

3. Выполнение команды (command dispatch)

И вот еще один пример:

set i 0 while {$i < 10} {
}

Здесь фигурные скобки использованы для объединения аргументов без подстановки. Для интерпретатора команда while ничем не отличается от остальных команд. Он и выполняет ее как любую другую команду. И только соответствующая while процедура знает, что первый аргумент - выражение, а второй - Tcl команды. Скобки формируют два аргумента: булево выражение, которое контролирует цикл, и команды, составляющие тело цикла. Мы также видим два математических выражения: операцию сравнения, и опреацию умножения. Комада while автоматически выполняет свой первый аргумент, как выражение. В других случаях следует обязательно использовать команду expr для выполнения математических операций.

Итак, Tcl использует внешние вызовы для выполнения всей тяжелой работы. Мы видели, что Tcl использует expr для математики, puts для вывода и set для инициализации переменных. Эти вызовы обслуживаются C - функциями, которые обозначили себя в dispatch table. C - команды принимают строковые аргументы от Tcl команд и возвращают новые строки в качестве результата. Очень легко можно добавить собственные C - обработчики для собственных Tcl - команд. Благодаря этому Tcl можно использовать для любых задач, вплоть до работы с базами данных и создания GUI. Tcl, как интерпретатор, в действительности даже не будет знать, что команды собственно делают. В его задачи входит только группировка аргументов, подстановка значений и вызов команд.

И самый последний пример. Процедура вычисления факториала.

proc fac {x} {
}

Back to PiG's Homa Paga