50 lines
1.4 KiB
Text
50 lines
1.4 KiB
Text
import extensions;
|
|
import system'routines;
|
|
import extensions'text;
|
|
|
|
string text =
|
|
"In olden times when wishing still helped one, there lived a king
|
|
whose daughters were all beautiful, but the youngest was so beautiful
|
|
that the sun itself, which has seen so much, was astonished whenever
|
|
it shone in her face. Close by the king's castle lay a great dark
|
|
forest, and under an old lime tree in the forest was a well, and when
|
|
the day was very warm, the king's child went out into the forest and
|
|
sat down by the side of the cool fountain, and when she was bored she
|
|
took a golden ball, and threw it up on high and caught it, and this
|
|
ball was her favorite plaything.";
|
|
|
|
extension wrapOp
|
|
{
|
|
wrap(int lineWidth)
|
|
{
|
|
int currentWidth := 0;
|
|
|
|
^ TokenEnumerator
|
|
.new(self)
|
|
.selectBy:(word)
|
|
{
|
|
currentWidth += word.Length;
|
|
if (currentWidth > lineWidth)
|
|
{
|
|
currentWidth := word.Length + 1;
|
|
|
|
^ newLine + word + " "
|
|
}
|
|
else
|
|
{
|
|
currentWidth += 1;
|
|
|
|
^ word + " "
|
|
}
|
|
}
|
|
.summarize(new StringWriter())
|
|
}
|
|
}
|
|
|
|
public program()
|
|
{
|
|
console.printLine(new StringWriter("-", 72));
|
|
console.printLine(text.wrap(72));
|
|
console.printLine(new StringWriter("-", 80));
|
|
console.printLine(text.wrap(80));
|
|
}
|