tcl - 如何将脚本转换成 Tcl 语言的硬编码版本?
问题描述
我正在寻找一种将脚本转换为其完全硬编码版本的方法。我什至不知道这种功能在软件行业是如何命名的。所以我什至不知道如何谷歌它。这里有一些我想要的例子。我不想对输出使用任何条件或迭代函数。
示例 1) foreach 案例
foreach x [list 1 2 3] {
puts "x=$x"
}
我想将此脚本转换为:
puts "x=1" ; puts "x=2" ; puts "x=3"
例 2)
set A 1
if { $A == "1" } {
puts "A is 1"
} else {
puts "A is not 1"
}
我希望这是:
set A 1
puts "A is 1"
示例 3)如果我遇到注释行或未知命令或过程,我只想将其传递给输出。
set argument 1000
UnknownProcedure $argement
现在应该是:
set argument 100
UnknownProcedure 100
提前致谢。
解决方案
你可以尝试trace add execution ...
命令。如果执行,这用于在命令本身之前执行一段代码。如果您可以将命令的参数传递给您的跟踪函数并info frame
用于获取正在执行的 proc/命令名称,那么您可以使用跟踪函数写出命令的硬编码版本。
看这里: