2012-12-19 37 views

回答

0

我之前在tcl是支持的語言之前使用過doxygen來生成Tcl doc。有一個用於處理輸入文件的配置選項。

FILTER_PATTERNS = *.tcl=bin\tcl_converter.bat 

其中bin \ tcl_converter.bat只是啓動自定義處理器的批處理腳本。我們用它最小化地將tcl語法改爲doxygen在添加tcl支持之前理解的東西。但是,您可以在這裏使用它來刪除所有未導出的方法。編寫處理器以刪除所有未導出的特效將非常簡單。類似:

  1. 讀取輸入文件到一個 陣列線的
  2. 遍歷所有尋找出口的線的通過所有命令
  3. 環路(它將作爲[LINDEX $ argv的0]被傳遞)尋找特效和對陣以上
  4. 保存列出的導出命令了所有的當前過程和其在字符串前同步碼的行 - 寫入輸出 文件在結束時,如果它匹配導出的命令

一個合適的解析器將使這個萬無一失,但可能是矯枉過正。您只需查找名稱空間的開始和proc的開始並設置狀態機即可。一旦你開始一個命名空間,只需要將每一行附加到一個字符串,然後用info完成$累計_字符串。同樣,一旦看到proc命令,開始將這些行累加到一個不同的字符串中,並在每行之後繼續檢查info complete $ accumulated_proc_string。一旦證明真實,您可以打印或不打印和重置字符串。

使用信息完整將簡化生活了很多 - 所有的弄虛作假的將是跟蹤的命名空間和反對完全合格的出口名稱評估完全合格的PROC名稱,以確定是否將其打印到輸出文件。有一些病態的代碼出現在命名空間或動態生成的導出之外,但是在我之前的工作中,這種處理方式對我們投入的所有內容都非常有效。