parser/ast.go
func (ast *AST) String() string {
	buf := rbpool.Get()
	defer rbpool.Release(buf)

	c := ast.Visit()
	k := 0
	for v := range c {
		k++
		fmt.Fprintf(buf, "%03d. %s\n", k, v)
	}
	return buf.String()
}
func (ast *AST) String() string {
	buf := rbpool.Get()
	defer rbpool.Release(buf)

	c := ast.Visit()
	k := 0
	for v := range c {
		k++
		fmt.Fprintf(buf, "%03d. %s\n", k, v)
	}
	return buf.String()
}
// String returns the textual representation of this AST