diff options
Diffstat (limited to 'src/main/java/bjc/rgens/parser/Rule.java')
| -rwxr-xr-x | src/main/java/bjc/rgens/parser/Rule.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/main/java/bjc/rgens/parser/Rule.java b/src/main/java/bjc/rgens/parser/Rule.java index 21d197d..1a74352 100755 --- a/src/main/java/bjc/rgens/parser/Rule.java +++ b/src/main/java/bjc/rgens/parser/Rule.java @@ -297,24 +297,23 @@ public class Rule { endRecur(); } + // Don't rebuild the builder a bunch + String conts = state.getContents(); if(name.contains("+")) { - state.contents = new StringBuilder(state.contents.toString().replaceAll("\\s+", "")); + conts = conts.replaceAll("\\s+", ""); } - String conts = state.contents.toString(); - for(IPair<String, String> findRep : findReplaces) { conts = conts.replaceAll(findRep.getLeft(), findRep.getRight()); } - - state.contents = new StringBuilder(conts); + state.setContents(conts); for(String pat : rejectionPreds) { if(!conts.matches(pat)) { fine("Rejected %s by %s (from %s)", conts, pat, belongsTo.name); rejected = true; - state.contents = new StringBuilder(); + state.clearContents(); break; } |
