我正在学习Go并寻找一种方法来打印我的AST(作为参考,我跟随Ruslan的优秀Let's Build a Simple Interpreter)。
我正在使用以下内容打印根目录:
tree := par.Parse()
fmt.Printf("\nParse Tree:\n%#v\n", tree)
打印哪些:
Parse Tree:
&Node.Program{name:"PART10AST", block:(*Node.Block)(0x11b32160)}
有没有办法递归打印节点和所有子节点?有什么影响:
&Node.Program{name:"PART10AST", block:(*Node.Block{decl: *Node.declarations{...}, comp: *Node.Compound{...}})}
这种功能是否以任何方式内置于Go? Node
是存储数据和/或更多struct
的几种不同类型Node
的接口。