產生 Go 原始碼
您詢問過產生 Go 原始碼。 go/parser 套件提供了從 Go 原始檔產生 AST(抽象語法樹)的功能。但是,您表示從 AST 產生 Go 原始碼很困難。
幸運的是,go/printer 套件提供了這個問題的解決方案。透過利用此套件,您可以輕鬆地將 AST 轉換回其原始程式碼形式。
考慮下面的範例(改編自其他來源):
<code class="go">package main import ( "go/parser" "go/printer" "go/token" "os" ) func main() { // src represents the input source code for which we want to print the AST. src := ` package main func main() { println("Hello, World!") } ` // Create the AST by parsing src. fset := token.NewFileSet() // positions are relative to fset f, err := parser.ParseFile(fset, "", src, 0) if err != nil { panic(err) } printer.Fprint(os.Stdout, fset, f) }</code>
執行此範例將產生以下輸出:
package main func main() { println("Hello, World!") }
這示範如何有效使用go /printer 套件將AST 轉換回其原始碼表示形式。
以上是如何從 AST 產生 Go 原始碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!