首页 > 解决方案 > 如何将脚本转换成 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

提前致谢。

标签: tclcode-generationinterpretationhardcoded

解决方案


你可以尝试trace add execution ...命令。如果执行,这用于在命令本身之前执行一段代码。如果您可以将命令的参数传递给您的跟踪函数并info frame用于获取正在执行的 proc/命令名称,那么您可以使用跟踪函数写出命令的硬编码版本。

看这里:


推荐阅读