/*
** Automatically generated from `dir.m'
** by the Mercury compiler,
** version 14.01.1, configured for x86_64--netbsd.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=3
** UNBOXED_FLOAT=yes
** PREGENERATED_DIST=no
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


/* :- module dir. */
/* :- interface. */

#ifndef MR_HEADER_GUARD_dir
#define MR_HEADER_GUARD_dir

#ifdef __cplusplus
extern "C" {
#endif

#include "mercury.h"


#ifndef DIR_DECL_GUARD
#define DIR_DECL_GUARD
#line 1544 "dir.m"


#include "mercury_string.h"
#include "mercury_types.h"

#if defined(MR_WIN32) && defined(MR_HAVE_WINDOWS_H)
  #include "mercury_windows.h"
  #include <direct.h>   /* for _wgetcwd */
#endif

#ifdef HAVE_UNISTD_H
  #include <unistd.h>
#endif

#ifdef MR_HAVE_SYS_TYPES_H
  #include <sys/types.h>
#endif

#ifdef MR_HAVE_DIRENT_H
  #include <dirent.h>
#endif

#if defined(MR_WIN32)
  typedef   HANDLE      ML_DIR_STREAM;
#elif defined(MR_HAVE_READDIR)
  typedef   DIR *       ML_DIR_STREAM;
#else
  typedef   MR_Integer  ML_DIR_STREAM;
#endif

#endif




#line 71 "dir.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__dir__dir__type_ctor_info_foldl_pred_1;

#line 74 "dir.mih.tmp"
extern const MR_TypeCtorInfo_Struct mercury__dir__dir__type_ctor_info_stream_0;

#line 1584 "dir.m"
void MR_CALL 
mercury__dir____Compare____stream_0_0(
#line 1584 "dir.m"
  MR_Word * mercury__dir__param_1,
#line 1584 "dir.m"
  MR_Box mercury__dir__param_2,
#line 1584 "dir.m"
  MR_Box mercury__dir__param_3);

#line 1584 "dir.m"
MR_bool MR_CALL 
mercury__dir____Unify____stream_0_0(
#line 1584 "dir.m"
  MR_Box mercury__dir__param_1,
#line 1584 "dir.m"
  MR_Box mercury__dir__param_2);

#line 196 "dir.m"
void MR_CALL 
mercury__dir____Compare____foldl_pred_1_0(
#line 196 "dir.m"
  MR_Word mercury__dir__param_1,
#line 196 "dir.m"
  MR_Word * mercury__dir__param_2,
#line 196 "dir.m"
  MR_Word mercury__dir__param_3,
#line 196 "dir.m"
  MR_Word mercury__dir__param_4);

#line 196 "dir.m"
MR_bool MR_CALL 
mercury__dir____Unify____foldl_pred_1_0(
#line 196 "dir.m"
  MR_Word mercury__dir__param_1,
#line 196 "dir.m"
  MR_Word mercury__dir__param_2,
#line 196 "dir.m"
  MR_Word mercury__dir__param_3);

#line 2053 "dir.m"
MR_Word MR_CALL 
mercury__dir__expand_acc_2_f_0(
#line 2053 "dir.m"
  MR_Word mercury__dir__param_1,
#line 2053 "dir.m"
  MR_Word mercury__dir__param_2);

#line 2049 "dir.m"
MR_Word MR_CALL 
mercury__dir__expand_1_f_0(
#line 2049 "dir.m"
  MR_Word mercury__dir__param_1);

#line 1322 "dir.m"
void MR_CALL 
mercury__dir__foldl2_process_dir_11_p_0(
#line 1322 "dir.m"
  MR_Word mercury__dir__param_1,
#line 1322 "dir.m"
  MR_Word mercury__dir__param_2,
#line 1322 "dir.m"
  MR_Word mercury__dir__param_3,
#line 1322 "dir.m"
  MR_String mercury__dir__param_4,
#line 1322 "dir.m"
  MR_Word mercury__dir__param_5,
#line 1322 "dir.m"
  MR_Word mercury__dir__param_6,
#line 1322 "dir.m"
  MR_Word mercury__dir__param_7,
#line 1322 "dir.m"
  MR_Word * mercury__dir__param_8,
#line 1322 "dir.m"
  MR_Box mercury__dir__param_9,
#line 1322 "dir.m"
  MR_Word * mercury__dir__param_10);

#line 1312 "dir.m"
MR_String MR_CALL 
mercury__dir__fixup_dirname_1_f_0(
#line 1312 "dir.m"
  MR_String mercury__dir__param_1);

#line 1098 "dir.m"
void MR_CALL 
mercury__dir__make_single_directory_2_5_p_0(
#line 1098 "dir.m"
  MR_Integer mercury__dir__param_1,
#line 1098 "dir.m"
  MR_String mercury__dir__param_2,
#line 1098 "dir.m"
  MR_Word * mercury__dir__param_3);

#line 593 "dir.m"
MR_bool MR_CALL 
mercury__dir__is_root_directory_1_p_0(
#line 593 "dir.m"
  MR_Word mercury__dir__param_1);

#line 518 "dir.m"
MR_Word MR_CALL 
mercury__dir__canonicalize_path_chars_1_f_0(
#line 518 "dir.m"
  MR_Word mercury__dir__param_1);

#line 414 "dir.m"
MR_bool MR_CALL 
mercury__dir__split_name_2_3_p_0(
#line 414 "dir.m"
  MR_Word mercury__dir__param_1,
#line 414 "dir.m"
  MR_String * mercury__dir__param_2,
#line 414 "dir.m"
  MR_String * mercury__dir__param_3);

#line 291 "dir.m"
MR_Char MR_CALL 
mercury__dir__alt_directory_separator_0_f_0(void);

#line 257 "dir.m"
MR_bool MR_CALL 
mercury__dir__use_windows_paths_0_p_0(void);

#line 244 "dir.m"
MR_Word MR_CALL 
mercury__dir__expand_braces_1_f_0(
#line 244 "dir.m"
  MR_String mercury__dir__param_1);

#line 219 "dir.m"
void MR_CALL 
mercury__dir__recursive_foldl2_7_p_0(
#line 219 "dir.m"
  MR_Word mercury__dir__param_1,
#line 219 "dir.m"
  MR_Word mercury__dir__param_2,
#line 219 "dir.m"
  MR_String mercury__dir__param_3,
#line 219 "dir.m"
  MR_Word mercury__dir__param_4,
#line 219 "dir.m"
  MR_Box mercury__dir__param_5,
#line 219 "dir.m"
  MR_Word * mercury__dir__param_6);

#line 208 "dir.m"
void MR_CALL 
mercury__dir__foldl2_6_p_0(
#line 208 "dir.m"
  MR_Word mercury__dir__param_1,
#line 208 "dir.m"
  MR_Word mercury__dir__param_2,
#line 208 "dir.m"
  MR_String mercury__dir__param_3,
#line 208 "dir.m"
  MR_Box mercury__dir__param_4,
#line 208 "dir.m"
  MR_Word * mercury__dir__param_5);

#line 186 "dir.m"
void MR_CALL 
mercury__dir__make_single_directory_4_p_0(
#line 186 "dir.m"
  MR_String mercury__dir__param_1,
#line 186 "dir.m"
  MR_Word * mercury__dir__param_2);

#line 181 "dir.m"
void MR_CALL 
mercury__dir__make_directory_4_p_0(
#line 181 "dir.m"
  MR_String mercury__dir__param_1,
#line 181 "dir.m"
  MR_Word * mercury__dir__param_2);

#line 173 "dir.m"
void MR_CALL 
mercury__dir__current_directory_3_p_0(
#line 173 "dir.m"
  MR_Word * mercury__dir__param_1);

#line 166 "dir.m"
MR_String MR_CALL 
mercury__dir__relative_path_name_from_components_1_f_0(
#line 166 "dir.m"
  MR_Word mercury__dir__param_1);

#line 159 "dir.m"
MR_String MR_CALL 
mercury__dir__make_path_name_2_f_0(
#line 159 "dir.m"
  MR_String mercury__dir__param_1,
#line 159 "dir.m"
  MR_String mercury__dir__param_2);

#line 158 "dir.m"
MR_String MR_CALL 
mercury__dir__f_slash_2_f_0(
#line 158 "dir.m"
  MR_String mercury__dir__param_1,
#line 158 "dir.m"
  MR_String mercury__dir__param_2);

#line 142 "dir.m"
MR_bool MR_CALL 
mercury__dir__path_name_is_root_directory_1_p_0(
#line 142 "dir.m"
  MR_String mercury__dir__param_1);

#line 127 "dir.m"
MR_bool MR_CALL 
mercury__dir__path_name_is_absolute_1_p_0(
#line 127 "dir.m"
  MR_String mercury__dir__param_1);

#line 117 "dir.m"
void MR_CALL 
mercury__dir__dirname_2_p_0(
#line 117 "dir.m"
  MR_String mercury__dir__param_1,
#line 117 "dir.m"
  MR_String * mercury__dir__param_2);

#line 116 "dir.m"
MR_String MR_CALL 
mercury__dir__dirname_1_f_0(
#line 116 "dir.m"
  MR_String mercury__dir__param_1);

#line 97 "dir.m"
MR_String MR_CALL 
mercury__dir__det_basename_1_f_0(
#line 97 "dir.m"
  MR_String mercury__dir__param_1);

#line 93 "dir.m"
MR_bool MR_CALL 
mercury__dir__basename_2_p_0(
#line 93 "dir.m"
  MR_String mercury__dir__param_1,
#line 93 "dir.m"
  MR_String * mercury__dir__param_2);

#line 92 "dir.m"
MR_bool MR_CALL 
mercury__dir__basename_1_f_0(
#line 92 "dir.m"
  MR_String mercury__dir__param_1,
#line 92 "dir.m"
  MR_String * mercury__dir__param_2);

#line 80 "dir.m"
MR_bool MR_CALL 
mercury__dir__split_name_3_p_0(
#line 80 "dir.m"
  MR_String mercury__dir__param_1,
#line 80 "dir.m"
  MR_String * mercury__dir__param_2,
#line 80 "dir.m"
  MR_String * mercury__dir__param_3);

#line 59 "dir.m"
void MR_CALL 
mercury__dir__parent_directory_1_p_0(
#line 59 "dir.m"
  MR_String * mercury__dir__param_1);

#line 58 "dir.m"
MR_String MR_CALL 
mercury__dir__parent_directory_0_f_0(void);

#line 54 "dir.m"
void MR_CALL 
mercury__dir__this_directory_1_p_0(
#line 54 "dir.m"
  MR_String * mercury__dir__param_1);

#line 53 "dir.m"
MR_String MR_CALL 
mercury__dir__this_directory_0_f_0(void);

#line 49 "dir.m"
void MR_CALL 
mercury__dir__is_directory_separator_1_p_1(
#line 49 "dir.m"
  MR_Char * mercury__dir__param_1,
#line 49 "dir.m"
  MR_Cont mercury__dir__param_2,
#line 49 "dir.m"
  void * mercury__dir__param_3);

#line 48 "dir.m"
MR_bool MR_CALL 
mercury__dir__is_directory_separator_1_p_0(
#line 48 "dir.m"
  MR_Char mercury__dir__param_1);

#line 41 "dir.m"
void MR_CALL 
mercury__dir__directory_separator_1_p_0(
#line 41 "dir.m"
  MR_Char * mercury__dir__param_1);

#line 40 "dir.m"
MR_Char MR_CALL 
mercury__dir__directory_separator_0_f_0(void);

void mercury__dir__init(void);
void mercury__dir__init_type_tables(void);
void mercury__dir__init_debugger(void);

#ifdef __cplusplus
}
#endif

#endif /* MR_HEADER_GUARD_dir */

/* :- end_interface dir. */
