interpreter-in-go/waiig_code_1.7/04/src/monkey/parser/parser_tracing.go
jmug 9aa807b9c2 Download and add the "code" folder.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-01 15:44:44 -08:00

32 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()
}