- do not call goal expansion on meta-calls (that is done by undef). - docs updates - fix init code
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
| /*************************************************************************
 | |
| *									 *
 | |
| *	 YAP Prolog 							 *
 | |
| *									 *
 | |
| *	Yap Prolog was developed at NCCUP - Universidade do Porto	 *
 | |
| *									 *
 | |
| * Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997	 *
 | |
| *									 *
 | |
| **************************************************************************
 | |
| *									 *
 | |
| * File:		readutil.yap						 *
 | |
| * Last rev:	5/12/99							 *
 | |
| * mods:									 *
 | |
| * comments:	SWI compatible read utilities				 *
 | |
| *									 *
 | |
| *************************************************************************/
 | |
| 
 | |
| /**
 | |
|  * @file   readutil.yap
 | |
|  * @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
 | |
|  * @date   Wed Nov 18 00:16:15 2015
 | |
|  *
 | |
|  * @brief  Read full lines and a full file in a single call.
 | |
|  *
 | |
|  *
 | |
| */
 | |
| 
 | |
| :- module(readutil, [
 | |
| 	read_line_to_codes/2,
 | |
| 	read_line_to_codes/3,
 | |
| 	read_stream_to_codes/2,
 | |
| 	read_stream_to_codes/3,
 | |
| 	read_file_to_codes/2,
 | |
| 	read_file_to_codes/3,
 | |
| 	read_file_to_terms/2,
 | |
|                      read_file_to_terms/3,
 | |
|                      read_line_to_string/2
 | |
| 		    ]).
 | |
| 
 | |
| /**
 | |
| * @defsgroup readutil
 | |
| * @ingroup library
 | |
| *
 | |
| *  Read full lines and a full file in a single call.
 | |
| *
 | |
| */
 | |
| 
 | |
| 
 | |
| read_stream_to_codes(Stream, Codes) :-
 | |
| 	read_stream_to_codes(Stream, Codes, []).
 | |
| 
 | |
| read_file_to_codes(File, Codes, _) :-
 | |
| 	open(File, read, Stream),
 | |
| 	read_stream_to_codes(Stream, Codes, []),
 | |
| 	close(Stream).
 | |
| 
 | |
| read_file_to_codes(File, Codes) :-
 | |
| 	open(File, read, Stream),
 | |
| 	read_stream_to_codes(Stream, Codes, []),
 | |
| 	close(Stream).
 | |
| 
 | |
| read_file_to_terms(File, Codes, _) :-
 | |
| 	open(File, read, Stream),
 | |
| 	prolog_read_stream_to_terms(Stream, Codes, []),
 | |
| 	close(Stream).
 | |
| 
 | |
| read_file_to_terms(File, Codes) :-
 | |
| 	open(File, read, Stream),
 | |
| 	read_stream_to_terms(Stream, Codes, []),
 | |
| 	close(Stream).
 | |
| 
 | |
| 
 | |
| prolog_read_stream_to_terms(Stream, Terms, Terms0) :-
 | |
| 	read(Stream, Term),
 | |
| 	(Term == end_of_file ->
 | |
| 	    Terms = Terms0
 | |
| 	;
 | |
| 	    Terms = [Term|TermsI],
 | |
| 	    prolog_read_stream_to_terms(Stream, TermsI, Terms0)
 | |
| 	).
 |