git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1486 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
		
			
				
	
	
		
			35 lines
		
	
	
		
			859 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			859 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| :- object(reverse).
 | |
| 
 | |
| 
 | |
| 	:- info([
 | |
| 		version is 1.0,
 | |
| 		author is 'Paulo Moura',
 | |
| 		date is 2004/2/16,
 | |
| 		comment is 'Reads and writes a simple table of facts from and to files for testing operator handling code.']).
 | |
| 
 | |
| 	:- op(500, xfx, next).				% local object operators, not visible outside this object
 | |
| 	:- op(500, xfx, previous).
 | |
| 
 | |
| 	:- initialization(reverse_file).
 | |
| 
 | |
| 
 | |
| 	reverse_file :-
 | |
| 		open('next.txt', read, RStream),
 | |
| 		open('previous.txt', write, WStream),
 | |
| 		read(RStream, Term),			% local operators are used when reading terms ...
 | |
| 		process(Term, RStream, WStream).
 | |
| 
 | |
| 	process(end_of_file, RStream, WStream) :-
 | |
| 		close(RStream),
 | |
| 		close(WStream).
 | |
| 
 | |
| 	process(X next Y, RStream, WStream) :-
 | |
| 		write(WStream, Y previous X),	% ... and when writing terms
 | |
| 		write(WStream, '.'), nl(WStream),
 | |
| 		read(RStream, Next),
 | |
| 		process(Next, RStream, WStream).
 | |
| 
 | |
| 
 | |
| :- end_object.
 |