tcl proc

news/2024/10/17 12:33:17/

原文链接:https://bbs.eetop.cn/thread-918745-1-1.html

作者:489315174

define_proc_attributes和parse_proc_arguments命令能够扩展tcl语言中proc的功能,创建和Synopsys命令一样具有help和属性的命令。

创建一个新的proc时,它具有以下固有属性:

•可以使用info body命令查看proc的内容

•proc可以被修改

•可以使用proc名称的缩写

•被放置在Procedures command group

通过使用define_proc_attributes命令, 可以



•指定命令的help文本

•指定参数规则

•是否禁止查看和修改

•是否禁止名称缩写

•指定command group

define_proc_attributes

使用define_proc_attributes命令来定义和更改proc的属性。其语法如下:

define_proc_attributes proc_name    
[-info info_text]
[-define_args arg_defs]
[-command_group group_name]
[-hide_body]
[-hidden]
[-permanent]
[-dont_abbrev]
proc_name 指定proc的名称

-info info_text 指定与help命令或者-help选项一起使用的help文本

-define_args arg_defs 指定proc参数的help文本及其属性

-permanent 防止修改proc

-dont_abbrev 无论sh_command_abbrev_mode变量设置什么,都防止使用proc的名称缩写



可以使用-define_args选项为该proc的参数指定help文本,并定义参数的数据类型和属性。



-define_args的参数是列表的列表。每个列表元素指定proc参数的属性

每个列表元素具有以下格式:

arg_name option_help value_help data_type attributes
arg_name 指定proc参数的名称

option_help 参数的简短描述

value_help 参数值的简短描述

data_type 指定参数的数据类型

attributes 指定参数的其他属性

define_proc_attributes Command Example



proc plus {a b}
{
return [expr $a + $b]

define_proc_attributes plus \ 
-info "Add two numbers" \ 
-define_args {
{a "first addend" a stringrequired} \ 
{b "second addend" b stringrequired} }

dc_shell> help  plus
plus                 # Add two numbers

dc_shell> help -verbose plus
Usage: plus # Add two numbers
a (first addend)
b (second addend)

dc_shell > plus 5 6
11
parse_proc_arguments

parse_proc_arguments命令可解析传递给proc的使用define_proc_attributes命令定义的参数。



通常,parse_proc_arguments是proc中第一个调用的命令来验证参数。不能在proc外使用parse_proc_arguments命令。



parse_proc_arguments的语法是

parse_proc_arguments -args arg_list result_array
-args arg_list 指定传递给proc的参数列表。

result_array 指定数组存储解析的参数。

proc plus { args }  ## 关键字 args 表示可变个数的参数
{parse_proc_arguments -args $args results    ## 将参数保存到数组中,数组名为 results,数组元素名字是参数名,元素值是参数值 
foreach argname [array names results] 
{
echo " $results($argname)"}

define_proc_attributes plus \
-info "echo two numbers" \
-define_args {
{a "first addend" a string required} \
{b "second addend" b string required} }
plus显示了parse_proc_arguments的使用。plus接受各种类型的参数,然后打印出来。

dc_shell> plus  a b
a  b
另外可以通过

info body procedure_name

info args procedure_name

proc_body procedure_name

proc_args procedure_name



分别打印出proc的主体和参数



如果不使用parse_proc_arguments命令,则proc将无法响应-help选项。 但是,始终可以使用help命令。


http://www.ppmy.cn/news/149505.html

相关文章

【资料分享】RS-485 串行接口说明

面对大量可用的串行接口,可能很难理解它们之间的差异以及何时使用它们。正如我最喜欢的工程学教授经常说的那样,“标准的美妙之处在于有很多标准可供选择。” 今天的编码器比以往任何时候都更智能、更先进,要求工程师放弃更简单的正交增量传感…

SQL——视图检查选项 local

create table stue ( id int auto_increment primary key comment 客户编号, name varchar(20) comment 客户名称, mima varchar(100) comment客户密码 , phonr varchar(20) comment 客户电话, xb char(2) …

“灵巧小工具”一个将图片处理成打印纸尺寸的丰富功能完全免费无水印的图片处理工具

今天推荐一款微信小程序“灵巧小工具”,经常有打印图片需求的用户赶紧收藏了。 可以先扫码体验一番: 下面介绍一下它的主要功能: 1.照片(1寸、2寸、5寸、6寸) 支持1寸,2寸照片自动排版,生成相纸…

【CocosCreator入门】CocosCreator组件 | TiledTile(地图块)组件

📢博客主页:肩匣与橘📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由肩匣与橘编写,首发于CSDN🙉📢生活依旧是美好而又温柔的,你也是✨ …

休闲笑话

1,今天在公交车上,身后突然传来一个声音:“菊花好痒。” 正想转头看哪位高人如此奔放,另一个声音幽幽地又传了过来:“我觉得还是仙人掌好养……” 2,甲:姐,如果有个男人伤害了你,你过多久才会原…

【JavaScript】笑话生成器

根据MDN网站学习记录笔记 笑话生成器 一、项目目标二、项目流程三、效果展示四、总结4.1 向html中添加JavaScript的方法4.2 变量4.3 有用的字符串方法indexOf()slice()toLowerCase()和toUpperCase()replace() 4.4 有用的数组方法split()push() 和 pop() 一、项目目标 主要针对…

程序员笑话收集

程序员笑话 均系从网上收集, 聊作程序员自己的调侃 Table of Contents 1 自行车 2 火车 3 问路 4 警告 5 山路 6 程序员的愿望 7 高效的程序员 8 开发时间 9 招聘 10 程序员的未来 11 面试Java 12 程序员vs妓女 13 电信局的程序员 14 问答 15 刹车失灵 16 编程语言 17 敲门 18…

程序员笑话集锦

程序员笑话集锦 1. 大家喝的是啤酒,这时你入座了。 你给自己倒了杯可乐,这叫低配置。 你给自已倒了杯啤酒,这叫标准配置。 你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。 你给…