aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ast/ast.go27
-rw-r--r--object/object.go9
2 files changed, 17 insertions, 19 deletions
diff --git a/ast/ast.go b/ast/ast.go
index 3f913b1..4108d14 100644
--- a/ast/ast.go
+++ b/ast/ast.go
@@ -1,7 +1,6 @@
package ast // import "monkey/ast"
import (
- "bytes"
"strings"
"monkey/token"
@@ -38,7 +37,7 @@ func (p *Program) TokenLiteral() string {
}
func (p *Program) String() string {
- var out bytes.Buffer
+ var out strings.Builder
for _, s := range p.Statements {
out.WriteString(s.String())
@@ -57,7 +56,7 @@ type LetStatement struct {
func (ls *LetStatement) statementNode() {}
func (ls *LetStatement) TokenLiteral() string { return ls.Token.Literal }
func (ls *LetStatement) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString(ls.TokenLiteral() + " ")
out.WriteString(ls.Name.String())
@@ -80,7 +79,7 @@ type ReturnStatement struct {
func (rs *ReturnStatement) statementNode() {}
func (rs *ReturnStatement) TokenLiteral() string { return rs.Token.Literal }
func (rs *ReturnStatement) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString(rs.TokenLiteral() + " ")
@@ -115,7 +114,7 @@ type BlockStatement struct {
func (bs *BlockStatement) statementNode() {}
func (bs *BlockStatement) TokenLiteral() string { return bs.Token.Literal }
func (bs *BlockStatement) String() string {
- var out bytes.Buffer
+ var out strings.Builder
for _, s := range bs.Statements {
out.WriteString(s.String())
@@ -161,7 +160,7 @@ type PrefixExpression struct {
func (pe *PrefixExpression) expressionNode() {}
func (pe *PrefixExpression) TokenLiteral() string { return pe.Token.Literal }
func (pe *PrefixExpression) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString("(")
out.WriteString(pe.Operator)
@@ -181,7 +180,7 @@ type InfixExpression struct {
func (oe *InfixExpression) expressionNode() {}
func (oe *InfixExpression) TokenLiteral() string { return oe.Token.Literal }
func (oe *InfixExpression) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString("(")
out.WriteString(oe.Left.String())
@@ -202,7 +201,7 @@ type IfExpression struct {
func (ie *IfExpression) expressionNode() {}
func (ie *IfExpression) TokenLiteral() string { return ie.Token.Literal }
func (ie *IfExpression) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString("if")
out.WriteString(ie.Condition.String())
@@ -226,7 +225,7 @@ type FunctionLiteral struct {
func (fl *FunctionLiteral) expressionNode() {}
func (fl *FunctionLiteral) TokenLiteral() string { return fl.Token.Literal }
func (fl *FunctionLiteral) String() string {
- var out bytes.Buffer
+ var out strings.Builder
params := []string{}
for _, p := range fl.Parameters {
@@ -251,7 +250,7 @@ type CallExpression struct {
func (ce *CallExpression) expressionNode() {}
func (ce *CallExpression) TokenLiteral() string { return ce.Token.Literal }
func (ce *CallExpression) String() string {
- var out bytes.Buffer
+ var out strings.Builder
args := []string{}
for _, a := range ce.Arguments {
@@ -283,7 +282,7 @@ type ArrayLiteral struct {
func (al *ArrayLiteral) expressionNode() {}
func (al *ArrayLiteral) TokenLiteral() string { return al.Token.Literal }
func (al *ArrayLiteral) String() string {
- var out bytes.Buffer
+ var out strings.Builder
elements := []string{}
for _, el := range al.Elements {
@@ -306,7 +305,7 @@ type IndexExpression struct {
func (ie *IndexExpression) expressionNode() {}
func (ie *IndexExpression) TokenLiteral() string { return ie.Token.Literal }
func (ie *IndexExpression) String() string {
- var out bytes.Buffer
+ var out strings.Builder
out.WriteString("(")
out.WriteString(ie.Left.String())
@@ -325,7 +324,7 @@ type HashLiteral struct {
func (hl *HashLiteral) expressionNode() {}
func (hl *HashLiteral) TokenLiteral() string { return hl.Token.Literal }
func (hl *HashLiteral) String() string {
- var out bytes.Buffer
+ var out strings.Builder
pairs := []string{}
for key, value := range hl.Pairs {
@@ -348,7 +347,7 @@ type MacroLiteral struct {
func (ml *MacroLiteral) expressionNode() {}
func (ml *MacroLiteral) TokenLiteral() string { return ml.Token.Literal }
func (ml *MacroLiteral) String() string {
- var out bytes.Buffer
+ var out strings.Builder
params := []string{}
for _, p := range ml.Parameters {
diff --git a/object/object.go b/object/object.go
index 70e8597..4dc974b 100644
--- a/object/object.go
+++ b/object/object.go
@@ -1,7 +1,6 @@
package object // import "monkey/object"
import (
- "bytes"
"fmt"
"hash/fnv"
"strings"
@@ -99,7 +98,7 @@ type Function struct {
func (f *Function) Type() ObjectType { return FUNCTION }
func (f *Function) Inspect() string {
- var out bytes.Buffer
+ var out strings.Builder
params := []string{}
for _, p := range f.Parameters {
@@ -142,7 +141,7 @@ type Array struct {
func (ao *Array) Type() ObjectType { return ARRAY }
func (ao *Array) Inspect() string {
- var out bytes.Buffer
+ var out strings.Builder
elements := []string{}
for _, e := range ao.Elements {
@@ -167,7 +166,7 @@ type Hash struct {
func (h *Hash) Type() ObjectType { return HASH }
func (h *Hash) Inspect() string {
- var out bytes.Buffer
+ var out strings.Builder
pairs := []string{}
for _, pair := range h.Pairs {
@@ -199,7 +198,7 @@ type Macro struct {
func (m *Macro) Type() ObjectType { return MACRO }
func (m *Macro) Inspect() string {
- var out bytes.Buffer
+ var out strings.Builder
params := []string{}
for _, p := range m.Parameters {