This allows tracing information to be displayed. STRICTLY FOR TESTING ONLY, SHOULD BE TURNED OFF IN THE
ACTUAL INTERPRETER. git-svn-id: https://svn.tlawal.org/svn/monkey@27 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
This commit is contained in:
parent
982efec3d0
commit
dd030ebd4b
32
parser/parser_tracing.go
Normal file
32
parser/parser_tracing.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
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()
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user