为了账号安全,请及时绑定邮箱和手机立即绑定

生成 Go 源代码

生成 Go 源代码

Go
森林海 2021-05-20 17:40:39
我正在寻找一种生成Go源代码的方法。我发现 go/parser 可以从 Go 源文件生成 AST,但找不到从 AST 生成 Go 源的方法。
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

要将AST转换为源格式,可以使用go / printer程序包。


示例(另一示例的改编形式)


package main


import (

        "go/parser"

        "go/printer"

        "go/token"

        "os"

)


func main() {

        // src is the input 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)


}


输出:


package main


func main() {

        println("Hello, World!")

}


查看完整回答
反对 回复 2021-05-31
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信