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