package ast import ( "bytes" "strings" "code.jmug.me/jmug/interpreter-in-go/pkg/token" ) type CallExpression struct { Token token.Token // The ( token Function Expression Arguments []Expression } func (ce *CallExpression) expressionNode() {} func (ce *CallExpression) TokenLiteral() string { return ce.Token.Literal } func (ce *CallExpression) String() string { var out bytes.Buffer out.WriteString(ce.Function.String()) out.WriteString("(") args := []string{} for _, arg := range ce.Arguments { args = append(args, arg.String()) } out.WriteString(strings.Join(args, ", ")) out.WriteString(")") return out.String() }