:- module dir. :- use_module builtin, int, list, private_builtin, require, string. :- pred dir:split_name_2(string, int, string, string). :- mode dir:split_name_2((builtin:in), (builtin:in), (builtin:out), (builtin:out)) is det. dir:directory_separator = C_2 :- dir:directory_separator(C_2). dir:directory_separator((/)). dir:this_directory = S_2 :- dir:this_directory(S_2). dir:this_directory("."). dir:split_name(FileName_4, DirName_5, BaseName_6) :- string:length(FileName_4, Length_7), dir:split_name_2(FileName_4, Length_7, DirName_5, BaseName_6). dir:basename(FileName_3, BaseName_4) :- dir:split_name(FileName_3, V_5, BaseName_4). dir:basename(S1_3) = S2_4 :- dir:basename(S1_3, S2_4). dir:dirname(FileName_3, DirName_4) :- dir:split_name(FileName_3, DirName_4, V_5). dir:dirname(S1_3) = S2_4 :- dir:dirname(S1_3, S2_4). dir:(DirName_4 / FileName_5) = HeadVar__3_3 :- HeadVar__3_3 = dir:make_path_name(DirName_4, FileName_5). :- pragma termination_info((dir:directory_separator) = (builtin:out), finite(0, [no]), cannot_loop). :- pragma termination_info(dir:directory_separator((builtin:out)), finite(0, [no]), cannot_loop). :- pragma termination_info(dir:directory_separator((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info((dir:this_directory) = (builtin:out), finite(0, [no]), cannot_loop). :- pragma termination_info(dir:this_directory((builtin:out)), finite(0, [no]), cannot_loop). :- pragma termination_info(dir:this_directory((builtin:in)), finite(0, [no]), cannot_loop). :- pragma termination_info(dir:split_name((builtin:in), (builtin:out), (builtin:out)), infinite, can_loop). :- pragma termination_info(dir:basename((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(dir:basename((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(dir:dirname((builtin:in), (builtin:out)), infinite, can_loop). :- pragma termination_info(dir:dirname((builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(dir:make_path_name((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop). :- pragma termination_info(dir:'/'((builtin:in), (builtin:in)) = (builtin:out), infinite, can_loop).