// Usage pattern: defer un(trace(p, "...")) func un(p *parser) { p.indent-- p.printTrace(")") }
func trace(p *parser, msg string) *parser { p.printTrace(msg, "(") p.indent++ return p }