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 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'ast/ast.go') 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 { -- cgit v1.2.3