TCL函数“参数自动补全” 与 “help 信息显示”


tcl 函数参数自动补全和 help 信息显示

在EDA tool 中使用命令时,命令的参数可以通过 tab 键自动补全,而且可以使用 -help 显示帮助信息,使用起来很方便;

那么我们自己编写的 TCL 过程函数能否也实现 参数自动补全和 help 显示帮助信息呢?

参数自动补全可以用 define_proc_attribute 实现,而 -help 显示帮助可以用 parse_proc_arguments 实现

举个栗子:

proc test_proc {args} { ## 关键字 args 表示可变个数的参数 parse_proc_arguments -args $args results ## 将参数保存到数组中,数组名为 results,数组元素名字是参数名,元素值是参数值 if { [array names  results {-add}] != ""} { ## 匹配数组results 中符合正则表达式“{-add}”的元素名字,用于检测是否给出了 -add 参数 echo "add num $results(-add) !" ## $results{-add} 是数组元素值,即 -add 参数的值 } if { [array names  results {-reomve}] != "" } { echo "remove all !" } } define_proc_attributes test_proc \ ## 这段程式定义 help 信息和参数自动补全 -info  "proc test code example " \ -define_args { ## 定义参数名字,输入时可以自动补全 {-add "add more "  "num"  int optional } ## 参数名字-add,帮助信息 add more ,参数值 num ,参数值数据类型 int ,参数是否是必须的 optional {-remove  "reomve all "  "" boolean optional } }

这样定义之后,在EDA tool 中 敲命令 test_proc -rem[tab]  可以用 tab 键自动补全,用 test_proc -help 可以显示帮助信息

 

注意几点:

参数列表中的 args 是一个关键字,表示可变个数的参数

如果没有写 parse_proc_arguments ,则无法显示 -help 信息

array names  results  {-add} ,其中 results 是数组名, {-add} 是正则表达式,返回array 中 符合这个表达式的元素的名字

$results(-add) 返回数组元素值

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM