// Fdump dumps the structure of the syntax tree rooted at n to w. // It is intended for debugging purposes; no specific output format // is guaranteed. func Fdump(w io.Writer, n Node) (err error) { … } type dumper … var indentBytes … func (p *dumper) Write(data []byte) (n int, err error) { … } type writeError … // printf is a convenience wrapper that takes care of print errors. func (p *dumper) printf(format string, args ...interface{ … } // dump prints the contents of x. // If x is the reflect.Value of a struct s, where &s // implements Node, then &s should be passed for n - // this permits printing of the unexported span and // comments fields of the embedded isNode field by // calling the Span() and Comment() instead of using // reflection. func (p *dumper) dump(x reflect.Value, n Node) { … } func isExported(name string) bool { … }