Alejandro Mery
10 years ago
2 changed files with 45 additions and 0 deletions
@ -0,0 +1,20 @@
|
||||
package token |
||||
|
||||
// types of Token
|
||||
type TokenType int |
||||
|
||||
const ( |
||||
TokenError TokenType = iota + 1 |
||||
TokenEOF |
||||
) |
||||
|
||||
func (typ TokenType) String() string { |
||||
switch typ { |
||||
case TokenError: |
||||
return "ERROR" |
||||
case TokenEOF: |
||||
return "EOF" |
||||
default: |
||||
return "UNDEFINED" |
||||
} |
||||
} |
@ -0,0 +1,25 @@
|
||||
package token |
||||
|
||||
import ( |
||||
"fmt" |
||||
"testing" |
||||
) |
||||
|
||||
func TestTokenTypeToString(t *testing.T) { |
||||
var foo TokenType |
||||
|
||||
for _, o := range []struct { |
||||
typ TokenType |
||||
str string |
||||
}{ |
||||
{foo, "UNDEFINED"}, |
||||
{TokenError, "ERROR"}, |
||||
{TokenEOF, "EOF"}, |
||||
{1234, "UNDEFINED"}, |
||||
} { |
||||
str := fmt.Sprintf("%s", o.typ) |
||||
if str != o.str { |
||||
t.Errorf("TokenType:%v stringified as %s instead of %s.", int(o.typ), str, o.str) |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue