2016-11-19 85 views
2

許多現代編程語言都支持作爲文檔字符串的註釋系統。D是否支持文檔生成?

此功能是採取像Python或Clojure的,其中文檔字符串可能有助於理解函數的目的是有用的語言,可能是目前還不清楚其他方式授予:

def gen_ast(s): 
    ''' given a string, s, representing a program, generates object model of abstract syntax tree ''' 
    # function contents here ... 

我是相當新手d編程,但還沒有找到以客戶可訪問的方式編寫文檔字符串註釋的文檔(例如,Python中的help(gen_ast))。 D是否提供文檔支持?

回答

3

是的。

對於代碼本身: http://dlang.org/spec/ddoc.html

對於命令行選項: http://dlang.org/phobos/std_getopt.html

要從代碼得到: http://dlang.org/spec/attribute.html#uda

然而,它是公平的噘嘴出的文檔註釋無法直接在代碼中訪問 - 您必須將其作爲UDA或getopt庫文檔字符串來執行,或者在構建集中提供單獨的命令以提取註釋(dmd -D使它們到html中,dmd -D -X會將它們變成json,然後你解析它)

+0

關於編譯語言中help()的不相關性的好處......我仍然適應生活,沒有一個repl可以重新使用。 –

1

作爲@Adam D Ruppe的回答的後續內容,這裏是從第一個鏈接提取的相關內容,這是官方規範用於D文檔生成。

/** 
* Read the file. 
* Returns: The contents of the file. 
*/ 

void[] readFile(char[] filename) { ... } 

其次,示例在一個類似的方式指定的在需要的地方:

首先,回報功能規定如下

/** 
* Examples: 
* -------------------- 
* writeln("3"); // writes '3' to stdout 
* -------------------- 
*/ 

然而,我發現的文檔不清楚與尊重使用這些慣例進行自動文檔生成的能力。