diff --git a/src/cc/journeyman/milkwood/Composer.java b/src/cc/journeyman/milkwood/Composer.java index 562ea35..a733377 100644 --- a/src/cc/journeyman/milkwood/Composer.java +++ b/src/cc/journeyman/milkwood/Composer.java @@ -1,6 +1,7 @@ package cc.journeyman.milkwood; import java.util.Collection; +import java.util.Collections; /** * Composes text output based on a rule tree. @@ -43,7 +44,9 @@ public class Composer { System.err.println("Preamble: " + preamble); } - result.addAll(preamble); + Window copy = preamble.duplicate(); + Collections.reverse(copy); + result.addAll(copy); result.addAll(this.compose(preamble, rules, length)); diff --git a/src/cc/journeyman/milkwood/Writer.java b/src/cc/journeyman/milkwood/Writer.java index e70e6f8..3dc4053 100644 --- a/src/cc/journeyman/milkwood/Writer.java +++ b/src/cc/journeyman/milkwood/Writer.java @@ -87,7 +87,9 @@ class Writer extends BufferedWriter { this.maybeParagraph(token); - return (token.endsWith(Milkwood.PERIOD)); + return (token.endsWith(Milkwood.PERIOD) || + token.equals("?") || + token.endsWith("!")); } /** @@ -112,6 +114,10 @@ class Writer extends BufferedWriter { case ',': case ':': case ';': + case '!': + case '?': + case ')': + case ']': case 's': /* * an 's' on its own is probably evidence of a possessive with