diff options
Diffstat (limited to 'RGens/src/main')
| -rw-r--r-- | RGens/src/main/java/bjc/rgens/newparser/RGrammar.java | 17 |
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. */ |
