12345678910111213141516171819202122232425262728293031323334353637 |
- package ast
- import (
- "bytes"
- "code.osinet.fr/fgm/waiig15/token"
- )
- // LetStatement is the Node type for Let statements.
- type LetStatement struct {
- Token token.Token // the token.LET token. Why do we need it ?
- Name *Identifier
- Value Expression
- }
- // String implements Node and fmt.Stringer.
- func (ls *LetStatement) String() string {
- var out bytes.Buffer
- out.WriteString(ls.TokenLiteral() + " ")
- out.WriteString(ls.Name.String())
- out.WriteString(" = ")
- if ls.Value != nil {
- out.WriteString(ls.Value.String())
- }
- out.WriteString(";")
- return out.String()
- }
- func (ls *LetStatement) statementNode() {}
- // TokenLiteral satisfies the Node interface.
- func (ls *LetStatement) TokenLiteral() string {
- return ls.Token.Literal
- }
|