Tcl 编程简介
简介
Tcl 是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是
tool command language 的缩写,发音为 "tickle”, 实际上包含了两个部分:一个语言和一个
库。
首先,Tcl 是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、
调试器和 shell。它有一个简单的语法和很强可扩充性,Tcl 可以创建新的过程以增强其内建
命令的能力。
其次,Tcl 是一个库包,可以被嵌入应用程序,Tcl 的库包含了一个分析器、用于执行
内建命令的例程和可以使你扩充(定义新的过程)的库函数。应用程序可以产生 Tcl 命令并
执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。 但
Tcl 库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。
下面简单介绍以下 txl 的语法规则:
解释器
在 Tcl 的数据结构中的核心是 Tcl_Interp.一个解释器包含了一套命令,一组变量和一些
用于描述状态的东西。每一个 Tcl 命令是在特定的 Tcl_Interp 中运行的,基于 Tcl 的应用程序
可以同时拥有几个 Tcl_Interp。Tcl_Interp 是一个轻量级的结构,可以快速的新建和删除。
数据类型
Tcl 只支持一种数据结构:字符串(string)。所有的命令,命令的所有的参数,命令的
结果,所有的变量都是字符串。请牢记这一点,所有的东西都是字符串。 这是它比较有特
点的方面字符串有三种形式:命令(command), 表达式(expresion)和表(list)。
Basic Command Syntax 基本语法
Tcl 有类似于 shell 和 lisp 的语法,当然也有许多的不同。一 条 Tcl 的命令串包含了一
条或多条命令用换行符或分号来隔开,而每一条命令包含了一个域(field)的集合,域使用空
白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。
例如:
set a 22 //相当于 C 中的 a=22 a 是一个变量这条命令分为三个域:1: set 2: a 3: 22 set
使用于设置变量的值的命令,a、20 作为参数来传给它,a 使它要操作的变量名,22 是要付
给的 a 值。
Tcl 的命令名可以是内置的命令也可以是用户建的新命令,如果是用户用户建的新命令
应用程序中用函数 Tcl_CreateCommand 来创建。所有的参数作为字符串来传递,命令自己
会按其所需来解释的参数的。命令的名字必须被打全,但 Tcl 解释器找不到一同名的命令
时会用 unknown 命令来代替。
在很多场合下,unknown 会在库目录中搜寻,找到一个的话,会自动生成一个 Tcl 命
令并调用它。unknown 经常完成缩略的命令名的执行。但最好不要使用。
注释
和 shell 很象,第一个字母是"#"的 Tcl 字符串是注释。
其他细节规则
Grouping arguments with double-quotes 用双引号来集群参数,目的在于使用有空白的参
数。
例如:
set a "this string contains whitespace"
如够一个参数一双引号来开始,该参数会一直到下一个双引号才结束。其中可以有换行
符和分号。