33 lines
526 B
Go
33 lines
526 B
Go
|
package parser
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
var traceLevel int = 0
|
||
|
|
||
|
const traceIdentPlaceholder string = "\t"
|
||
|
|
||
|
func identLevel() string {
|
||
|
return strings.Repeat(traceIdentPlaceholder, traceLevel-1)
|
||
|
}
|
||
|
|
||
|
func tracePrint(fs string) {
|
||
|
fmt.Printf("%s%s\n", identLevel(), fs)
|
||
|
}
|
||
|
|
||
|
func incIdent() { traceLevel = traceLevel + 1 }
|
||
|
func decIdent() { traceLevel = traceLevel - 1 }
|
||
|
|
||
|
func trace(msg string) string {
|
||
|
incIdent()
|
||
|
tracePrint("BEGIN " + msg)
|
||
|
return msg
|
||
|
}
|
||
|
|
||
|
func untrace(msg string) {
|
||
|
tracePrint("END " + msg)
|
||
|
decIdent()
|
||
|
}
|