在 JavaScript 中,我們有estree,它是從 Mozilla 的實作演變而來的 AST 定義。但是現在如果你在 JS AST 的 JS 中構建一個 AST 轉換器,你可能會使用這種結構。對于 Swift 和 Swift AST,我們有這樣的東西嗎?
我看到我們有一個語法,但是 AST 呢?我想我可以從中制作一個,但仍然如此。
如果沒有標準,我們是否有任何AST 示例?
uj5u.com熱心網友回復:
Swift 專案提供SwiftSyntax作為在 Swift 中處理 Swift 源代碼的包。在幕后,它由編譯器自己的libSyntax 提供支持,用 C 撰寫。
請注意,這目前并不是 Swift 編譯器正確用于實際編譯 Swift 代碼的表示——libSyntax專注于源代碼本身以進行重寫、格式化、轉換等,但在很大程度上沒有你可能會在代碼中找到的語意資訊。將源代碼轉換為機器代碼所需的編譯器 AST。如果您只是想在沒有這些語意的情況下對 AST 進行操作,那么這對于您的用例來說可能就足夠了。
存盤庫 README 應該有一些幫助您入門的資訊、一個示例,以及一些顯示該庫具體用法的實際用例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363652.html
