gpt4 book ai didi

GoLang ast : generating and printing a tree without position information

转载 作者:行者123 更新时间:2023-12-01 19:26:35 25 4
gpt4 key购买 nike

我正在寻找一种工具,可以从某些给定的输入生成方法 stub 。我见过the ast package ,但它似乎代表一个已经解析的 AST,它包含有关源文件中所有内容的位置的信息。重要的是,您需要提供源信息

我正在考虑以编程方式生成源文件,所以我不知道我的 AST 节点将在最终文件中的哪个位置结束。

我很好奇:

  • 是否有更好的 AST 工具可以让您生成代码而不提供源文件位置信息?
  • 如果我为 ast 中的职位提供虚拟信息包,它会正确打印吗(即忽略位置信息)?

  • 我意识到我可以通过文本生成来完成这一切,但这似乎不安全且难以处理。

    最佳答案

    考虑 https://github.com/lu4p/astextract它有一个更好的 AST 可以打印到 go 代码中。
    我知道您已经考虑过这个问题,但是使用 text/templategoimports在结果字符串上实际上是相当合理的。它更容易编写,并且可以更好地编写普通的 go 代码。正如您所注意到的,它不是类型安全的(这很好,因为稍后在其上运行 goimports 会强制执行该操作)。最大的缺点实际上是很难测试(我们最终编写了一组生成的测试和手动编写的测试)。
    (编辑:刚刚意识到这是一个多么古老的问题 - 将我的答案留给其他人,因为我相信你现在已经找到了一些为自己解决这个问题的方法)

    关于GoLang ast : generating and printing a tree without position information,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40365301/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com