parser_tracing.go 549 B

123456789101112131415161718192021222324252627282930313233
  1. package parser
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. var traceLevel = 0
  7. const traceIdentPlaceholder string = "\t"
  8. func identLevel() string {
  9. return strings.Repeat(traceIdentPlaceholder, traceLevel-1)
  10. }
  11. func tracePrint(fs string) {
  12. fmt.Printf("%s%s\n", identLevel(), fs)
  13. }
  14. func incIdent() { traceLevel = traceLevel + 1 }
  15. func decIdent() { traceLevel = traceLevel - 1 }
  16. func trace(msg string) string {
  17. incIdent()
  18. tracePrint("BEGIN " + msg)
  19. return msg
  20. }
  21. func untrace(msg string) {
  22. tracePrint("END " + msg)
  23. decIdent()
  24. }