From 910d04a786a8b6764928542b0b20563d2539c4be Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Tue, 2 Mar 2010 23:13:39 +0000 Subject: [PATCH] test for [X] and friends. --- pl/consult.yap | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pl/consult.yap b/pl/consult.yap index d536a656a..1bfb3c3ad 100644 --- a/pl/consult.yap +++ b/pl/consult.yap @@ -32,13 +32,37 @@ load_files(Files,Opts) :- '$load_files'(Files,Opts,load_files(Files,Opts)). -'$load_files'(Files,Opts,Call) :- +'$load_files'(Files,Opts,Call) :- + '$check_files'(Files,load_files(Files,Opts)), '$process_lf_opts'(Opts,Silent,InfLevel,Expand,Changed,CompilationMode,Imports,Stream,Encoding,SkipUnixComments,CompMode,Reconsult,Files,Call), '$check_use_module'(Call,UseModule), '$current_module'(M0), '$lf'(Files,M0,Call,InfLevel,Expand,Changed,CompilationMode,Imports,Stream,Encoding,SkipUnixComments,CompMode,Reconsult,UseModule), '$close_lf'(Silent). +'$check_files'(Files,Call) :- + var(Files), !, + '$do_error'(instantiation_error,Call). +'$check_files'(M:Files,Call) :- + (var(M) + -> + '$do_error'(instantiation_error,Call) + ; + atom(M) + -> + '$check_files'(Files,Call) + ; + '$do_error'(type_error(atom,M),Call) + ). +'$check_files'(Files,Call) :- + (ground(Files) + -> + true + ; + '$do_error'(instantiation_error,Call) + ). + + '$process_lf_opts'(V,_,_,_,_,_,_,_,_,_,_,_,_,Call) :- var(V), !, '$do_error'(instantiation_error,Call).