你如何在Go AST中代表nil?

时间:2017-10-31 21:10:04

标签: go abstract-syntax-tree

查看Go AST documentation,我没有看到任何节点类型代表代码中的nil。 BasicLit没有在它接受的令牌类型列表中覆盖它,事实上,当我查看源go/token时,我根本看不到nil令牌!

如果我想创建if x != nil格式的AST,我该如何处理nil

1 个答案:

答案 0 :(得分:2)

根据Go规范,nil是预先声明的标识符。因此,它在AST中由*ast.Ident表示:

node := ast.NewIdent("nil")