diff options
Diffstat (limited to 'parser/parser_tracing.go')
| -rw-r--r-- | parser/parser_tracing.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/parser/parser_tracing.go b/parser/parser_tracing.go new file mode 100644 index 0000000..a0819da --- /dev/null +++ b/parser/parser_tracing.go @@ -0,0 +1,37 @@ +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() +}
\ No newline at end of file |
