tijani
dd030ebd4b
ACTUAL INTERPRETER. git-svn-id: https://svn.tlawal.org/svn/monkey@27 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
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()
|
|
}
|