1
0
mirror of https://github.com/golang/go synced 2024-11-22 08:24:41 -07:00

go/token: use array instead of map for token->string table

R=rsc
CC=golang-dev
https://golang.org/cl/4284070
This commit is contained in:
Robert Griesemer 2011-03-28 13:38:24 -07:00
parent 0caa0c0923
commit 2796ac1466

View File

@ -126,10 +126,7 @@ const (
) )
// At the moment we have no array literal syntax that lets us describe var tokens = [...]string{
// the index for each element - use a map for now to make sure they are
// in sync.
var tokens = map[Token]string{
ILLEGAL: "ILLEGAL", ILLEGAL: "ILLEGAL",
EOF: "EOF", EOF: "EOF",
@ -237,10 +234,14 @@ var tokens = map[Token]string{
// constant name (e.g. for the token IDENT, the string is "IDENT"). // constant name (e.g. for the token IDENT, the string is "IDENT").
// //
func (tok Token) String() string { func (tok Token) String() string {
if str, exists := tokens[tok]; exists { s := ""
return str if 0 <= tok && tok < Token(len(tokens)) {
s = tokens[tok]
} }
return "token(" + strconv.Itoa(int(tok)) + ")" if s == "" {
s = "token(" + strconv.Itoa(int(tok)) + ")"
}
return s
} }