24 lines
461 B
Go
24 lines
461 B
Go
package ast
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"code.jmug.me/jmug/interpreter-in-go/pkg/token"
|
|
)
|
|
|
|
type BlockStatement struct {
|
|
Token token.Token // The `{` token.
|
|
Statements []Statement
|
|
}
|
|
|
|
func (bs *BlockStatement) statementNode() {}
|
|
func (bs *BlockStatement) TokenLiteral() string {
|
|
return bs.Token.Literal
|
|
}
|
|
func (bs *BlockStatement) String() string {
|
|
var out bytes.Buffer
|
|
for _, s := range bs.Statements {
|
|
out.WriteString(s.String())
|
|
}
|
|
return out.String()
|
|
}
|