From 3fc3c58a5cbea076d85e6c9083b66d5be97929e1 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:13:47 +0200 Subject: [PATCH] Replace uses of StringBuffer in non-generated code And also expand string concatenations in arguments of StringBuilder.append, to avoid javac creating unnecessary intermediate StringBuilders. --- .../java/org/sablecc/sablecc/CharSet.java | 8 ++- src/main/java/org/sablecc/sablecc/DFA.java | 14 ++-- .../java/org/sablecc/sablecc/GenAlts.java | 2 +- .../java/org/sablecc/sablecc/GenParser.java | 71 +++++++++++++------ .../java/org/sablecc/sablecc/GenTokens.java | 2 +- .../java/org/sablecc/sablecc/Grammar.java | 52 ++++++++------ src/main/java/org/sablecc/sablecc/IntSet.java | 2 +- .../org/sablecc/sablecc/LR0Collection.java | 9 ++- .../java/org/sablecc/sablecc/LR0Item.java | 2 +- .../java/org/sablecc/sablecc/LR0ItemSet.java | 2 +- .../org/sablecc/sablecc/LR1Collection.java | 15 ++-- .../java/org/sablecc/sablecc/LR1ItemSet.java | 15 ++-- .../org/sablecc/sablecc/MacroExpander.java | 2 +- src/main/java/org/sablecc/sablecc/NFA.java | 19 +++-- .../java/org/sablecc/sablecc/Production.java | 2 +- .../org/sablecc/sablecc/ResolveAltIds.java | 2 +- .../org/sablecc/sablecc/ResolveAstIds.java | 2 +- .../java/org/sablecc/sablecc/ResolveIds.java | 6 +- .../sablecc/sablecc/ResolveTransformIds.java | 2 +- .../java/org/sablecc/sablecc/SymbolSet.java | 2 +- 20 files changed, 146 insertions(+), 85 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/CharSet.java b/src/main/java/org/sablecc/sablecc/CharSet.java index c1bec22..f6ae0cb 100644 --- a/src/main/java/org/sablecc/sablecc/CharSet.java +++ b/src/main/java/org/sablecc/sablecc/CharSet.java @@ -162,14 +162,16 @@ public class CharSet implements Cloneable @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); for(Interval i : intervals) { - result.append("[" + i + "] "); + result.append("["); + result.append(i); + result.append("] "); } - return "" + result; + return result.toString(); } public static class Interval implements Cloneable diff --git a/src/main/java/org/sablecc/sablecc/DFA.java b/src/main/java/org/sablecc/sablecc/DFA.java index 7b53279..5d5d1ee 100644 --- a/src/main/java/org/sablecc/sablecc/DFA.java +++ b/src/main/java/org/sablecc/sablecc/DFA.java @@ -312,11 +312,14 @@ public class DFA @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); for(int i = 0; i < states.size(); i++) { - result.append(i + ": " + states.get(i) + System.getProperty("line.separator")); + result.append(i); + result.append(": "); + result.append(states.get(i)); + result.append(System.getProperty("line.separator")); } return result.toString(); @@ -336,7 +339,7 @@ public class DFA @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); /* for(int i = 0; i < nfaStates.size(); i++) { @@ -351,10 +354,11 @@ public class DFA for(DFA.Transition transition : transitions) { - result.append(transition + ","); + result.append(transition); + result.append(","); } - return result /*+ " " + nfaStates*/ + ""; + return result.toString() /*+ " " + nfaStates*/; } } diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java index 26e5f2c..5c670d7 100644 --- a/src/main/java/org/sablecc/sablecc/GenAlts.java +++ b/src/main/java/org/sablecc/sablecc/GenAlts.java @@ -358,7 +358,7 @@ public class GenAlts extends DepthFirstAdapter public static String nodeName(String s) { - StringBuffer result = new StringBuffer(s); + StringBuilder result = new StringBuilder(s); if(result.length() > 0) { diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java index 44fbe33..06a6770 100644 --- a/src/main/java/org/sablecc/sablecc/GenParser.java +++ b/src/main/java/org/sablecc/sablecc/GenParser.java @@ -445,7 +445,7 @@ public class GenParser extends DepthFirstAdapter macros.apply(file, "ParserActionHeader"); - StringBuffer table = new StringBuffer(); + StringBuilder table = new StringBuilder(); DataOutputStream out = new DataOutputStream( new BufferedOutputStream( @@ -484,9 +484,11 @@ public class GenParser extends DepthFirstAdapter } table.append(" {"); - table.append("{" + -1 + ", " + - mostFrequentAction + ", " + - mostFrequentDestination + "}, "); + table.append("{-1, "); + table.append(mostFrequentAction); + table.append(", "); + table.append(mostFrequentDestination); + table.append("}, "); innerArray.add( new int[] {-1, mostFrequentAction.equals("ERROR") ? 3 : 1, @@ -499,29 +501,40 @@ public class GenParser extends DepthFirstAdapter switch(Grammar.action_[i][j][0]) { case 0: - table.append("{" + j + ", SHIFT, " + Grammar.action_[i][j][1] + "}, "); + table.append("{"); + table.append(j); + table.append(", SHIFT, "); + table.append(Grammar.action_[i][j][1]); + table.append("}, "); innerArray.add(new int[] {j, 0, Grammar.action_[i][j][1]}); break; case 1: if(Grammar.action_[i][j][1] != mostFrequentDestination) { - table.append("{" + j + ", REDUCE, " + Grammar.action_[i][j][1] + "}, "); + table.append("{"); + table.append(j); + table.append(", REDUCE, "); + table.append(Grammar.action_[i][j][1]); + table.append("}, "); innerArray.add(new int[] {j, 1, Grammar.action_[i][j][1]}); } break; case 2: - table.append("{" + j + ", ACCEPT, -1}, "); + table.append("{"); + table.append(j); + table.append(", ACCEPT, -1}, "); innerArray.add(new int[] {j, 2, -1}); break; } } } - table.append("}," + System.getProperty("line.separator")); + table.append("},"); + table.append(System.getProperty("line.separator")); outerArray.add(innerArray); } - file.write("" + table); + file.write(table.toString()); out.writeInt(outerArray.size()); for(List<int[]> innerArray : outerArray) @@ -540,7 +553,7 @@ public class GenParser extends DepthFirstAdapter macros.apply(file, "ParserGotoHeader"); - table = new StringBuffer(); + table = new StringBuilder(); outerArray = new ArrayList<>(); for(int j = 0; j < nonterminals.length - 1; j++) @@ -569,7 +582,9 @@ public class GenParser extends DepthFirstAdapter table.append(" {"); - table.append("{" + (-1) + ", " + mostFrequent + "}, "); + table.append("{-1, "); + table.append(mostFrequent); + table.append("}, "); innerArray.add(new int[] {-1, mostFrequent}); for(int i = 0; i < Grammar.goto_.length; i++) @@ -577,17 +592,22 @@ public class GenParser extends DepthFirstAdapter if((Grammar.goto_[i][j] != -1) && (Grammar.goto_[i][j] != mostFrequent)) { - table.append("{" + i + ", " + Grammar.goto_[i][j] + "}, "); + table.append("{"); + table.append(i); + table.append(", "); + table.append(Grammar.goto_[i][j]); + table.append("}, "); innerArray.add(new int[] {i, Grammar.goto_[i][j]}); } } - table.append("}," + System.getProperty("line.separator")); + table.append("},"); + table.append(System.getProperty("line.separator")); outerArray.add(innerArray); } - file.write("" + table); + file.write(table.toString()); out.writeInt(outerArray.size()); for(List<int[]> innerArray : outerArray) @@ -606,8 +626,8 @@ public class GenParser extends DepthFirstAdapter macros.apply(file, "ParserErrorsHeader"); - table = new StringBuffer(); - StringBuffer index = new StringBuffer(); + table = new StringBuilder(); + StringBuilder index = new StringBuilder(); int nextIndex = 0; Map<String, Integer> errorIndex = new TreeMap<>(); @@ -618,7 +638,7 @@ public class GenParser extends DepthFirstAdapter index.append(" "); for(int i = 0; i < Grammar.action_.length; i++) { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); s.append("expecting: "); boolean comma = false; @@ -641,20 +661,25 @@ public class GenParser extends DepthFirstAdapter if(errorIndex.containsKey(s.toString())) { - index.append(errorIndex.get(s.toString()) + ", "); + index.append(errorIndex.get(s.toString())); + index.append(", "); indexArray.add(errorIndex.get(s.toString())); } else { - table.append(" \"" + s + "\"," + System.getProperty("line.separator")); + table.append(" \""); + table.append(s); + table.append("\","); + table.append(System.getProperty("line.separator")); outerArray2.add(s.toString()); errorIndex.put(s.toString(), nextIndex); indexArray.add(nextIndex); - index.append(nextIndex++ + ", "); + index.append(nextIndex++); + index.append(", "); } } - file.write("" + table); + file.write(table.toString()); out.writeInt(outerArray2.size()); for(String s : outerArray2) @@ -678,7 +703,7 @@ public class GenParser extends DepthFirstAdapter macros.apply(file, "ParserErrorsTail"); macros.apply(file, "ParserErrorIndexHeader"); - file.write("" + index); + file.write(index.toString()); macros.apply(file, "ParserErrorIndexTail"); macros.apply(file, "ParserTail"); @@ -748,7 +773,7 @@ public class GenParser extends DepthFirstAdapter return 0; } - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); int i = 1; while((i < name.length()) && diff --git a/src/main/java/org/sablecc/sablecc/GenTokens.java b/src/main/java/org/sablecc/sablecc/GenTokens.java index 513aa6a..4e863b7 100644 --- a/src/main/java/org/sablecc/sablecc/GenTokens.java +++ b/src/main/java/org/sablecc/sablecc/GenTokens.java @@ -120,7 +120,7 @@ public class GenTokens extends DepthFirstAdapter private String processText(String s) { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); for(int i = 0; i < s.length(); i++) { diff --git a/src/main/java/org/sablecc/sablecc/Grammar.java b/src/main/java/org/sablecc/sablecc/Grammar.java index ea93cde..8ee609f 100644 --- a/src/main/java/org/sablecc/sablecc/Grammar.java +++ b/src/main/java/org/sablecc/sablecc/Grammar.java @@ -99,7 +99,7 @@ public final class Grammar goto_ = new int[sets.length][nonterminals.length - 1]; Set<String> listOfConflictualProds = new HashSet<>(); - StringBuffer conflictMessage = new StringBuffer(); + StringBuilder conflictMessage = new StringBuilder(); for(int i = 0; i < sets.length; i++) { @@ -159,28 +159,34 @@ public final class Grammar switch(action[0]) { case 0: - conflictMessage.append( - "\n\nshift/reduce conflict in state [stack:" + - collection.collection.names.get(i) + "*] on " + - terminals[j] + " in " + state.toString(terminals[j])); + conflictMessage.append("\n\nshift/reduce conflict in state [stack:"); + conflictMessage.append(collection.collection.names.get(i)); + conflictMessage.append("*] on "); + conflictMessage.append(terminals[j]); + conflictMessage.append(" in "); + conflictMessage.append(state.toString(terminals[j])); /* nothing else to do */ break; case 1: - conflictMessage.append( - "\n\nreduce/reduce conflict in state [stack:" + - collection.collection.names.get(i) + "*] on " + - terminals[j] + " in " + state.toString(terminals[j])); + conflictMessage.append("\n\nreduce/reduce conflict in state [stack:"); + conflictMessage.append(collection.collection.names.get(i)); + conflictMessage.append("*] on "); + conflictMessage.append(terminals[j]); + conflictMessage.append(" in "); + conflictMessage.append(state.toString(terminals[j])); listOfConflictualProds.add(Symbol.symbol(Production.production(action[1]).leftside, false).toString()); break; case 2: - conflictMessage.append( - "\n\nreduce/accept conflict in state [stack:" + - collection.collection.names.get(i) + "*] on " + - terminals[j] + " in " + state.toString(terminals[j])); + conflictMessage.append("\n\nreduce/accept conflict in state [stack:"); + conflictMessage.append(collection.collection.names.get(i)); + conflictMessage.append("*] on "); + conflictMessage.append(terminals[j]); + conflictMessage.append(" in "); + conflictMessage.append(state.toString(terminals[j])); listOfConflictualProds.add(Symbol.symbol(Production.production(action[1]).leftside, false).toString()); break; @@ -208,19 +214,23 @@ public final class Grammar switch(action[0]) { case 0: - conflictMessage.append( - "shift/accept conflict in state [stack:" + - collection.collection.names.get(i) + "*] on " + - terminals[j] + " in " + state); + conflictMessage.append("shift/accept conflict in state [stack:"); + conflictMessage.append(collection.collection.names.get(i)); + conflictMessage.append("*] on "); + conflictMessage.append(terminals[j]); + conflictMessage.append(" in "); + conflictMessage.append(state); /* nothing else to do */ break; case 1: - conflictMessage.append( - "reduce/accept conflict in state [stack:" + - collection.collection.names.get(i) + "*] on " + - terminals[j] + " in " + state); + conflictMessage.append("reduce/accept conflict in state [stack:"); + conflictMessage.append(collection.collection.names.get(i)); + conflictMessage.append("*] on "); + conflictMessage.append(terminals[j]); + conflictMessage.append(" in "); + conflictMessage.append(state); listOfConflictualProds.add(Symbol.symbol(Production.production(action[1]).leftside, false).toString()); diff --git a/src/main/java/org/sablecc/sablecc/IntSet.java b/src/main/java/org/sablecc/sablecc/IntSet.java index c7daf53..7fe71d8 100644 --- a/src/main/java/org/sablecc/sablecc/IntSet.java +++ b/src/main/java/org/sablecc/sablecc/IntSet.java @@ -301,7 +301,7 @@ public class IntSet @Override public String toString() { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); s.append("{"); diff --git a/src/main/java/org/sablecc/sablecc/LR0Collection.java b/src/main/java/org/sablecc/sablecc/LR0Collection.java index c241223..86afd73 100644 --- a/src/main/java/org/sablecc/sablecc/LR0Collection.java +++ b/src/main/java/org/sablecc/sablecc/LR0Collection.java @@ -108,15 +108,18 @@ final class LR0Collection @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); - result.append("{[LR0ItemCollection]" + System.getProperty("line.separator")); + result.append("{[LR0ItemCollection]"); + result.append(System.getProperty("line.separator")); LR0ItemSet[] sets = sets(); Symbol[] symbols = Symbol.symbols(); for(int i = 0; i < sets.length; i++) { - result.append(i + ":" + Grammar.CLOSURE(sets[i])); + result.append(i); + result.append(":"); + result.append(Grammar.CLOSURE(sets[i])); result.append(System.getProperty("line.separator")); for(int j = 0; j < symbols.length; j++) diff --git a/src/main/java/org/sablecc/sablecc/LR0Item.java b/src/main/java/org/sablecc/sablecc/LR0Item.java index 104702e..b9bf3bd 100644 --- a/src/main/java/org/sablecc/sablecc/LR0Item.java +++ b/src/main/java/org/sablecc/sablecc/LR0Item.java @@ -63,7 +63,7 @@ final class LR0Item implements Cloneable, Comparable<LR0Item> @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); String prodStr = (Production.production(production)).toString(); int pos = 0; diff --git a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java index beb9bdc..a8765d9 100644 --- a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java +++ b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java @@ -63,7 +63,7 @@ final class LR0ItemSet implements Cloneable, Comparable<LR0ItemSet> @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); result.append("{"); Production[] productions = Production.productions(); diff --git a/src/main/java/org/sablecc/sablecc/LR1Collection.java b/src/main/java/org/sablecc/sablecc/LR1Collection.java index a40eb3f..ddd6200 100644 --- a/src/main/java/org/sablecc/sablecc/LR1Collection.java +++ b/src/main/java/org/sablecc/sablecc/LR1Collection.java @@ -153,23 +153,28 @@ final class LR1Collection @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); result.append(collection); result.append(System.getProperty("line.separator")); - result.append("Lookaheads" + System.getProperty("line.separator")); + result.append("Lookaheads"); + result.append(System.getProperty("line.separator")); LR0ItemSet[] sets = collection.sets(); for(int i = 0; i < sets.length; i++) { - result.append(i + ":" + System.getProperty("line.separator")); + result.append(i); + result.append(":"); + result.append(System.getProperty("line.separator")); LR0Item[] items = sets[i].items(); for(int j = 0; j < items.length; j++) { - result.append(items[j] + ":" + lookaheads[i].get(items[j]) + - System.getProperty("line.separator")); + result.append(items[j]); + result.append(":"); + result.append(lookaheads[i].get(items[j])); + result.append(System.getProperty("line.separator")); } } diff --git a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java index c45a751..1155356 100644 --- a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java +++ b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java @@ -66,8 +66,10 @@ final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet> { String nl = System.getProperty("line.separator"); - StringBuffer result = new StringBuffer(); - result.append("{" + nl + "\t"); + StringBuilder result = new StringBuilder(); + result.append("{"); + result.append(nl); + result.append("\t"); Production[] productions = Production.productions(); Symbol[] terminals = Symbol.terminals(); @@ -88,7 +90,9 @@ final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet> { if(comma) { - result.append("," + nl + "\t"); + result.append(","); + result.append(nl); + result.append("\t"); } else { @@ -101,7 +105,8 @@ final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet> } } - result.append(nl + "}"); + result.append(nl); + result.append("}"); return result.toString(); } @@ -125,7 +130,7 @@ final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet> } } - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); result.append("{"); boolean colon = false; diff --git a/src/main/java/org/sablecc/sablecc/MacroExpander.java b/src/main/java/org/sablecc/sablecc/MacroExpander.java index 72a05a3..5ff476f 100644 --- a/src/main/java/org/sablecc/sablecc/MacroExpander.java +++ b/src/main/java/org/sablecc/sablecc/MacroExpander.java @@ -83,7 +83,7 @@ public class MacroExpander { if((c = line.charAt(i)) == '$') { - StringBuffer index = new StringBuffer(); + StringBuilder index = new StringBuilder(); while((c = line.charAt(++i)) != '$') { diff --git a/src/main/java/org/sablecc/sablecc/NFA.java b/src/main/java/org/sablecc/sablecc/NFA.java index ba1475b..7ae0231 100644 --- a/src/main/java/org/sablecc/sablecc/NFA.java +++ b/src/main/java/org/sablecc/sablecc/NFA.java @@ -278,10 +278,13 @@ public class NFA implements Cloneable @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); for(int i = 0; i < states.length; i++) { - result.append(i + ":" + states[i] + System.getProperty("line.separator")); + result.append(i); + result.append(":"); + result.append(states[i]); + result.append(System.getProperty("line.separator")); } return result.toString(); } @@ -316,18 +319,22 @@ public class NFA implements Cloneable @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); if(accept != null) { - result.append("(" + accept + ") "); + result.append("("); + result.append(accept); + result.append(") "); } if(transitions[0] != null) { - result.append(" " + transitions[0]); + result.append(" "); + result.append(transitions[0]); } if(transitions[1] != null) { - result.append(" " + transitions[1]); + result.append(" "); + result.append(transitions[1]); } return result.toString(); } diff --git a/src/main/java/org/sablecc/sablecc/Production.java b/src/main/java/org/sablecc/sablecc/Production.java index 50d9017..9fd864c 100644 --- a/src/main/java/org/sablecc/sablecc/Production.java +++ b/src/main/java/org/sablecc/sablecc/Production.java @@ -124,7 +124,7 @@ final class Production @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); result.append(Symbol.symbol(leftside, false)); diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java index a8930ad..7f9df74 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java @@ -135,7 +135,7 @@ public class ResolveAltIds extends DepthFirstAdapter @Override public String toString() { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); String nl = System.getProperty("line.separator"); s.append("Alternative elements : "); diff --git a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java index 98c4863..d3116a2 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java @@ -321,7 +321,7 @@ public class ResolveAstIds extends DepthFirstAdapter @Override public String toString() { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); String nl = System.getProperty("line.separator"); s.append("Productions:"); diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java index 13480bf..4e7ea9c 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java @@ -503,7 +503,7 @@ public class ResolveIds extends DepthFirstAdapter public static String name(String s) { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); boolean upcase = true; int length = s.length(); char c; @@ -539,7 +539,7 @@ public class ResolveIds extends DepthFirstAdapter public static String errorName(String s) { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); int length = s.length(); char c; @@ -615,7 +615,7 @@ public class ResolveIds extends DepthFirstAdapter @Override public String toString() { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); String nl = System.getProperty("line.separator"); s.append("Helpers:"); diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java index 75f90f7..cd2f224 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java @@ -1035,7 +1035,7 @@ public class ResolveTransformIds extends DepthFirstAdapter @Override public String toString() { - StringBuffer s = new StringBuffer(); + StringBuilder s = new StringBuilder(); String nl = System.getProperty("line.separator"); s.append("ast_elems"); diff --git a/src/main/java/org/sablecc/sablecc/SymbolSet.java b/src/main/java/org/sablecc/sablecc/SymbolSet.java index e1371eb..cf08444 100644 --- a/src/main/java/org/sablecc/sablecc/SymbolSet.java +++ b/src/main/java/org/sablecc/sablecc/SymbolSet.java @@ -163,7 +163,7 @@ final class SymbolSet implements Cloneable @Override public String toString() { - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); result.append("{"); Symbol[] symbols = getSymbols(); -- GitLab