From c45b522b73ea7876ba80abdce4a764f7c95ec83b Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 29 Mar 2018 00:56:17 +0200 Subject: switch to strings.Builder --- ast/ast.go | 27 +++++++++++++-------------- object/object.go | 9 ++++----- 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 { -- cgit v1.2.3