package ast import ( "bytes" "code.jmug.me/jmug/compiler-in-go/pkg/token" ) type LetStatement struct { Token token.Token // TODO: This is a little redundant, figure out if I can get rid of it. Name *Identifier Value Expression } func (ls *LetStatement) statementNode() {} func (ls *LetStatement) TokenLiteral() string { return ls.Token.Literal } func (ls *LetStatement) String() string { var out bytes.Buffer out.WriteString(ls.TokenLiteral() + " ") out.WriteString(ls.Name.String() + " = ") if ls.Value != nil { out.WriteString(ls.Value.String()) } out.WriteString(";") return out.String() }