的情況下進行擴展我怎樣才能在下面的腳本執行expand
(擴大命令和變量,如TCL正常),我希望它打印出來:如何在字符串中調用函數的TCL
'
hello {
$b
}
{tcl world}
'
這就是我想象中的腳本將看:
proc clever_func {script} {
set script [uplevel 1 expand [list $script]]
puts "'$script'"
}
proc isolated_client_function {} {
set a hello
set b difficult
set c tcl
set d world
clever_func {
$a {
$b
}
[list $c $d]
}
}
isolated_client_function
謝謝您的回答@安東·科瓦連科。我只會在我的示例中使用$ script變量來執行命令(不是像我爲了討論某些內容所做的那樣打印它們),所以如果有方法將$ script轉換爲第一個命令在'uplevel'下執行,我可以將餘數(第二,第三等命令)分配回$ script,然後重複,然後我將成爲一個非常快樂的兔子。 – codeshot 2013-02-10 00:21:36
我發現你鏈接的糖文檔頁面非常難讀。有沒有更清晰的參考資料? – codeshot 2013-02-10 00:55:11
解析是實現預期效果的唯一方法。另外兩個頁面是[tclparser](http://wiki.tcl.tk/1660)和[parsetcl](http://wiki.tcl.tk/9649);我不知道哪個更容易基於。 (使用'info complete'只是「解析」的一個變種。) – 2013-02-10 13:16:04