30 lines
614 B
Go
30 lines
614 B
Go
|
|
package ast
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"code.jmug.me/jmug/interpreter-in-go/pkg/token"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestString(t *testing.T) {
|
||
|
|
program := &Program{
|
||
|
|
Statements: []Statement{
|
||
|
|
&LetStatement{
|
||
|
|
Token: token.Token{Type: token.LET, Literal: "let"},
|
||
|
|
Name: &Identifier{
|
||
|
|
Token: token.Token{Type: token.IDENT, Literal: "myVar"},
|
||
|
|
Value: "myVar",
|
||
|
|
},
|
||
|
|
Value: &Identifier{
|
||
|
|
Token: token.Token{Type: token.IDENT, Literal: "anotherVar"},
|
||
|
|
Value: "anotherVar",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
if program.String() != "let myVar = anotherVar;" {
|
||
|
|
t.Errorf("program.String() wrong. got=%q", program.String())
|
||
|
|
}
|
||
|
|
}
|