/**
* Class for "The House That Jack Built" by Jonathan Swift
*/
public class JackHouse {
public static final String[][] Scene = {
{"This is", " ", " the farmer sowing the corn," },
{"That", " kept", " the cock that crowed in the morn,"},
{"That", " waked", " the priest all shaven and shorn," },
{"That", " married", " the man all tattered and torn," },
{"That", " kissed", " the maiden all forlorn," },
{"That", " milked", " the cow with the crumpled horn," },
{"That", " tossed", " the dog," },
{"That", " worried", " the cat," },
{"That", " killed", " the rat," },
{"That", " ate", " the malt" },
{"That", " lay", " in the house that Jack built." }
};
/**$ENTRY Go {
* = <Title> <JonathanSwift>;
*}
*/
public static void main (String args[]) {
Title();
JonathanSwift();
}
/**Title {
* = <Out (' The House That Jack Built')
* (' Jonathan Swift' )>;
*}
*/
public static void Title() {
System.out.println(" The House That Jack Built");
System.out.println(" Jonathan Swift");
}
/**Paragraph {
* = <NL> <NL>;
*}
*/
public static void Paragraph() {
NL();
NL();
}
/**NL {
* = <Prout >;
*}
*/
public static void NL() {
System.out.println();
}
/**JonathanSwift {
* = <Loop <Scene>>;
*}
*/
public static void JonathanSwift() {
Loop(0);
}
/**Loop {
* ("This is" 'in the house that Jack built.') =
* <Paragraph>
* <Out ("This is" 'the house that Jack built.')>;
*
* e.Couplet = <Next e.Couplet>
* <Paragraph>
* <Out e.Couplet>;
*}
*/
public static void Loop(int Couplet) {
int nScene = Scene.length;
if (Couplet == nScene -1) {
Paragraph();
System.out.println("This is the house that Jack built.");
}
else {
Next(Couplet);
Paragraph();
Out(Couplet);
}
}
/**Next {
* (e.first) ("That" s.1 e.2) e.text =
* <Loop ("This is" e.2) e.text>;
*}
*/
public static void Next(int Couplet) {
Loop(Couplet + 1);
}
/**Out {
* = ;
* (e.first) e.text = <Prout e.first>
* <Out e.text>;
*}
*/
public static void Out(int Couplet) {
int nScene = Scene.length;
System.out.println("This is" + Scene[Couplet][2]);
for (int j=Couplet+1; j<nScene; j++) {
System.out.println(Scene[j][0] +
Scene[j][1] +
Scene[j][2] );
}
}
}
//--------------------------------------------------
/*
*$MST_FROM_ENTRY;
$EXTRN Prout;
$ENTRY Go {
= <Title> <JonathanSwift>;
}
Title {
= <Out (' The House That Jack Built')
(' Jonathan Swift' )>;
}
Paragraph {
= <NL> <NL>;
}
NL {
= <Prout >;
}
Scene { =
("This is" 'the farmer sowing the corn,' " " )
("That" "kept" 'the cock that crowed in the morn,' )
("That" "waked" 'the priest all shaven and shorn,' )
("That" "married" 'the man all tattered and torn,' )
("That" "kissed" 'the maiden all forlorn,' )
("That" "milked" 'the cow with the crumpled horn,' )
("That" "tossed" 'the dog,' )
("That" "worried" 'the cat,' )
("That" "killed" 'the rat,' )
("That" "ate" 'the malt' )
("That" "lay" 'in the house that Jack built.' )
}
JonathanSwift {
= <Loop <Scene>>;
}
Loop {
("This is" 'in the house that Jack built.') =
<Paragraph>
<Out ("This is" 'the house that Jack built.')>;
e.Couplet = <Next e.Couplet>
<Paragraph>
<Out e.Couplet>;
}
Next {
(e.first) ("That" s.1 e.2) e.text =
<Loop ("This is" e.2) e.text>;
}
Out {
= ;
(e.first) e.text = <Prout e.first>
<Out e.text>;
}
*/