提问人:JoshTitle 提问时间:10/1/2023 更新时间:10/5/2023 访问量:66
TCL:如何在 TCL 中将foreach_in_collection重新认证为 proc
tcl: how to rebuid foreach_in_collection as proc in tcl
问:
出于某种原因,我需要在 tcl 中将foreach_in_collection(SDC 命令)重建为“foreach”。
下面是快照代码:
proc set_disable_timing { argv } { body ... }
proc get_cells { argv } { body ... }
这里有一个 proc “foreach_in_collection”,我试图像 foreach 一样构建:
proc foreach_in_collection {item collection script } {
foreach collection $collection_list {
uplevel [list set $item $collection]
uplevel 1 $script
}
}
我的源文件包括一个代码,例如
set all_cells [get_cells -hier my_cell*]
foreach_in_collection cell $all_cells {
set_disable_timing $cell
}
但 Tcl 报告无效命令“-hier” 如何解决问题
答:
0赞
glenn jackman
10/2/2023
#1
看起来你想要
proc foreach_in_collection {item collection script } {
upvar x $item
foreach x $collection {
uplevel $script
}
}
When 设置为 foreach_in_collection 中的值,然后在调用 foreach_in_collection 的上下文中设置为相同的值。x
cell
然后,当您 ,即使用正确的值调用set_disable_timing。uplevel $script
0赞
Cyan Ogilvie
10/5/2023
#2
这不就是:
interp alias {} foreach_in_collection {} foreach
也就是说:它实际上只是命令的不同拼写。foreach
本机命令比为这些填充码提供的命令更强大,如果您需要它是一个错误,如果参数不是,那么我认为您可以这样做:foreach
item collection script
proc foreach_in_collection {item collection script} {
tailcall ::foreach $item $collection $script
}
评论
$errorInfo