我正在编写一个自定义解析器,并希望跟踪我遇到的错误。在执行 a 时如何在不使用全局变量的情况下跟踪解析过程中的错误ast.Walk?
type visitor struct {
err error
}
func (v visitor) Visit(n ast.Node) ast.Visitor {
switch d := n.(type) {
case *ast.BinaryExpr:
if d.Op != token.LAND {
v.err = fmt.Errorf("Illegal operator :%s", d.Op) // NOT WORKING
return v
}
}
return v
}
我将上面的代码用作:-
var v visitor
ast.Walk(v, astTree)
这可能不起作用,因为在 中func (v visitor),v 不是指向结构的指针。跟踪这个的推荐方法是什么?
饮歌长啸
相关分类