package parser import ( "fmt" "strings" ) const traceIndentPlaceholder = "\t" var traceLevel = 0 func tracePrint(fs string) { fmt.Printf("%s%s\n", indentLevel(), fs) } func indentDec() { traceLevel-- } func indentInc() { traceLevel++ } func indentLevel() string { return strings.Repeat(traceIndentPlaceholder, traceLevel-1) } func trace(msg string) string { indentInc() tracePrint("BEGIN " + msg) return msg } func untrace(msg string) { tracePrint("END " + msg) indentDec() }