JOY - compiled at 16:57:51 on Mar 17 2003 (BDW) Copyright 2001 by Manfred von Thun usrlib is loaded inilib is loaded agglib is loaded 1 setundeferror. DEFINE # English French German zero == 0 0 pop; one == zero 1 +; HIDE un == one; deux == zero one un + + IN two == deux; three == zero un + deux +; END; four == two three + one -; HIDE trois == two succ; HIDE eins == one; zwei == one dup +; drei == eins zwei +; IN quatre == drei eins +; END; cinq == two trois + IN five == cinq; six == trois three +; seven == trois drei + succ; END; END zero. 0 one. 1 two. 2 three. 3 four. 4 five. 5 six. 6 seven. # should complain about undefined drei ! run time error: definition needed for drei HIDE twenty == 20; thirty == 30; IN fifty == twenty thirty +; END fifty. 50 thirty. # should complain about undefined thirty ! run time error: definition needed for thirty MODULE m1 PRIVATE a == "a"; b == "b" PUBLIC ab == a b concat; ba == b a concat; abba == ab ba concat END # correct usage of fields: m1.ab . "ab" m1.ba . "ba" m1.abba . "abba" # incorrect usage of fields: no such field m1.a . m1.a . ^ no such field in module [] m1.b . m1.b . ^ no such field in module [] MODULE m2 PRIVATE a == "A"; b == "B" PUBLIC ab == a b concat; ba == b a concat; abba == ab ba concat; HIDE c == "C"; d == "D" IN cd == c d concat; abc == a b concat c concat END; bcd == b cd concat END # correct usage of fields: m2.ab . "AB" m2.ba . "BA" m2.abba . "ABBA" m2.cd . "CD" m2.abc . "ABC" m2.bcd . "BCD" # incorrect usage of fields: no such field m2.a . m2.a . ^ no such field in module [] m2.b . m2.b . ^ no such field in module [] m2.c . m2.c . ^ no such field in module [] m2.d . m2.d . ^ no such field in module []