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
[]