:- 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).
