数字集成电路静态时序分析基础笔记(2)
TCL控制流
语法格式:
if{判断条件}{
脚本语句
}elseif{判断条件}{
脚本语句
}else{
脚本语句
}
注意,上例中脚本语句的‘{’一定要写在上一行,因为如果不这样,TCL解释器会认为if命令在换行符处已结束,下一行会被当做新的命令,从而导致错误。
循环指令-foreach
语法格式:foreach变量 列表 循环主体
功能:从第0个元素开始,每次按顺序取得列表的一个元素,将其赋值给变量,然后执行循环主体一次,直到列表最后一个元素。
循环控制指令-break
语法格式:break
功能:结束整个循环过程,并从循环中跳出
循环控制指令-continue
功能:仅结束本次循环
循环控制指令-while
功能:如果判断语句成立(返回值非0),就运行脚本,知道不满足条件停止循环,此时while命令中断并返回一个空字符串。
循环控制指令-for
语法格式:
for 参数初始化 判断语句 重新初始化参数 循环主体
功能:如果判断语句返回值非0就进入循环,执行循环主体后,再重新初始化参数。然后再次进行判断,直到判断语句返回值为0,循环结束。
过程函数
过程函数-proc
语法格式:proc 函数名 参数列表 函数主体
功能:类似于C语言中的函数。即用户自定义的功能,方便多次调用。
全局变量与局部变量
全局变量:在所有过程之外定义的变量。
局部变量:对于在过程中定义的变量,因为他们只能在过程中被访问,并且当过程退出时会被自动删除。
指令global,可以在过程内部引用全部变量。
正则匹配
定义:正则表达式是一种特殊的字符串模式,用来去匹配符合规则的字符串。
正则表达式的\w,用来匹配一个字母、数字、下划线
正则表达式的\d,用来匹配一个数字
abc123 \w\w\w\d\d\d
\w\w\w\d\d\d这种写法过于繁琐,我们可以用代替重复的量词进行表示。
在TCL中常用一下三种量词
符号 功能 | |
---|---|
* | 零次或多次匹配 |
+ | 一次或者多次匹配 |
? | 零次或者一次匹配 |
字符串 abc123
正则表达式 \w+\d+ 或者 \w*\d*
正则匹配指令-regexp
实例:
捕获变量
文本处理
用TCL处理文本在工作中十分常用
主要掌握以下三个指令
open
gets
close
例题:
相关文章
- Ubuntu中设置静态IP和DNS
- UrlRewrite:重写url,实现伪静态、缩短URL、高安全性
- linux gcc 链接静态库的几种方式
- 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点
- 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点
- 基于HTML+CSS实现的静态的电影网站【100010106】
- Java的静态成员类
- php中static静态关键字的使用
- zuul(springboot)设置静态资源代理和默认首页代码一例
- express中的中间件(middleware)、自定义中间件、静态文件中间件、路由中间件
- Linux | 编译器gcc/g++的使用【动静态库的认识】
- 网络地址转换--静态NAT
- Java多线程-静态代理
- [砖载]VMware VMnet8 模式共享主机网络配置静态 IP 和 DNS