hussar-lang/hussar

View on GitHub
parser/parser_tracing.go

Summary

Maintainability
A
0 mins
Test Coverage
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()
}