summaryrefslogtreecommitdiff
path: root/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
diff options
context:
space:
mode:
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/newparser/RGrammar.java')
-rw-r--r--RGens/src/main/java/bjc/rgens/newparser/RGrammar.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
index 17f6d43..0ac0a16 100644
--- a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
+++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java
@@ -177,7 +177,22 @@ public class RGrammar {
generateCase(start, new GenerationState(contents, rnd, vars));
- return contents.toString().replaceAll("\\s+", " ");
+ String body = contents.toString();
+
+ /*
+ * Collapse duplicate spaces.
+ */
+ body = body.replaceAll("\\s+", " ");
+
+ /*
+ * Remove extraneous spaces around punctutation marks.
+ *
+ * This can be done in the grammars, but it is very tedious to
+ * do so.
+ */
+ body = body.replaceAll(" ([,:().'\"\\[\\]/]) ", "$1 ");
+
+ return body;
}
/* Generate a rule case. */