Irony - 語言實現工具包/語法
外觀
來自維基百科
形式語法(有時簡稱為語法)是一組特定型別的規則,用於在形式語言中形成字串。這些規則描述瞭如何從語言的字母表中形成字串,這些字串根據語言的語法有效。語法不描述字串的含義或在任何上下文中可以使用它們的方式 - 只有它們的格式。
在 Irony 中,語法是使用巴科斯-諾爾 類似的符號在繼承自 Irony.Parsing.Grammar 的 C#(或 VB.NET)類中進行描述。這與大多數其他語言工具(如 lex 和 yacc)有顯著的區別。 "|" 和 "+" 運算子已過載,因此您可以將終結符串在一起以定義產生式。之後,此類可用於解析語言,並與其他 Irony 功能一起用於解釋它。
要建立一個新的語法,只需建立一個新的類檔案並擴充套件 Irony.Parsing 中找到的基類 Grammar。在這裡,您可以設定語言的所有標記和產生式,以及其他屬性,如保留字列表或是否建立抽象語法樹。
Irony 專案包含許多關於如何執行此操作的示例,以及 Grammar Explorer 專案,該專案允許您測試您的語法。
語法檔案中的典型部分如下所示,但顯然您可以按照自己的意願進行結構化
- 語言屬性和標誌
- 終結符
- 非終結符
- 產生式
- 標點符號、運算子和關鍵字的註冊