29 lines
588 B
Go
29 lines
588 B
Go
package ast
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
|
|
"code.jmug.me/jmug/interpreter-in-go/pkg/token"
|
|
)
|
|
|
|
type ArrayLiteral struct {
|
|
Token token.Token // The '[' token
|
|
Elements []Expression
|
|
}
|
|
|
|
func (al *ArrayLiteral) expressionNode() {}
|
|
func (al *ArrayLiteral) TokenLiteral() string {
|
|
return al.Token.Literal
|
|
}
|
|
func (al *ArrayLiteral) String() string {
|
|
var out bytes.Buffer
|
|
elements := []string{}
|
|
for _, el := range al.Elements {
|
|
elements = append(elements, el.String())
|
|
}
|
|
out.WriteString("[")
|
|
out.WriteString(strings.Join(elements, ", "))
|
|
out.WriteString("]")
|
|
return out.String()
|
|
}
|