生成 Go 源代码

我正在寻找一种生成Go源代码的方法。

我发现 go/parser 可以从 Go 源文件生成 AST,但找不到从 AST 生成 Go 源的方法。


森林海
浏览 256回答 1
1回答

蓝山帝景

要将AST转换为源格式,可以使用go / printer程序包。示例(另一示例的改编形式)package mainimport (        "go/parser"        "go/printer"        "go/token"        "os")func main() {        // src is the input for which we want to print the AST.        src := `package mainfunc 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)}输出:package mainfunc main() {        println("Hello, World!")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go