absolute_file_name
This commit is contained in:
parent
46ab2e7590
commit
d4ed02bdd3
@ -687,21 +687,27 @@ absolute_file_name(File,Opts,TrueFileName) :-
|
|||||||
'$do_error'(instantiation_error, G).
|
'$do_error'(instantiation_error, G).
|
||||||
'$absolute_file_name'(File,Opts,TrueFileName, G) :-
|
'$absolute_file_name'(File,Opts,TrueFileName, G) :-
|
||||||
'$process_fn_opts'(Opts,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G),
|
'$process_fn_opts'(Opts,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G),
|
||||||
FoundOne = a(false),
|
/* our own local findall */
|
||||||
|
nb:nb_queue(Ref),
|
||||||
(
|
(
|
||||||
'$find_in_path'(File,opts(Extensions,RelTo,Type,Access,FErrors,Expand,Debug),TrueFileName,G),
|
'$find_in_path'(File,opts(Extensions,RelTo,Type,Access,FErrors,Expand,Debug),TrueFileName,G),
|
||||||
(Solutions = first -> ! ; true),
|
nb:nb_queue_enqueue(Ref, TrueFileName),
|
||||||
nb_setarg(1, FoundOne, true)
|
fail
|
||||||
;
|
;
|
||||||
|
nb:nb_queue_close(Ref, FileNames, [])
|
||||||
|
),
|
||||||
|
'$absolute_file_names'(Solutions, FileNames, FError, TrueFileName, File, G).
|
||||||
|
|
||||||
FErrors = error, FoundOne = a(false) ->
|
'$absolute_file_names'(Solutions, [], error, _, File, G) :- !,
|
||||||
'$do_error'(existence_error(file,File),G)
|
'$do_error'(existence_error(file,File),G).
|
||||||
).
|
'$absolute_file_names'(Solutions, FileNames, _, TrueFileName, _, _) :-
|
||||||
|
lists:member(TrueFileName, FileNames),
|
||||||
|
(Solutions == first -> ! ; true).
|
||||||
|
|
||||||
|
|
||||||
'$process_fn_opts'(V,_,_,_,_,_,_,_,_,G) :- var(V), !,
|
'$process_fn_opts'(V,_,_,_,_,_,_,_,_,G) :- var(V), !,
|
||||||
'$do_error'(instantiation_error, G).
|
'$do_error'(instantiation_error, G).
|
||||||
'$process_fn_opts'([],[],_,source,none,error,first,false,false,_) :- !.
|
'$process_fn_opts'([],[],_,txt,none,error,first,false,false,_) :- !.
|
||||||
'$process_fn_opts'([Opt|Opts],Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G) :- !,
|
'$process_fn_opts'([Opt|Opts],Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G) :- !,
|
||||||
'$process_fn_opt'(Opt,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions0,RelTo0,Type0,Access0,FErrors0,Solutions0,Expand0,Debug0,G),
|
'$process_fn_opt'(Opt,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions0,RelTo0,Type0,Access0,FErrors0,Solutions0,Expand0,Debug0,G),
|
||||||
'$process_fn_opts'(Opts,Extensions0,RelTo0,Type0,Access0,FErrors0,Solutions0,Expand0,Debug0,G).
|
'$process_fn_opts'(Opts,Extensions0,RelTo0,Type0,Access0,FErrors0,Solutions0,Expand0,Debug0,G).
|
||||||
@ -727,7 +733,7 @@ absolute_file_name(File,Opts,TrueFileName) :-
|
|||||||
'$process_fn_opt'(verbose_file_search(Debug),Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,_,G) :- !,
|
'$process_fn_opt'(verbose_file_search(Debug),Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,_,G) :- !,
|
||||||
'$check_true_false'(Debug,G).
|
'$check_true_false'(Debug,G).
|
||||||
'$process_fn_opt'(Opt,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G) :- !,
|
'$process_fn_opt'(Opt,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,Extensions,RelTo,Type,Access,FErrors,Solutions,Expand,Debug,G) :- !,
|
||||||
'$do_error'(domain_error(file_name_option,T),G).
|
'$do_error'(domain_error(file_name_option,Opt),G).
|
||||||
|
|
||||||
'$check_fn_extensions'(V,G) :- var(V), !,
|
'$check_fn_extensions'(V,G) :- var(V), !,
|
||||||
'$do_error'(instantiation_error, G).
|
'$do_error'(instantiation_error, G).
|
||||||
@ -886,23 +892,10 @@ absolute_file_name(File,Opts,TrueFileName) :-
|
|||||||
'$mk_sure_true_ext'(Ext,Ext).
|
'$mk_sure_true_ext'(Ext,Ext).
|
||||||
|
|
||||||
'$add_type_extensions'(Type,File,F) :-
|
'$add_type_extensions'(Type,File,F) :-
|
||||||
'$type_extension'(Type,Ext),
|
( Type == source -> NType = prolog ; NType = Type ),
|
||||||
atom_concat([File,Ext],F).
|
user:prolog_file_type(Ext, NType),
|
||||||
'$add_type_extensions'(Type,File,F) :-
|
|
||||||
user:prolog_file_type(Ext, Type),
|
|
||||||
atom_concat([File,'.',Ext],F).
|
atom_concat([File,'.',Ext],F).
|
||||||
|
'$add_type_extensions'(_,File,File).
|
||||||
'$type_extension'(txt,'').
|
|
||||||
'$type_extension'(prolog,'.yap').
|
|
||||||
'$type_extension'(prolog,'.pl').
|
|
||||||
'$type_extension'(prolog,'').
|
|
||||||
'$type_extension'(source,'.yap').
|
|
||||||
'$type_extension'(source,'.pl').
|
|
||||||
'$type_extension'(source,'').
|
|
||||||
'$type_extension'(executable,Suffix) :- '$obj_suffix'(String), atom_codes(Suffix, String).
|
|
||||||
'$type_extension'(qlf,'.qlf').
|
|
||||||
'$type_extension'(qlf,'').
|
|
||||||
'$type_extension'(directory,'').
|
|
||||||
|
|
||||||
'$add_path'(File,File).
|
'$add_path'(File,File).
|
||||||
'$add_path'(File,PFile) :-
|
'$add_path'(File,PFile) :-
|
||||||
|
21
pl/init.yap
21
pl/init.yap
@ -42,6 +42,7 @@ otherwise.
|
|||||||
:- '$handle_throw'(_,_,_), !.
|
:- '$handle_throw'(_,_,_), !.
|
||||||
|
|
||||||
:- bootstrap('errors.yap').
|
:- bootstrap('errors.yap').
|
||||||
|
:- bootstrap('lists.yap').
|
||||||
:- bootstrap('consult.yap').
|
:- bootstrap('consult.yap').
|
||||||
|
|
||||||
:- [ 'utils.yap',
|
:- [ 'utils.yap',
|
||||||
@ -54,7 +55,6 @@ otherwise.
|
|||||||
|
|
||||||
:- [
|
:- [
|
||||||
% lists is often used.
|
% lists is often used.
|
||||||
'lists.yap',
|
|
||||||
'yio.yap',
|
'yio.yap',
|
||||||
'debug.yap',
|
'debug.yap',
|
||||||
'checker.yap',
|
'checker.yap',
|
||||||
@ -73,8 +73,8 @@ otherwise.
|
|||||||
'callcount.yap',
|
'callcount.yap',
|
||||||
'load_foreign.yap',
|
'load_foreign.yap',
|
||||||
'save.yap',
|
'save.yap',
|
||||||
'sort.yap',
|
|
||||||
'setof.yap',
|
'setof.yap',
|
||||||
|
'sort.yap',
|
||||||
'statistics.yap',
|
'statistics.yap',
|
||||||
'strict_iso.yap',
|
'strict_iso.yap',
|
||||||
'tabling.yap',
|
'tabling.yap',
|
||||||
@ -171,14 +171,21 @@ yap_hacks:cut_by(CP) :- '$$cut_by'(CP).
|
|||||||
|
|
||||||
:- dynamic goal_expansion/3.
|
:- dynamic goal_expansion/3.
|
||||||
|
|
||||||
:- multifile prolog_file_type/2.
|
:- multifile user:prolog_file_type/2.
|
||||||
|
|
||||||
:- dynamic prolog_file_type/2.
|
:- dynamic user:prolog_file_type/2.
|
||||||
|
|
||||||
|
user:prolog_file_type(yap, prolog).
|
||||||
user:prolog_file_type(pl, prolog).
|
user:prolog_file_type(pl, prolog).
|
||||||
% user:prolog_file_type(Ext, prolog) :-
|
user:prolog_file_type(A, prolog) :-
|
||||||
% current_prolog_flag(associate, Ext),
|
current_prolog_flag(associate, A),
|
||||||
% Ext \== pl.
|
A\==pl,
|
||||||
|
A \== yap.
|
||||||
|
%user:prolog_file_type(qlf, prolog).
|
||||||
|
%user:prolog_file_type(qlf, qlf).
|
||||||
|
user:prolog_file_type(A, executable) :-
|
||||||
|
current_prolog_flag(shared_object_extension, A).
|
||||||
|
|
||||||
|
|
||||||
:- multifile goal_expansion/2.
|
:- multifile goal_expansion/2.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user