/*
** Automatically generated from `file_names.m'
** by the Mercury compiler,
** version rotd-2023-06-29
** configured for x86_64-pc-linux-gnu.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=2
** UNBOXED_FLOAT=no
** UNBOXED_INT64S=no
** PREGENERATED_DIST=yes
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


// :- module parse_tree.file_names.
// :- implementation.

/*
INIT mercury__parse_tree__file_names__init
REQUIRED_INIT mercury__parse_tree__file_names__required_init
ENVVAR NO_EXT_CHECKS
ENDINIT
*/

#include "parse_tree.file_names.mih"
#include "parse_tree.file_names.mh"


#include "array.mih"
#include "assoc_list.mih"
#include "bitmap.mih"
#include "bool.mih"
#include "builtin.mih"
#include "char.mih"
#include "construct.mih"
#include "cord.mih"
#include "deconstruct.mih"
#include "dir.mih"
#include "enum.mih"
#include "getopt.mih"
#include "int.mih"
#include "io.mih"
#include "library.mih"
#include "libs.mih"
#include "list.mih"
#include "map.mih"
#include "maybe.mih"
#include "mdbcomp.mih"
#include "one_or_more.mih"
#include "one_or_more_map.mih"
#include "ops.mih"
#include "pair.mih"
#include "parse_tree.mih"
#include "pretty_printer.mih"
#include "private_builtin.mih"
#include "require.mih"
#include "set.mih"
#include "set_ordlist.mih"
#include "set_tree234.mih"
#include "stream.mih"
#include "string.mih"
#include "term.mih"
#include "term_context.mih"
#include "time.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "unit.mih"
#include "univ.mih"
#include "varset.mih"
#include "libs.compute_grade.mih"
#include "libs.file_util.mih"
#include "libs.globals.mih"
#include "libs.maybe_util.mih"
#include "libs.op_mode.mih"
#include "libs.optimization_options.mih"
#include "libs.options.mih"
#include "libs.trace_params.mih"
#include "mdbcomp.feedback.mih"
#include "mdbcomp.prim_data.mih"
#include "mdbcomp.sym_name.mih"
#include "parse_tree.error_spec.mih"
#include "parse_tree.java_names.mih"
#include "parse_tree.prog_data.mih"
#include "parse_tree.prog_data_pragma.mih"
#include "parse_tree.prog_item.mih"
#include "parse_tree.set_of_var.mih"
#include "parse_tree.source_file_map.mih"
#include "string.format.mih"
#include "string.parse_util.mih"


extern MR_Word mercury_envvar_NO_EXT_CHECKS;

struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s {
  MR_Word parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9;
  MR_bool parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43;
  jmp_buf parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_0;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_50;
};

struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s {
  MR_Word parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9;
  MR_bool parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24;
  jmp_buf parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_1;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_31;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73;
  jmp_buf parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_5;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_55;
  jmp_buf parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_7;
  MR_String parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_80;
};


static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__file_names__pair__pti_pair_2__plain_builtin__type_ctor_info_string_0__plain_libs__options__type_ctor_info_option_0;

static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_count_sum_0_0[2];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_count_sum_0_0;

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_count_sum_0_0[1];

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_count_sum_0[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_count_sum_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_count_sum_0[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_0;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_ext_0_1[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_1;

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_0[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_1[1];

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_ext_0[2];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_ext_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_4;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_analysis_0[5];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_analysis_0[5];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_analysis_0[5];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_bytecode_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_bytecode_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_bytecode_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_0_0;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_0[1];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_0[1];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_2;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_gs_0[3];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_gs_0[3];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_gs_0[3];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_c_0_0;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_c_0[1];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_c_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_c_0[1];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_4;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_obj_0[5];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_obj_0[5];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_obj_0[5];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_5;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_6;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_int_0[7];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_int_0[7];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_int_0[7];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_2;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_0[3];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_0[3];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_0[3];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_5;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_6;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_gs_0[7];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_gs_0[7];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_gs_0[7];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mh_0_0;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mh_0[1];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mh_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mh_0[1];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mih_0_0;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mih_0[1];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mih_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mih_0[1];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_gs_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_gs_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_gs_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_2;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_ngs_0[3];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_ngs_0[3];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_ngs_0[3];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_3;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_fragment_0[4];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_fragment_0[4];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_fragment_0[4];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_5;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_6;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_7;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_8;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_9;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_10;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_11;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_12;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_13;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_14;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_15;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_16;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_17;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_target_0[18];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_target_0[18];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_target_0[18];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_5;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_obj_0[6];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_obj_0[6];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_obj_0[6];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_3;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_opt_0[4];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_opt_0[4];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_opt_0[4];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_c_cs_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_c_cs_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_c_cs_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_2;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_date_0[3];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_date_0[3];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_date_0[3];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_java_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_java_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_java_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_5;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_0[6];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_0[6];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_0[6];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_1;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_2;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_3;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_4;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_5;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_6;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_7;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_8;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_9;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_ngs_0[10];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_ngs_0[10];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_ngs_0[10];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_create_dirs_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_create_dirs_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_create_dirs_0[2];

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_0;

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_1;

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_search_0[2];

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_search_0[2];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_search_0[2];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_0;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_1[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_1[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_1;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_2[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_2[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_2;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_3[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_3;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_4[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_4;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_5[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_5[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_5;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_6[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_6[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_6;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_7[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_7[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_7;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_8[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_8[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_8;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_9[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_9;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_10[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_10[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_10;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_11[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_11;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_12[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_12[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_12;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_13[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_13[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_13;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_14[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_14[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_14;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_15[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_15[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_15;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_16[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_16[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_16;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_17[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_17[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_17;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_18[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_18[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_18;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_19[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_19[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_19;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_20[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_20[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_20;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_21[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_21[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_21;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_22[1];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_22[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_22;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_23[1];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_23;

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_0[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_1[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_2[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_3[21];

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_newext_0[4];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_newext_0[24];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_newext_0[24];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_other_ext_0[1];

static const MR_NotagFunctorDesc parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_ext_0;

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_other_newext_0[1];

static const MR_NotagFunctorDesc parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_newext_0;

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_record_key_0_0[4];

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_record_key_0_0[4];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_key_0_0;

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_key_0_0[1];

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_key_0[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_key_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_record_key_0[1];

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_record_value_0_0[2];

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_value_0_0;

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_value_0_0[1];

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_value_0[1];

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_value_0[1];

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_record_value_0[1];

static void MR_CALL 
parse_tree__file_names__IntroducedFrom__pred__all_extensions__2586__1_3_p_0(
  MR_Word Globals_3,
  MR_Word LambdaHeadVar__1_17,
  MR_String * LambdaHeadVar__2_18);

static void MR_CALL 
parse_tree__file_names____Compare____record_value_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_value_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names____Compare____record_key_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_key_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names____Compare____count_sum_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____count_sum_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__unsafe_set_mkdirs_1_p_0(
  MR_Word X_1);

static void MR_CALL 
parse_tree__file_names__unsafe_get_mkdirs_1_p_0(
  MR_Word * X_1);

static void MR_CALL 
parse_tree__file_names__unlock_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__lock_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__initialise_mutable_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__unsafe_set_no_mkdirs_1_p_0(
  MR_Word X_1);

static void MR_CALL 
parse_tree__file_names__unsafe_get_no_mkdirs_1_p_0(
  MR_Word * X_1);

static void MR_CALL 
parse_tree__file_names__unlock_no_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__lock_no_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_no_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__unsafe_set_translations_1_p_0(
  MR_Word X_1);

static void MR_CALL 
parse_tree__file_names__unsafe_get_translations_1_p_0(
  MR_Word * X_1);

static void MR_CALL 
parse_tree__file_names__unlock_translations_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__lock_translations_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_translations_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__initialise_mutable_translations_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__unsafe_set_made_dirs_1_p_0(
  MR_Word X_1);

static void MR_CALL 
parse_tree__file_names__unsafe_get_made_dirs_1_p_0(
  MR_Word * X_1);

static void MR_CALL 
parse_tree__file_names__unlock_made_dirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__lock_made_dirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_made_dirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__initialise_mutable_made_dirs_0_p_0(void);

static void MR_CALL 
parse_tree__file_names__write_out_mkdirs_entry_5_p_0(
  MR_Word Stream_6,
  MR_String DirName_7,
  MR_Integer Cnt_8);

static void MR_CALL 
parse_tree__file_names__write_out_no_mkdirs_entry_5_p_0(
  MR_Word Stream_6,
  MR_String DirName_7,
  MR_Integer Cnt_8);

static void MR_CALL 
parse_tree__file_names__write_out_ext_sch_dir_entry_5_p_0(
  MR_Word Stream_6,
  MR_String ExtSchDir_7,
  MR_Word HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__write_out_ext_entry_5_p_0(
  MR_Word Stream_6,
  MR_String Ext_7,
  MR_Word HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__gather_translation_stats_10_p_0(
  MR_Word Key_11,
  MR_Word Value_12,
  MR_Integer STATE_VARIABLE_NumKeys_0_28,
  MR_Integer * STATE_VARIABLE_NumKeys_29,
  MR_Integer STATE_VARIABLE_NumLookups_0_30,
  MR_Integer * STATE_VARIABLE_NumLookups_31,
  MR_Word STATE_VARIABLE_ExtMap_0_32,
  MR_Word * STATE_VARIABLE_ExtMap_33,
  MR_Word STATE_VARIABLE_ExtSchDirMap_0_34,
  MR_Word * STATE_VARIABLE_ExtSchDirMap_35);

static MR_bool MR_CALL 
parse_tree__file_names__valid_other_newext_1_p_0(
  MR_Word HeadVar__1_2);

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_118_97_108_105_100_95_111_116_104_101_114_95_110_101_119_101_120_116_95_95_91_49_93_95_48_1_p_0(void);

static MR_bool MR_CALL 
parse_tree__file_names__valid_other_ext_1_p_0(
  MR_Word HeadVar__1_1);

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_5(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_4(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_3(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4,
  MR_Box wrapper_arg_5,
  MR_Box * wrapper_arg_6,
  MR_Box wrapper_arg_7,
  MR_Box * wrapper_arg_8,
  MR_Box wrapper_arg_9,
  MR_Box * wrapper_arg_10);

static void MR_CALL 
parse_tree__file_names__test_file_name_extensions_4_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names__test_file_name_extensions_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names__test_extensions_loop_10_p_0(
  MR_Word GlobalsCur_1,
  MR_Word GlobalsSub_2,
  MR_Word GlobalsGradeSub_3,
  MR_Word Stream_4,
  MR_Word ModuleName_5,
  MR_Word HeadVar__6_6,
  MR_Word STATE_VARIABLE_SomeError_0_7,
  MR_Word * STATE_VARIABLE_SomeError_8);

static MR_bool MR_CALL 
parse_tree__file_names__test_one_extension_10_p_0_1(
  MR_Box closure_arg);

static void MR_CALL 
parse_tree__file_names__test_one_extension_10_p_0(
  MR_Word Globals_11,
  MR_Word Stream_12,
  MR_String GlobalsStr_13,
  MR_Word MaybeSearch_14,
  MR_Word ModuleName_15,
  MR_String Ext_16,
  MR_Word STATE_VARIABLE_SomeError_0_25,
  MR_Word * STATE_VARIABLE_SomeError_26);

static MR_Word MR_CALL 
parse_tree__file_names__make_new_extension_1_f_0(
  MR_String ExtStr_3);

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_115_101_97_114_99_104_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1(
  MR_Box closure_arg);

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0_1(
  MR_Box closure_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(
  MR_Word Globals_10,
  MR_Word Search_12,
  MR_Word MkDir_13,
  MR_Word Ext_14,
  MR_Word ModuleName_15,
  MR_String * FileName_16);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_101_120_101_99_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(
  MR_String * HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_105_110_105_116_95_99_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_105_104_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_104_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(
  MR_String * HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_1(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_2(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_3(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0(
  MR_Word Globals_9,
  MR_Word OtherExt_12,
  MR_Word BaseParentDirs_13,
  MR_String BaseNameNoExt_14,
  MR_Word * DirComponents_15,
  MR_String * FileName_16);

static void MR_CALL 
parse_tree__file_names__ext_misc_gs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_misc_ngs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_bytecode_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_analysis_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_user_ngs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_user_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__ext_mmake_target_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__ext_mmake_fragment_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_lib_gs_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4);

static void MR_CALL 
parse_tree__file_names__ext_lib_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2);

static void MR_CALL 
parse_tree__file_names__ext_exec_gs_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4);

static void MR_CALL 
parse_tree__file_names__ext_init_obj_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4);

static void MR_CALL 
parse_tree__file_names__ext_obj_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4);

static void MR_CALL 
parse_tree__file_names__ext_target_date_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_target_java_extension_dirs_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_Word * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_target_c_cs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_opt_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__ext_int_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3);

static void MR_CALL 
parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(
  MR_Word Globals_7,
  MR_Word SubDirNames_8,
  MR_String BaseNameNoExt_9,
  MR_String ExtStr_10,
  MR_Word * DirComponents_11,
  MR_String * FileName_12);

static MR_bool MR_CALL 
parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0_1(
  MR_Box closure_arg);

static void MR_CALL 
parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0(
  MR_Word OtherExt_5,
  MR_Word ModuleName_6,
  MR_Word * BaseParentDirs_7,
  MR_String * BaseNameNoExt_8);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_2(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_3(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_4(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_5(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_6(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_7(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_8(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_9(
  void * env_ptr_arg);

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(
  MR_Word Globals_9,
  MR_Word Search_11,
  MR_Word OtherExt_12,
  MR_Word BaseParentDirs_13,
  MR_String BaseNameNoExt_14,
  MR_Word * DirComponents_15,
  MR_String * FileName_16);

static MR_String MR_CALL 
parse_tree__file_names__glue_dir_names_file_name_3_f_0(
  MR_Word DirComponents_5,
  MR_String BaseNameNoExt_6,
  MR_String ExtStr_7);

static void MR_CALL 
parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(
  MR_Word MkDir_5,
  MR_Word DirComponents_6);

static MR_String MR_CALL 
parse_tree__file_names__newext_to_string_2_f_0(
  MR_Word Globals_4,
  MR_Word Ext_5);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____count_sum_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____count_sum_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_analysis_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_analysis_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_bytecode_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_bytecode_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_exec_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_exec_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_c_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_init_c_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_obj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_init_obj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_int_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_int_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_lib_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_lib_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mh_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_mh_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mih_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_mih_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_misc_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_ngs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_misc_ngs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_fragment_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_fragment_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_target_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_target_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_obj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_obj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_opt_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_opt_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_c_cs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_c_cs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_date_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_date_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_java_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_java_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_user_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_ngs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____ext_user_ngs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_create_dirs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____maybe_create_dirs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_search_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____maybe_search_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____newext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____newext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____other_ext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____other_ext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____other_newext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____other_newext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_key_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____record_key_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_value_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
parse_tree__file_names____Compare____record_value_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);


static /* final */ const MR_Box parse_tree__file_names_scalar_common_1[3][3];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_2[10][1];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_3[179][2];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_6[2][4];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_9[2][6];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_10[1][13];

static /* final */ const MR_Box parse_tree__file_names_scalar_common_11[2][8];


struct parse_tree__file_names__vector_common_type_4_0_s {
  const MR_String parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
};

static /* final */ const struct parse_tree__file_names__vector_common_type_4_0_s parse_tree__file_names_vector_common_4[83];

struct parse_tree__file_names__vector_common_type_5_0_s {
  const MR_String parse_tree__file_names__vector_common_type_5_0__vct_5_f_0;
  const MR_Integer parse_tree__file_names__vector_common_type_5_0__vct_5_f_1;
  const MR_String parse_tree__file_names__vector_common_type_5_0__vct_5_f_2;
};

static /* final */ const struct parse_tree__file_names__vector_common_type_5_0_s parse_tree__file_names_vector_common_5[32];

struct parse_tree__file_names__vector_common_type_7_0_s {
  const MR_String parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  const MR_String parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
};

static /* final */ const struct parse_tree__file_names__vector_common_type_7_0_s parse_tree__file_names_vector_common_7[30];

struct parse_tree__file_names__vector_common_type_8_0_s {
  const MR_Word parse_tree__file_names__vector_common_type_8_0__vct_8_f_0;
};

static /* final */ const struct parse_tree__file_names__vector_common_type_8_0_s parse_tree__file_names_vector_common_8[90];



static /* final */ const MR_Box parse_tree__file_names_scalar_common_1[3][3] = {
  /* row   0 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0))
  },
  /* row   1 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&libs__options__libs__options__type_ctor_info_option_0))
  },
  /* row   2 */
  {
    ((MR_Box) (&parse_tree__file_names_scalar_common_10[0])),
    ((MR_Box) (parse_tree__file_names__write_translations_record_if_any_2_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_2[10][1] = {
  /* row   0 */
  { ((MR_Box) ((MR_String) "abc")) },
  /* row   1 */
  { (MR_Box) ((MR_Unsigned) 1U) },
  /* row   2 */
  { (MR_Box) (((((MR_Unsigned) 0U << 4)) | (((((MR_Unsigned) 0U << 3)) | (((((MR_Unsigned) 0U << 2)) | (((MR_Unsigned) 0U << 1)))))))) },
  /* row   3 */
  { (MR_Box) ((MR_Unsigned) 5U) },
  /* row   4 */
  { (MR_Box) ((MR_Unsigned) 4U) },
  /* row   5 */
  { (MR_Box) ((MR_Unsigned) 6U) },
  /* row   6 */
  { (MR_Box) ((MR_Unsigned) 0U) },
  /* row   7 */
  { (MR_Box) ((MR_Unsigned) 2U) },
  /* row   8 */
  { (MR_Box) ((MR_Unsigned) 3U) },
  /* row   9 */
  { (MR_Box) (((((MR_Unsigned) 0U << 4)) | (((((MR_Unsigned) 0U << 3)) | (((((MR_Unsigned) 0U << 2)) | (((MR_Unsigned) 1U << 1)))))))) },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_3[179][2] = {
  /* row   0 */
  {
    ((MR_Box) (&parse_tree__file_names_scalar_common_2[0])),
    ((MR_Box) ((MR_String) "def"))
  },
  /* row   1 */
  {
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[0]))),
    ((MR_Box) ((MR_String) "xyz"))
  },
  /* row   2 */
  {
    ((MR_Box) ((MR_String) "jmercury")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   3 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 9U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row   4 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 5U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row   5 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 10U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row   6 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 11U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row   7 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 5U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row   8 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 11U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row   9 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  10 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  11 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  12 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  13 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 16U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  14 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 16U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  15 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 16U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  16 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 9U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  17 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 17U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  18 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 2U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  19 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 4U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  20 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 4U)
  },
  /* row  21 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 3U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  22 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 5U)
  },
  /* row  23 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 6U)
  },
  /* row  24 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 2U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  25 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 4U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  26 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 12U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  27 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  28 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  29 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  30 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 12U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  31 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 7U)
  },
  /* row  32 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  33 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 12U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  34 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 11U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  35 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 12U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  36 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  37 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 18U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  38 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 8U)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  39 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  40 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 16U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  41 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  42 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 11U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  43 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 8U)
  },
  /* row  44 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 9U)
  },
  /* row  45 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 10U)
  },
  /* row  46 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 11U)
  },
  /* row  47 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 12U)
  },
  /* row  48 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 13U)
  },
  /* row  49 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 11U)),
    (MR_Box) ((MR_Unsigned) 4U)
  },
  /* row  50 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 3U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  51 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 4U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  52 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 14U)
  },
  /* row  53 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 10U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  54 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 4U)
  },
  /* row  55 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 5U)
  },
  /* row  56 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 17U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  57 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  58 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 1U)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  59 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  60 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 6U)
  },
  /* row  61 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 18U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  62 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 5U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  63 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 15U)
  },
  /* row  64 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 4U)
  },
  /* row  65 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 7U)
  },
  /* row  66 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 5U)),
    (MR_Box) ((MR_Unsigned) 3U)
  },
  /* row  67 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 18U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  68 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 16U)
  },
  /* row  69 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 16U)),
    (MR_Box) ((MR_Unsigned) 4U)
  },
  /* row  70 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 10U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  71 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 19U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  72 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 13U)),
    (MR_Box) ((MR_Unsigned) 17U)
  },
  /* row  73 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 8U)
  },
  /* row  74 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 14U)),
    (MR_Box) ((MR_Unsigned) 5U)
  },
  /* row  75 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 19U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  76 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 15U)),
    (MR_Box) ((MR_Unsigned) 9U)
  },
  /* row  77 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 7U)),
    (MR_Box) ((MR_Unsigned) 0U)
  },
  /* row  78 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 6U)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  79 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 7U)),
    (MR_Box) ((MR_Unsigned) 1U)
  },
  /* row  80 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 7U)),
    (MR_Box) ((MR_Unsigned) 2U)
  },
  /* row  81 */
  {
    ((MR_Box) ((MR_String) "classs")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2])))
  },
  /* row  82 */
  {
    ((MR_Box) ((MR_String) "javas")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2])))
  },
  /* row  83 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_String) "exec_file_opt"))
  },
  /* row  84 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_String) "lib_opt"))
  },
  /* row  85 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_String) "shlib_opt"))
  },
  /* row  86 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_String) "obj_opt"))
  },
  /* row  87 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_String) "pic_obj_opt"))
  },
  /* row  88 */
  {
    ((MR_Box) ((MR_String) "_init.c")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  89 */
  {
    ((MR_Box) ((MR_String) "_init.\044O")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[88])))
  },
  /* row  90 */
  {
    ((MR_Box) ((MR_String) ".xml")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[89])))
  },
  /* row  91 */
  {
    ((MR_Box) ((MR_String) ".used")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[90])))
  },
  /* row  92 */
  {
    ((MR_Box) ((MR_String) ".ugly")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[91])))
  },
  /* row  93 */
  {
    ((MR_Box) ((MR_String) ".type_repns")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[92])))
  },
  /* row  94 */
  {
    ((MR_Box) ((MR_String) ".trans_opts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[93])))
  },
  /* row  95 */
  {
    ((MR_Box) ((MR_String) ".trans_opt_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[94])))
  },
  /* row  96 */
  {
    ((MR_Box) ((MR_String) ".trans_opt")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[95])))
  },
  /* row  97 */
  {
    ((MR_Box) ((MR_String) ".track_flags")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[96])))
  },
  /* row  98 */
  {
    ((MR_Box) ((MR_String) ".so")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[97])))
  },
  /* row  99 */
  {
    ((MR_Box) ((MR_String) ".request")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[98])))
  },
  /* row 100 */
  {
    ((MR_Box) ((MR_String) ".realclean")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[99])))
  },
  /* row 101 */
  {
    ((MR_Box) ((MR_String) ".prof")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[100])))
  },
  /* row 102 */
  {
    ((MR_Box) ((MR_String) ".order_trans_opt")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[101])))
  },
  /* row 103 */
  {
    ((MR_Box) ((MR_String) ".order")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[102])))
  },
  /* row 104 */
  {
    ((MR_Box) ((MR_String) ".opts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[103])))
  },
  /* row 105 */
  {
    ((MR_Box) ((MR_String) ".optdate")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[104])))
  },
  /* row 106 */
  {
    ((MR_Box) ((MR_String) ".opt")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[105])))
  },
  /* row 107 */
  {
    ((MR_Box) ((MR_String) ".module_dep")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[106])))
  },
  /* row 108 */
  {
    ((MR_Box) ((MR_String) ".mode_constraints")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[107])))
  },
  /* row 109 */
  {
    ((MR_Box) ((MR_String) ".mlds_dump")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[108])))
  },
  /* row 110 */
  {
    ((MR_Box) ((MR_String) ".mih")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[109])))
  },
  /* row 111 */
  {
    ((MR_Box) ((MR_String) ".mh")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[110])))
  },
  /* row 112 */
  {
    ((MR_Box) ((MR_String) ".mbc")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[111])))
  },
  /* row 113 */
  {
    ((MR_Box) ((MR_String) ".local_call_tree_order")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[112])))
  },
  /* row 114 */
  {
    ((MR_Box) ((MR_String) ".local_call_tree")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[113])))
  },
  /* row 115 */
  {
    ((MR_Box) ((MR_String) ".javas")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[114])))
  },
  /* row 116 */
  {
    ((MR_Box) ((MR_String) ".java_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[115])))
  },
  /* row 117 */
  {
    ((MR_Box) ((MR_String) ".java")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[116])))
  },
  /* row 118 */
  {
    ((MR_Box) ((MR_String) ".jar")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[117])))
  },
  /* row 119 */
  {
    ((MR_Box) ((MR_String) ".ints")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[118])))
  },
  /* row 120 */
  {
    ((MR_Box) ((MR_String) ".int3s")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[119])))
  },
  /* row 121 */
  {
    ((MR_Box) ((MR_String) ".int3")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[120])))
  },
  /* row 122 */
  {
    ((MR_Box) ((MR_String) ".int2")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[121])))
  },
  /* row 123 */
  {
    ((MR_Box) ((MR_String) ".int0")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[122])))
  },
  /* row 124 */
  {
    ((MR_Box) ((MR_String) ".int")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[123])))
  },
  /* row 125 */
  {
    ((MR_Box) ((MR_String) ".install_opts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[124])))
  },
  /* row 126 */
  {
    ((MR_Box) ((MR_String) ".install_ints")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[125])))
  },
  /* row 127 */
  {
    ((MR_Box) ((MR_String) ".install_hdrs")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[126])))
  },
  /* row 128 */
  {
    ((MR_Box) ((MR_String) ".install_grade_hdrs")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[127])))
  },
  /* row 129 */
  {
    ((MR_Box) ((MR_String) ".init")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[128])))
  },
  /* row 130 */
  {
    ((MR_Box) ((MR_String) ".imports_graph")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[129])))
  },
  /* row 131 */
  {
    ((MR_Box) ((MR_String) ".imdg")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[130])))
  },
  /* row 132 */
  {
    ((MR_Box) ((MR_String) ".hlds_dump")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[131])))
  },
  /* row 133 */
  {
    ((MR_Box) ((MR_String) ".exe")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[132])))
  },
  /* row 134 */
  {
    ((MR_Box) ((MR_String) ".err_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[133])))
  },
  /* row 135 */
  {
    ((MR_Box) ((MR_String) ".err")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[134])))
  },
  /* row 136 */
  {
    ((MR_Box) ((MR_String) ".dv")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[135])))
  },
  /* row 137 */
  {
    ((MR_Box) ((MR_String) ".dll")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[136])))
  },
  /* row 138 */
  {
    ((MR_Box) ((MR_String) ".dir/*.\044O")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[137])))
  },
  /* row 139 */
  {
    ((MR_Box) ((MR_String) ".dependency_graph")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[138])))
  },
  /* row 140 */
  {
    ((MR_Box) ((MR_String) ".depend")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[139])))
  },
  /* row 141 */
  {
    ((MR_Box) ((MR_String) ".dep")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[140])))
  },
  /* row 142 */
  {
    ((MR_Box) ((MR_String) ".defns")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[141])))
  },
  /* row 143 */
  {
    ((MR_Box) ((MR_String) ".defn_line_counts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[142])))
  },
  /* row 144 */
  {
    ((MR_Box) ((MR_String) ".defn_extents")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[143])))
  },
  /* row 145 */
  {
    ((MR_Box) ((MR_String) ".date3")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[144])))
  },
  /* row 146 */
  {
    ((MR_Box) ((MR_String) ".date0")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[145])))
  },
  /* row 147 */
  {
    ((MR_Box) ((MR_String) ".date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[146])))
  },
  /* row 148 */
  {
    ((MR_Box) ((MR_String) ".d")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[147])))
  },
  /* row 149 */
  {
    ((MR_Box) ((MR_String) ".cs_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[148])))
  },
  /* row 150 */
  {
    ((MR_Box) ((MR_String) ".cs")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[149])))
  },
  /* row 151 */
  {
    ((MR_Box) ((MR_String) ".clean")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[150])))
  },
  /* row 152 */
  {
    ((MR_Box) ((MR_String) ".classes")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[151])))
  },
  /* row 153 */
  {
    ((MR_Box) ((MR_String) ".class")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[152])))
  },
  /* row 154 */
  {
    ((MR_Box) ((MR_String) ".check")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[153])))
  },
  /* row 155 */
  {
    ((MR_Box) ((MR_String) ".c_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[154])))
  },
  /* row 156 */
  {
    ((MR_Box) ((MR_String) ".c")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[155])))
  },
  /* row 157 */
  {
    ((MR_Box) ((MR_String) ".bytedebug")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[156])))
  },
  /* row 158 */
  {
    ((MR_Box) ((MR_String) ".bat")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[157])))
  },
  /* row 159 */
  {
    ((MR_Box) ((MR_String) ".analysis_status")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[158])))
  },
  /* row 160 */
  {
    ((MR_Box) ((MR_String) ".analysis_date")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[159])))
  },
  /* row 161 */
  {
    ((MR_Box) ((MR_String) ".analysis")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[160])))
  },
  /* row 162 */
  {
    ((MR_Box) ((MR_String) ".all_trans_opts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[161])))
  },
  /* row 163 */
  {
    ((MR_Box) ((MR_String) ".all_opts")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[162])))
  },
  /* row 164 */
  {
    ((MR_Box) ((MR_String) ".all_ints")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[163])))
  },
  /* row 165 */
  {
    ((MR_Box) ((MR_String) ".all_int3s")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[164])))
  },
  /* row 166 */
  {
    ((MR_Box) ((MR_String) ".a")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[165])))
  },
  /* row 167 */
  {
    ((MR_Box) ((MR_String) ".\044A")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[166])))
  },
  /* row 168 */
  {
    ((MR_Box) ((MR_String) ".\044(EXT_FOR_SHARED_LIB)")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[167])))
  },
  /* row 169 */
  {
    ((MR_Box) ((MR_String) "")),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[168])))
  },
  /* row 170 */
  {
    ((MR_Box) ((MR_Integer) 610)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 171 */
  {
    ((MR_Box) ((MR_Integer) 560)),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[170])))
  },
  /* row 172 */
  {
    ((MR_Box) ((MR_Integer) 559)),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[171])))
  },
  /* row 173 */
  {
    ((MR_Box) ((MR_Integer) 611)),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[172])))
  },
  /* row 174 */
  {
    ((MR_Box) ((MR_Integer) 612)),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[173])))
  },
  /* row 175 */
  {
    ((MR_Box) ((MR_String) "_init")),
    ((MR_Box) ((MR_Integer) 560))
  },
  /* row 176 */
  {
    ((MR_Box) (&parse_tree__file_names_scalar_common_3[175])),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 177 */
  {
    ((MR_Box) ((MR_String) "_init")),
    ((MR_Box) ((MR_Integer) 559))
  },
  /* row 178 */
  {
    ((MR_Box) (&parse_tree__file_names_scalar_common_3[177])),
    ((MR_Box) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[176])))
  },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_6[2][4] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_newext_0))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0))
  },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_9[2][6] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 3)),
    ((MR_Box) (&libs__globals__libs__globals__type_ctor_info_globals_0)),
    ((MR_Box) (&libs__options__libs__options__type_ctor_info_option_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 3)),
    ((MR_Box) (&libs__globals__libs__globals__type_ctor_info_globals_0)),
    ((MR_Box) (&parse_tree__file_names__pair__pti_pair_2__plain_builtin__type_ctor_info_string_0__plain_libs__options__type_ctor_info_option_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_10[1][13] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 10)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0)),
    ((MR_Box) (&parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0)),
    ((MR_Box) (&parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0)),
    ((MR_Box) (&parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0))
  },
};

static /* final */ const MR_Box parse_tree__file_names_scalar_common_11[2][8] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
};


static /* final */ const struct parse_tree__file_names__vector_common_type_4_0_s parse_tree__file_names_vector_common_4[83] = {
  /* row   0 */   { (MR_String) ".analysis" },
  /* row   1 */   { (MR_String) ".analysis_date" },
  /* row   2 */   { (MR_String) ".analysis_status" },
  /* row   3 */   { (MR_String) ".imdg" },
  /* row   4 */   { (MR_String) ".request" },
  /* row   5 */   { (MR_String) ".int0" },
  /* row   6 */   { (MR_String) ".int" },
  /* row   7 */   { (MR_String) ".int2" },
  /* row   8 */   { (MR_String) ".int3" },
  /* row   9 */   { (MR_String) ".date0" },
  /* row  10 */   { (MR_String) ".date" },
  /* row  11 */   { (MR_String) ".date3" },
  /* row  12 */   { (MR_String) ".d" },
  /* row  13 */   { (MR_String) ".dv" },
  /* row  14 */   { (MR_String) ".dep" },
  /* row  15 */   { (MR_String) ".dir/*.\044O" },
  /* row  16 */   { (MR_String) ".all_int3s" },
  /* row  17 */   { (MR_String) ".all_ints" },
  /* row  18 */   { (MR_String) ".all_opts" },
  /* row  19 */   { (MR_String) ".all_trans_opts" },
  /* row  20 */   { (MR_String) ".check" },
  /* row  21 */   { (MR_String) ".classes" },
  /* row  22 */   { (MR_String) ".clean" },
  /* row  23 */   { (MR_String) ".depend" },
  /* row  24 */   { (MR_String) ".install_grade_hdrs" },
  /* row  25 */   { (MR_String) ".install_hdrs" },
  /* row  26 */   { (MR_String) ".install_ints" },
  /* row  27 */   { (MR_String) ".install_opts" },
  /* row  28 */   { (MR_String) ".int3s" },
  /* row  29 */   { (MR_String) ".ints" },
  /* row  30 */   { (MR_String) ".javas" },
  /* row  31 */   { (MR_String) ".opts" },
  /* row  32 */   { (MR_String) ".realclean" },
  /* row  33 */   { (MR_String) ".trans_opts" },
  /* row  34 */   { (MR_String) ".opt" },
  /* row  35 */   { (MR_String) ".trans_opt" },
  /* row  36 */   { (MR_String) ".optdate" },
  /* row  37 */   { (MR_String) ".trans_opt_date" },
  /* row  38 */   { (MR_String) ".dependency_graph" },
  /* row  39 */   { (MR_String) ".err" },
  /* row  40 */   { (MR_String) ".hlds_dump" },
  /* row  41 */   { (MR_String) ".mlds_dump" },
  /* row  42 */   { (MR_String) ".order" },
  /* row  43 */   { (MR_String) ".ugly" },
  /* row  44 */   { (MR_String) ".defn_extents" },
  /* row  45 */   { (MR_String) ".defn_line_counts" },
  /* row  46 */   { (MR_String) ".defns" },
  /* row  47 */   { (MR_String) ".imports_graph" },
  /* row  48 */   { (MR_String) ".local_call_tree" },
  /* row  49 */   { (MR_String) ".local_call_tree_order" },
  /* row  50 */   { (MR_String) ".mode_constraints" },
  /* row  51 */   { (MR_String) ".order_trans_opt" },
  /* row  52 */   { (MR_String) ".type_repns" },
  /* row  53 */   { (MR_String) ".xml" },
  /* row  54 */   { (MR_String) ".analysis" },
  /* row  55 */   { (MR_String) ".imdg" },
  /* row  56 */   { (MR_String) ".opt" },
  /* row  57 */   { (MR_String) ".request" },
  /* row  58 */   { (MR_String) ".trans_opt" },
  /* row  59 */   { (MR_String) ".all_int3s" },
  /* row  60 */   { (MR_String) ".all_ints" },
  /* row  61 */   { (MR_String) ".all_opts" },
  /* row  62 */   { (MR_String) ".all_trans_opts" },
  /* row  63 */   { (MR_String) ".check" },
  /* row  64 */   { (MR_String) ".classes" },
  /* row  65 */   { (MR_String) ".clean" },
  /* row  66 */   { (MR_String) ".depend" },
  /* row  67 */   { (MR_String) ".install_grade_hdrs" },
  /* row  68 */   { (MR_String) ".install_hdrs" },
  /* row  69 */   { (MR_String) ".install_ints" },
  /* row  70 */   { (MR_String) ".install_opts" },
  /* row  71 */   { (MR_String) ".int3s" },
  /* row  72 */   { (MR_String) ".ints" },
  /* row  73 */   { (MR_String) ".javas" },
  /* row  74 */   { (MR_String) ".opts" },
  /* row  75 */   { (MR_String) ".realclean" },
  /* row  76 */   { (MR_String) ".trans_opts" },
  /* row  77 */   { (MR_String) ".dependency_graph" },
  /* row  78 */   { (MR_String) ".err" },
  /* row  79 */   { (MR_String) ".hlds_dump" },
  /* row  80 */   { (MR_String) ".mlds_dump" },
  /* row  81 */   { (MR_String) ".order" },
  /* row  82 */   { (MR_String) ".ugly" },
};

static /* final */ const struct parse_tree__file_names__vector_common_type_5_0_s parse_tree__file_names_vector_common_5[32] = {
  /* row   0 */
  {
    (MR_String) "",
    (MR_Integer) -1,
    (MR_String) "bin"
  },
  /* row   1 */
  {
    (MR_String) "_init.lpic_o",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row   2 */
  {
    (MR_String) "\044(EXT_FOR_PIC_OBJECTS)",
    (MR_Integer) 4,
    (MR_String) "os"
  },
  /* row   3 */
  {
    (MR_String) ".o",
    (MR_Integer) 5,
    (MR_String) "os"
  },
  /* row   4 */
  {
    (MR_String) ".pic_o",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row   5 */
  {
    (MR_String) "_init.\044(EXT_FOR_PIC_OBJECTS)",
    (MR_Integer) 7,
    (MR_String) "os"
  },
  /* row   6 */
  {
    (MR_String) ".\044O",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row   7 */
  {
    (MR_String) "_init.o",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row   8 */
  {
    (MR_String) "_init.\044O",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row   9 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  10 */
  {
    (MR_String) "_init.pic_o",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row  11 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  12 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  13 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  14 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  15 */
  {
    (MR_String) ".lpic_o",
    (MR_Integer) -1,
    (MR_String) "os"
  },
  /* row  16 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  17 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  18 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  19 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  20 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  21 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  22 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  23 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  24 */
  {
    (MR_String) ".dir/*.\044O",
    (MR_Integer) -1,
    (MR_String) "dirs"
  },
  /* row  25 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  26 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  27 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  28 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  29 */
  {
    (MR_String) ".dir/*.o",
    (MR_Integer) -1,
    (MR_String) "dirs"
  },
  /* row  30 */
  {
    NULL,
    (MR_Integer) -2,
    (MR_String) ((MR_Integer) 0)
  },
  /* row  31 */
  {
    (MR_String) ".dv",
    (MR_Integer) -1,
    (MR_String) "deps"
  },
};

static /* final */ const struct parse_tree__file_names__vector_common_type_7_0_s parse_tree__file_names_vector_common_7[30] = {
  /* row   0 */
  {
    (MR_String) ".int0",
    (MR_String) "int0s"
  },
  /* row   1 */
  {
    (MR_String) ".int",
    (MR_String) "ints"
  },
  /* row   2 */
  {
    (MR_String) ".int2",
    (MR_String) "int2s"
  },
  /* row   3 */
  {
    (MR_String) ".int3",
    (MR_String) "int3s"
  },
  /* row   4 */
  {
    (MR_String) ".date0",
    (MR_String) "date0s"
  },
  /* row   5 */
  {
    (MR_String) ".date",
    (MR_String) "dates"
  },
  /* row   6 */
  {
    (MR_String) ".date3",
    (MR_String) "date3s"
  },
  /* row   7 */
  {
    (MR_String) ".opt",
    (MR_String) "opts"
  },
  /* row   8 */
  {
    (MR_String) ".trans_opt",
    (MR_String) "trans_opts"
  },
  /* row   9 */
  {
    (MR_String) ".optdate",
    (MR_String) "optdates"
  },
  /* row  10 */
  {
    (MR_String) ".trans_opt_date",
    (MR_String) "trans_opt_dates"
  },
  /* row  11 */
  {
    (MR_String) ".d",
    (MR_String) "ds"
  },
  /* row  12 */
  {
    (MR_String) ".dv",
    (MR_String) "deps"
  },
  /* row  13 */
  {
    (MR_String) ".dep",
    (MR_String) "deps"
  },
  /* row  14 */
  {
    (MR_String) ".dir/*.\044O",
    (MR_String) "dirs"
  },
  /* row  15 */
  {
    (MR_String) ".defn_extents",
    (MR_String) "defn_extentss"
  },
  /* row  16 */
  {
    (MR_String) ".defn_line_counts",
    (MR_String) "defn_line_countss"
  },
  /* row  17 */
  {
    (MR_String) ".defns",
    (MR_String) "defnss"
  },
  /* row  18 */
  {
    (MR_String) ".imports_graph",
    (MR_String) "imports_graphs"
  },
  /* row  19 */
  {
    (MR_String) ".local_call_tree",
    (MR_String) "local_call_trees"
  },
  /* row  20 */
  {
    (MR_String) ".local_call_tree_order",
    (MR_String) "local_call_tree_orders"
  },
  /* row  21 */
  {
    (MR_String) ".mode_constraints",
    (MR_String) "mode_constraintss"
  },
  /* row  22 */
  {
    (MR_String) ".order_trans_opt",
    (MR_String) "order_trans_opts"
  },
  /* row  23 */
  {
    (MR_String) ".type_repns",
    (MR_String) "type_repnss"
  },
  /* row  24 */
  {
    (MR_String) ".xml",
    (MR_String) "xmls"
  },
  /* row  25 */
  {
    (MR_String) ".analysis",
    (MR_String) "analysiss"
  },
  /* row  26 */
  {
    (MR_String) ".analysis_date",
    (MR_String) "analysis_dates"
  },
  /* row  27 */
  {
    (MR_String) ".analysis_status",
    (MR_String) "analysis_statuss"
  },
  /* row  28 */
  {
    (MR_String) ".imdg",
    (MR_String) "imdgs"
  },
  /* row  29 */
  {
    (MR_String) ".request",
    (MR_String) "requests"
  },
};

static /* final */ const struct parse_tree__file_names__vector_common_type_8_0_s parse_tree__file_names_vector_common_8[90] = {
  /* row   0 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[3])) },
  /* row   1 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[4])) },
  /* row   2 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[5])) },
  /* row   3 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[6])) },
  /* row   4 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[7])) },
  /* row   5 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[8])) },
  /* row   6 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[9])) },
  /* row   7 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[10])) },
  /* row   8 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[11])) },
  /* row   9 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[12])) },
  /* row  10 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[13])) },
  /* row  11 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[14])) },
  /* row  12 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[15])) },
  /* row  13 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[16])) },
  /* row  14 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[17])) },
  /* row  15 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[18])) },
  /* row  16 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[19])) },
  /* row  17 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[20])) },
  /* row  18 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[21])) },
  /* row  19 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[22])) },
  /* row  20 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[23])) },
  /* row  21 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[24])) },
  /* row  22 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[25])) },
  /* row  23 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[26])) },
  /* row  24 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[3])) },
  /* row  25 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[4])) },
  /* row  26 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[5])) },
  /* row  27 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[27])) },
  /* row  28 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[28])) },
  /* row  29 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[29])) },
  /* row  30 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[30])) },
  /* row  31 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[31])) },
  /* row  32 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[32])) },
  /* row  33 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[33])) },
  /* row  34 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[34])) },
  /* row  35 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[35])) },
  /* row  36 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[36])) },
  /* row  37 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[37])) },
  /* row  38 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[38])) },
  /* row  39 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[39])) },
  /* row  40 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[40])) },
  /* row  41 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[41])) },
  /* row  42 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[42])) },
  /* row  43 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[43])) },
  /* row  44 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[44])) },
  /* row  45 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[45])) },
  /* row  46 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[46])) },
  /* row  47 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[1])) },
  /* row  48 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[6])) },
  /* row  49 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[7])) },
  /* row  50 */   { (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[8])) },
  /* row  51 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[47])) },
  /* row  52 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[48])) },
  /* row  53 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[49])) },
  /* row  54 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[50])) },
  /* row  55 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[51])) },
  /* row  56 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[52])) },
  /* row  57 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[53])) },
  /* row  58 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[54])) },
  /* row  59 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[55])) },
  /* row  60 */   { (MR_Word) ((MR_Unsigned) 0U) },
  /* row  61 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[56])) },
  /* row  62 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[57])) },
  /* row  63 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[58])) },
  /* row  64 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[59])) },
  /* row  65 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[60])) },
  /* row  66 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[61])) },
  /* row  67 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[62])) },
  /* row  68 */   { (MR_Word) (MR_mkword(2, &parse_tree__file_names_scalar_common_2[6])) },
  /* row  69 */   { (MR_Word) (MR_mkword(2, &parse_tree__file_names_scalar_common_2[7])) },
  /* row  70 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[63])) },
  /* row  71 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[64])) },
  /* row  72 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[65])) },
  /* row  73 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[66])) },
  /* row  74 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[67])) },
  /* row  75 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[68])) },
  /* row  76 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[69])) },
  /* row  77 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[70])) },
  /* row  78 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[71])) },
  /* row  79 */   { (MR_Word) (MR_mkword(2, &parse_tree__file_names_scalar_common_2[1])) },
  /* row  80 */   { (MR_Word) (MR_mkword(2, &parse_tree__file_names_scalar_common_2[8])) },
  /* row  81 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[72])) },
  /* row  82 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[73])) },
  /* row  83 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[74])) },
  /* row  84 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[75])) },
  /* row  85 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[76])) },
  /* row  86 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[77])) },
  /* row  87 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[78])) },
  /* row  88 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[79])) },
  /* row  89 */   { (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[80])) },
};


#include "array.mh"
#include "bitmap.mh"
#include "dir.mh"
#include "io.mh"
#include "string.mh"
#include "time.mh"
#include "io.stream_ops.mh"
#include "parse_tree.file_names.mh"
#line 1435 "file_names.m"
MR_Word parse_tree__file_names__mutable_variable_made_dirs;
#ifdef MR_THREAD_SAFE
    MercuryLock parse_tree__file_names__mutable_variable_made_dirs_lock;
#endif

#line 2734 "file_names.m"
MR_Word parse_tree__file_names__mutable_variable_translations;
#ifdef MR_THREAD_SAFE
    MercuryLock parse_tree__file_names__mutable_variable_translations_lock;
#endif

#line 2757 "file_names.m"
MR_Word parse_tree__file_names__mutable_variable_no_mkdirs;
#ifdef MR_THREAD_SAFE
    MercuryLock parse_tree__file_names__mutable_variable_no_mkdirs_lock;
#endif

#line 2759 "file_names.m"
MR_Word parse_tree__file_names__mutable_variable_mkdirs;
#ifdef MR_THREAD_SAFE
    MercuryLock parse_tree__file_names__mutable_variable_mkdirs_lock;
#endif


#line 1435 "file_names.m"
void 
parse_tree__file_names__user_init_pred_141_0(void)
#line 1435 "file_names.m"
{
#line 1435 "file_names.m"
	parse_tree__file_names__initialise_mutable_made_dirs_0_p_0();
}

#line 2734 "file_names.m"
void 
parse_tree__file_names__user_init_pred_300_0(void)
#line 2734 "file_names.m"
{
#line 2734 "file_names.m"
	parse_tree__file_names__initialise_mutable_translations_0_p_0();
}

#line 2757 "file_names.m"
void 
parse_tree__file_names__user_init_pred_303_0(void)
#line 2757 "file_names.m"
{
#line 2757 "file_names.m"
	parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0();
}

#line 2759 "file_names.m"
void 
parse_tree__file_names__user_init_pred_304_0(void)
#line 2759 "file_names.m"
{
#line 2759 "file_names.m"
	parse_tree__file_names__initialise_mutable_mkdirs_0_p_0();
}


static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__file_names__pair__pti_pair_2__plain_builtin__type_ctor_info_string_0__plain_libs__options__type_ctor_info_option_0 = {
  &mercury__pair__pair__type_ctor_info_pair_2,
  {
    (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
    (MR_PseudoTypeInfo) (&libs__options__libs__options__type_ctor_info_option_0)
  }
};

static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__file_names__tree234__pti_tree234_2__plain_builtin__type_ctor_info_string_0__plain_parse_tree__file_names__type_ctor_info_count_sum_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
    (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0)
  }
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_count_sum_0_0[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_count_sum_0_0 = {
  (MR_String) "count_sum",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  parse_tree__file_names__parse_tree__file_names__field_types_count_sum_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_count_sum_0_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_count_sum_0_0 };

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_count_sum_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_count_sum_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_count_sum_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_count_sum_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_count_sum_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (parse_tree__file_names____Unify____count_sum_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____count_sum_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "count_sum",
  { parse_tree__file_names__parse_tree__file_names__du_name_ordered_count_sum_0 },
  { parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_count_sum_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_count_sum_0,

};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_0 = {
  (MR_String) "ext_src",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 0,
  INT32_C(0),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_ext_0_1[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_1 = {
  (MR_String) "ext_other",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  parse_tree__file_names__parse_tree__file_names__field_types_ext_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_0 };

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_1[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_1 };

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_ext_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_ext_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_ext_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_1,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_ext_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (parse_tree__file_names____Unify____ext_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext",
  { parse_tree__file_names__parse_tree__file_names__du_name_ordered_ext_0 },
  { parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_ext_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_0 = {
  (MR_String) "ext_an_analysis",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_1 = {
  (MR_String) "ext_an_date",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_2 = {
  (MR_String) "ext_an_status",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_3 = {
  (MR_String) "ext_an_imdg",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_4 = {
  (MR_String) "ext_an_request",
  INT32_C(4)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_analysis_0[5] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_4
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_analysis_0[5] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_analysis_0_2
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_analysis_0[5] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 4,
  (MR_Integer) 2,
  (MR_Integer) 3
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_analysis_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_analysis_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_analysis_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_analysis",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_analysis_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_analysis_0 },
  (MR_Integer) 5,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_analysis_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_0 = {
  (MR_String) "ext_bc_mbc",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_1 = {
  (MR_String) "ext_bc_bytedebug",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_bytecode_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_bytecode_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_bytecode_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_bytecode_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_bytecode_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_bytecode_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_bytecode_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_bytecode",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_bytecode_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_bytecode_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_bytecode_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_0_0 = {
  (MR_String) "ext_exec_exe",
  INT32_C(0)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_0_0 };

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_DUMMY,
  ((MR_Box) (parse_tree__file_names____Unify____ext_exec_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_exec_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_exec",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_0 = {
  (MR_String) "ext_exec_gs_noext",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_1 = {
  (MR_String) "ext_exec_gs_bat",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_2 = {
  (MR_String) "ext_exec_exec_opt",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_gs_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_2
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_gs_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_exec_gs_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_gs_0[3] = {
  (MR_Integer) 2,
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_gs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_exec_gs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_exec_gs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_exec_gs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_exec_gs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_exec_gs_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_exec_gs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_c_0_0 = {
  (MR_String) "ext_init_c",
  INT32_C(0)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_c_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_c_0_0 };

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_c_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_c_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_c_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_c_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_DUMMY,
  ((MR_Box) (parse_tree__file_names____Unify____ext_init_c_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_init_c_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_init_c",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_c_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_c_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_c_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_0 = {
  (MR_String) "ext_init_obj_dollar_o",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_1 = {
  (MR_String) "ext_init_obj_o",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_2 = {
  (MR_String) "ext_init_obj_pic_o",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_3 = {
  (MR_String) "ext_init_obj_obj_opt",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_4 = {
  (MR_String) "ext_init_obj_pic_obj_opt",
  INT32_C(4)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_obj_0[5] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_4
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_obj_0[5] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_init_obj_0_4
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_obj_0[5] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 3,
  (MR_Integer) 2,
  (MR_Integer) 4
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_obj_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_init_obj_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_init_obj_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_init_obj",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_init_obj_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_init_obj_0 },
  (MR_Integer) 5,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_init_obj_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_0 = {
  (MR_String) "ext_int_int0",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_1 = {
  (MR_String) "ext_int_int1",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_2 = {
  (MR_String) "ext_int_int2",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_3 = {
  (MR_String) "ext_int_int3",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_4 = {
  (MR_String) "ext_int_date_int0",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_5 = {
  (MR_String) "ext_int_date_int12",
  INT32_C(5)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_6 = {
  (MR_String) "ext_int_date_int3",
  INT32_C(6)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_int_0[7] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_6
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_int_0[7] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_6,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_int_0_3
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_int_0[7] = {
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 5,
  (MR_Integer) 6,
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_int_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_int_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_int_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_int",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_int_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_int_0 },
  (MR_Integer) 7,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_int_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_0 = {
  (MR_String) "ext_lib_dollar_efsl",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_1 = {
  (MR_String) "ext_lib_lib",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_2 = {
  (MR_String) "ext_lib_so",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_2
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_0_2
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_0[3] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_lib_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_lib_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_lib",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_0 = {
  (MR_String) "ext_lib_gs_dollar_a",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_1 = {
  (MR_String) "ext_lib_gs_archive",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_2 = {
  (MR_String) "ext_lib_gs_dll",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_3 = {
  (MR_String) "ext_lib_gs_init",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_4 = {
  (MR_String) "ext_lib_gs_jar",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_5 = {
  (MR_String) "ext_lib_gs_lib_opt",
  INT32_C(5)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_6 = {
  (MR_String) "ext_lib_gs_sh_lib_opt",
  INT32_C(6)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_gs_0[7] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_6
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_gs_0[7] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_lib_gs_0_6
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_gs_0[7] = {
  (MR_Integer) 2,
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 5,
  (MR_Integer) 6
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_gs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_lib_gs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_lib_gs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_lib_gs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_lib_gs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_lib_gs_0 },
  (MR_Integer) 7,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_lib_gs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mh_0_0 = {
  (MR_String) "ext_mh_mh",
  INT32_C(0)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mh_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mh_0_0 };

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mh_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mh_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mh_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mh_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_DUMMY,
  ((MR_Box) (parse_tree__file_names____Unify____ext_mh_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_mh_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_mh",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mh_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mh_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mh_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mih_0_0 = {
  (MR_String) "ext_mih_mih",
  INT32_C(0)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mih_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mih_0_0 };

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mih_0[1] = { &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mih_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mih_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mih_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_DUMMY,
  ((MR_Box) (parse_tree__file_names____Unify____ext_mih_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_mih_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_mih",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mih_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mih_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mih_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_0 = {
  (MR_String) "ext_misc_gs_used",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_1 = {
  (MR_String) "ext_misc_gs_track_flags",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_gs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_gs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_gs_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_gs_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_gs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_misc_gs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_misc_gs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_misc_gs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_gs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_gs_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_gs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_0 = {
  (MR_String) "ext_misc_ngs_module_dep",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_1 = {
  (MR_String) "ext_misc_ngs_err_date",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_2 = {
  (MR_String) "ext_misc_ngs_prof",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_ngs_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_2
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_ngs_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_misc_ngs_0_2
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_ngs_0[3] = {
  (MR_Integer) 1,
  (MR_Integer) 0,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_ngs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_misc_ngs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_misc_ngs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_misc_ngs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_misc_ngs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_misc_ngs_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_misc_ngs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_0 = {
  (MR_String) "ext_mf_d",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_1 = {
  (MR_String) "ext_mf_dv",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_2 = {
  (MR_String) "ext_mf_dep",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_3 = {
  (MR_String) "ext_mf_dir_sl_all_os",
  INT32_C(3)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_fragment_0[4] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_3
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_fragment_0[4] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_fragment_0_1
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_fragment_0[4] = {
  (MR_Integer) 0,
  (MR_Integer) 3,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_fragment_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_mmake_fragment_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_mmake_fragment_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_mmake_fragment",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_fragment_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_fragment_0 },
  (MR_Integer) 4,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_fragment_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_0 = {
  (MR_String) "ext_mt_all_int3s",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_1 = {
  (MR_String) "ext_mt_all_ints",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_2 = {
  (MR_String) "ext_mt_all_opts",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_3 = {
  (MR_String) "ext_mt_all_trans_opts",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_4 = {
  (MR_String) "ext_mt_check",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_5 = {
  (MR_String) "ext_mt_classes",
  INT32_C(5)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_6 = {
  (MR_String) "ext_mt_clean",
  INT32_C(6)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_7 = {
  (MR_String) "ext_mt_depend",
  INT32_C(7)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_8 = {
  (MR_String) "ext_mt_install_grade_hdrs",
  INT32_C(8)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_9 = {
  (MR_String) "ext_mt_install_hdrs",
  INT32_C(9)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_10 = {
  (MR_String) "ext_mt_install_ints",
  INT32_C(10)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_11 = {
  (MR_String) "ext_mt_install_opts",
  INT32_C(11)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_12 = {
  (MR_String) "ext_mt_int3s",
  INT32_C(12)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_13 = {
  (MR_String) "ext_mt_ints",
  INT32_C(13)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_14 = {
  (MR_String) "ext_mt_javas",
  INT32_C(14)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_15 = {
  (MR_String) "ext_mt_opts",
  INT32_C(15)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_16 = {
  (MR_String) "ext_mt_realclean",
  INT32_C(16)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_17 = {
  (MR_String) "ext_mt_trans_opts",
  INT32_C(17)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_target_0[18] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_6,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_7,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_8,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_9,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_10,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_11,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_12,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_13,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_14,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_15,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_16,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_17
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_target_0[18] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_6,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_7,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_8,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_9,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_10,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_11,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_12,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_13,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_14,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_15,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_16,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_mmake_target_0_17
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_target_0[18] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2,
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 5,
  (MR_Integer) 6,
  (MR_Integer) 7,
  (MR_Integer) 8,
  (MR_Integer) 9,
  (MR_Integer) 10,
  (MR_Integer) 11,
  (MR_Integer) 12,
  (MR_Integer) 13,
  (MR_Integer) 14,
  (MR_Integer) 15,
  (MR_Integer) 16,
  (MR_Integer) 17
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_target_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_mmake_target_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_mmake_target_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_mmake_target",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_mmake_target_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_mmake_target_0 },
  (MR_Integer) 18,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_mmake_target_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_0 = {
  (MR_String) "ext_obj_dollar_o",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_1 = {
  (MR_String) "ext_obj_dollar_efpo",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_2 = {
  (MR_String) "ext_obj_o",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_3 = {
  (MR_String) "ext_obj_pic_o",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_4 = {
  (MR_String) "ext_obj_obj_opt",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_5 = {
  (MR_String) "ext_obj_pic_obj_opt",
  INT32_C(5)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_obj_0[6] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_5
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_obj_0[6] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_obj_0_5
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_obj_0[6] = {
  (MR_Integer) 1,
  (MR_Integer) 0,
  (MR_Integer) 2,
  (MR_Integer) 4,
  (MR_Integer) 3,
  (MR_Integer) 5
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_obj_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_obj_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_obj_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_obj",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_obj_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_obj_0 },
  (MR_Integer) 6,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_obj_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_0 = {
  (MR_String) "ext_opt_plain",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_1 = {
  (MR_String) "ext_opt_trans",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_2 = {
  (MR_String) "ext_opt_date_plain",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_3 = {
  (MR_String) "ext_opt_date_trans",
  INT32_C(3)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_opt_0[4] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_3
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_opt_0[4] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_opt_0_1
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_opt_0[4] = {
  (MR_Integer) 2,
  (MR_Integer) 3,
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_opt_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_opt_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_opt_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_opt",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_opt_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_opt_0 },
  (MR_Integer) 4,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_opt_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_0 = {
  (MR_String) "ext_target_c",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_1 = {
  (MR_String) "ext_target_cs",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_c_cs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_c_cs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_c_cs_0_1
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_c_cs_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_c_cs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_target_c_cs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_target_c_cs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_target_c_cs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_c_cs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_c_cs_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_c_cs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_0 = {
  (MR_String) "ext_target_date_c",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_1 = {
  (MR_String) "ext_target_date_cs",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_2 = {
  (MR_String) "ext_target_date_java",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_date_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_2
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_date_0[3] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_date_0_2
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_date_0[3] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_date_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_target_date_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_target_date_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_target_date",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_date_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_date_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_date_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_0 = {
  (MR_String) "ext_target_java_java",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_1 = {
  (MR_String) "ext_target_java_class",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_java_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_java_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_target_java_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_java_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_java_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_target_java_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_target_java_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_target_java",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_target_java_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_target_java_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_target_java_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_0 = {
  (MR_String) "ext_user_depgraph",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_1 = {
  (MR_String) "ext_user_err",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_2 = {
  (MR_String) "ext_user_hlds_dump",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_3 = {
  (MR_String) "ext_user_mlds_dump",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_4 = {
  (MR_String) "ext_user_order",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_5 = {
  (MR_String) "ext_user_ugly",
  INT32_C(5)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_0[6] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_5
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_0[6] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_0_5
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_0[6] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2,
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 5
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_user_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_user_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_user",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_0 },
  (MR_Integer) 6,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_0 = {
  (MR_String) "ext_user_ngs_defn_ext",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_1 = {
  (MR_String) "ext_user_ngs_defn_lc",
  INT32_C(1)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_2 = {
  (MR_String) "ext_user_ngs_defns",
  INT32_C(2)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_3 = {
  (MR_String) "ext_user_ngs_imports_graph",
  INT32_C(3)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_4 = {
  (MR_String) "ext_user_ngs_lct",
  INT32_C(4)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_5 = {
  (MR_String) "ext_user_ngs_lct_order",
  INT32_C(5)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_6 = {
  (MR_String) "ext_user_ngs_mode_constr",
  INT32_C(6)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_7 = {
  (MR_String) "ext_user_ngs_order_to",
  INT32_C(7)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_8 = {
  (MR_String) "ext_user_ngs_type_repns",
  INT32_C(8)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_9 = {
  (MR_String) "ext_user_ngs_xml",
  INT32_C(9)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_ngs_0[10] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_6,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_7,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_8,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_9
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_ngs_0[10] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_2,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_3,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_4,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_5,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_6,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_7,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_8,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_ext_user_ngs_0_9
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_ngs_0[10] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2,
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 5,
  (MR_Integer) 6,
  (MR_Integer) 7,
  (MR_Integer) 8,
  (MR_Integer) 9
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_ngs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____ext_user_ngs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____ext_user_ngs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "ext_user_ngs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_ext_user_ngs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_ext_user_ngs_0 },
  (MR_Integer) 10,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_ext_user_ngs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_0 = {
  (MR_String) "do_create_dirs",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_1 = {
  (MR_String) "do_not_create_dirs",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_create_dirs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_create_dirs_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_create_dirs_0_1
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_create_dirs_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_create_dirs_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____maybe_create_dirs_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____maybe_create_dirs_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "maybe_create_dirs",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_create_dirs_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_create_dirs_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_create_dirs_0,

};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_0 = {
  (MR_String) "do_search",
  INT32_C(0)
};

static const MR_EnumFunctorDesc parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_1 = {
  (MR_String) "do_not_search",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_search_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_0,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_1
};

static const MR_EnumFunctorDescPtr parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_search_0[2] = {
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_1,
  &parse_tree__file_names__parse_tree__file_names__enum_functor_desc_maybe_search_0_0
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_search_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_search_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (parse_tree__file_names____Unify____maybe_search_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____maybe_search_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "maybe_search",
  { parse_tree__file_names__parse_tree__file_names__enum_name_ordered_maybe_search_0 },
  { parse_tree__file_names__parse_tree__file_names__enum_ordinal_ordered_maybe_search_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_maybe_search_0,

};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_0 = {
  (MR_String) "newext_src",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 0,
  INT32_C(0),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_1[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_int_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_1[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_1 = {
  (MR_String) "newext_int",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_1,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_1,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_2[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_opt_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_2[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_2 = {
  (MR_String) "newext_opt",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(2),
  (MR_Integer) -1,
  INT32_C(2),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_2,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_2,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_3[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mh_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_3 = {
  (MR_String) "newext_mh",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 0,
  INT32_C(3),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_3,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_4[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mih_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_4 = {
  (MR_String) "newext_mih",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 1,
  INT32_C(4),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_4,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_5[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_c_cs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_5[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_5 = {
  (MR_String) "newext_target_c_cs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 2,
  INT32_C(5),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_5,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_5,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_6[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_java_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_6[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_6 = {
  (MR_String) "newext_target_java",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 3,
  INT32_C(6),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_6,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_6,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_7[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_date_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_7[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_7 = {
  (MR_String) "newext_target_date",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 4,
  INT32_C(7),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_7,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_7,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_8[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_obj_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_8[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_8 = {
  (MR_String) "newext_target_obj",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 5,
  INT32_C(8),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_8,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_8,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_9[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_c_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_9 = {
  (MR_String) "newext_target_init_c",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 6,
  INT32_C(9),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_9,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_10[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_obj_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_10[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_10 = {
  (MR_String) "newext_target_init_obj",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 7,
  INT32_C(10),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_10,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_10,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_11[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_11 = {
  (MR_String) "newext_exec",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 8,
  INT32_C(11),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_11,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_12[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_gs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_12[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_12 = {
  (MR_String) "newext_exec_gs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 9,
  INT32_C(12),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_12,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_12,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_13[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_13[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_13 = {
  (MR_String) "newext_lib",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 10,
  INT32_C(13),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_13,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_13,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_14[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_gs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_14[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_14 = {
  (MR_String) "newext_lib_gs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 11,
  INT32_C(14),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_14,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_14,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_15[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_fragment_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_15[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_15 = {
  (MR_String) "newext_mmake_fragment",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 12,
  INT32_C(15),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_15,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_15,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_16[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_target_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_16[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 5
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_16 = {
  (MR_String) "newext_mmake_target",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 13,
  INT32_C(16),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_16,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_16,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_17[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_17[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_17 = {
  (MR_String) "newext_user",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 14,
  INT32_C(17),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_17,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_17,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_18[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_ngs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_18[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 4
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_18 = {
  (MR_String) "newext_user_ngs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 15,
  INT32_C(18),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_18,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_18,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_19[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_analysis_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_19[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_19 = {
  (MR_String) "newext_analysis",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 16,
  INT32_C(19),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_19,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_19,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_20[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_bytecode_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_20[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_20 = {
  (MR_String) "newext_bytecode",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 17,
  INT32_C(20),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_20,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_20,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_21[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_ngs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_21[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_21 = {
  (MR_String) "newext_misc_ngs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 18,
  INT32_C(21),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_21,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_21,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_22[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_gs_0) };

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_22[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_22 = {
  (MR_String) "newext_misc_gs",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 19,
  INT32_C(22),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_22,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_newext_0_22,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_newext_0_23[1] = { (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_newext_0) };

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_23 = {
  (MR_String) "newext_other",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 20,
  INT32_C(23),
  parse_tree__file_names__parse_tree__file_names__field_types_newext_0_23,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_0 };

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_1[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_1 };

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_2[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_2 };

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_3[21] = {
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_3,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_4,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_5,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_6,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_7,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_8,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_9,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_10,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_11,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_12,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_13,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_14,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_15,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_16,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_17,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_18,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_19,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_20,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_21,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_22,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_23
};

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_newext_0[4] = {
  {
    UINT32_C(1),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(21),
    MR_SECTAG_REMOTE_FULL_WORD,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_newext_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_newext_0[24] = {
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_19,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_20,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_11,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_12,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_1,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_13,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_14,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_3,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_4,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_22,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_21,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_15,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_16,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_2,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_23,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_0,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_5,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_7,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_9,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_10,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_6,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_8,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_17,
  &parse_tree__file_names__parse_tree__file_names__du_functor_desc_newext_0_18
};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_newext_0[24] = {
  (MR_Integer) 15,
  (MR_Integer) 4,
  (MR_Integer) 13,
  (MR_Integer) 7,
  (MR_Integer) 8,
  (MR_Integer) 16,
  (MR_Integer) 20,
  (MR_Integer) 17,
  (MR_Integer) 21,
  (MR_Integer) 18,
  (MR_Integer) 19,
  (MR_Integer) 2,
  (MR_Integer) 3,
  (MR_Integer) 5,
  (MR_Integer) 6,
  (MR_Integer) 11,
  (MR_Integer) 12,
  (MR_Integer) 22,
  (MR_Integer) 23,
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 10,
  (MR_Integer) 9,
  (MR_Integer) 14
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (parse_tree__file_names____Unify____newext_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____newext_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "newext",
  { parse_tree__file_names__parse_tree__file_names__du_name_ordered_newext_0 },
  { parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_newext_0 },
  (MR_Integer) 24,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_newext_0,

};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_other_ext_0[1] = { (MR_Integer) 0 };

static const MR_NotagFunctorDesc parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_ext_0 = {
  (MR_String) "other_ext",
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_NOTAG_GROUND,
  ((MR_Box) (parse_tree__file_names____Unify____other_ext_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____other_ext_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "other_ext",
  { &parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_ext_0 },
  { &parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_ext_0 },
  (MR_Integer) 1,
  UINT16_C(4),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_other_ext_0,

};

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_other_newext_0[1] = { (MR_Integer) 0 };

static const MR_NotagFunctorDesc parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_newext_0 = {
  (MR_String) "other_newext",
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE
};

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_newext_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_NOTAG_GROUND,
  ((MR_Box) (parse_tree__file_names____Unify____other_newext_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____other_newext_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "other_newext",
  { &parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_newext_0 },
  { &parse_tree__file_names__parse_tree__file_names__notag_functor_desc_other_newext_0 },
  (MR_Integer) 1,
  UINT16_C(4),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_other_newext_0,

};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_record_key_0_0[4] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0),
  (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0),
  (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_search_0),
  (MR_PseudoTypeInfo) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_create_dirs_0)
};

static const MR_DuArgLocn parse_tree__file_names__parse_tree__file_names__field_locns_record_key_0_0[4] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 1,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_key_0_0 = {
  (MR_String) "record_key",
  INT16_C(4),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  parse_tree__file_names__parse_tree__file_names__field_types_record_key_0_0,
  NULL,
  parse_tree__file_names__parse_tree__file_names__field_locns_record_key_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_key_0_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_key_0_0 };

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_key_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_key_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_key_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_key_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_record_key_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (parse_tree__file_names____Unify____record_key_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____record_key_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "record_key",
  { parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_key_0 },
  { parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_key_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_record_key_0,

};

static const MR_PseudoTypeInfo parse_tree__file_names__parse_tree__file_names__field_types_record_value_0_0[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_value_0_0 = {
  (MR_String) "record_value",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  parse_tree__file_names__parse_tree__file_names__field_types_record_value_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_value_0_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_value_0_0 };

static const MR_DuPtagLayout parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_value_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    parse_tree__file_names__parse_tree__file_names__du_stag_ordered_record_value_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_value_0[1] = { &parse_tree__file_names__parse_tree__file_names__du_functor_desc_record_value_0_0 };

static const MR_Integer parse_tree__file_names__parse_tree__file_names__functor_number_map_record_value_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (parse_tree__file_names____Unify____record_value_0_0_10001)),
  ((MR_Box) (parse_tree__file_names____Compare____record_value_0_0_10001)),
  (MR_String) "parse_tree.file_names",
  (MR_String) "record_value",
  { parse_tree__file_names__parse_tree__file_names__du_name_ordered_record_value_0 },
  { parse_tree__file_names__parse_tree__file_names__du_ptag_ordered_record_value_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  parse_tree__file_names__parse_tree__file_names__functor_number_map_record_value_0,

};

static void MR_CALL 
parse_tree__file_names__IntroducedFrom__pred__all_extensions__2586__1_3_p_0(
  MR_Word Globals_3,
  MR_Word LambdaHeadVar__1_17,
  MR_String * LambdaHeadVar__2_18)
{
  MR_String OptStr_13;
  MR_String Str_20 = ((MR_String) ((MR_hl_field(0, LambdaHeadVar__1_17, (MR_Integer) 0))));
  MR_Word Opt_21 = ((MR_Word) ((MR_hl_field(0, LambdaHeadVar__1_17, (MR_Integer) 1))));

  libs__globals__lookup_string_option_3_p_0(Globals_3, Opt_21, &OptStr_13);
  *LambdaHeadVar__2_18 = mercury__string__f_43_43_2_f_0(Str_20, OptStr_13);
}

static void MR_CALL 
parse_tree__file_names____Compare____record_value_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
    MR_Word SubResult1_6;

    mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      succeeded = (ArgX2_7 < ArgY2_8);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX2_7 > ArgY2_8);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_value_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_String ArgX1_3 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 0))));
    MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 1))));
    MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____record_key_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_15 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_16 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_15 == CastY_16);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
    MR_Word ArgX3_10 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY3_11 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 2))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX4_13 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word ArgY4_14 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word SubResult1_6;

    mdbcomp__sym_name____Compare____sym_name_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      parse_tree__file_names____Compare____ext_0_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;
        MR_Integer Var_21 = (MR_Integer) (ArgX3_10);
        MR_Integer Var_22 = (MR_Integer) (ArgY3_11);

        succeeded = (Var_21 < Var_22);
        if (succeeded)
        {
          SubResult3_12 = (MR_Integer) 1;
          succeeded = MR_TRUE;
        }
        else
        {
          succeeded = (Var_21 > Var_22);
          if (succeeded)
          {
            SubResult3_12 = (MR_Integer) 2;
            succeeded = MR_TRUE;
          }
          else
          {
            succeeded = MR_TRUE;
            succeeded = !(succeeded);
            if (succeeded)
            {
              SubResult3_12 = (MR_Integer) 0;
              succeeded = MR_TRUE;
            }
          }
        }
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Integer Var_23 = (MR_Integer) (ArgX4_13);
          MR_Integer Var_24 = (MR_Integer) (ArgY4_14);

          succeeded = (Var_23 < Var_24);
          if (succeeded)
            *HeadVar__1_1 = (MR_Integer) 1;
          else
          {
            succeeded = (Var_23 > Var_24);
            if (succeeded)
              *HeadVar__1_1 = (MR_Integer) 2;
            else
              *HeadVar__1_1 = (MR_Integer) 0;
          }
        }
      }
    }
  }
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_key_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_11 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_12 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_11 == CastY_12);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Word ArgX3_7 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 2))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY3_8 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX4_9 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word ArgY4_10 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);

    succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      succeeded = parse_tree__file_names____Unify____ext_0_0(ArgX2_5, ArgY2_6);
      if (succeeded)
      {
        succeeded = (ArgX3_7 == ArgY3_8);
        if (succeeded)
          succeeded = (ArgX4_9 == ArgY4_10);
      }
    }
  }
  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____other_newext_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = (MR_String) (HeadVar__2_2);
    MR_String ArgY1_5 = (MR_String) (HeadVar__3_3);

    mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, ArgX1_4, ArgY1_5);
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____other_newext_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_5 == CastY_6);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_String ArgX1_3 = (MR_String) (HeadVar__1_1);
    MR_String ArgY1_4 = (MR_String) (HeadVar__2_2);

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
  }
  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____other_ext_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = (MR_String) (HeadVar__2_2);
    MR_String ArgY1_5 = (MR_String) (HeadVar__3_3);

    mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, ArgX1_4, ArgY1_5);
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____other_ext_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_5 == CastY_6);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_String ArgX1_3 = (MR_String) (HeadVar__1_1);
    MR_String ArgY1_4 = (MR_String) (HeadVar__2_2);

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
  }
  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____newext_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_53 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_54 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_53 == CastY_54);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Integer IndexX_4;
    MR_Integer IndexY_5;

    parse_tree__file_names____Index____newext_0_0(HeadVar__2_2, &IndexX_4);
    parse_tree__file_names____Index____newext_0_0(HeadVar__3_3, &IndexY_5);
    succeeded = (IndexX_4 < IndexY_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 1;
    else
    {
      succeeded = (IndexX_4 > IndexY_5);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 2;
      else
      {
        MR_Word CompareResult_6;

        switch (MR_tag((MR_Word) HeadVar__2_2)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              CompareResult_6 = (MR_Integer) 0;
              succeeded = MR_TRUE;
            }
            break;
          case (MR_Integer) 1:
            {
              MR_Word ArgX1_7 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 7);
              MR_Word ArgY1_8;
              MR_Integer Var_80;
              MR_Integer Var_81;

              succeeded = ((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1);
              if (succeeded)
              {
                ArgY1_8 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 7);
                Var_80 = (MR_Integer) (ArgX1_7);
                Var_81 = (MR_Integer) (ArgY1_8);
                succeeded = (Var_80 < Var_81);
                if (succeeded)
                  CompareResult_6 = (MR_Integer) 1;
                else
                {
                  succeeded = (Var_80 > Var_81);
                  if (succeeded)
                    CompareResult_6 = (MR_Integer) 2;
                  else
                    CompareResult_6 = (MR_Integer) 0;
                }
                succeeded = MR_TRUE;
              }
            }
            break;
          case (MR_Integer) 2:
            {
              MR_Word ArgX1_9 = ((MR_Unsigned) ((MR_hl_field(2, HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
              MR_Word ArgY1_10;
              MR_Integer Var_94;
              MR_Integer Var_95;

              succeeded = ((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 2);
              if (succeeded)
              {
                ArgY1_10 = ((MR_Unsigned) ((MR_hl_field(2, HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
                Var_94 = (MR_Integer) (ArgX1_9);
                Var_95 = (MR_Integer) (ArgY1_10);
                succeeded = (Var_94 < Var_95);
                if (succeeded)
                  CompareResult_6 = (MR_Integer) 1;
                else
                {
                  succeeded = (Var_94 > Var_95);
                  if (succeeded)
                    CompareResult_6 = (MR_Integer) 2;
                  else
                    CompareResult_6 = (MR_Integer) 0;
                }
                succeeded = MR_TRUE;
              }
            }
            break;
          case (MR_Integer) 3:
            switch (((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0))))) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                {
                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 0)));
                  if (succeeded)
                  {
                    CompareResult_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 1:
                {
                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 1)));
                  if (succeeded)
                  {
                    CompareResult_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 2:
                {
                  MR_Word ArgX1_15 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                  MR_Word ArgY1_16;
                  MR_Integer Var_98;
                  MR_Integer Var_99;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 2)));
                  if (succeeded)
                  {
                    ArgY1_16 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                    Var_98 = (MR_Integer) (ArgX1_15);
                    Var_99 = (MR_Integer) (ArgY1_16);
                    succeeded = (Var_98 < Var_99);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_98 > Var_99);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 3:
                {
                  MR_Word ArgX1_17 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                  MR_Word ArgY1_18;
                  MR_Integer Var_104;
                  MR_Integer Var_105;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 3)));
                  if (succeeded)
                  {
                    ArgY1_18 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                    Var_104 = (MR_Integer) (ArgX1_17);
                    Var_105 = (MR_Integer) (ArgY1_18);
                    succeeded = (Var_104 < Var_105);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_104 > Var_105);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 4:
                {
                  MR_Word ArgX1_19 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                  MR_Word ArgY1_20;
                  MR_Integer Var_100;
                  MR_Integer Var_101;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 4)));
                  if (succeeded)
                  {
                    ArgY1_20 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 3);
                    Var_100 = (MR_Integer) (ArgX1_19);
                    Var_101 = (MR_Integer) (ArgY1_20);
                    succeeded = (Var_100 < Var_101);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_100 > Var_101);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 5:
                {
                  MR_Word ArgX1_21 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                  MR_Word ArgY1_22;
                  MR_Integer Var_106;
                  MR_Integer Var_107;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 5)));
                  if (succeeded)
                  {
                    ArgY1_22 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 7);
                    Var_106 = (MR_Integer) (ArgX1_21);
                    Var_107 = (MR_Integer) (ArgY1_22);
                    succeeded = (Var_106 < Var_107);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_106 > Var_107);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 6:
                {
                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 6)));
                  if (succeeded)
                  {
                    CompareResult_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 7:
                {
                  MR_Word ArgX1_25 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                  MR_Word ArgY1_26;
                  MR_Integer Var_102;
                  MR_Integer Var_103;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 7)));
                  if (succeeded)
                  {
                    ArgY1_26 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 7);
                    Var_102 = (MR_Integer) (ArgX1_25);
                    Var_103 = (MR_Integer) (ArgY1_26);
                    succeeded = (Var_102 < Var_103);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_102 > Var_103);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 8:
                {
                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 8)));
                  if (succeeded)
                  {
                    CompareResult_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 9:
                {
                  MR_Word ArgX1_29 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                  MR_Word ArgY1_30;
                  MR_Integer Var_78;
                  MR_Integer Var_79;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 9)));
                  if (succeeded)
                  {
                    ArgY1_30 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 3);
                    Var_78 = (MR_Integer) (ArgX1_29);
                    Var_79 = (MR_Integer) (ArgY1_30);
                    succeeded = (Var_78 < Var_79);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_78 > Var_79);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 10:
                {
                  MR_Word ArgX1_31 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                  MR_Word ArgY1_32;
                  MR_Integer Var_82;
                  MR_Integer Var_83;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 10)));
                  if (succeeded)
                  {
                    ArgY1_32 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 3);
                    Var_82 = (MR_Integer) (ArgX1_31);
                    Var_83 = (MR_Integer) (ArgY1_32);
                    succeeded = (Var_82 < Var_83);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_82 > Var_83);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 11:
                {
                  MR_Word ArgX1_33 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                  MR_Word ArgY1_34;
                  MR_Integer Var_84;
                  MR_Integer Var_85;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 11)));
                  if (succeeded)
                  {
                    ArgY1_34 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 7);
                    Var_84 = (MR_Integer) (ArgX1_33);
                    Var_85 = (MR_Integer) (ArgY1_34);
                    succeeded = (Var_84 < Var_85);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_84 > Var_85);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 12:
                {
                  MR_Word ArgX1_35 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                  MR_Word ArgY1_36;
                  MR_Integer Var_90;
                  MR_Integer Var_91;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 12)));
                  if (succeeded)
                  {
                    ArgY1_36 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 3);
                    Var_90 = (MR_Integer) (ArgX1_35);
                    Var_91 = (MR_Integer) (ArgY1_36);
                    succeeded = (Var_90 < Var_91);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_90 > Var_91);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 13:
                {
                  MR_Word ArgX1_37 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 31);
                  MR_Word ArgY1_38;
                  MR_Integer Var_92;
                  MR_Integer Var_93;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 13)));
                  if (succeeded)
                  {
                    ArgY1_38 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 31);
                    Var_92 = (MR_Integer) (ArgX1_37);
                    Var_93 = (MR_Integer) (ArgY1_38);
                    succeeded = (Var_92 < Var_93);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_92 > Var_93);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 14:
                {
                  MR_Word ArgX1_39 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                  MR_Word ArgY1_40;
                  MR_Integer Var_108;
                  MR_Integer Var_109;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 14)));
                  if (succeeded)
                  {
                    ArgY1_40 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 7);
                    Var_108 = (MR_Integer) (ArgX1_39);
                    Var_109 = (MR_Integer) (ArgY1_40);
                    succeeded = (Var_108 < Var_109);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_108 > Var_109);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 15:
                {
                  MR_Word ArgX1_41 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 15);
                  MR_Word ArgY1_42;
                  MR_Integer Var_110;
                  MR_Integer Var_111;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 15)));
                  if (succeeded)
                  {
                    ArgY1_42 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 15);
                    Var_110 = (MR_Integer) (ArgX1_41);
                    Var_111 = (MR_Integer) (ArgY1_42);
                    succeeded = (Var_110 < Var_111);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_110 > Var_111);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 16:
                {
                  MR_Word ArgX1_43 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                  MR_Word ArgY1_44;
                  MR_Integer Var_74;
                  MR_Integer Var_75;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 16)));
                  if (succeeded)
                  {
                    ArgY1_44 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 7);
                    Var_74 = (MR_Integer) (ArgX1_43);
                    Var_75 = (MR_Integer) (ArgY1_44);
                    succeeded = (Var_74 < Var_75);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_74 > Var_75);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 17:
                {
                  MR_Word ArgX1_45 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                  MR_Word ArgY1_46;
                  MR_Integer Var_76;
                  MR_Integer Var_77;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 17)));
                  if (succeeded)
                  {
                    ArgY1_46 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                    Var_76 = (MR_Integer) (ArgX1_45);
                    Var_77 = (MR_Integer) (ArgY1_46);
                    succeeded = (Var_76 < Var_77);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_76 > Var_77);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 18:
                {
                  MR_Word ArgX1_47 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                  MR_Word ArgY1_48;
                  MR_Integer Var_88;
                  MR_Integer Var_89;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 18)));
                  if (succeeded)
                  {
                    ArgY1_48 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 3);
                    Var_88 = (MR_Integer) (ArgX1_47);
                    Var_89 = (MR_Integer) (ArgY1_48);
                    succeeded = (Var_88 < Var_89);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_88 > Var_89);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 19:
                {
                  MR_Word ArgX1_49 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                  MR_Word ArgY1_50;
                  MR_Integer Var_86;
                  MR_Integer Var_87;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 19)));
                  if (succeeded)
                  {
                    ArgY1_50 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                    Var_86 = (MR_Integer) (ArgX1_49);
                    Var_87 = (MR_Integer) (ArgY1_50);
                    succeeded = (Var_86 < Var_87);
                    if (succeeded)
                      CompareResult_6 = (MR_Integer) 1;
                    else
                    {
                      succeeded = (Var_86 > Var_87);
                      if (succeeded)
                        CompareResult_6 = (MR_Integer) 2;
                      else
                        CompareResult_6 = (MR_Integer) 0;
                    }
                    succeeded = MR_TRUE;
                  }
                }
                break;
              case (MR_Integer) 20:
                {
                  MR_Word ArgX1_51 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))));
                  MR_Word ArgY1_52;
                  MR_String Var_96;
                  MR_String Var_97;

                  succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 20)));
                  if (succeeded)
                  {
                    ArgY1_52 = ((MR_Word) ((MR_hl_field(3, HeadVar__3_3, (MR_Integer) 1))));
                    Var_96 = (MR_String) (ArgX1_51);
                    Var_97 = (MR_String) (ArgY1_52);
                    mercury__private_builtin__builtin_compare_string_3_p_0(&CompareResult_6, Var_96, Var_97);
                    succeeded = MR_TRUE;
                  }
                }
                break;
            }
            break;
        }
        if (succeeded)
          *HeadVar__1_1 = CompareResult_6;
        else
          {
            mercury__private_builtin__compare_error_0_p_0();
            return;
          }
      }
    }
  }
}

void MR_CALL 
parse_tree__file_names____Index____newext_0_0(
  MR_Word HeadVar__1_1,
  MR_Integer * HeadVar__2_2)
{
  switch (MR_tag((MR_Word) HeadVar__1_1)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      *HeadVar__2_2 = (MR_Integer) 0;
      break;
    case (MR_Integer) 1:
      *HeadVar__2_2 = (MR_Integer) 1;
      break;
    case (MR_Integer) 2:
      *HeadVar__2_2 = (MR_Integer) 2;
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          *HeadVar__2_2 = (MR_Integer) 3;
          break;
        case (MR_Integer) 1:
          *HeadVar__2_2 = (MR_Integer) 4;
          break;
        case (MR_Integer) 2:
          *HeadVar__2_2 = (MR_Integer) 5;
          break;
        case (MR_Integer) 3:
          *HeadVar__2_2 = (MR_Integer) 6;
          break;
        case (MR_Integer) 4:
          *HeadVar__2_2 = (MR_Integer) 7;
          break;
        case (MR_Integer) 5:
          *HeadVar__2_2 = (MR_Integer) 8;
          break;
        case (MR_Integer) 6:
          *HeadVar__2_2 = (MR_Integer) 9;
          break;
        case (MR_Integer) 7:
          *HeadVar__2_2 = (MR_Integer) 10;
          break;
        case (MR_Integer) 8:
          *HeadVar__2_2 = (MR_Integer) 11;
          break;
        case (MR_Integer) 9:
          *HeadVar__2_2 = (MR_Integer) 12;
          break;
        case (MR_Integer) 10:
          *HeadVar__2_2 = (MR_Integer) 13;
          break;
        case (MR_Integer) 11:
          *HeadVar__2_2 = (MR_Integer) 14;
          break;
        case (MR_Integer) 12:
          *HeadVar__2_2 = (MR_Integer) 15;
          break;
        case (MR_Integer) 13:
          *HeadVar__2_2 = (MR_Integer) 16;
          break;
        case (MR_Integer) 14:
          *HeadVar__2_2 = (MR_Integer) 17;
          break;
        case (MR_Integer) 15:
          *HeadVar__2_2 = (MR_Integer) 18;
          break;
        case (MR_Integer) 16:
          *HeadVar__2_2 = (MR_Integer) 19;
          break;
        case (MR_Integer) 17:
          *HeadVar__2_2 = (MR_Integer) 20;
          break;
        case (MR_Integer) 18:
          *HeadVar__2_2 = (MR_Integer) 21;
          break;
        case (MR_Integer) 19:
          *HeadVar__2_2 = (MR_Integer) 22;
          break;
        case (MR_Integer) 20:
          *HeadVar__2_2 = (MR_Integer) 23;
          break;
      }
      break;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____newext_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_51 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_52 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_51 == CastY_52);
  if (succeeded)
    succeeded = MR_TRUE;
  else
    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Integer CastX_3 = (MR_Integer) (HeadVar__1_1);
          MR_Integer CastY_4 = (MR_Integer) (HeadVar__2_2);

          succeeded = (CastY_4 == CastX_3);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word ArgX1_5 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 7);
          MR_Word ArgY1_6;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
          if (succeeded)
          {
            ArgY1_6 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 7);
            succeeded = (ArgX1_5 == ArgY1_6);
          }
        }
        break;
      case (MR_Integer) 2:
        {
          MR_Word ArgX1_7 = ((MR_Unsigned) ((MR_hl_field(2, HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 3);
          MR_Word ArgY1_8;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
          if (succeeded)
          {
            ArgY1_8 = ((MR_Unsigned) ((MR_hl_field(2, HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
            succeeded = (ArgX1_7 == ArgY1_8);
          }
        }
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 0))))) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 0)));
            break;
          case (MR_Integer) 1:
            succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 1)));
            break;
          case (MR_Integer) 2:
            {
              MR_Word ArgX1_13 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
              MR_Word ArgY1_14;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 2)));
              if (succeeded)
              {
                ArgY1_14 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                succeeded = (ArgX1_13 == ArgY1_14);
              }
            }
            break;
          case (MR_Integer) 3:
            {
              MR_Word ArgX1_15 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
              MR_Word ArgY1_16;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 3)));
              if (succeeded)
              {
                ArgY1_16 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                succeeded = (ArgX1_15 == ArgY1_16);
              }
            }
            break;
          case (MR_Integer) 4:
            {
              MR_Word ArgX1_17 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
              MR_Word ArgY1_18;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 4)));
              if (succeeded)
              {
                ArgY1_18 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                succeeded = (ArgX1_17 == ArgY1_18);
              }
            }
            break;
          case (MR_Integer) 5:
            {
              MR_Word ArgX1_19 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 7);
              MR_Word ArgY1_20;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 5)));
              if (succeeded)
              {
                ArgY1_20 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                succeeded = (ArgX1_19 == ArgY1_20);
              }
            }
            break;
          case (MR_Integer) 6:
            succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 6)));
            break;
          case (MR_Integer) 7:
            {
              MR_Word ArgX1_23 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 7);
              MR_Word ArgY1_24;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 7)));
              if (succeeded)
              {
                ArgY1_24 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                succeeded = (ArgX1_23 == ArgY1_24);
              }
            }
            break;
          case (MR_Integer) 8:
            succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 8)));
            break;
          case (MR_Integer) 9:
            {
              MR_Word ArgX1_27 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
              MR_Word ArgY1_28;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 9)));
              if (succeeded)
              {
                ArgY1_28 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                succeeded = (ArgX1_27 == ArgY1_28);
              }
            }
            break;
          case (MR_Integer) 10:
            {
              MR_Word ArgX1_29 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
              MR_Word ArgY1_30;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 10)));
              if (succeeded)
              {
                ArgY1_30 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                succeeded = (ArgX1_29 == ArgY1_30);
              }
            }
            break;
          case (MR_Integer) 11:
            {
              MR_Word ArgX1_31 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 7);
              MR_Word ArgY1_32;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 11)));
              if (succeeded)
              {
                ArgY1_32 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                succeeded = (ArgX1_31 == ArgY1_32);
              }
            }
            break;
          case (MR_Integer) 12:
            {
              MR_Word ArgX1_33 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
              MR_Word ArgY1_34;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 12)));
              if (succeeded)
              {
                ArgY1_34 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                succeeded = (ArgX1_33 == ArgY1_34);
              }
            }
            break;
          case (MR_Integer) 13:
            {
              MR_Word ArgX1_35 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 31);
              MR_Word ArgY1_36;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 13)));
              if (succeeded)
              {
                ArgY1_36 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 31);
                succeeded = (ArgX1_35 == ArgY1_36);
              }
            }
            break;
          case (MR_Integer) 14:
            {
              MR_Word ArgX1_37 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 7);
              MR_Word ArgY1_38;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 14)));
              if (succeeded)
              {
                ArgY1_38 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                succeeded = (ArgX1_37 == ArgY1_38);
              }
            }
            break;
          case (MR_Integer) 15:
            {
              MR_Word ArgX1_39 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 15);
              MR_Word ArgY1_40;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 15)));
              if (succeeded)
              {
                ArgY1_40 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 15);
                succeeded = (ArgX1_39 == ArgY1_40);
              }
            }
            break;
          case (MR_Integer) 16:
            {
              MR_Word ArgX1_41 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 7);
              MR_Word ArgY1_42;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 16)));
              if (succeeded)
              {
                ArgY1_42 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 7);
                succeeded = (ArgX1_41 == ArgY1_42);
              }
            }
            break;
          case (MR_Integer) 17:
            {
              MR_Word ArgX1_43 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
              MR_Word ArgY1_44;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 17)));
              if (succeeded)
              {
                ArgY1_44 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                succeeded = (ArgX1_43 == ArgY1_44);
              }
            }
            break;
          case (MR_Integer) 18:
            {
              MR_Word ArgX1_45 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
              MR_Word ArgY1_46;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 18)));
              if (succeeded)
              {
                ArgY1_46 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
                succeeded = (ArgX1_45 == ArgY1_46);
              }
            }
            break;
          case (MR_Integer) 19:
            {
              MR_Word ArgX1_47 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
              MR_Word ArgY1_48;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 19)));
              if (succeeded)
              {
                ArgY1_48 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                succeeded = (ArgX1_47 == ArgY1_48);
              }
            }
            break;
          case (MR_Integer) 20:
            {
              MR_Word ArgX1_49 = ((MR_Word) ((MR_hl_field(3, HeadVar__1_1, (MR_Integer) 1))));
              MR_Word ArgY1_50;
              MR_Integer CastX_55;
              MR_Integer CastY_56;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 20)));
              if (succeeded)
              {
                ArgY1_50 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, (MR_Integer) 1))));
                CastX_55 = (MR_Integer) (ArgX1_49);
                CastY_56 = (MR_Integer) (ArgY1_50);
                succeeded = (CastX_55 == CastY_56);
                if (succeeded)
                  succeeded = MR_TRUE;
                else
                {
                  MR_String ArgX1_53 = (MR_String) (ArgX1_49);
                  MR_String ArgY1_54 = (MR_String) (ArgY1_50);

                  succeeded = (strcmp(ArgX1_53, ArgY1_54) == 0);
                }
              }
            }
            break;
        }
        break;
    }
  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____maybe_search_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_search_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____maybe_create_dirs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_create_dirs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_user_ngs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_ngs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_user_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_target_java_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_java_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_target_date_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_date_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_target_c_cs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_c_cs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_opt_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_opt_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_obj_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_obj_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_target_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_target_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_fragment_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_fragment_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_misc_ngs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_ngs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_misc_gs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_gs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_mih_0_0(
  MR_Word * HeadVar__1_1)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_109_105_104_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(HeadVar__1_1);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_109_105_104_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
  MR_Word * HeadVar__1_1)
{
  *HeadVar__1_1 = (MR_Integer) 0;
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mih_0_0(void)
{
  return MR_TRUE;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_mh_0_0(
  MR_Word * HeadVar__1_1)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_109_104_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(HeadVar__1_1);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_109_104_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
  MR_Word * HeadVar__1_1)
{
  *HeadVar__1_1 = (MR_Integer) 0;
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mh_0_0(void)
{
  return MR_TRUE;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_lib_gs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_gs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_lib_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_int_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_int_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_init_obj_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_obj_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_init_c_0_0(
  MR_Word * HeadVar__1_1)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_105_110_105_116_95_99_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(HeadVar__1_1);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_105_110_105_116_95_99_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
  MR_Word * HeadVar__1_1)
{
  *HeadVar__1_1 = (MR_Integer) 0;
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_c_0_0(void)
{
  return MR_TRUE;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_exec_gs_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_gs_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_exec_0_0(
  MR_Word * HeadVar__1_1)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_101_120_101_99_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(HeadVar__1_1);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_112_97_114_115_101_95_116_114_101_101_95_95_102_105_108_101_95_110_97_109_101_115_95_95_101_120_116_95_101_120_101_99_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
  MR_Word * HeadVar__1_1)
{
  *HeadVar__1_1 = (MR_Integer) 0;
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_0_0(void)
{
  return MR_TRUE;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_bytecode_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_bytecode_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_analysis_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_analysis_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
parse_tree__file_names____Compare____ext_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_8 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_9 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_8 == CastY_9);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if ((HeadVar__2_2 == (MR_Word) ((MR_Unsigned) 0U)))
    if ((HeadVar__3_3 == (MR_Word) ((MR_Unsigned) 0U)))
      *HeadVar__1_1 = (MR_Integer) 0;
    else
      *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))));

    if ((HeadVar__3_3 == (MR_Word) ((MR_Unsigned) 0U)))
      *HeadVar__1_1 = (MR_Integer) 2;
    else
    {
      MR_Word ArgY1_7 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, (MR_Integer) 0))));
      MR_String Var_12 = (MR_String) (Var_11);
      MR_String Var_13 = (MR_String) (ArgY1_7);

      mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, Var_12, Var_13);
    }
  }
}

MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    MR_Integer CastX_3 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_4 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastY_4 == CastX_3);
  }
  else
  {
    MR_Word ArgX1_5 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, (MR_Integer) 0))));
    MR_Word ArgY1_6;
    MR_Integer CastX_11;
    MR_Integer CastY_12;

    succeeded = (HeadVar__2_2 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      ArgY1_6 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, (MR_Integer) 0))));
      CastX_11 = (MR_Integer) (ArgX1_5);
      CastY_12 = (MR_Integer) (ArgY1_6);
      succeeded = (CastX_11 == CastY_12);
      if (succeeded)
        succeeded = MR_TRUE;
      else
      {
        MR_String ArgX1_9 = (MR_String) (ArgX1_5);
        MR_String ArgY1_10 = (MR_String) (ArgY1_6);

        succeeded = (strcmp(ArgX1_9, ArgY1_10) == 0);
      }
    }
  }
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____count_sum_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Integer ArgX1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Integer ArgY1_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));
    MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
    MR_Word SubResult1_6;

    succeeded = (ArgX1_4 < ArgY1_5);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (ArgX1_4 > ArgY1_5);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
      else
      {
        succeeded = MR_TRUE;
        succeeded = !(succeeded);
        if (succeeded)
        {
          SubResult1_6 = (MR_Integer) 0;
          succeeded = MR_TRUE;
        }
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      succeeded = (ArgX2_7 < ArgY2_8);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX2_7 > ArgY2_8);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____count_sum_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Integer ArgX1_3 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 0))));
    MR_Integer ArgY1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 0))));
    MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, (MR_Integer) 1))));
    MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, (MR_Integer) 1))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names__unsafe_set_mkdirs_1_p_0(
  MR_Word X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_set_mkdirs_1_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_mkdirs = X;


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_get_mkdirs_1_p_0(
  MR_Word * X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_get_mkdirs_1_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_mkdirs;


		;}
#undef MR_PROC_LABEL
	*X_1  = X;
}
}

static void MR_CALL 
parse_tree__file_names__unlock_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unlock_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__lock_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__lock_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__pre_initialise_mutable_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_mkdirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__initialise_mutable_mkdirs_0_p_0(void)
{
  MR_Word X_1;

{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_mkdirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
  X_1 = mercury__map__init_0_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0));
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_mkdirs_0_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_mkdirs = X;


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_set_no_mkdirs_1_p_0(
  MR_Word X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_set_no_mkdirs_1_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_no_mkdirs = X;


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_get_no_mkdirs_1_p_0(
  MR_Word * X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_get_no_mkdirs_1_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_no_mkdirs;


		;}
#undef MR_PROC_LABEL
	*X_1  = X;
}
}

static void MR_CALL 
parse_tree__file_names__unlock_no_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unlock_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__lock_no_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__lock_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_no_mkdirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__pre_initialise_mutable_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0(void)
{
  MR_Word X_1;

{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
  X_1 = mercury__map__init_0_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0));
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_no_mkdirs = X;


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_no_mkdirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_set_translations_1_p_0(
  MR_Word X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_set_translations_1_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_translations = X;


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_get_translations_1_p_0(
  MR_Word * X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_get_translations_1_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_translations;


		;}
#undef MR_PROC_LABEL
	*X_1  = X;
}
}

static void MR_CALL 
parse_tree__file_names__unlock_translations_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unlock_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__lock_translations_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__lock_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_translations_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__pre_initialise_mutable_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_translations_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__initialise_mutable_translations_0_p_0(void)
{
  MR_Word X_1;

{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_translations_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
  X_1 = mercury__map__init_0_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0));
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_translations_0_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_translations = X;


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_translations_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_set_made_dirs_1_p_0(
  MR_Word X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_set_made_dirs_1_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_made_dirs = X;


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__unsafe_get_made_dirs_1_p_0(
  MR_Word * X_1)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unsafe_get_made_dirs_1_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_made_dirs;


		;}
#undef MR_PROC_LABEL
	*X_1  = X;
}
}

static void MR_CALL 
parse_tree__file_names__unlock_made_dirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__unlock_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__lock_made_dirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__lock_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__pre_initialise_mutable_made_dirs_0_p_0(void)
{
{
#define MR_PROC_LABEL parse_tree__file_names__pre_initialise_mutable_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_made_dirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__initialise_mutable_made_dirs_0_p_0(void)
{
  MR_Word X_1;

{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
   pthread_mutex_init(&parse_tree__file_names__mutable_variable_made_dirs_lock, MR_MUTEX_ATTR);
#endif


		;}
#undef MR_PROC_LABEL
}
  X_1 = mercury__set_tree234__init_0_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0));
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_made_dirs_0_p_0

	MR_Word X;

	X = X_1 ;
		{
parse_tree__file_names__mutable_variable_made_dirs = X;


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__initialise_mutable_made_dirs_0_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
}

static void MR_CALL 
parse_tree__file_names__write_out_mkdirs_entry_5_p_0(
  MR_Word Stream_6,
  MR_String DirName_7,
  MR_Integer Cnt_8)
{
  MR_String Var_22;

  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "dir_name ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Cnt_8, &Var_22);
  mercury__io__write_string_4_p_0(Stream_6, Var_22);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__io__write_string_4_p_0(Stream_6, DirName_7);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "\n");
}

static void MR_CALL 
parse_tree__file_names__write_out_no_mkdirs_entry_5_p_0(
  MR_Word Stream_6,
  MR_String DirName_7,
  MR_Integer Cnt_8)
{
  MR_String Var_22;

  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "no_dir_name ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Cnt_8, &Var_22);
  mercury__io__write_string_4_p_0(Stream_6, Var_22);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__io__write_string_4_p_0(Stream_6, DirName_7);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "\n");
}

static void MR_CALL 
parse_tree__file_names__write_out_ext_sch_dir_entry_5_p_0(
  MR_Word Stream_6,
  MR_String ExtSchDir_7,
  MR_Word HeadVar__3_3)
{
  MR_Integer Cnt_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
  MR_Integer Sum_9 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
  MR_String Var_25;
  MR_String Var_35;

  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "ext_sch_dir ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Cnt_8, &Var_25);
  mercury__io__write_string_4_p_0(Stream_6, Var_25);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Sum_9, &Var_35);
  mercury__io__write_string_4_p_0(Stream_6, Var_35);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__io__write_string_4_p_0(Stream_6, ExtSchDir_7);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "\n");
}

static void MR_CALL 
parse_tree__file_names__write_out_ext_entry_5_p_0(
  MR_Word Stream_6,
  MR_String Ext_7,
  MR_Word HeadVar__3_3)
{
  MR_Integer Cnt_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 0))));
  MR_Integer Sum_9 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, (MR_Integer) 1))));
  MR_String Var_25;
  MR_String Var_35;

  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "ext ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Cnt_8, &Var_25);
  mercury__io__write_string_4_p_0(Stream_6, Var_25);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), Sum_9, &Var_35);
  mercury__io__write_string_4_p_0(Stream_6, Var_35);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) " ");
  mercury__io__write_string_4_p_0(Stream_6, Ext_7);
  mercury__io__write_string_4_p_0(Stream_6, (MR_String) "\n");
}

static void MR_CALL 
parse_tree__file_names__gather_translation_stats_10_p_0(
  MR_Word Key_11,
  MR_Word Value_12,
  MR_Integer STATE_VARIABLE_NumKeys_0_28,
  MR_Integer * STATE_VARIABLE_NumKeys_29,
  MR_Integer STATE_VARIABLE_NumLookups_0_30,
  MR_Integer * STATE_VARIABLE_NumLookups_31,
  MR_Word STATE_VARIABLE_ExtMap_0_32,
  MR_Word * STATE_VARIABLE_ExtMap_33,
  MR_Word STATE_VARIABLE_ExtSchDirMap_0_34,
  MR_Word * STATE_VARIABLE_ExtSchDirMap_35)
{
  MR_bool succeeded;
  MR_Integer Count_18;
  MR_Word Ext0_20;
  MR_Word Search_21;
  MR_Word MkDir_22;
  MR_String ExtStr_23;
  MR_String SearchStr_25;
  MR_String MkDirStr_26;
  MR_String ExtSchDir_27;
  MR_String Var_40;
  MR_Word Entry0_42;
  MR_Box conv0_Entry0_42;
  MR_Word Entry0_54;
  MR_Box conv1_Entry0_54;

  *STATE_VARIABLE_NumKeys_29 = (MR_Integer) ((MR_Unsigned) STATE_VARIABLE_NumKeys_0_28 + (MR_Unsigned) 1);
  Count_18 = ((MR_Integer) ((MR_hl_field(0, Value_12, (MR_Integer) 1))));
  *STATE_VARIABLE_NumLookups_31 = (MR_Integer) ((MR_Unsigned) STATE_VARIABLE_NumLookups_0_30 + (MR_Unsigned) Count_18);
  Ext0_20 = ((MR_Word) ((MR_hl_field(0, Key_11, (MR_Integer) 1))));
  Search_21 = ((((MR_Unsigned) ((MR_hl_field(0, Key_11, (MR_Integer) 2))) >> 1)) & (MR_Integer) 1);
  MkDir_22 = ((MR_Unsigned) ((MR_hl_field(0, Key_11, (MR_Integer) 2))) & (MR_Integer) 1);
  if ((Ext0_20 == (MR_Word) ((MR_Unsigned) 0U)))
    ExtStr_23 = (MR_String) ".m";
  else
  {
    MR_String ExtStr0_24;
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(1, Ext0_20, (MR_Integer) 0))));

    ExtStr0_24 = (MR_String) (Var_39);
    succeeded = (strcmp(ExtStr0_24, (MR_String) "") == 0);
    if (succeeded)
      ExtStr_23 = (MR_String) "no_suffix";
    else
      ExtStr_23 = ExtStr0_24;
  }
  switch (Search_21) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      SearchStr_25 = (MR_String) "_nosearch";
      break;
    case (MR_Integer) 0:
      SearchStr_25 = (MR_String) "_search";
      break;
  }
  switch (MkDir_22) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      MkDirStr_26 = (MR_String) "_mkdir";
      break;
    case (MR_Integer) 1:
      MkDirStr_26 = (MR_String) "_nomkdir";
      break;
  }
  Var_40 = mercury__string__f_43_43_2_f_0(SearchStr_25, MkDirStr_26);
  ExtSchDir_27 = mercury__string__f_43_43_2_f_0(ExtStr_23, Var_40);
  succeeded = mercury__map__search_3_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), STATE_VARIABLE_ExtMap_0_32, ((MR_Box) (ExtStr_23)), &conv0_Entry0_42);
  if (succeeded)
  {
    Entry0_42 = ((MR_Word) (conv0_Entry0_42));
    succeeded = MR_TRUE;
  }
  if (succeeded)
  {
    MR_Integer Cnt0_43 = ((MR_Integer) ((MR_hl_field(0, Entry0_42, (MR_Integer) 0))));
    MR_Integer Sum0_44 = ((MR_Integer) ((MR_hl_field(0, Entry0_42, (MR_Integer) 1))));
    MR_Word Entry_45;
    MR_Integer Var_46 = (MR_Integer) ((MR_Unsigned) Cnt0_43 + (MR_Unsigned) 1);
    MR_Integer Var_48 = (MR_Integer) ((MR_Unsigned) Sum0_44 + (MR_Unsigned) Count_18);

    {
      Entry_45 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Entry_45, 0) = ((MR_Box) (Var_46));
      MR_hl_field(0, Entry_45, 1) = ((MR_Box) (Var_48));
    }
    mercury__map__det_update_4_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), ((MR_Box) (ExtStr_23)), ((MR_Box) (Entry_45)), STATE_VARIABLE_ExtMap_0_32, STATE_VARIABLE_ExtMap_33);
  }
  else
  {
    MR_Word Entry_50;

    {
      Entry_50 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Entry_50, 0) = ((MR_Box) ((MR_Integer) 1));
      MR_hl_field(0, Entry_50, 1) = ((MR_Box) (Count_18));
    }
    mercury__map__det_insert_4_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), ((MR_Box) (ExtStr_23)), ((MR_Box) (Entry_50)), STATE_VARIABLE_ExtMap_0_32, STATE_VARIABLE_ExtMap_33);
  }
  succeeded = mercury__map__search_3_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), STATE_VARIABLE_ExtSchDirMap_0_34, ((MR_Box) (ExtSchDir_27)), &conv1_Entry0_54);
  if (succeeded)
  {
    Entry0_54 = ((MR_Word) (conv1_Entry0_54));
    succeeded = MR_TRUE;
  }
  if (succeeded)
  {
    MR_Integer Cnt0_55 = ((MR_Integer) ((MR_hl_field(0, Entry0_54, (MR_Integer) 0))));
    MR_Integer Sum0_56 = ((MR_Integer) ((MR_hl_field(0, Entry0_54, (MR_Integer) 1))));
    MR_Word Entry_57;
    MR_Integer Var_58 = (MR_Integer) ((MR_Unsigned) Cnt0_55 + (MR_Unsigned) 1);
    MR_Integer Var_60 = (MR_Integer) ((MR_Unsigned) Sum0_56 + (MR_Unsigned) Count_18);

    {
      Entry_57 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Entry_57, 0) = ((MR_Box) (Var_58));
      MR_hl_field(0, Entry_57, 1) = ((MR_Box) (Var_60));
    }
    mercury__map__det_update_4_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), ((MR_Box) (ExtSchDir_27)), ((MR_Box) (Entry_57)), STATE_VARIABLE_ExtSchDirMap_0_34, STATE_VARIABLE_ExtSchDirMap_35);
  }
  else
  {
    MR_Word Entry_62;

    {
      Entry_62 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Entry_62, 0) = ((MR_Box) ((MR_Integer) 1));
      MR_hl_field(0, Entry_62, 1) = ((MR_Box) (Count_18));
    }
    mercury__map__det_insert_4_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), ((MR_Box) (ExtSchDir_27)), ((MR_Box) (Entry_62)), STATE_VARIABLE_ExtSchDirMap_0_34, STATE_VARIABLE_ExtSchDirMap_35);
  }
}

static MR_bool MR_CALL 
parse_tree__file_names__valid_other_newext_1_p_0(
  MR_Word HeadVar__1_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_118_97_108_105_100_95_111_116_104_101_114_95_110_101_119_101_120_116_95_95_91_49_93_95_48_1_p_0();
  return succeeded;
}

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_118_97_108_105_100_95_111_116_104_101_114_95_110_101_119_101_120_116_95_95_91_49_93_95_48_1_p_0(void)
{
  MR_bool succeeded;

  succeeded = mercury__builtin__semidet_fail_0_p_0();
  return succeeded;
}

static MR_bool MR_CALL 
parse_tree__file_names__valid_other_ext_1_p_0(
  MR_Word HeadVar__1_1)
{
  MR_bool succeeded;
  MR_String ExtStr_2 = (MR_String) (HeadVar__1_1);

  succeeded = (strcmp(ExtStr_2, (MR_String) ".m") == 0);
  succeeded = !(succeeded);
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_5(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__file_names__write_out_mkdirs_entry_5_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_String) (wrapper_arg_1)), ((MR_Integer) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_4(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__file_names__write_out_no_mkdirs_entry_5_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_String) (wrapper_arg_1)), ((MR_Integer) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_3(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__file_names__write_out_ext_sch_dir_entry_5_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_String) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__file_names__write_out_ext_entry_5_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_String) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4,
  MR_Box wrapper_arg_5,
  MR_Box * wrapper_arg_6,
  MR_Box wrapper_arg_7,
  MR_Box * wrapper_arg_8,
  MR_Box wrapper_arg_9,
  MR_Box * wrapper_arg_10)
{
  MR_Box closure = closure_arg;
  MR_Integer conv3_STATE_VARIABLE_NumKeys_29;
  MR_Integer conv2_STATE_VARIABLE_NumLookups_31;
  MR_Word conv1_STATE_VARIABLE_ExtMap_33;
  MR_Word conv0_STATE_VARIABLE_ExtSchDirMap_35;

  parse_tree__file_names__gather_translation_stats_10_p_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)), ((MR_Integer) (wrapper_arg_3)), &conv3_STATE_VARIABLE_NumKeys_29, ((MR_Integer) (wrapper_arg_5)), &conv2_STATE_VARIABLE_NumLookups_31, ((MR_Word) (wrapper_arg_7)), &conv1_STATE_VARIABLE_ExtMap_33, ((MR_Word) (wrapper_arg_9)), &conv0_STATE_VARIABLE_ExtSchDirMap_35);
  *wrapper_arg_4 = ((MR_Box) (conv3_STATE_VARIABLE_NumKeys_29));
  *wrapper_arg_6 = ((MR_Box) (conv2_STATE_VARIABLE_NumLookups_31));
  *wrapper_arg_8 = ((MR_Box) (conv1_STATE_VARIABLE_ExtMap_33));
  *wrapper_arg_10 = ((MR_Box) (conv0_STATE_VARIABLE_ExtSchDirMap_35));
}

void MR_CALL 
parse_tree__file_names__write_translations_record_if_any_2_p_0(void)
{
  MR_bool succeeded;
  MR_Word Translations_4;
  MR_Word NoMkDirs_5;
  MR_Word MkDirs_6;
  MR_Word TypeCtorInfo_43_43;
  MR_Word TypeCtorInfo_44_44;

{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_translations;


		;}
#undef MR_PROC_LABEL
	Translations_4  = X;
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_translations_lock, "parse_tree__file_names__mutable_variable_translations_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_no_mkdirs;


		;}
#undef MR_PROC_LABEL
	NoMkDirs_5  = X;
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_no_mkdirs_lock, "parse_tree__file_names__mutable_variable_no_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_mkdirs;


		;}
#undef MR_PROC_LABEL
	MkDirs_6  = X;
}
{
#define MR_PROC_LABEL parse_tree__file_names__write_translations_record_if_any_2_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_mkdirs_lock, "parse_tree__file_names__mutable_variable_mkdirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
  succeeded = mercury__map__is_empty_1_p_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0), Translations_4);
  if (succeeded)
  {
    TypeCtorInfo_43_43 = (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0);
    TypeCtorInfo_44_44 = (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0);
    succeeded = mercury__map__is_empty_1_p_0(TypeCtorInfo_43_43, TypeCtorInfo_44_44, NoMkDirs_5);
    if (succeeded)
      succeeded = mercury__map__is_empty_1_p_0(TypeCtorInfo_43_43, TypeCtorInfo_44_44, MkDirs_6);
  }
  if (!(succeeded))
  {
    MR_Integer NumKeys_7;
    MR_Integer NumLookups_8;
    MR_Word ExtMap_9;
    MR_Word ExtSchDirMap_10;
    MR_Word Result_11;
    MR_Word Var_22;
    MR_Word Var_23;
    MR_Box conv7_NumKeys_7;
    MR_Box conv6_NumLookups_8;
    MR_Box conv5_ExtMap_9;
    MR_Box conv4_ExtSchDirMap_10;

    Var_22 = mercury__map__init_0_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0));
    Var_23 = mercury__map__init_0_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0));
    mercury__map__foldl4_10_p_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&parse_tree__file_names_scalar_common_1[0]), (MR_Word) (&parse_tree__file_names_scalar_common_1[0]), (MR_Word) (&parse_tree__file_names_scalar_common_1[2]), Translations_4, ((MR_Box) ((MR_Integer) 0)), &conv7_NumKeys_7, ((MR_Box) ((MR_Integer) 0)), &conv6_NumLookups_8, ((MR_Box) (Var_22)), &conv5_ExtMap_9, ((MR_Box) (Var_23)), &conv4_ExtSchDirMap_10);
    NumKeys_7 = ((MR_Integer) (conv7_NumKeys_7));
    NumLookups_8 = ((MR_Integer) (conv6_NumLookups_8));
    ExtMap_9 = ((MR_Word) (conv5_ExtMap_9));
    ExtSchDirMap_10 = ((MR_Word) (conv4_ExtSchDirMap_10));
    mercury__io__open_append_4_p_0((MR_String) "/tmp/TRANSLATIONS_RECORD", &Result_11);
    if (!(((MR_tag((MR_Word) Result_11)) == (MR_Integer) 1)))
    {
      MR_Word Stream_12 = ((MR_Word) ((MR_hl_field(0, Result_11, (MR_Integer) 0))));
      MR_Word Var_33;
      MR_Word Var_35;
      MR_Word Var_37;
      MR_Word Var_39;
      MR_String Var_81;
      MR_String Var_91;
      MR_Box conv8_STATE_VARIABLE_IO_34_34;
      MR_Box conv9_STATE_VARIABLE_IO_36_36;
      MR_Box conv10_STATE_VARIABLE_IO_38_38;
      MR_Box conv11_STATE_VARIABLE_IO_40_40;

      mercury__io__write_string_4_p_0(Stream_12, (MR_String) "overall_stats ");
      mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), NumKeys_7, &Var_81);
      mercury__io__write_string_4_p_0(Stream_12, Var_81);
      mercury__io__write_string_4_p_0(Stream_12, (MR_String) " ");
      mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[2]), NumLookups_8, &Var_91);
      mercury__io__write_string_4_p_0(Stream_12, Var_91);
      mercury__io__write_string_4_p_0(Stream_12, (MR_String) "\n");
      {
        Var_33 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(0, Var_33, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_11[0]));
        MR_hl_field(0, Var_33, 1) = ((MR_Box) (parse_tree__file_names__write_translations_record_if_any_2_p_0_2));
        MR_hl_field(0, Var_33, 2) = ((MR_Box) ((MR_Integer) 1));
        MR_hl_field(0, Var_33, 3) = ((MR_Box) (Stream_12));
      }
      mercury__map__foldl_4_p_2((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), (MR_Word) (&mercury__io__io__type_ctor_info_state_0), Var_33, ExtMap_9, ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_IO_34_34);
      {
        Var_35 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(0, Var_35, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_11[0]));
        MR_hl_field(0, Var_35, 1) = ((MR_Box) (parse_tree__file_names__write_translations_record_if_any_2_p_0_3));
        MR_hl_field(0, Var_35, 2) = ((MR_Box) ((MR_Integer) 1));
        MR_hl_field(0, Var_35, 3) = ((MR_Box) (Stream_12));
      }
      mercury__map__foldl_4_p_2((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0), (MR_Word) (&mercury__io__io__type_ctor_info_state_0), Var_35, ExtSchDirMap_10, ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_IO_36_36);
      {
        Var_37 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(0, Var_37, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_11[1]));
        MR_hl_field(0, Var_37, 1) = ((MR_Box) (parse_tree__file_names__write_translations_record_if_any_2_p_0_4));
        MR_hl_field(0, Var_37, 2) = ((MR_Box) ((MR_Integer) 1));
        MR_hl_field(0, Var_37, 3) = ((MR_Box) (Stream_12));
      }
      mercury__map__foldl_4_p_2((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&mercury__io__io__type_ctor_info_state_0), Var_37, NoMkDirs_5, ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_IO_38_38);
      {
        Var_39 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(0, Var_39, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_11[1]));
        MR_hl_field(0, Var_39, 1) = ((MR_Box) (parse_tree__file_names__write_translations_record_if_any_2_p_0_5));
        MR_hl_field(0, Var_39, 2) = ((MR_Box) ((MR_Integer) 1));
        MR_hl_field(0, Var_39, 3) = ((MR_Box) (Stream_12));
      }
      mercury__map__foldl_4_p_2((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&mercury__io__io__type_ctor_info_state_0), Var_39, MkDirs_6, ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_IO_40_40);
      mercury__io__close_output_3_p_0(Stream_12);
    }
  }
}

static void MR_CALL 
parse_tree__file_names__test_file_name_extensions_4_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2)
{
  MR_Box closure = closure_arg;
  MR_String conv1_LambdaHeadVar__2_18;

  parse_tree__file_names__IntroducedFrom__pred__all_extensions__2586__1_3_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_Word) (wrapper_arg_1)), &conv1_LambdaHeadVar__2_18);
  *wrapper_arg_2 = ((MR_Box) (conv1_LambdaHeadVar__2_18));
}

static void MR_CALL 
parse_tree__file_names__test_file_name_extensions_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2)
{
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__3_3;

  libs__globals__lookup_string_option_3_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))), ((MR_Word) (wrapper_arg_1)), &conv0_HeadVar__3_3);
  *wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__3_3));
}

void MR_CALL 
parse_tree__file_names__test_file_name_extensions_4_p_0(
  MR_Word Globals0_5,
  MR_Word Stream_6)
{
  MR_Word Extensions_9;
  MR_Word GlobalsCur_10;
  MR_Word GlobalsSub_11;
  MR_Word GlobalsGradeSub_12;
  MR_Word SomeErrors_13;
  MR_Word OptionExtensionStrs_33;
  MR_Word MakeStrOptStr_34;
  MR_Word StrOptionExtensionStrs_35;
  MR_Word AllExtensionStrs0_36;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word STATE_VARIABLE_Globals_8_44;
  MR_Word STATE_VARIABLE_Globals_12_48;
  MR_Word STATE_VARIABLE_Globals_16_52;
  MR_Word STATE_VARIABLE_Globals_20_56;
  MR_Word STATE_VARIABLE_Globals_24_60;
  MR_Word STATE_VARIABLE_Globals_28_64;

  {
    Var_37 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_37, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_9[0]));
    MR_hl_field(0, Var_37, 1) = ((MR_Box) (parse_tree__file_names__test_file_name_extensions_4_p_0_1));
    MR_hl_field(0, Var_37, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_37, 3) = ((MR_Box) (Globals0_5));
  }
  mercury__list__map_3_p_0((MR_Word) (&libs__options__libs__options__type_ctor_info_option_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_37, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[174])), &OptionExtensionStrs_33);
  {
    MakeStrOptStr_34 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, MakeStrOptStr_34, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_9[1]));
    MR_hl_field(0, MakeStrOptStr_34, 1) = ((MR_Box) (parse_tree__file_names__test_file_name_extensions_4_p_0_2));
    MR_hl_field(0, MakeStrOptStr_34, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, MakeStrOptStr_34, 3) = ((MR_Box) (Globals0_5));
  }
  mercury__list__map_3_p_0((MR_Word) (&parse_tree__file_names_scalar_common_1[1]), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MakeStrOptStr_34, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[178])), &StrOptionExtensionStrs_35);
  Var_38 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), OptionExtensionStrs_33, StrOptionExtensionStrs_35);
  AllExtensionStrs0_36 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[169])), Var_38);
  mercury__list__sort_and_remove_dups_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), AllExtensionStrs0_36, &Extensions_9);
  libs__globals__set_option_4_p_0((MR_Integer) 612, (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[83])), Globals0_5, &STATE_VARIABLE_Globals_8_44);
  libs__globals__set_option_4_p_0((MR_Integer) 611, (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[84])), STATE_VARIABLE_Globals_8_44, &STATE_VARIABLE_Globals_12_48);
  libs__globals__set_option_4_p_0((MR_Integer) 610, (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[85])), STATE_VARIABLE_Globals_12_48, &STATE_VARIABLE_Globals_16_52);
  libs__globals__set_option_4_p_0((MR_Integer) 559, (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[86])), STATE_VARIABLE_Globals_16_52, &STATE_VARIABLE_Globals_20_56);
  libs__globals__set_option_4_p_0((MR_Integer) 560, (MR_Word) (MR_mkword(3, &parse_tree__file_names_scalar_common_3[87])), STATE_VARIABLE_Globals_20_56, &STATE_VARIABLE_Globals_24_60);
  libs__globals__set_option_4_p_0((MR_Integer) 684, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[6])), STATE_VARIABLE_Globals_24_60, &STATE_VARIABLE_Globals_28_64);
  libs__globals__set_option_4_p_0((MR_Integer) 685, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[6])), STATE_VARIABLE_Globals_28_64, &GlobalsCur_10);
  libs__globals__set_option_4_p_0((MR_Integer) 684, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[1])), GlobalsCur_10, &GlobalsSub_11);
  libs__globals__set_option_4_p_0((MR_Integer) 685, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_2[1])), GlobalsSub_11, &GlobalsGradeSub_12);
  parse_tree__file_names__test_extensions_loop_10_p_0(GlobalsCur_10, GlobalsSub_11, GlobalsGradeSub_12, Stream_6, (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[1])), Extensions_9, (MR_Integer) 0, &SomeErrors_13);
  switch (SomeErrors_13) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
      }
      break;
    case (MR_Integer) 1:
      mercury__io__set_exit_status_3_p_0((MR_Integer) 1);
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__test_extensions_loop_10_p_0(
  MR_Word GlobalsCur_1,
  MR_Word GlobalsSub_2,
  MR_Word GlobalsGradeSub_3,
  MR_Word Stream_4,
  MR_Word ModuleName_5,
  MR_Word HeadVar__6_6,
  MR_Word STATE_VARIABLE_SomeError_0_7,
  MR_Word * STATE_VARIABLE_SomeError_8)
{
  while (MR_TRUE)
  {
    // setup for model_det tailcalls optimized into a loop
    ;
    if ((HeadVar__6_6 == (MR_Word) ((MR_Unsigned) 0U)))
      *STATE_VARIABLE_SomeError_8 = STATE_VARIABLE_SomeError_0_7;
    else
    {
      MR_String Ext_27 = ((MR_String) ((MR_hl_field(1, HeadVar__6_6, (MR_Integer) 0))));
      MR_Word Exts_28 = ((MR_Word) ((MR_hl_field(1, HeadVar__6_6, (MR_Integer) 1))));
      MR_Word STATE_VARIABLE_SomeError_37_37;
      MR_Word STATE_VARIABLE_SomeError_41_41;
      MR_Word STATE_VARIABLE_SomeError_45_45;
      MR_Word STATE_VARIABLE_SomeError_49_49;
      MR_Word STATE_VARIABLE_SomeError_53_53;
      MR_Word STATE_VARIABLE_SomeError_57_57;
      MR_Word next_value_of_HeadVar__6_6;
      MR_Word next_value_of_STATE_VARIABLE_SomeError_0_7;

      parse_tree__file_names__test_one_extension_10_p_0(GlobalsCur_1, Stream_4, (MR_String) "cur", (MR_Integer) 1, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_0_7, &STATE_VARIABLE_SomeError_37_37);
      parse_tree__file_names__test_one_extension_10_p_0(GlobalsCur_1, Stream_4, (MR_String) "cur", (MR_Integer) 0, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_37_37, &STATE_VARIABLE_SomeError_41_41);
      parse_tree__file_names__test_one_extension_10_p_0(GlobalsSub_2, Stream_4, (MR_String) "sub", (MR_Integer) 1, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_41_41, &STATE_VARIABLE_SomeError_45_45);
      parse_tree__file_names__test_one_extension_10_p_0(GlobalsSub_2, Stream_4, (MR_String) "sub", (MR_Integer) 0, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_45_45, &STATE_VARIABLE_SomeError_49_49);
      parse_tree__file_names__test_one_extension_10_p_0(GlobalsGradeSub_3, Stream_4, (MR_String) "gsub", (MR_Integer) 1, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_49_49, &STATE_VARIABLE_SomeError_53_53);
      parse_tree__file_names__test_one_extension_10_p_0(GlobalsGradeSub_3, Stream_4, (MR_String) "gsub", (MR_Integer) 0, ModuleName_5, Ext_27, STATE_VARIABLE_SomeError_53_53, &STATE_VARIABLE_SomeError_57_57);
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__6_6 = Exts_28;
      next_value_of_STATE_VARIABLE_SomeError_0_7 = STATE_VARIABLE_SomeError_57_57;
      HeadVar__6_6 = next_value_of_HeadVar__6_6;
      STATE_VARIABLE_SomeError_0_7 = next_value_of_STATE_VARIABLE_SomeError_0_7;
      continue;
    }
    break;
  }
}

static MR_bool MR_CALL 
parse_tree__file_names__test_one_extension_10_p_0_1(
  MR_Box closure_arg)
{
  MR_bool succeeded;
  MR_Box closure = closure_arg;

  succeeded = parse_tree__file_names__valid_other_ext_1_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names__test_one_extension_10_p_0(
  MR_Word Globals_11,
  MR_Word Stream_12,
  MR_String GlobalsStr_13,
  MR_Word MaybeSearch_14,
  MR_Word ModuleName_15,
  MR_String Ext_16,
  MR_Word STATE_VARIABLE_SomeError_0_25,
  MR_Word * STATE_VARIABLE_SomeError_26)
{
  MR_bool succeeded;
  MR_String OldFileName_21;
  MR_Word NewExt_22;
  MR_String NewFileName_23;
  MR_Word OtherExt_74 = (MR_Word) (Ext_16);
  MR_Word BaseParentDirs_75;
  MR_String BaseNameNoExt_76;
  MR_Word DirComponents_77;
  MR_Word Var_81;
  MR_String Var_83;

  {
    Var_81 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_81, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_6[1]));
    MR_hl_field(0, Var_81, 1) = ((MR_Box) (parse_tree__file_names__test_one_extension_10_p_0_1));
    MR_hl_field(0, Var_81, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_81, 3) = ((MR_Box) (OtherExt_74));
  }
  Var_83 = mercury__string__f_43_43_2_f_0(Ext_16, (MR_String) " is a not valid argument of ext/1");
  mercury__require__expect_3_p_0(Var_81, (MR_String) "predicate \140parse_tree.file_names.decide_base_name_parent_dirs_other\'/4", Var_83);
  succeeded = mercury__string__suffix_2_p_0(Ext_16, (MR_String) ".java");
  if (!(succeeded))
    succeeded = mercury__string__suffix_2_p_0(Ext_16, (MR_String) ".class");
  if (succeeded)
  {
    BaseParentDirs_75 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2]));
    parse_tree__java_names__mangle_sym_name_for_java_4_p_0(ModuleName_15, (MR_Integer) 0, (MR_String) "__", &BaseNameNoExt_76);
  }
  else
  {
    BaseParentDirs_75 = (MR_Word) ((MR_Unsigned) 0U);
    BaseNameNoExt_76 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
  }
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_11, MaybeSearch_14, OtherExt_74, BaseParentDirs_75, BaseNameNoExt_76, &DirComponents_77, &OldFileName_21);
  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0((MR_Integer) 1, DirComponents_77);
  NewExt_22 = parse_tree__file_names__make_new_extension_1_f_0(Ext_16);
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(Globals_11, MaybeSearch_14, (MR_Integer) 1, NewExt_22, ModuleName_15, &NewFileName_23);
  succeeded = (strcmp(OldFileName_21, NewFileName_23) == 0);
  if (succeeded)
    *STATE_VARIABLE_SomeError_26 = STATE_VARIABLE_SomeError_0_25;
  else
  {
    MR_String MaybeSearchStr_24;
    MR_String Var_41;
    MR_String Var_43;
    MR_String Var_59;

    switch (MaybeSearch_14) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 1:
        MaybeSearchStr_24 = (MR_String) "schn";
        break;
      case (MR_Integer) 0:
        MaybeSearchStr_24 = (MR_String) "schy";
        break;
    }
    Var_43 = mercury__string__f_43_43_2_f_0(Ext_16, (MR_String) ">:");
    Var_41 = mercury__string__f_43_43_2_f_0((MR_String) "<", Var_43);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) "BAD FILENAME ");
    mercury__io__write_string_4_p_0(Stream_12, GlobalsStr_13);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) "/");
    mercury__io__write_string_4_p_0(Stream_12, MaybeSearchStr_24);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) "/");
    mercury__string__format__format_string_component_width_noprec_4_p_0((MR_Word) (&parse_tree__file_names_scalar_common_2[9]), (MR_Integer) 8, Var_41, &Var_59);
    mercury__io__write_string_4_p_0(Stream_12, Var_59);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) " ");
    mercury__io__write_string_4_p_0(Stream_12, OldFileName_21);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) " vs ");
    mercury__io__write_string_4_p_0(Stream_12, NewFileName_23);
    mercury__io__write_string_4_p_0(Stream_12, (MR_String) "\n");
    *STATE_VARIABLE_SomeError_26 = (MR_Integer) 1;
  }
}

static MR_Word MR_CALL 
parse_tree__file_names__make_new_extension_1_f_0(
  MR_String ExtStr_3)
{
  MR_bool succeeded;
  MR_Word NewExt_4;
  MR_Word NewExt0_5;

  {
    MR_Integer case_num_0 = (MR_Integer) -1;

    switch (MR_nth_code_unit(ExtStr_3, 0)) {
      case (MR_Integer) 0:
        case_num_0 = (MR_Integer) 0;
        break;
      case (MR_Integer) 46:
        switch (MR_nth_code_unit(ExtStr_3, 1)) {
          case (MR_Integer) 36:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 40:
                if (((((((((((((((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 69)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 88)))) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 84)))) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 70)))) && (((MR_nth_code_unit(ExtStr_3, 8)) == (MR_Integer) 79)))) && (((MR_nth_code_unit(ExtStr_3, 9)) == (MR_Integer) 82)))) && (((MR_nth_code_unit(ExtStr_3, 10)) == (MR_Integer) 95))))
                  switch (MR_nth_code_unit(ExtStr_3, 11)) {
                    case (MR_Integer) 80:
                      if (MR_offset_streq(12, ExtStr_3, (MR_String) ".\044(EXT_FOR_PIC_OBJECTS)"))
                        case_num_0 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 83:
                      if (MR_offset_streq(12, ExtStr_3, (MR_String) ".\044(EXT_FOR_SHARED_LIB)"))
                        case_num_0 = (MR_Integer) 2;
                      break;
                  }
                break;
              case (MR_Integer) 65:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".\044A"))
                  case_num_0 = (MR_Integer) 3;
                break;
              case (MR_Integer) 79:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".\044O"))
                  case_num_0 = (MR_Integer) 4;
                break;
            }
            break;
          case (MR_Integer) 97:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 0:
                case_num_0 = (MR_Integer) 5;
                break;
              case (MR_Integer) 108:
                if (((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 108)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 95))))
                  switch (MR_nth_code_unit(ExtStr_3, 5)) {
                    case (MR_Integer) 105:
                      if (((((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 116))))
                        switch (MR_nth_code_unit(ExtStr_3, 8)) {
                          case (MR_Integer) 51:
                            if (MR_offset_streq(9, ExtStr_3, (MR_String) ".all_int3s"))
                              case_num_0 = (MR_Integer) 6;
                            break;
                          case (MR_Integer) 115:
                            if (MR_offset_streq(9, ExtStr_3, (MR_String) ".all_ints"))
                              case_num_0 = (MR_Integer) 7;
                            break;
                        }
                      break;
                    case (MR_Integer) 111:
                      if (MR_offset_streq(6, ExtStr_3, (MR_String) ".all_opts"))
                        case_num_0 = (MR_Integer) 8;
                      break;
                    case (MR_Integer) 116:
                      if (MR_offset_streq(6, ExtStr_3, (MR_String) ".all_trans_opts"))
                        case_num_0 = (MR_Integer) 9;
                      break;
                  }
                break;
              case (MR_Integer) 110:
                if (((((((((((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 97)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 121)))) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 115)))) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(ExtStr_3, 8)) == (MR_Integer) 115))))
                  switch (MR_nth_code_unit(ExtStr_3, 9)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 10;
                      break;
                    case (MR_Integer) 95:
                      switch (MR_nth_code_unit(ExtStr_3, 10)) {
                        case (MR_Integer) 100:
                          if (MR_offset_streq(11, ExtStr_3, (MR_String) ".analysis_date"))
                            case_num_0 = (MR_Integer) 11;
                          break;
                        case (MR_Integer) 115:
                          if (MR_offset_streq(11, ExtStr_3, (MR_String) ".analysis_status"))
                            case_num_0 = (MR_Integer) 12;
                          break;
                      }
                      break;
                  }
                break;
            }
            break;
          case (MR_Integer) 98:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 97:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".bat"))
                  case_num_0 = (MR_Integer) 13;
                break;
              case (MR_Integer) 121:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".bytedebug"))
                  case_num_0 = (MR_Integer) 14;
                break;
            }
            break;
          case (MR_Integer) 99:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 0:
                case_num_0 = (MR_Integer) 15;
                break;
              case (MR_Integer) 95:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".c_date"))
                  case_num_0 = (MR_Integer) 16;
                break;
              case (MR_Integer) 104:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".check"))
                  case_num_0 = (MR_Integer) 17;
                break;
              case (MR_Integer) 108:
                switch (MR_nth_code_unit(ExtStr_3, 3)) {
                  case (MR_Integer) 97:
                    if (((((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 115)) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 115))))
                      switch (MR_nth_code_unit(ExtStr_3, 6)) {
                        case (MR_Integer) 0:
                          case_num_0 = (MR_Integer) 18;
                          break;
                        case (MR_Integer) 101:
                          if (MR_offset_streq(7, ExtStr_3, (MR_String) ".classes"))
                            case_num_0 = (MR_Integer) 19;
                          break;
                      }
                    break;
                  case (MR_Integer) 101:
                    if (MR_offset_streq(4, ExtStr_3, (MR_String) ".clean"))
                      case_num_0 = (MR_Integer) 20;
                    break;
                }
                break;
              case (MR_Integer) 115:
                switch (MR_nth_code_unit(ExtStr_3, 3)) {
                  case (MR_Integer) 0:
                    case_num_0 = (MR_Integer) 21;
                    break;
                  case (MR_Integer) 95:
                    if (MR_offset_streq(4, ExtStr_3, (MR_String) ".cs_date"))
                      case_num_0 = (MR_Integer) 22;
                    break;
                }
                break;
            }
            break;
          case (MR_Integer) 100:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 0:
                case_num_0 = (MR_Integer) 23;
                break;
              case (MR_Integer) 97:
                if (((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 116)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 101))))
                  switch (MR_nth_code_unit(ExtStr_3, 5)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 24;
                      break;
                    case (MR_Integer) 48:
                      if (MR_offset_streq(6, ExtStr_3, (MR_String) ".date0"))
                        case_num_0 = (MR_Integer) 25;
                      break;
                    case (MR_Integer) 51:
                      if (MR_offset_streq(6, ExtStr_3, (MR_String) ".date3"))
                        case_num_0 = (MR_Integer) 26;
                      break;
                  }
                break;
              case (MR_Integer) 101:
                switch (MR_nth_code_unit(ExtStr_3, 3)) {
                  case (MR_Integer) 102:
                    if (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 110))
                      switch (MR_nth_code_unit(ExtStr_3, 5)) {
                        case (MR_Integer) 95:
                          switch (MR_nth_code_unit(ExtStr_3, 6)) {
                            case (MR_Integer) 101:
                              if (MR_offset_streq(7, ExtStr_3, (MR_String) ".defn_extents"))
                                case_num_0 = (MR_Integer) 27;
                              break;
                            case (MR_Integer) 108:
                              if (MR_offset_streq(7, ExtStr_3, (MR_String) ".defn_line_counts"))
                                case_num_0 = (MR_Integer) 28;
                              break;
                          }
                          break;
                        case (MR_Integer) 115:
                          if (MR_offset_streq(6, ExtStr_3, (MR_String) ".defns"))
                            case_num_0 = (MR_Integer) 29;
                          break;
                      }
                    break;
                  case (MR_Integer) 112:
                    switch (MR_nth_code_unit(ExtStr_3, 4)) {
                      case (MR_Integer) 0:
                        case_num_0 = (MR_Integer) 30;
                        break;
                      case (MR_Integer) 101:
                        if (((((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 110)) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 100))))
                          switch (MR_nth_code_unit(ExtStr_3, 7)) {
                            case (MR_Integer) 0:
                              case_num_0 = (MR_Integer) 31;
                              break;
                            case (MR_Integer) 101:
                              if (MR_offset_streq(8, ExtStr_3, (MR_String) ".dependency_graph"))
                                case_num_0 = (MR_Integer) 32;
                              break;
                          }
                        break;
                    }
                    break;
                }
                break;
              case (MR_Integer) 105:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".dir/*.\044O"))
                  case_num_0 = (MR_Integer) 33;
                break;
              case (MR_Integer) 108:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".dll"))
                  case_num_0 = (MR_Integer) 34;
                break;
              case (MR_Integer) 118:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".dv"))
                  case_num_0 = (MR_Integer) 35;
                break;
            }
            break;
          case (MR_Integer) 101:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 114:
                if (((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 114))
                  switch (MR_nth_code_unit(ExtStr_3, 4)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 36;
                      break;
                    case (MR_Integer) 95:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".err_date"))
                        case_num_0 = (MR_Integer) 37;
                      break;
                  }
                break;
              case (MR_Integer) 120:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".exe"))
                  case_num_0 = (MR_Integer) 38;
                break;
            }
            break;
          case (MR_Integer) 104:
            if (MR_offset_streq(2, ExtStr_3, (MR_String) ".hlds_dump"))
              case_num_0 = (MR_Integer) 39;
            break;
          case (MR_Integer) 105:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 109:
                switch (MR_nth_code_unit(ExtStr_3, 3)) {
                  case (MR_Integer) 100:
                    if (MR_offset_streq(4, ExtStr_3, (MR_String) ".imdg"))
                      case_num_0 = (MR_Integer) 40;
                    break;
                  case (MR_Integer) 112:
                    if (MR_offset_streq(4, ExtStr_3, (MR_String) ".imports_graph"))
                      case_num_0 = (MR_Integer) 41;
                    break;
                }
                break;
              case (MR_Integer) 110:
                switch (MR_nth_code_unit(ExtStr_3, 3)) {
                  case (MR_Integer) 105:
                    if (MR_offset_streq(4, ExtStr_3, (MR_String) ".init"))
                      case_num_0 = (MR_Integer) 42;
                    break;
                  case (MR_Integer) 115:
                    if (((((((((((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 116)) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 97)))) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 8)) == (MR_Integer) 95))))
                      switch (MR_nth_code_unit(ExtStr_3, 9)) {
                        case (MR_Integer) 103:
                          if (MR_offset_streq(10, ExtStr_3, (MR_String) ".install_grade_hdrs"))
                            case_num_0 = (MR_Integer) 43;
                          break;
                        case (MR_Integer) 104:
                          if (MR_offset_streq(10, ExtStr_3, (MR_String) ".install_hdrs"))
                            case_num_0 = (MR_Integer) 44;
                          break;
                        case (MR_Integer) 105:
                          if (MR_offset_streq(10, ExtStr_3, (MR_String) ".install_ints"))
                            case_num_0 = (MR_Integer) 45;
                          break;
                        case (MR_Integer) 111:
                          if (MR_offset_streq(10, ExtStr_3, (MR_String) ".install_opts"))
                            case_num_0 = (MR_Integer) 46;
                          break;
                      }
                    break;
                  case (MR_Integer) 116:
                    switch (MR_nth_code_unit(ExtStr_3, 4)) {
                      case (MR_Integer) 0:
                        case_num_0 = (MR_Integer) 47;
                        break;
                      case (MR_Integer) 48:
                        if (MR_offset_streq(5, ExtStr_3, (MR_String) ".int0"))
                          case_num_0 = (MR_Integer) 48;
                        break;
                      case (MR_Integer) 50:
                        if (MR_offset_streq(5, ExtStr_3, (MR_String) ".int2"))
                          case_num_0 = (MR_Integer) 49;
                        break;
                      case (MR_Integer) 51:
                        switch (MR_nth_code_unit(ExtStr_3, 5)) {
                          case (MR_Integer) 0:
                            case_num_0 = (MR_Integer) 50;
                            break;
                          case (MR_Integer) 115:
                            if (MR_offset_streq(6, ExtStr_3, (MR_String) ".int3s"))
                              case_num_0 = (MR_Integer) 51;
                            break;
                        }
                        break;
                      case (MR_Integer) 115:
                        if (MR_offset_streq(5, ExtStr_3, (MR_String) ".ints"))
                          case_num_0 = (MR_Integer) 52;
                        break;
                    }
                    break;
                }
                break;
            }
            break;
          case (MR_Integer) 106:
            if (((MR_nth_code_unit(ExtStr_3, 2)) == (MR_Integer) 97))
              switch (MR_nth_code_unit(ExtStr_3, 3)) {
                case (MR_Integer) 114:
                  if (MR_offset_streq(4, ExtStr_3, (MR_String) ".jar"))
                    case_num_0 = (MR_Integer) 53;
                  break;
                case (MR_Integer) 118:
                  if (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 97))
                    switch (MR_nth_code_unit(ExtStr_3, 5)) {
                      case (MR_Integer) 0:
                        case_num_0 = (MR_Integer) 54;
                        break;
                      case (MR_Integer) 95:
                        if (MR_offset_streq(6, ExtStr_3, (MR_String) ".java_date"))
                          case_num_0 = (MR_Integer) 55;
                        break;
                      case (MR_Integer) 115:
                        if (MR_offset_streq(6, ExtStr_3, (MR_String) ".javas"))
                          case_num_0 = (MR_Integer) 56;
                        break;
                    }
                  break;
              }
            break;
          case (MR_Integer) 108:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 105:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".lib"))
                  case_num_0 = (MR_Integer) 57;
                break;
              case (MR_Integer) 111:
                if (((((((((((((((((((((((((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 99)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 97)))) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 99)))) && (((MR_nth_code_unit(ExtStr_3, 8)) == (MR_Integer) 97)))) && (((MR_nth_code_unit(ExtStr_3, 9)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 10)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(ExtStr_3, 11)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(ExtStr_3, 12)) == (MR_Integer) 116)))) && (((MR_nth_code_unit(ExtStr_3, 13)) == (MR_Integer) 114)))) && (((MR_nth_code_unit(ExtStr_3, 14)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ExtStr_3, 15)) == (MR_Integer) 101))))
                  switch (MR_nth_code_unit(ExtStr_3, 16)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 58;
                      break;
                    case (MR_Integer) 95:
                      if (MR_offset_streq(17, ExtStr_3, (MR_String) ".local_call_tree_order"))
                        case_num_0 = (MR_Integer) 59;
                      break;
                  }
                break;
            }
            break;
          case (MR_Integer) 109:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 0:
                case_num_0 = (MR_Integer) 60;
                break;
              case (MR_Integer) 98:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".mbc"))
                  case_num_0 = (MR_Integer) 61;
                break;
              case (MR_Integer) 104:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".mh"))
                  case_num_0 = (MR_Integer) 62;
                break;
              case (MR_Integer) 105:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".mih"))
                  case_num_0 = (MR_Integer) 63;
                break;
              case (MR_Integer) 108:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".mlds_dump"))
                  case_num_0 = (MR_Integer) 64;
                break;
              case (MR_Integer) 111:
                if (((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 100))
                  switch (MR_nth_code_unit(ExtStr_3, 4)) {
                    case (MR_Integer) 101:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".mode_constraints"))
                        case_num_0 = (MR_Integer) 65;
                      break;
                    case (MR_Integer) 117:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".module_dep"))
                        case_num_0 = (MR_Integer) 66;
                      break;
                  }
                break;
            }
            break;
          case (MR_Integer) 111:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 0:
                case_num_0 = (MR_Integer) 67;
                break;
              case (MR_Integer) 112:
                if (((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 116))
                  switch (MR_nth_code_unit(ExtStr_3, 4)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 68;
                      break;
                    case (MR_Integer) 100:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".optdate"))
                        case_num_0 = (MR_Integer) 69;
                      break;
                    case (MR_Integer) 115:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".opts"))
                        case_num_0 = (MR_Integer) 70;
                      break;
                  }
                break;
              case (MR_Integer) 114:
                if (((((((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 100)) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 114))))
                  switch (MR_nth_code_unit(ExtStr_3, 6)) {
                    case (MR_Integer) 0:
                      case_num_0 = (MR_Integer) 71;
                      break;
                    case (MR_Integer) 95:
                      if (MR_offset_streq(7, ExtStr_3, (MR_String) ".order_trans_opt"))
                        case_num_0 = (MR_Integer) 72;
                      break;
                  }
                break;
            }
            break;
          case (MR_Integer) 112:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 105:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".pic_o"))
                  case_num_0 = (MR_Integer) 73;
                break;
              case (MR_Integer) 114:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".prof"))
                  case_num_0 = (MR_Integer) 74;
                break;
            }
            break;
          case (MR_Integer) 114:
            if (((MR_nth_code_unit(ExtStr_3, 2)) == (MR_Integer) 101))
              switch (MR_nth_code_unit(ExtStr_3, 3)) {
                case (MR_Integer) 97:
                  if (MR_offset_streq(4, ExtStr_3, (MR_String) ".realclean"))
                    case_num_0 = (MR_Integer) 75;
                  break;
                case (MR_Integer) 113:
                  if (MR_offset_streq(4, ExtStr_3, (MR_String) ".request"))
                    case_num_0 = (MR_Integer) 76;
                  break;
              }
            break;
          case (MR_Integer) 115:
            if (MR_offset_streq(2, ExtStr_3, (MR_String) ".so"))
              case_num_0 = (MR_Integer) 77;
            break;
          case (MR_Integer) 116:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 114:
                if (((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 97))
                  switch (MR_nth_code_unit(ExtStr_3, 4)) {
                    case (MR_Integer) 99:
                      if (MR_offset_streq(5, ExtStr_3, (MR_String) ".track_flags"))
                        case_num_0 = (MR_Integer) 78;
                      break;
                    case (MR_Integer) 110:
                      if (((((((((((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 115)) && (((MR_nth_code_unit(ExtStr_3, 6)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(ExtStr_3, 7)) == (MR_Integer) 111)))) && (((MR_nth_code_unit(ExtStr_3, 8)) == (MR_Integer) 112)))) && (((MR_nth_code_unit(ExtStr_3, 9)) == (MR_Integer) 116))))
                        switch (MR_nth_code_unit(ExtStr_3, 10)) {
                          case (MR_Integer) 0:
                            case_num_0 = (MR_Integer) 79;
                            break;
                          case (MR_Integer) 95:
                            if (MR_offset_streq(11, ExtStr_3, (MR_String) ".trans_opt_date"))
                              case_num_0 = (MR_Integer) 80;
                            break;
                          case (MR_Integer) 115:
                            if (MR_offset_streq(11, ExtStr_3, (MR_String) ".trans_opts"))
                              case_num_0 = (MR_Integer) 81;
                            break;
                        }
                      break;
                  }
                break;
              case (MR_Integer) 121:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".type_repns"))
                  case_num_0 = (MR_Integer) 82;
                break;
            }
            break;
          case (MR_Integer) 117:
            switch (MR_nth_code_unit(ExtStr_3, 2)) {
              case (MR_Integer) 103:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".ugly"))
                  case_num_0 = (MR_Integer) 83;
                break;
              case (MR_Integer) 115:
                if (MR_offset_streq(3, ExtStr_3, (MR_String) ".used"))
                  case_num_0 = (MR_Integer) 84;
                break;
            }
            break;
          case (MR_Integer) 120:
            if (MR_offset_streq(2, ExtStr_3, (MR_String) ".xml"))
              case_num_0 = (MR_Integer) 85;
            break;
        }
        break;
      case (MR_Integer) 95:
        if (((((((((((MR_nth_code_unit(ExtStr_3, 1)) == (MR_Integer) 105)) && (((MR_nth_code_unit(ExtStr_3, 2)) == (MR_Integer) 110)))) && (((MR_nth_code_unit(ExtStr_3, 3)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(ExtStr_3, 4)) == (MR_Integer) 116)))) && (((MR_nth_code_unit(ExtStr_3, 5)) == (MR_Integer) 46))))
          switch (MR_nth_code_unit(ExtStr_3, 6)) {
            case (MR_Integer) 36:
              if (MR_offset_streq(7, ExtStr_3, (MR_String) "_init.\044O"))
                case_num_0 = (MR_Integer) 86;
              break;
            case (MR_Integer) 99:
              if (MR_offset_streq(7, ExtStr_3, (MR_String) "_init.c"))
                case_num_0 = (MR_Integer) 87;
              break;
            case (MR_Integer) 111:
              if (MR_offset_streq(7, ExtStr_3, (MR_String) "_init.o"))
                case_num_0 = (MR_Integer) 88;
              break;
            case (MR_Integer) 112:
              if (MR_offset_streq(7, ExtStr_3, (MR_String) "_init.pic_o"))
                case_num_0 = (MR_Integer) 89;
              break;
          }
        break;
    }
    if ((case_num_0 < (MR_Integer) 0))
      succeeded = MR_FALSE;
    else
    {
      // we found a match; look up the results
      ;
      NewExt0_5 = ((&parse_tree__file_names_vector_common_8[0 + case_num_0]))->parse_tree__file_names__vector_common_type_8_0__vct_8_f_0;
      succeeded = MR_TRUE;
    }
  }
  if (succeeded)
    NewExt_4 = NewExt0_5;
  else
  {
    MR_String Var_27;

    Var_27 = mercury__string__f_43_43_2_f_0((MR_String) "unrecognized ExtStr ", ExtStr_3);
    mercury__require__unexpected_2_p_0((MR_String) "function \140parse_tree.file_names.make_new_extension\'/1", Var_27);
  }
  return NewExt_4;
}

void MR_CALL 
parse_tree__file_names__make_include_file_path_3_p_0(
  MR_String ModuleSourceFileName_4,
  MR_String OrigFileName_5,
  MR_String * Path_6)
{
  MR_bool succeeded;

  succeeded = mercury__dir__path_name_is_absolute_1_p_0(OrigFileName_5);
  if (succeeded)
    *Path_6 = OrigFileName_5;
  else
  {
    MR_String Var_7;

    Var_7 = mercury__dir__dirname_1_f_0(ModuleSourceFileName_4);
    *Path_6 = mercury__dir__f_slash_2_f_0(Var_7, OrigFileName_5);
  }
}

void MR_CALL 
parse_tree__file_names__get_class_dir_name_2_p_0(
  MR_Word Globals_3,
  MR_String * ClassDirName_4)
{
  MR_Word UseGradeSubdirs_5;
  MR_Word UseSubdirs_6;

  libs__globals__lookup_bool_option_3_p_0(Globals_3, (MR_Integer) 685, &UseGradeSubdirs_5);
  libs__globals__lookup_bool_option_3_p_0(Globals_3, (MR_Integer) 684, &UseSubdirs_6);
  switch (UseGradeSubdirs_5) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (UseSubdirs_6) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          *ClassDirName_4 = (MR_String) ".";
          break;
        case (MR_Integer) 1:
          *ClassDirName_4 = mercury__dir__f_slash_2_f_0((MR_String) "Mercury", (MR_String) "classs");
          break;
      }
      break;
    case (MR_Integer) 1:
      {
        MR_String Grade_7;
        MR_String TargetArch_8;
        MR_String Var_12;
        MR_String Var_13;
        MR_String Var_14;

        libs__compute_grade__grade_directory_component_2_p_0(Globals_3, &Grade_7);
        libs__globals__lookup_string_option_3_p_0(Globals_3, (MR_Integer) 703, &TargetArch_8);
        Var_14 = mercury__dir__f_slash_2_f_0((MR_String) "Mercury", Grade_7);
        Var_13 = mercury__dir__f_slash_2_f_0(Var_14, TargetArch_8);
        Var_12 = mercury__dir__f_slash_2_f_0(Var_13, (MR_String) "Mercury");
        *ClassDirName_4 = mercury__dir__f_slash_2_f_0(Var_12, (MR_String) "classs");
      }
      break;
  }
}

void MR_CALL 
parse_tree__file_names__module_name_to_make_var_name_2_p_0(
  MR_Word ModuleName_3,
  MR_String * MakeVarName_4)
{
  *MakeVarName_4 = mdbcomp__sym_name__sym_name_to_string_1_f_0(ModuleName_3);
}

void MR_CALL 
parse_tree__file_names__module_name_to_file_name_stem_2_p_0(
  MR_Word ModuleName_3,
  MR_String * FileName_4)
{
  *FileName_4 = mdbcomp__sym_name__sym_name_to_string_1_f_0(ModuleName_3);
}

void MR_CALL 
parse_tree__file_names__file_name_to_module_name_2_p_0(
  MR_String FileName_3,
  MR_Word * ModuleName_4)
{
  *ModuleName_4 = mdbcomp__sym_name__string_to_sym_name_1_f_0(FileName_3);
}

MR_Word MR_CALL 
parse_tree__file_names__qualify_mercury_std_library_module_name_1_f_0(
  MR_Word ModuleName_3)
{
  MR_bool succeeded;
  MR_Word QualModuleName_4;

  succeeded = parse_tree__file_names__mercury_std_library_module_name_1_p_0(ModuleName_3);
  if (succeeded)
    QualModuleName_4 = mdbcomp__sym_name__add_outermost_qualifier_2_f_0((MR_String) "mercury", ModuleName_3);
  else
    QualModuleName_4 = ModuleName_3;
  return QualModuleName_4;
}

MR_bool MR_CALL 
parse_tree__file_names__mercury_std_library_module_name_1_p_0(
  MR_Word ModuleName_2)
{
  MR_bool succeeded;

  if (((MR_tag((MR_Word) ModuleName_2)) == (MR_Integer) 1))
  {
    {
      MR_String ModuleNameStr_6;

      ModuleNameStr_6 = mdbcomp__sym_name__sym_name_to_string_1_f_0(ModuleName_2);
      succeeded = mercury__library__mercury_std_library_module_1_p_0(ModuleNameStr_6);
    }
    if (!(succeeded))
    {
      MR_Word StrippedModuleName_7;
      MR_String StrippedModuleNameStr_8;
      MR_String Var_10;

      succeeded = mdbcomp__sym_name__strip_outermost_qualifier_3_p_0(ModuleName_2, &Var_10, &StrippedModuleName_7);
      if (succeeded)
      {
        succeeded = (strcmp((MR_String) "mercury", Var_10) == 0);
        if (succeeded)
        {
          StrippedModuleNameStr_8 = mdbcomp__sym_name__sym_name_to_string_1_f_0(StrippedModuleName_7);
          succeeded = mercury__library__mercury_std_library_module_1_p_0(StrippedModuleNameStr_8);
        }
      }
    }
  }
  else
  {
    MR_String Name_3 = ((MR_String) ((MR_hl_field(0, ModuleName_2, (MR_Integer) 0))));

    succeeded = mercury__library__mercury_std_library_module_1_p_0(Name_3);
  }
  return succeeded;
}

void MR_CALL 
parse_tree__file_names__fact_table_file_name_9_p_0(
  MR_Word Globals_10,
  MR_String From_11,
  MR_Word MkDir_12,
  MR_Word Ext_13,
  MR_Word NewExt_14,
  MR_String FactTableFileName_15,
  MR_String * FileName_16)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_102_97_99_116_95_116_97_98_108_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0(Globals_10, MkDir_12, Ext_13, NewExt_14, FactTableFileName_15, FileName_16);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_102_97_99_116_95_116_97_98_108_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0(
  MR_Word Globals_10,
  MR_Word MkDir_12,
  MR_Word Ext_13,
  MR_Word NewExt_14,
  MR_String FactTableFileName_15,
  MR_String * FileName_16)
{
  MR_bool succeeded;
  MR_Word DirComponents_18;

  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_10, (MR_Integer) 1, Ext_13, (MR_Word) ((MR_Unsigned) 0U), FactTableFileName_15, &DirComponents_18, FileName_16);
  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_12, DirComponents_18);
  succeeded = !((mercury_envvar_NO_EXT_CHECKS != (MR_Integer) 0));
  if (succeeded)
  {
    MR_Word FakeModuleName_20;
    MR_String NewFileName_21;

    {
      FakeModuleName_20 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, FakeModuleName_20, 0) = ((MR_Box) (FactTableFileName_15));
    }
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(Globals_10, (MR_Integer) 1, MkDir_12, NewExt_14, FakeModuleName_20, &NewFileName_21);
    switch (MR_tag((MR_Word) NewExt_14)) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, NewExt_14, (MR_Integer) 0))))) {
          default:
            succeeded = MR_FALSE;
            break;
          case (MR_Integer) 5:
            {
              MR_Word ExtObj_77 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtObj_77) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 7:
            {
              MR_Word ExtInitObj_78 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtInitObj_78) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 3:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 9:
            {
              MR_Word ExtExecGs_79 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 3);

              succeeded = (ExtExecGs_79 == (MR_Integer) 2);
            }
            break;
          case (MR_Integer) 11:
            {
              MR_Word ExtLibGs_80 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtLibGs_80) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 6:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
        }
        break;
    }
    if (!(succeeded))
      succeeded = (strcmp(*FileName_16, NewFileName_21) == 0);
    if (!(succeeded))
    {
      MR_String ExtStr_22;
      MR_String NewExtStr_23;
      MR_String Msg_24;
      MR_String Var_47;
      MR_String Var_49;
      MR_String Var_50;
      MR_String Var_52;
      MR_String Var_53;
      MR_String Var_55;
      MR_String Var_56;

      ExtStr_22 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0), ((MR_Box) (Ext_13)));
      NewExtStr_23 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0), ((MR_Box) (NewExt_14)));
      Var_47 = mercury__string__f_43_43_2_f_0(NewFileName_21, (MR_String) "\n");
      Var_49 = mercury__string__f_43_43_2_f_0((MR_String) " vs ", Var_47);
      Var_50 = mercury__string__f_43_43_2_f_0(*FileName_16, Var_49);
      Var_52 = mercury__string__f_43_43_2_f_0((MR_String) ": ", Var_50);
      Var_53 = mercury__string__f_43_43_2_f_0(NewExtStr_23, Var_52);
      Var_55 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_53);
      Var_56 = mercury__string__f_43_43_2_f_0(ExtStr_22, Var_55);
      Msg_24 = mercury__string__f_43_43_2_f_0((MR_String) "FILENAME MISMATCH 4 for ", Var_56);
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.fact_table_file_name\'/9", Msg_24);
        return;
      }
    }
  }
}

void MR_CALL 
parse_tree__file_names__module_name_to_lib_file_name_10_p_0(
  MR_Word Globals_11,
  MR_String From_12,
  MR_Word MkDir_13,
  MR_String Prefix_14,
  MR_Word Ext_15,
  MR_Word NewExt_16,
  MR_Word ModuleName_17,
  MR_String * FileName_18)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_108_105_98_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_10_p_0(Globals_11, MkDir_13, Prefix_14, Ext_15, NewExt_16, ModuleName_17, FileName_18);
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_108_105_98_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_10_p_0(
  MR_Word Globals_11,
  MR_Word MkDir_13,
  MR_String Prefix_14,
  MR_Word Ext_15,
  MR_Word NewExt_16,
  MR_Word ModuleName_17,
  MR_String * FileName_18)
{
  MR_bool succeeded;
  MR_String BaseFileName_20;
  MR_String BaseNameNoExt_21;
  MR_Word DirComponents_22;

  BaseFileName_20 = mdbcomp__sym_name__sym_name_to_string_1_f_0(ModuleName_17);
  BaseNameNoExt_21 = mercury__string__f_43_43_2_f_0(Prefix_14, BaseFileName_20);
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_11, (MR_Integer) 1, Ext_15, (MR_Word) ((MR_Unsigned) 0U), BaseNameNoExt_21, &DirComponents_22, FileName_18);
  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_22);
  succeeded = !((mercury_envvar_NO_EXT_CHECKS != (MR_Integer) 0));
  if (succeeded)
  {
    MR_Word FakeModuleName_24;
    MR_String NewFileName_25;

    {
      FakeModuleName_24 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, FakeModuleName_24, 0) = ((MR_Box) (BaseNameNoExt_21));
    }
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(Globals_11, (MR_Integer) 1, MkDir_13, NewExt_16, FakeModuleName_24, &NewFileName_25);
    switch (MR_tag((MR_Word) NewExt_16)) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, NewExt_16, (MR_Integer) 0))))) {
          default:
            succeeded = MR_FALSE;
            break;
          case (MR_Integer) 5:
            {
              MR_Word ExtObj_81 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_16, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtObj_81) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 7:
            {
              MR_Word ExtInitObj_82 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_16, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtInitObj_82) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 3:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 9:
            {
              MR_Word ExtExecGs_83 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_16, (MR_Integer) 1))) & (MR_Integer) 3);

              succeeded = (ExtExecGs_83 == (MR_Integer) 2);
            }
            break;
          case (MR_Integer) 11:
            {
              MR_Word ExtLibGs_84 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_16, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtLibGs_84) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 6:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
        }
        break;
    }
    if (!(succeeded))
      succeeded = (strcmp(*FileName_18, NewFileName_25) == 0);
    if (!(succeeded))
    {
      MR_String ExtStr_26;
      MR_String NewExtStr_27;
      MR_String Msg_28;
      MR_String Var_51;
      MR_String Var_53;
      MR_String Var_54;
      MR_String Var_56;
      MR_String Var_57;
      MR_String Var_59;
      MR_String Var_60;

      ExtStr_26 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0), ((MR_Box) (Ext_15)));
      NewExtStr_27 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0), ((MR_Box) (NewExt_16)));
      Var_51 = mercury__string__f_43_43_2_f_0(NewFileName_25, (MR_String) "\n");
      Var_53 = mercury__string__f_43_43_2_f_0((MR_String) " vs ", Var_51);
      Var_54 = mercury__string__f_43_43_2_f_0(*FileName_18, Var_53);
      Var_56 = mercury__string__f_43_43_2_f_0((MR_String) ": ", Var_54);
      Var_57 = mercury__string__f_43_43_2_f_0(NewExtStr_27, Var_56);
      Var_59 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_57);
      Var_60 = mercury__string__f_43_43_2_f_0(ExtStr_26, Var_59);
      Msg_28 = mercury__string__f_43_43_2_f_0((MR_String) "FILENAME MISMATCH 3 for ", Var_60);
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.module_name_to_lib_file_name\'/10", Msg_28);
        return;
      }
    }
  }
}

void MR_CALL 
parse_tree__file_names__module_name_to_search_file_name_8_p_0(
  MR_Word Globals_9,
  MR_String From_10,
  MR_Word Ext_11,
  MR_Word NewExt_12,
  MR_Word ModuleName_13,
  MR_String * FileName_14)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_115_101_97_114_99_104_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_9, Ext_11, NewExt_12, ModuleName_13, FileName_14);
}

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_115_101_97_114_99_104_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1(
  MR_Box closure_arg)
{
  MR_bool succeeded;
  MR_Box closure = closure_arg;

  succeeded = parse_tree__file_names__valid_other_ext_1_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))));
  return succeeded;
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_115_101_97_114_99_104_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(
  MR_Word Globals_9,
  MR_Word Ext_11,
  MR_Word NewExt_12,
  MR_Word ModuleName_13,
  MR_String * FileName_14)
{
  MR_bool succeeded;

  if ((Ext_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    MR_Word MaybeFileName_71;

    parse_tree__source_file_map__lookup_module_source_file_4_p_0(ModuleName_13, &MaybeFileName_71);
    if ((MaybeFileName_71 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      MR_String Var_73;

      Var_73 = parse_tree__source_file_map__default_source_file_name_1_f_0(ModuleName_13);
      *FileName_14 = mercury__string__f_43_43_2_f_0((MR_String) "Mercury/.missing.", Var_73);
    }
    else
      *FileName_14 = ((MR_String) ((MR_hl_field(1, MaybeFileName_71, (MR_Integer) 0))));
  }
  else
  {
    MR_Word OtherExt_55 = ((MR_Word) ((MR_hl_field(1, Ext_11, (MR_Integer) 0))));
    MR_Word BaseParentDirs_56;
    MR_String BaseNameNoExt_57;
    MR_Word DirComponents_58;
    MR_String ExtStr_61 = (MR_String) (OtherExt_55);
    MR_Word Var_62;
    MR_String Var_64;

    {
      Var_62 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_62, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_6[1]));
      MR_hl_field(0, Var_62, 1) = ((MR_Box) (parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_115_101_97_114_99_104_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1));
      MR_hl_field(0, Var_62, 2) = ((MR_Box) ((MR_Integer) 1));
      MR_hl_field(0, Var_62, 3) = ((MR_Box) (OtherExt_55));
    }
    Var_64 = mercury__string__f_43_43_2_f_0(ExtStr_61, (MR_String) " is a not valid argument of ext/1");
    mercury__require__expect_3_p_0(Var_62, (MR_String) "predicate \140parse_tree.file_names.decide_base_name_parent_dirs_other\'/4", Var_64);
    succeeded = mercury__string__suffix_2_p_0(ExtStr_61, (MR_String) ".java");
    if (!(succeeded))
      succeeded = mercury__string__suffix_2_p_0(ExtStr_61, (MR_String) ".class");
    if (succeeded)
    {
      BaseParentDirs_56 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2]));
      parse_tree__java_names__mangle_sym_name_for_java_4_p_0(ModuleName_13, (MR_Integer) 0, (MR_String) "__", &BaseNameNoExt_57);
    }
    else
    {
      BaseParentDirs_56 = (MR_Word) ((MR_Unsigned) 0U);
      BaseNameNoExt_57 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_13, (MR_String) ".");
    }
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_9, (MR_Integer) 0, OtherExt_55, BaseParentDirs_56, BaseNameNoExt_57, &DirComponents_58, FileName_14);
    parse_tree__file_names__maybe_create_dirs_on_path_4_p_0((MR_Integer) 1, DirComponents_58);
  }
  succeeded = !((mercury_envvar_NO_EXT_CHECKS != (MR_Integer) 0));
  if (succeeded)
  {
    MR_String NewFileName_17;

    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(Globals_9, (MR_Integer) 0, (MR_Integer) 1, NewExt_12, ModuleName_13, &NewFileName_17);
    switch (MR_tag((MR_Word) NewExt_12)) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, NewExt_12, (MR_Integer) 0))))) {
          default:
            succeeded = MR_FALSE;
            break;
          case (MR_Integer) 5:
            {
              MR_Word ExtObj_93 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_12, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtObj_93) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 7:
            {
              MR_Word ExtInitObj_94 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_12, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtInitObj_94) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 3:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 9:
            {
              MR_Word ExtExecGs_95 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_12, (MR_Integer) 1))) & (MR_Integer) 3);

              succeeded = (ExtExecGs_95 == (MR_Integer) 2);
            }
            break;
          case (MR_Integer) 11:
            {
              MR_Word ExtLibGs_96 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_12, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtLibGs_96) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 6:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
        }
        break;
    }
    if (!(succeeded))
      succeeded = (strcmp(*FileName_14, NewFileName_17) == 0);
    if (!(succeeded))
    {
      MR_String ExtStr_18;
      MR_String NewExtStr_19;
      MR_String Msg_20;
      MR_String Var_44;
      MR_String Var_46;
      MR_String Var_47;
      MR_String Var_49;
      MR_String Var_50;
      MR_String Var_52;
      MR_String Var_53;

      ExtStr_18 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0), ((MR_Box) (Ext_11)));
      NewExtStr_19 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0), ((MR_Box) (NewExt_12)));
      Var_44 = mercury__string__f_43_43_2_f_0(NewFileName_17, (MR_String) "\n");
      Var_46 = mercury__string__f_43_43_2_f_0((MR_String) " vs ", Var_44);
      Var_47 = mercury__string__f_43_43_2_f_0(*FileName_14, Var_46);
      Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ": ", Var_47);
      Var_50 = mercury__string__f_43_43_2_f_0(NewExtStr_19, Var_49);
      Var_52 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_50);
      Var_53 = mercury__string__f_43_43_2_f_0(ExtStr_18, Var_52);
      Msg_20 = mercury__string__f_43_43_2_f_0((MR_String) "FILENAME MISMATCH 2 for ", Var_53);
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.module_name_to_search_file_name\'/8", Msg_20);
        return;
      }
    }
  }
}

void MR_CALL 
parse_tree__file_names__module_name_to_file_name_9_p_0(
  MR_Word Globals_10,
  MR_String From_11,
  MR_Word MkDir_12,
  MR_Word Ext_13,
  MR_Word NewExt_14,
  MR_Word ModuleName_15,
  MR_String * FileName_16)
{
  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0(Globals_10, MkDir_12, Ext_13, NewExt_14, ModuleName_15, FileName_16);
}

static MR_bool MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0_1(
  MR_Box closure_arg)
{
  MR_bool succeeded;
  MR_Box closure = closure_arg;

  succeeded = parse_tree__file_names__valid_other_ext_1_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))));
  return succeeded;
}

void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0(
  MR_Word Globals_10,
  MR_Word MkDir_12,
  MR_Word Ext_13,
  MR_Word NewExt_14,
  MR_Word ModuleName_15,
  MR_String * FileName_16)
{
  MR_bool succeeded;

  if ((Ext_13 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    MR_Word MaybeFileName_71;

    parse_tree__source_file_map__lookup_module_source_file_4_p_0(ModuleName_15, &MaybeFileName_71);
    if ((MaybeFileName_71 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      MR_String Var_73;

      Var_73 = parse_tree__source_file_map__default_source_file_name_1_f_0(ModuleName_15);
      *FileName_16 = mercury__string__f_43_43_2_f_0((MR_String) "Mercury/.missing.", Var_73);
    }
    else
      *FileName_16 = ((MR_String) ((MR_hl_field(1, MaybeFileName_71, (MR_Integer) 0))));
  }
  else
  {
    MR_Word OtherExt_55 = ((MR_Word) ((MR_hl_field(1, Ext_13, (MR_Integer) 0))));
    MR_Word BaseParentDirs_56;
    MR_String BaseNameNoExt_57;
    MR_Word DirComponents_58;
    MR_String ExtStr_61 = (MR_String) (OtherExt_55);
    MR_Word Var_62;
    MR_String Var_64;

    {
      Var_62 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_62, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_6[1]));
      MR_hl_field(0, Var_62, 1) = ((MR_Box) (parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_9_p_0_1));
      MR_hl_field(0, Var_62, 2) = ((MR_Box) ((MR_Integer) 1));
      MR_hl_field(0, Var_62, 3) = ((MR_Box) (OtherExt_55));
    }
    Var_64 = mercury__string__f_43_43_2_f_0(ExtStr_61, (MR_String) " is a not valid argument of ext/1");
    mercury__require__expect_3_p_0(Var_62, (MR_String) "predicate \140parse_tree.file_names.decide_base_name_parent_dirs_other\'/4", Var_64);
    succeeded = mercury__string__suffix_2_p_0(ExtStr_61, (MR_String) ".java");
    if (!(succeeded))
      succeeded = mercury__string__suffix_2_p_0(ExtStr_61, (MR_String) ".class");
    if (succeeded)
    {
      BaseParentDirs_56 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2]));
      parse_tree__java_names__mangle_sym_name_for_java_4_p_0(ModuleName_15, (MR_Integer) 0, (MR_String) "__", &BaseNameNoExt_57);
    }
    else
    {
      BaseParentDirs_56 = (MR_Word) ((MR_Unsigned) 0U);
      BaseNameNoExt_57 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
    }
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(Globals_10, (MR_Integer) 1, OtherExt_55, BaseParentDirs_56, BaseNameNoExt_57, &DirComponents_58, FileName_16);
    parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_12, DirComponents_58);
  }
  succeeded = !((mercury_envvar_NO_EXT_CHECKS != (MR_Integer) 0));
  if (succeeded)
  {
    MR_String NewFileName_19;

    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(Globals_10, (MR_Integer) 1, MkDir_12, NewExt_14, ModuleName_15, &NewFileName_19);
    switch (MR_tag((MR_Word) NewExt_14)) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, NewExt_14, (MR_Integer) 0))))) {
          default:
            succeeded = MR_FALSE;
            break;
          case (MR_Integer) 5:
            {
              MR_Word ExtObj_93 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtObj_93) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 7:
            {
              MR_Word ExtInitObj_94 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtInitObj_94) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 3:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 4:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
          case (MR_Integer) 9:
            {
              MR_Word ExtExecGs_95 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 3);

              succeeded = (ExtExecGs_95 == (MR_Integer) 2);
            }
            break;
          case (MR_Integer) 11:
            {
              MR_Word ExtLibGs_96 = ((MR_Unsigned) ((MR_hl_field(3, NewExt_14, (MR_Integer) 1))) & (MR_Integer) 7);

              switch (ExtLibGs_96) {
                default:
                  succeeded = MR_FALSE;
                  break;
                case (MR_Integer) 5:
                  succeeded = MR_TRUE;
                  break;
                case (MR_Integer) 6:
                  succeeded = MR_TRUE;
                  break;
              }
            }
            break;
        }
        break;
    }
    if (!(succeeded))
      succeeded = (strcmp(*FileName_16, NewFileName_19) == 0);
    if (!(succeeded))
    {
      MR_String ExtStr_20;
      MR_String NewExtStr_21;
      MR_String Msg_22;
      MR_String Var_44;
      MR_String Var_46;
      MR_String Var_47;
      MR_String Var_49;
      MR_String Var_50;
      MR_String Var_52;
      MR_String Var_53;

      ExtStr_20 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0), ((MR_Box) (Ext_13)));
      NewExtStr_21 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0), ((MR_Box) (NewExt_14)));
      Var_44 = mercury__string__f_43_43_2_f_0(NewFileName_19, (MR_String) "\n");
      Var_46 = mercury__string__f_43_43_2_f_0((MR_String) " vs ", Var_44);
      Var_47 = mercury__string__f_43_43_2_f_0(*FileName_16, Var_46);
      Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ": ", Var_47);
      Var_50 = mercury__string__f_43_43_2_f_0(NewExtStr_21, Var_49);
      Var_52 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_50);
      Var_53 = mercury__string__f_43_43_2_f_0(ExtStr_20, Var_52);
      Msg_22 = mercury__string__f_43_43_2_f_0((MR_String) "FILENAME MISMATCH 1 for ", Var_53);
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.module_name_to_file_name\'/9", Msg_22);
        return;
      }
    }
  }
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_111_100_117_108_101_95_110_97_109_101_95_116_111_95_102_105_108_101_95_110_97_109_101_95_101_120_116_95_110_101_119_95_95_91_50_93_95_48_9_p_0(
  MR_Word Globals_10,
  MR_Word Search_12,
  MR_Word MkDir_13,
  MR_Word Ext_14,
  MR_Word ModuleName_15,
  MR_String * FileName_16)
{
  MR_bool succeeded;

  switch (MR_tag((MR_Word) Ext_14)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      parse_tree__file_names__module_name_to_source_file_name_4_p_0(ModuleName_15, FileName_16);
      break;
    case (MR_Integer) 1:
      {
        MR_Word ExtInt_18 = ((MR_Unsigned) ((MR_hl_field(1, Ext_14, (MR_Integer) 0))) & (MR_Integer) 7);
        MR_String ExtStr_232;
        MR_String SubDirName_233;
        MR_String BaseNameNoExt_234;
        MR_Word UseSubdirs_235;

        parse_tree__file_names__ext_int_extension_dir_3_p_0(ExtInt_18, &ExtStr_232, &SubDirName_233);
        BaseNameNoExt_234 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
        libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_235);
        switch (UseSubdirs_235) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_234, ExtStr_232);
            break;
          case (MR_Integer) 1:
            {
              MR_Word DirComponents_224;
              MR_Word Var_226;

              {
                Var_226 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                MR_hl_field(1, Var_226, 0) = ((MR_Box) (SubDirName_233));
                MR_hl_field(1, Var_226, 1) = ((MR_Box) ((MR_Unsigned) 0U));
              }
              {
                DirComponents_224 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                MR_hl_field(1, DirComponents_224, 0) = ((MR_Box) ((MR_String) "Mercury"));
                MR_hl_field(1, DirComponents_224, 1) = ((MR_Box) (Var_226));
              }
              *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_224, BaseNameNoExt_234, ExtStr_232);
              parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_224);
            }
            break;
        }
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word ExtOpt_27 = ((MR_Unsigned) ((MR_hl_field(2, Ext_14, (MR_Integer) 0))) & (MR_Integer) 3);
        MR_String ExtStr_136;
        MR_String SubDirName_137;
        MR_String BaseNameNoExt_138;
        MR_Word UseSubdirs_139;

        parse_tree__file_names__ext_opt_extension_dir_3_p_0(ExtOpt_27, &ExtStr_136, &SubDirName_137);
        BaseNameNoExt_138 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
        libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_139);
        switch (UseSubdirs_139) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_138, ExtStr_136);
            break;
          case (MR_Integer) 1:
            {
              MR_Word UseGradeSubdirs_28;
              MR_Word DirComponents_134;

              libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_28);
              succeeded = (UseGradeSubdirs_28 == (MR_Integer) 1);
              if (succeeded)
              {
                succeeded = (Search_12 == (MR_Integer) 0);
                if (succeeded)
                  switch (ExtOpt_27) {
                    default:
                      succeeded = MR_FALSE;
                      break;
                    case (MR_Integer) 0:
                      succeeded = MR_TRUE;
                      break;
                    case (MR_Integer) 1:
                      succeeded = MR_TRUE;
                      break;
                  }
                succeeded = !(succeeded);
              }
              if (succeeded)
              {
                MR_Word Var_60;

                {
                  Var_60 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_60, 0) = ((MR_Box) (SubDirName_137));
                  MR_hl_field(1, Var_60, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                }
                parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_60, BaseNameNoExt_138, ExtStr_136, &DirComponents_134, FileName_16);
              }
              else
              {
                MR_Word Var_63;

                {
                  Var_63 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_63, 0) = ((MR_Box) (SubDirName_137));
                  MR_hl_field(1, Var_63, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                }
                {
                  DirComponents_134 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, DirComponents_134, 0) = ((MR_Box) ((MR_String) "Mercury"));
                  MR_hl_field(1, DirComponents_134, 1) = ((MR_Box) (Var_63));
                }
                *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_134, BaseNameNoExt_138, ExtStr_136);
              }
              parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_134);
            }
            break;
        }
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, Ext_14, (MR_Integer) 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_String ExtStr_261;
            MR_String BaseNameNoExt_262;

            parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_104_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(&ExtStr_261);
            BaseNameNoExt_262 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_262, ExtStr_261);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_String ExtStr_153;
            MR_String SubDirName_154;
            MR_String BaseNameNoExt_155;

            parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_105_104_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(&ExtStr_153, &SubDirName_154);
            BaseNameNoExt_155 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            switch (Search_12) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                {
                  MR_Word UseSubdirs_147;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_147);
                  switch (UseSubdirs_147) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_155, ExtStr_153);
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word DirComponents_143;
                        MR_Word UseGradeSubdirs_144;

                        libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_144);
                        switch (UseGradeSubdirs_144) {
                          default: /*NOTREACHED*/ MR_assert(0);
                          case (MR_Integer) 0:
                            {
                              MR_Word Var_71;

                              {
                                Var_71 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                                MR_hl_field(1, Var_71, 0) = ((MR_Box) (SubDirName_154));
                                MR_hl_field(1, Var_71, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                              }
                              {
                                DirComponents_143 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                                MR_hl_field(1, DirComponents_143, 0) = ((MR_Box) ((MR_String) "Mercury"));
                                MR_hl_field(1, DirComponents_143, 1) = ((MR_Box) (Var_71));
                              }
                              *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_143, BaseNameNoExt_155, ExtStr_153);
                            }
                            break;
                          case (MR_Integer) 1:
                            {
                              MR_Word Var_73;

                              {
                                Var_73 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                                MR_hl_field(1, Var_73, 0) = ((MR_Box) (SubDirName_154));
                                MR_hl_field(1, Var_73, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                              }
                              parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_73, BaseNameNoExt_155, ExtStr_153, &DirComponents_143, FileName_16);
                            }
                            break;
                        }
                        parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_143);
                      }
                      break;
                  }
                }
                break;
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_155, ExtStr_153);
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word ExtCCs_34 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_String ExtStr_320;
            MR_String SubDirName_321;
            MR_String BaseNameNoExt_322;
            MR_Word UseSubdirs_323;

            parse_tree__file_names__ext_target_c_cs_extension_dir_3_p_0(ExtCCs_34, &ExtStr_320, &SubDirName_321);
            BaseNameNoExt_322 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_323);
            switch (UseSubdirs_323) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_322, ExtStr_320);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_300;
                  MR_Word UseGradeSubdirs_301;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_301);
                  switch (UseGradeSubdirs_301) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_285;

                        {
                          Var_285 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_285, 0) = ((MR_Box) (SubDirName_321));
                          MR_hl_field(1, Var_285, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_300 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_300, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_300, 1) = ((MR_Box) (Var_285));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_300, BaseNameNoExt_322, ExtStr_320);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_287;

                        {
                          Var_287 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_287, 0) = ((MR_Box) (SubDirName_321));
                          MR_hl_field(1, Var_287, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_287, BaseNameNoExt_322, ExtStr_320, &DirComponents_300, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_300);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word ExtJava_37 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_Word SubDirNames_38;
            MR_String ExtStr_172;
            MR_String BaseNameNoExt_173;
            MR_Word UseSubdirs_174;
            MR_Word DirComponents_175;

            parse_tree__file_names__ext_target_java_extension_dirs_3_p_0(ExtJava_37, &ExtStr_172, &SubDirNames_38);
            parse_tree__java_names__mangle_sym_name_for_java_4_p_0(ModuleName_15, (MR_Integer) 0, (MR_String) "__", &BaseNameNoExt_173);
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_174);
            switch (UseSubdirs_174) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                {
                  DirComponents_175 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[2]));
                  *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_175, BaseNameNoExt_173, ExtStr_172);
                }
                break;
              case (MR_Integer) 1:
                {
                  MR_Word UseGradeSubdirs_170;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_170);
                  switch (UseGradeSubdirs_170) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        {
                          DirComponents_175 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_175, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_175, 1) = ((MR_Box) (SubDirNames_38));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_175, BaseNameNoExt_173, ExtStr_172);
                      }
                      break;
                    case (MR_Integer) 1:
                      parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, SubDirNames_38, BaseNameNoExt_173, ExtStr_172, &DirComponents_175, FileName_16);
                      break;
                  }
                }
                break;
            }
            parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_175);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word ExtTargetDate_35 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 3);
            MR_String ExtStr_360;
            MR_String SubDirName_361;
            MR_String BaseNameNoExt_362;
            MR_Word UseSubdirs_363;

            parse_tree__file_names__ext_target_date_extension_dir_3_p_0(ExtTargetDate_35, &ExtStr_360, &SubDirName_361);
            BaseNameNoExt_362 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_363);
            switch (UseSubdirs_363) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_362, ExtStr_360);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_340;
                  MR_Word UseGradeSubdirs_341;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_341);
                  switch (UseGradeSubdirs_341) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_325;

                        {
                          Var_325 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_325, 0) = ((MR_Box) (SubDirName_361));
                          MR_hl_field(1, Var_325, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_340 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_340, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_340, 1) = ((MR_Box) (Var_325));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_340, BaseNameNoExt_362, ExtStr_360);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_327;

                        {
                          Var_327 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_327, 0) = ((MR_Box) (SubDirName_361));
                          MR_hl_field(1, Var_327, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_327, BaseNameNoExt_362, ExtStr_360, &DirComponents_340, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_340);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 5:
          {
            MR_Word ExtObj_40 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 7);
            MR_String ExtStr_400;
            MR_String SubDirName_401;
            MR_String BaseNameNoExt_402;
            MR_Word UseSubdirs_403;

            parse_tree__file_names__ext_obj_extension_dir_4_p_0(Globals_10, ExtObj_40, &ExtStr_400, &SubDirName_401);
            BaseNameNoExt_402 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_403);
            switch (UseSubdirs_403) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_402, ExtStr_400);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_380;
                  MR_Word UseGradeSubdirs_381;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_381);
                  switch (UseGradeSubdirs_381) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_365;

                        {
                          Var_365 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_365, 0) = ((MR_Box) (SubDirName_401));
                          MR_hl_field(1, Var_365, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_380 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_380, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_380, 1) = ((MR_Box) (Var_365));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_380, BaseNameNoExt_402, ExtStr_400);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_367;

                        {
                          Var_367 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_367, 0) = ((MR_Box) (SubDirName_401));
                          MR_hl_field(1, Var_367, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_367, BaseNameNoExt_402, ExtStr_400, &DirComponents_380, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_380);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 6:
          {
            MR_String ExtStr_191;
            MR_String SubDirName_192;
            MR_String BaseNameNoExt_193;
            MR_Word UseSubdirs_194;

            parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_105_110_105_116_95_99_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(&ExtStr_191, &SubDirName_192);
            BaseNameNoExt_193 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_194);
            switch (UseSubdirs_194) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_193, ExtStr_191);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_187;
                  MR_Word UseGradeSubdirs_188;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_188);
                  switch (UseGradeSubdirs_188) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_106;

                        {
                          Var_106 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_106, 0) = ((MR_Box) (SubDirName_192));
                          MR_hl_field(1, Var_106, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_187 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_187, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_187, 1) = ((MR_Box) (Var_106));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_187, BaseNameNoExt_193, ExtStr_191);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_108;

                        {
                          Var_108 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_108, 0) = ((MR_Box) (SubDirName_192));
                          MR_hl_field(1, Var_108, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_108, BaseNameNoExt_193, ExtStr_191, &DirComponents_187, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_187);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 7:
          {
            MR_Word ExtInitObj_41 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 7);
            MR_String ExtStr_181;
            MR_String SubDirName_182;
            MR_String BaseNameNoExt_183;
            MR_Word UseSubdirs_184;

            parse_tree__file_names__ext_init_obj_extension_dir_4_p_0(Globals_10, ExtInitObj_41, &ExtStr_181, &SubDirName_182);
            BaseNameNoExt_183 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_184);
            switch (UseSubdirs_184) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_183, ExtStr_181);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_177;
                  MR_Word UseGradeSubdirs_178;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_178);
                  switch (UseGradeSubdirs_178) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_97;

                        {
                          Var_97 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_97, 0) = ((MR_Box) (SubDirName_182));
                          MR_hl_field(1, Var_97, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_177 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_177, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_177, 1) = ((MR_Box) (Var_97));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_177, BaseNameNoExt_183, ExtStr_181);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_99;

                        {
                          Var_99 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_99, 0) = ((MR_Box) (SubDirName_182));
                          MR_hl_field(1, Var_99, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_99, BaseNameNoExt_183, ExtStr_181, &DirComponents_177, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_177);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 8:
          {
            MR_String ExtStr_141;
            MR_String BaseNameNoExt_142;

            parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_101_120_101_99_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(&ExtStr_141);
            BaseNameNoExt_142 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_142, ExtStr_141);
          }
          break;
        case (MR_Integer) 9:
          {
            MR_Word ExtExecGs_43 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 3);
            MR_String ExtStr_199;
            MR_String SubDirName_200;
            MR_String BaseNameNoExt_201;
            MR_Word UseGradeSubdirs_203;

            parse_tree__file_names__ext_exec_gs_extension_dir_4_p_0(Globals_10, ExtExecGs_43, &ExtStr_199, &SubDirName_200);
            BaseNameNoExt_201 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_203);
            switch (UseGradeSubdirs_203) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_201, ExtStr_199);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word Var_113;
                  MR_Word DirComponents_197;

                  {
                    Var_113 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_113, 0) = ((MR_Box) (SubDirName_200));
                    MR_hl_field(1, Var_113, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_113, BaseNameNoExt_201, ExtStr_199, &DirComponents_197, FileName_16);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_197);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 10:
          {
            MR_Word ExtLib_31 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 3);
            MR_String ExtStr_243;
            MR_String BaseNameNoExt_244;

            parse_tree__file_names__ext_lib_extension_2_p_0(ExtLib_31, &ExtStr_243);
            BaseNameNoExt_244 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_244, ExtStr_243);
          }
          break;
        case (MR_Integer) 11:
          {
            MR_Word ExtLibGs_44 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 7);
            MR_String ExtStr_256;
            MR_String SubDirName_257;
            MR_String BaseNameNoExt_258;
            MR_Word UseGradeSubdirs_259;

            parse_tree__file_names__ext_lib_gs_extension_dir_4_p_0(Globals_10, ExtLibGs_44, &ExtStr_256, &SubDirName_257);
            BaseNameNoExt_258 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_259);
            switch (UseGradeSubdirs_259) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_258, ExtStr_256);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word Var_245;
                  MR_Word DirComponents_247;

                  {
                    Var_245 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_245, 0) = ((MR_Box) (SubDirName_257));
                    MR_hl_field(1, Var_245, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_245, BaseNameNoExt_258, ExtStr_256, &DirComponents_247, FileName_16);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_247);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 12:
          {
            MR_Word ExtMf_45 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 3);
            MR_String ExtStr_206;
            MR_String SubDirName_207;
            MR_String BaseNameNoExt_208;
            MR_Word UseSubdirs_209;

            parse_tree__file_names__ext_mmake_fragment_extension_dir_3_p_0(ExtMf_45, &ExtStr_206, &SubDirName_207);
            BaseNameNoExt_208 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_209);
            switch (UseSubdirs_209) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_208, ExtStr_206);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word Var_119;
                  MR_Word DirComponents_204;

                  {
                    Var_119 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_119, 0) = ((MR_Box) (SubDirName_207));
                    MR_hl_field(1, Var_119, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  {
                    DirComponents_204 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, DirComponents_204, 0) = ((MR_Box) ((MR_String) "Mercury"));
                    MR_hl_field(1, DirComponents_204, 1) = ((MR_Box) (Var_119));
                  }
                  *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_204, BaseNameNoExt_208, ExtStr_206);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_204);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 13:
          {
            MR_Word ExtMT_32 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 31);
            MR_String ExtStr_282;
            MR_String BaseNameNoExt_283;

            parse_tree__file_names__ext_mmake_target_extension_2_p_0(ExtMT_32, &ExtStr_282);
            BaseNameNoExt_283 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_283, ExtStr_282);
          }
          break;
        case (MR_Integer) 14:
          {
            MR_Word ExtUser_33 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 7);
            MR_String ExtStr_405;
            MR_String BaseNameNoExt_406;

            parse_tree__file_names__ext_user_extension_2_p_0(ExtUser_33, &ExtStr_405);
            BaseNameNoExt_406 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_406, ExtStr_405);
          }
          break;
        case (MR_Integer) 15:
          {
            MR_Word ExtUserNgs_21 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 15);
            MR_String ExtStr_415;
            MR_String SubDirName_416;
            MR_String BaseNameNoExt_417;
            MR_Word UseSubdirs_418;

            parse_tree__file_names__ext_user_ngs_extension_dir_3_p_0(ExtUserNgs_21, &ExtStr_415, &SubDirName_416);
            BaseNameNoExt_417 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_418);
            switch (UseSubdirs_418) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_417, ExtStr_415);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_407;
                  MR_Word Var_409;

                  {
                    Var_409 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_409, 0) = ((MR_Box) (SubDirName_416));
                    MR_hl_field(1, Var_409, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  {
                    DirComponents_407 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, DirComponents_407, 0) = ((MR_Box) ((MR_String) "Mercury"));
                    MR_hl_field(1, DirComponents_407, 1) = ((MR_Box) (Var_409));
                  }
                  *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_407, BaseNameNoExt_417, ExtStr_415);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_407);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 16:
          {
            MR_Word ExtAn_46 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 7);
            MR_String ExtStr_215;
            MR_String SubDirName_216;
            MR_String BaseNameNoExt_217;
            MR_Word UseSubdirs_218;

            parse_tree__file_names__ext_analysis_extension_dir_3_p_0(ExtAn_46, &ExtStr_215, &SubDirName_216);
            BaseNameNoExt_217 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_218);
            switch (UseSubdirs_218) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_217, ExtStr_215);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_211;
                  MR_Word UseGradeSubdirs_212;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_212);
                  succeeded = (UseGradeSubdirs_212 == (MR_Integer) 1);
                  if (succeeded)
                  {
                    succeeded = (Search_12 == (MR_Integer) 0);
                    if (succeeded)
                      switch (ExtAn_46) {
                        default:
                          succeeded = MR_FALSE;
                          break;
                        case (MR_Integer) 0:
                          succeeded = MR_TRUE;
                          break;
                        case (MR_Integer) 3:
                          succeeded = MR_TRUE;
                          break;
                        case (MR_Integer) 4:
                          succeeded = MR_TRUE;
                          break;
                      }
                    succeeded = !(succeeded);
                  }
                  if (succeeded)
                  {
                    MR_Word Var_125;

                    {
                      Var_125 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                      MR_hl_field(1, Var_125, 0) = ((MR_Box) (SubDirName_216));
                      MR_hl_field(1, Var_125, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                    }
                    parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_125, BaseNameNoExt_217, ExtStr_215, &DirComponents_211, FileName_16);
                  }
                  else
                  {
                    MR_Word Var_128;

                    {
                      Var_128 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                      MR_hl_field(1, Var_128, 0) = ((MR_Box) (SubDirName_216));
                      MR_hl_field(1, Var_128, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                    }
                    {
                      DirComponents_211 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                      MR_hl_field(1, DirComponents_211, 0) = ((MR_Box) ((MR_String) "Mercury"));
                      MR_hl_field(1, DirComponents_211, 1) = ((MR_Box) (Var_128));
                    }
                    *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_211, BaseNameNoExt_217, ExtStr_215);
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_211);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 17:
          {
            MR_String ExtStr_19;
            MR_String SubDirName_20;
            MR_Word ExtByte_22 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_String BaseNameNoExt_24;
            MR_Word UseSubdirs_25;

            parse_tree__file_names__ext_bytecode_extension_dir_3_p_0(ExtByte_22, &ExtStr_19, &SubDirName_20);
            BaseNameNoExt_24 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_25);
            switch (UseSubdirs_25) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_24, ExtStr_19);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_26;
                  MR_Word Var_54;

                  {
                    Var_54 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_54, 0) = ((MR_Box) (SubDirName_20));
                    MR_hl_field(1, Var_54, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  {
                    DirComponents_26 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, DirComponents_26, 0) = ((MR_Box) ((MR_String) "Mercury"));
                    MR_hl_field(1, DirComponents_26, 1) = ((MR_Box) (Var_54));
                  }
                  *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_26, BaseNameNoExt_24, ExtStr_19);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_26);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 18:
          {
            MR_Word ExtMiscNgs_23 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 3);
            MR_String ExtStr_271;
            MR_String SubDirName_272;
            MR_String BaseNameNoExt_273;
            MR_Word UseSubdirs_274;

            parse_tree__file_names__ext_misc_ngs_extension_dir_3_p_0(ExtMiscNgs_23, &ExtStr_271, &SubDirName_272);
            BaseNameNoExt_273 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_274);
            switch (UseSubdirs_274) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_273, ExtStr_271);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_263;
                  MR_Word Var_265;

                  {
                    Var_265 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, Var_265, 0) = ((MR_Box) (SubDirName_272));
                    MR_hl_field(1, Var_265, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                  }
                  {
                    DirComponents_263 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    MR_hl_field(1, DirComponents_263, 0) = ((MR_Box) ((MR_String) "Mercury"));
                    MR_hl_field(1, DirComponents_263, 1) = ((MR_Box) (Var_265));
                  }
                  *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_263, BaseNameNoExt_273, ExtStr_271);
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_263);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 19:
          {
            MR_Word ExtMiscGs_36 = ((MR_Unsigned) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_String ExtStr_164;
            MR_String SubDirName_165;
            MR_String BaseNameNoExt_166;
            MR_Word UseSubdirs_167;

            parse_tree__file_names__ext_misc_gs_extension_dir_3_p_0(ExtMiscGs_36, &ExtStr_164, &SubDirName_165);
            BaseNameNoExt_166 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_15, (MR_String) ".");
            libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 684, &UseSubdirs_167);
            switch (UseSubdirs_167) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_166, ExtStr_164);
                break;
              case (MR_Integer) 1:
                {
                  MR_Word DirComponents_160;
                  MR_Word UseGradeSubdirs_161;

                  libs__globals__lookup_bool_option_3_p_0(Globals_10, (MR_Integer) 685, &UseGradeSubdirs_161);
                  switch (UseGradeSubdirs_161) {
                    default: /*NOTREACHED*/ MR_assert(0);
                    case (MR_Integer) 0:
                      {
                        MR_Word Var_80;

                        {
                          Var_80 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_80, 0) = ((MR_Box) (SubDirName_165));
                          MR_hl_field(1, Var_80, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        {
                          DirComponents_160 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, DirComponents_160, 0) = ((MR_Box) ((MR_String) "Mercury"));
                          MR_hl_field(1, DirComponents_160, 1) = ((MR_Box) (Var_80));
                        }
                        *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(DirComponents_160, BaseNameNoExt_166, ExtStr_164);
                      }
                      break;
                    case (MR_Integer) 1:
                      {
                        MR_Word Var_82;

                        {
                          Var_82 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                          MR_hl_field(1, Var_82, 0) = ((MR_Box) (SubDirName_165));
                          MR_hl_field(1, Var_82, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                        }
                        parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(Globals_10, Var_82, BaseNameNoExt_166, ExtStr_164, &DirComponents_160, FileName_16);
                      }
                      break;
                  }
                  parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_160);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 20:
          {
            MR_Word OtherExt_47 = ((MR_Word) ((MR_hl_field(3, Ext_14, (MR_Integer) 1))));
            MR_String BaseNameNoExt_221;
            MR_Word DirComponents_222;
            MR_Word BaseParentDirs_223;

            parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0(OtherExt_47, ModuleName_15, &BaseParentDirs_223, &BaseNameNoExt_221);
            parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0(Globals_10, OtherExt_47, BaseParentDirs_223, BaseNameNoExt_221, &DirComponents_222, FileName_16);
            parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(MkDir_13, DirComponents_222);
            {
              mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.module_name_to_file_name_ext_new\'/9", (MR_String) "newext_other");
              return;
            }
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_101_120_101_99_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(
  MR_String * HeadVar__2_2)
{
  *HeadVar__2_2 = (MR_String) ".exe";
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_105_110_105_116_95_99_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = (MR_String) "_init.c";
  *HeadVar__3_3 = (MR_String) "cs";
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_105_104_95_101_120_116_101_110_115_105_111_110_95_100_105_114_95_95_91_49_93_95_48_3_p_0(
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = (MR_String) ".mih";
  *HeadVar__3_3 = (MR_String) "mihs";
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_101_120_116_95_109_104_95_101_120_116_101_110_115_105_111_110_95_95_91_49_93_95_48_2_p_0(
  MR_String * HeadVar__2_2)
{
  *HeadVar__2_2 = (MR_String) ".mh";
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_1(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  MR_builtin_longjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_0, 1);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_2(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_50) == 0);
  if (!((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
  {
    MR_String Var_55;

    Var_55 = mercury__string__f_43_43_2_f_0((MR_String) "_init", (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_50);
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, Var_55) == 0);
  }
  if ((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_1(env_ptr);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_3(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  if (MR_builtin_setjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_0) == 0)
    {
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 559, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_50);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_2(env_ptr);
      }
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 560, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_50);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_2(env_ptr);
      }
      (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
    }
  else
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0(
  MR_Word Globals_9,
  MR_Word OtherExt_12,
  MR_Word BaseParentDirs_13,
  MR_String BaseNameNoExt_14,
  MR_Word * DirComponents_15,
  MR_String * FileName_16)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s env;

  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9 = Globals_9;
  {
    MR_Word UseSubdirs_17;
    MR_String ExtStr_18;

    libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 684, &UseSubdirs_17);
    ExtStr_18 = (MR_String) (OtherExt_12);
    switch (UseSubdirs_17) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(BaseParentDirs_13, BaseNameNoExt_14, ExtStr_18);
          *DirComponents_15 = BaseParentDirs_13;
        }
        break;
      case (MR_Integer) 1:
        {
          MR_String SubDirName_19;
          MR_Word Var_21;
          MR_Word UseGradeSubdirs_37;
          MR_Word UseSubdirs_38;
          MR_String ExtStr_39;

          if ((strcmp(ExtStr_18, (MR_String) ".dir/*.o") == 0))
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
          else
          if ((strcmp(ExtStr_18, (MR_String) ".dir/*.\044O") == 0))
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
          else
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
          if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            SubDirName_19 = (MR_String) "dirs";
          else
          {
            MR_String ExtName_22;

            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = mercury__string__remove_prefix_3_p_0((MR_String) "_init.", ExtStr_18, &ExtName_22);
            if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
              SubDirName_19 = mercury__string__f_43_43_2_f_0(ExtName_22, (MR_String) "s");
            else
            {
              MR_String LibExt_23;
              MR_String SharedLibExt_24;

              libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 611, &LibExt_23);
              libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 610, &SharedLibExt_24);
              (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp(ExtStr_18, LibExt_23) == 0);
              if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp(ExtStr_18, SharedLibExt_24) == 0);
              if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                SubDirName_19 = (MR_String) "lib";
              else
              {
                MR_String ExtName_36;

                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = mercury__string__remove_prefix_3_p_0((MR_String) ".", ExtStr_18, &ExtName_36);
                if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                  SubDirName_19 = mercury__string__f_43_43_2_f_0(ExtName_36, (MR_String) "s");
                else
                {
                  MR_String Var_32;
                  MR_String Var_34;

                  Var_34 = mercury__string__f_43_43_2_f_0(ExtStr_18, (MR_String) "\'");
                  Var_32 = mercury__string__f_43_43_2_f_0((MR_String) "unknown extension \140", Var_34);
                  {
                    mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.choose_subdir_name_new\'/3", Var_32);
                    return;
                  }
                }
              }
            }
          }
          {
            Var_21 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, Var_21, 0) = ((MR_Box) (SubDirName_19));
            MR_hl_field(1, Var_21, 1) = ((MR_Box) (BaseParentDirs_13));
          }
          libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 685, &UseGradeSubdirs_37);
          libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 684, &UseSubdirs_38);
          ExtStr_39 = (MR_String) (OtherExt_12);
          (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (UseGradeSubdirs_37 == (MR_Integer) 1);
          if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
          {
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43 = (MR_String) (OtherExt_12);
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, (MR_String) ".dir") == 0);
            if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
            {
              {
                MR_String Var_51;

                libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 612, &Var_51);
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, Var_51) == 0);
              }
              if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
              {
                {
                  MR_String Var_52;

                  libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 611, &Var_52);
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, Var_52) == 0);
                }
                if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                {
                  {
                    MR_String Var_53;

                    libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 610, &Var_53);
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_43, Var_53) == 0);
                  }
                  if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_8_p_0_3(&env);
                }
              }
            }
          }
          if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, Var_21, BaseNameNoExt_14, ExtStr_39, DirComponents_15, FileName_16);
          else
          {
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (UseSubdirs_38 == (MR_Integer) 1);
            if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_110_101_119_95_95_91_50_44_32_51_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            {
              MR_Word Components_58;
              MR_Word Var_59;
              MR_String Var_60;

              {
                MR_Word base;
                base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                *DirComponents_15 = base;
                MR_hl_field(1, base, 0) = ((MR_Box) ((MR_String) "Mercury"));
                MR_hl_field(1, base, 1) = ((MR_Box) (Var_21));
              }
              Var_60 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_14, ExtStr_39);
              {
                Var_59 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                MR_hl_field(1, Var_59, 0) = ((MR_Box) (Var_60));
                MR_hl_field(1, Var_59, 1) = ((MR_Box) ((MR_Unsigned) 0U));
              }
              Components_58 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), *DirComponents_15, Var_59);
              *FileName_16 = mercury__dir__relative_path_name_from_components_1_f_0(Components_58);
            }
            else
            {
              *DirComponents_15 = Var_21;
              *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(*DirComponents_15, BaseNameNoExt_14, ExtStr_39);
            }
          }
        }
        break;
    }
  }
}

static void MR_CALL 
parse_tree__file_names__ext_misc_gs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".track_flags";
        *HeadVar__3_3 = (MR_String) "track_flagss";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".used";
        *HeadVar__3_3 = (MR_String) "useds";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_misc_ngs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".err_date";
        *HeadVar__3_3 = (MR_String) "err_dates";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".module_dep";
        *HeadVar__3_3 = (MR_String) "module_deps";
      }
      break;
    case (MR_Integer) 2:
      {
        *HeadVar__2_2 = (MR_String) ".prof";
        *HeadVar__3_3 = (MR_String) "profs";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_bytecode_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".bytedebug";
        *HeadVar__3_3 = (MR_String) "bytedebugs";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".mbc";
        *HeadVar__3_3 = (MR_String) "mbcs";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_analysis_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_7[25 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  *HeadVar__3_3 = ((&parse_tree__file_names_vector_common_7[25 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
}

static void MR_CALL 
parse_tree__file_names__ext_user_ngs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_7[15 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  *HeadVar__3_3 = ((&parse_tree__file_names_vector_common_7[15 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
}

static void MR_CALL 
parse_tree__file_names__ext_user_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_4[77 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
}

static void MR_CALL 
parse_tree__file_names__ext_mmake_target_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_4[59 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
}

static void MR_CALL 
parse_tree__file_names__ext_mmake_fragment_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_7[11 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  *HeadVar__3_3 = ((&parse_tree__file_names_vector_common_7[11 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
}

static void MR_CALL 
parse_tree__file_names__ext_lib_gs_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4)
{
  switch (HeadVar__2_2) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__3_3 = (MR_String) ".a";
        *HeadVar__4_4 = (MR_String) "as";
      }
      break;
    case (MR_Integer) 2:
      {
        *HeadVar__3_3 = (MR_String) ".dll";
        *HeadVar__4_4 = (MR_String) "dlls";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__3_3 = (MR_String) ".\044A";
        *HeadVar__4_4 = (MR_String) "\044As";
      }
      break;
    case (MR_Integer) 3:
      {
        *HeadVar__3_3 = (MR_String) ".init";
        *HeadVar__4_4 = (MR_String) "inits";
      }
      break;
    case (MR_Integer) 4:
      {
        *HeadVar__3_3 = (MR_String) ".jar";
        *HeadVar__4_4 = (MR_String) "jars";
      }
      break;
    case (MR_Integer) 5:
      {
        *HeadVar__4_4 = (MR_String) "lib";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 611, HeadVar__3_3);
      }
      break;
    case (MR_Integer) 6:
      {
        *HeadVar__4_4 = (MR_String) "lib";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 610, HeadVar__3_3);
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_lib_extension_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      *HeadVar__2_2 = (MR_String) ".\044(EXT_FOR_SHARED_LIB)";
      break;
    case (MR_Integer) 1:
      *HeadVar__2_2 = (MR_String) ".lib";
      break;
    case (MR_Integer) 2:
      *HeadVar__2_2 = (MR_String) ".so";
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_exec_gs_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4)
{
  switch (HeadVar__2_2) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      {
        *HeadVar__4_4 = (MR_String) "bin";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 612, HeadVar__3_3);
      }
      break;
    case (MR_Integer) 1:
      {
        *HeadVar__3_3 = (MR_String) ".bat";
        *HeadVar__4_4 = (MR_String) "bats";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__3_3 = (MR_String) "";
        *HeadVar__4_4 = (MR_String) "bin";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_init_obj_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4)
{
  switch (HeadVar__2_2) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        *HeadVar__3_3 = (MR_String) "_init.\044O";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 1:
      {
        *HeadVar__3_3 = (MR_String) "_init.o";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 3:
      {
        MR_String ExtStr0_10;

        *HeadVar__4_4 = (MR_String) "os";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 559, &ExtStr0_10);
        *HeadVar__3_3 = mercury__string__f_43_43_2_f_0((MR_String) "_init", ExtStr0_10);
      }
      break;
    case (MR_Integer) 2:
      {
        *HeadVar__3_3 = (MR_String) "_init.pic_o";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 4:
      {
        MR_String ExtStr0_15;

        *HeadVar__4_4 = (MR_String) "os";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 560, &ExtStr0_15);
        *HeadVar__3_3 = mercury__string__f_43_43_2_f_0((MR_String) "_init", ExtStr0_15);
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_obj_extension_dir_4_p_0(
  MR_Word Globals_1,
  MR_Word HeadVar__2_2,
  MR_String * HeadVar__3_3,
  MR_String * HeadVar__4_4)
{
  switch (HeadVar__2_2) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__3_3 = (MR_String) ".\044(EXT_FOR_PIC_OBJECTS)";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__3_3 = (MR_String) ".\044O";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 2:
      {
        *HeadVar__3_3 = (MR_String) ".o";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 4:
      {
        *HeadVar__4_4 = (MR_String) "os";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 559, HeadVar__3_3);
      }
      break;
    case (MR_Integer) 3:
      {
        *HeadVar__3_3 = (MR_String) ".pic_o";
        *HeadVar__4_4 = (MR_String) "os";
      }
      break;
    case (MR_Integer) 5:
      {
        *HeadVar__4_4 = (MR_String) "os";
        libs__globals__lookup_string_option_3_p_0(Globals_1, (MR_Integer) 560, HeadVar__3_3);
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_target_date_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".c_date";
        *HeadVar__3_3 = (MR_String) "c_dates";
      }
      break;
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".cs_date";
        *HeadVar__3_3 = (MR_String) "cs_dates";
      }
      break;
    case (MR_Integer) 2:
      {
        *HeadVar__2_2 = (MR_String) ".java_date";
        *HeadVar__3_3 = (MR_String) "java_dates";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_target_java_extension_dirs_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_Word * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".class";
        *HeadVar__3_3 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[81]));
      }
      break;
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".java";
        *HeadVar__3_3 = (MR_Word) (MR_mkword(1, &parse_tree__file_names_scalar_common_3[82]));
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_target_c_cs_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        *HeadVar__2_2 = (MR_String) ".c";
        *HeadVar__3_3 = (MR_String) "cs";
      }
      break;
    case (MR_Integer) 1:
      {
        *HeadVar__2_2 = (MR_String) ".cs";
        *HeadVar__3_3 = (MR_String) "css";
      }
      break;
  }
}

static void MR_CALL 
parse_tree__file_names__ext_opt_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_7[7 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  *HeadVar__3_3 = ((&parse_tree__file_names_vector_common_7[7 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
}

static void MR_CALL 
parse_tree__file_names__ext_int_extension_dir_3_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2,
  MR_String * HeadVar__3_3)
{
  *HeadVar__2_2 = ((&parse_tree__file_names_vector_common_7[0 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_0;
  *HeadVar__3_3 = ((&parse_tree__file_names_vector_common_7[0 + HeadVar__1_1]))->parse_tree__file_names__vector_common_type_7_0__vct_7_f_1;
}

static void MR_CALL 
parse_tree__file_names__make_grade_subdir_file_name_new_6_p_0(
  MR_Word Globals_7,
  MR_Word SubDirNames_8,
  MR_String BaseNameNoExt_9,
  MR_String ExtStr_10,
  MR_Word * DirComponents_11,
  MR_String * FileName_12)
{
  MR_String Grade_13;
  MR_String TargetArch_14;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Components_23;
  MR_Word Var_24;
  MR_String Var_25;

  libs__compute_grade__grade_directory_component_2_p_0(Globals_7, &Grade_13);
  libs__globals__lookup_string_option_3_p_0(Globals_7, (MR_Integer) 703, &TargetArch_14);
  {
    Var_19 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_19, 0) = ((MR_Box) ((MR_String) "Mercury"));
    MR_hl_field(1, Var_19, 1) = ((MR_Box) (SubDirNames_8));
  }
  {
    Var_18 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_18, 0) = ((MR_Box) (TargetArch_14));
    MR_hl_field(1, Var_18, 1) = ((MR_Box) (Var_19));
  }
  {
    Var_17 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_17, 0) = ((MR_Box) (Grade_13));
    MR_hl_field(1, Var_17, 1) = ((MR_Box) (Var_18));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    *DirComponents_11 = base;
    MR_hl_field(1, base, 0) = ((MR_Box) ((MR_String) "Mercury"));
    MR_hl_field(1, base, 1) = ((MR_Box) (Var_17));
  }
  Var_25 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_9, ExtStr_10);
  {
    Var_24 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_24, 0) = ((MR_Box) (Var_25));
    MR_hl_field(1, Var_24, 1) = ((MR_Box) ((MR_Unsigned) 0U));
  }
  Components_23 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), *DirComponents_11, Var_24);
  *FileName_12 = mercury__dir__relative_path_name_from_components_1_f_0(Components_23);
}

static MR_bool MR_CALL 
parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0_1(
  MR_Box closure_arg)
{
  MR_bool succeeded;
  MR_Box closure = closure_arg;

  succeeded = parse_tree__file_names__valid_other_newext_1_p_0(((MR_Word) ((MR_hl_field(0, closure, (MR_Integer) 3)))));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0(
  MR_Word OtherExt_5,
  MR_Word ModuleName_6,
  MR_Word * BaseParentDirs_7,
  MR_String * BaseNameNoExt_8)
{
  MR_bool succeeded;
  MR_String ExtStr_9 = (MR_String) (OtherExt_5);
  MR_Word Var_10;
  MR_String Var_12;

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (&parse_tree__file_names_scalar_common_6[0]));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (parse_tree__file_names__decide_base_name_parent_dirs_other_new_4_p_0_1));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (OtherExt_5));
  }
  Var_12 = mercury__string__f_43_43_2_f_0(ExtStr_9, (MR_String) " is a not valid argument of ext/1");
  mercury__require__expect_3_p_0(Var_10, (MR_String) "predicate \140parse_tree.file_names.decide_base_name_parent_dirs_other_new\'/4", Var_12);
  *BaseParentDirs_7 = (MR_Word) ((MR_Unsigned) 0U);
  *BaseNameNoExt_8 = mdbcomp__sym_name__sym_name_to_string_sep_2_f_0(ModuleName_6, (MR_String) ".");
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  MR_builtin_longjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_1, 1);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_2(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_31) == 0);
  if (!((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
  {
    MR_String Var_36;

    Var_36 = mercury__string__f_43_43_2_f_0((MR_String) "_init", (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_31);
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, Var_36) == 0);
  }
  if ((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_1(env_ptr);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_3(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  if (MR_builtin_setjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_1) == 0)
    {
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 559, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_31);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_2(env_ptr);
      }
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 560, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_31);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_2(env_ptr);
      }
      (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
    }
  else
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_4(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  MR_builtin_longjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_5, 1);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_5(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_55) == 0);
  if (!((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
  {
    MR_String Var_58;

    Var_58 = mercury__string__f_43_43_2_f_0((MR_String) "_init", (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_55);
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, Var_58) == 0);
  }
  if ((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_4(env_ptr);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_6(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  if (MR_builtin_setjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_5) == 0)
    {
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 559, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_55);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_5(env_ptr);
      }
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 560, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_55);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_5(env_ptr);
      }
      (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
    }
  else
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_7(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  MR_builtin_longjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_7, 1);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_8(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_80) == 0);
  if (!((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
  {
    MR_String Var_85;

    Var_85 = mercury__string__f_43_43_2_f_0((MR_String) "_init", (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_80);
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, Var_85) == 0);
  }
  if ((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
    parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_7(env_ptr);
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_9(
  void * env_ptr_arg)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s * env_ptr = (struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s *) (env_ptr_arg);

  if (MR_builtin_setjmp((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__commit_7) == 0)
    {
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 559, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_80);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_8(env_ptr);
      }
      {
        libs__globals__lookup_string_option_3_p_0((env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 560, &(env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ObjExtStr_80);
        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_8(env_ptr);
      }
      (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
    }
  else
    (env_ptr)->parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
}

static void MR_CALL 
parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0(
  MR_Word Globals_9,
  MR_Word Search_11,
  MR_Word OtherExt_12,
  MR_Word BaseParentDirs_13,
  MR_String BaseNameNoExt_14,
  MR_Word * DirComponents_15,
  MR_String * FileName_16)
{
  struct parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_0_s env;

  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9 = Globals_9;
  {
    MR_Word UseSubdirs_17;

    libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 684, &UseSubdirs_17);
    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18 = (MR_String) (OtherExt_12);
    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (Search_11 == (MR_Integer) 0);
    if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
      (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".mih") == 0);
    if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
    {
      *DirComponents_15 = (MR_Word) ((MR_Unsigned) 0U);
      *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_14, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18);
    }
    else
      switch (UseSubdirs_17) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(BaseParentDirs_13, BaseNameNoExt_14, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18);
            *DirComponents_15 = BaseParentDirs_13;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word UseGradeSubdirs_19;

            libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 685, &UseGradeSubdirs_19);
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (UseGradeSubdirs_19 == (MR_Integer) 1);
            if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            {
              (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24 = (MR_String) (OtherExt_12);
              {
                MR_Integer case_num_0 = (MR_Integer) -1;

                switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 0)) {
                  case (MR_Integer) 0:
                    case_num_0 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 46:
                    switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 1)) {
                      case (MR_Integer) 36:
                        if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".\044A"))
                          case_num_0 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 97:
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) {
                          case (MR_Integer) 0:
                            case_num_0 = (MR_Integer) 2;
                            break;
                          case (MR_Integer) 110:
                            if (((((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) == (MR_Integer) 97)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 4)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 5)) == (MR_Integer) 121)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 6)) == (MR_Integer) 115)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 7)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 8)) == (MR_Integer) 115))))
                              switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 9)) {
                                case (MR_Integer) 0:
                                  case_num_0 = (MR_Integer) 3;
                                  break;
                                case (MR_Integer) 95:
                                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 10)) {
                                    case (MR_Integer) 100:
                                      if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".analysis_date"))
                                        case_num_0 = (MR_Integer) 4;
                                      break;
                                    case (MR_Integer) 115:
                                      if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".analysis_status"))
                                        case_num_0 = (MR_Integer) 5;
                                      break;
                                  }
                                  break;
                              }
                            break;
                        }
                        break;
                      case (MR_Integer) 98:
                        if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".bat"))
                          case_num_0 = (MR_Integer) 6;
                        break;
                      case (MR_Integer) 99:
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) {
                          case (MR_Integer) 0:
                            case_num_0 = (MR_Integer) 7;
                            break;
                          case (MR_Integer) 95:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".c_date"))
                              case_num_0 = (MR_Integer) 8;
                            break;
                          case (MR_Integer) 108:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".class"))
                              case_num_0 = (MR_Integer) 9;
                            break;
                          case (MR_Integer) 115:
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) {
                              case (MR_Integer) 0:
                                case_num_0 = (MR_Integer) 10;
                                break;
                              case (MR_Integer) 95:
                                if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".cs_date"))
                                  case_num_0 = (MR_Integer) 11;
                                break;
                            }
                            break;
                        }
                        break;
                      case (MR_Integer) 100:
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) {
                          case (MR_Integer) 105:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".dir"))
                              case_num_0 = (MR_Integer) 12;
                            break;
                          case (MR_Integer) 108:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".dll"))
                              case_num_0 = (MR_Integer) 13;
                            break;
                        }
                        break;
                      case (MR_Integer) 105:
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) {
                          case (MR_Integer) 109:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".imdg"))
                              case_num_0 = (MR_Integer) 14;
                            break;
                          case (MR_Integer) 110:
                            if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".init"))
                              case_num_0 = (MR_Integer) 15;
                            break;
                        }
                        break;
                      case (MR_Integer) 106:
                        if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) == (MR_Integer) 97))
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) {
                            case (MR_Integer) 114:
                              if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".jar"))
                                case_num_0 = (MR_Integer) 16;
                              break;
                            case (MR_Integer) 118:
                              if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 4)) == (MR_Integer) 97))
                                switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 5)) {
                                  case (MR_Integer) 0:
                                    case_num_0 = (MR_Integer) 17;
                                    break;
                                  case (MR_Integer) 95:
                                    if (MR_offset_streq(6, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".java_date"))
                                      case_num_0 = (MR_Integer) 18;
                                    break;
                                }
                              break;
                          }
                        break;
                      case (MR_Integer) 109:
                        if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".mih"))
                          case_num_0 = (MR_Integer) 19;
                        break;
                      case (MR_Integer) 111:
                        if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) == (MR_Integer) 112)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) == (MR_Integer) 116))))
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 4)) {
                            case (MR_Integer) 0:
                              case_num_0 = (MR_Integer) 20;
                              break;
                            case (MR_Integer) 100:
                              if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".optdate"))
                                case_num_0 = (MR_Integer) 21;
                              break;
                          }
                        break;
                      case (MR_Integer) 114:
                        if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".request"))
                          case_num_0 = (MR_Integer) 22;
                        break;
                      case (MR_Integer) 116:
                        if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) == (MR_Integer) 114)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) == (MR_Integer) 97))))
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 4)) {
                            case (MR_Integer) 99:
                              if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".track_flags"))
                                case_num_0 = (MR_Integer) 23;
                              break;
                            case (MR_Integer) 110:
                              if (((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 5)) == (MR_Integer) 115)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 6)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 7)) == (MR_Integer) 111)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 8)) == (MR_Integer) 112)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 9)) == (MR_Integer) 116))))
                                switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 10)) {
                                  case (MR_Integer) 0:
                                    case_num_0 = (MR_Integer) 24;
                                    break;
                                  case (MR_Integer) 95:
                                    if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".trans_opt_date"))
                                      case_num_0 = (MR_Integer) 25;
                                    break;
                                }
                              break;
                          }
                        break;
                      case (MR_Integer) 117:
                        if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) ".used"))
                          case_num_0 = (MR_Integer) 26;
                        break;
                    }
                    break;
                  case (MR_Integer) 95:
                    if (((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 1)) == (MR_Integer) 105)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 2)) == (MR_Integer) 110)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 3)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 4)) == (MR_Integer) 116)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 5)) == (MR_Integer) 46))))
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24), 6)) {
                        case (MR_Integer) 36:
                          if (MR_offset_streq(7, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) "_init.\044O"))
                            case_num_0 = (MR_Integer) 27;
                          break;
                        case (MR_Integer) 99:
                          if (MR_offset_streq(7, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, (MR_String) "_init.c"))
                            case_num_0 = (MR_Integer) 28;
                          break;
                      }
                    break;
                }
                if ((case_num_0 < (MR_Integer) 0))
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
                else
                {
                  // we found a match; look up the results
                  ;
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
                }
              }
              if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
              {
                {
                  MR_String Var_32;

                  libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 612, &Var_32);
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, Var_32) == 0);
                }
                if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                {
                  {
                    MR_String Var_33;

                    libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 611, &Var_33);
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, Var_33) == 0);
                  }
                  if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                  {
                    {
                      MR_String Var_34;

                      libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 610, &Var_34);
                      (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_24, Var_34) == 0);
                    }
                    if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                      parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_3(&env);
                  }
                }
              }
            }
            (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = !((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded);
            if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            {
              MR_Integer case_num_2 = (MR_Integer) -1;

              switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 0)) {
                case (MR_Integer) 0:
                  case_num_2 = (MR_Integer) 0;
                  break;
                case (MR_Integer) 46:
                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 1)) {
                    case (MR_Integer) 36:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 40:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".\044(EXT_FOR_SHARED_LIB)"))
                            case_num_2 = (MR_Integer) 1;
                          break;
                        case (MR_Integer) 65:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".\044A"))
                            case_num_2 = (MR_Integer) 2;
                          break;
                      }
                      break;
                    case (MR_Integer) 97:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 0:
                          case_num_2 = (MR_Integer) 3;
                          break;
                        case (MR_Integer) 108:
                          if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 3)) == (MR_Integer) 108)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 4)) == (MR_Integer) 95))))
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 5)) {
                              case (MR_Integer) 105:
                                if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 6)) == (MR_Integer) 110)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 7)) == (MR_Integer) 116))))
                                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 8)) {
                                    case (MR_Integer) 51:
                                      if (MR_offset_streq(9, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".all_int3s"))
                                        case_num_2 = (MR_Integer) 4;
                                      break;
                                    case (MR_Integer) 115:
                                      if (MR_offset_streq(9, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".all_ints"))
                                        case_num_2 = (MR_Integer) 5;
                                      break;
                                  }
                                break;
                              case (MR_Integer) 111:
                                if (MR_offset_streq(6, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".all_opts"))
                                  case_num_2 = (MR_Integer) 6;
                                break;
                              case (MR_Integer) 116:
                                if (MR_offset_streq(6, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".all_trans_opts"))
                                  case_num_2 = (MR_Integer) 7;
                                break;
                            }
                          break;
                      }
                      break;
                    case (MR_Integer) 98:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".bat"))
                        case_num_2 = (MR_Integer) 8;
                      break;
                    case (MR_Integer) 99:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 104:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".check"))
                            case_num_2 = (MR_Integer) 9;
                          break;
                        case (MR_Integer) 108:
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 3)) {
                            case (MR_Integer) 97:
                              if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".classes"))
                                case_num_2 = (MR_Integer) 10;
                              break;
                            case (MR_Integer) 101:
                              if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".clean"))
                                case_num_2 = (MR_Integer) 11;
                              break;
                          }
                          break;
                      }
                      break;
                    case (MR_Integer) 100:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 101:
                          if (((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 3)) == (MR_Integer) 112)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 4)) == (MR_Integer) 101)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 5)) == (MR_Integer) 110)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 6)) == (MR_Integer) 100))))
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 7)) {
                              case (MR_Integer) 0:
                                case_num_2 = (MR_Integer) 12;
                                break;
                              case (MR_Integer) 101:
                                if (MR_offset_streq(8, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".dependency_graph"))
                                  case_num_2 = (MR_Integer) 13;
                                break;
                            }
                          break;
                        case (MR_Integer) 108:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".dll"))
                            case_num_2 = (MR_Integer) 14;
                          break;
                      }
                      break;
                    case (MR_Integer) 101:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 114:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".err"))
                            case_num_2 = (MR_Integer) 15;
                          break;
                        case (MR_Integer) 120:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".exe"))
                            case_num_2 = (MR_Integer) 16;
                          break;
                      }
                      break;
                    case (MR_Integer) 104:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".hlds_dump"))
                        case_num_2 = (MR_Integer) 17;
                      break;
                    case (MR_Integer) 105:
                      if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) == (MR_Integer) 110))
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 3)) {
                          case (MR_Integer) 105:
                            if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".init"))
                              case_num_2 = (MR_Integer) 18;
                            break;
                          case (MR_Integer) 115:
                            if (((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 4)) == (MR_Integer) 116)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 5)) == (MR_Integer) 97)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 6)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 7)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 8)) == (MR_Integer) 95))))
                              switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 9)) {
                                case (MR_Integer) 103:
                                  if (MR_offset_streq(10, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".install_grade_hdrs"))
                                    case_num_2 = (MR_Integer) 19;
                                  break;
                                case (MR_Integer) 104:
                                  if (MR_offset_streq(10, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".install_hdrs"))
                                    case_num_2 = (MR_Integer) 20;
                                  break;
                                case (MR_Integer) 105:
                                  if (MR_offset_streq(10, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".install_ints"))
                                    case_num_2 = (MR_Integer) 21;
                                  break;
                                case (MR_Integer) 111:
                                  if (MR_offset_streq(10, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".install_opts"))
                                    case_num_2 = (MR_Integer) 22;
                                  break;
                              }
                            break;
                          case (MR_Integer) 116:
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 4)) {
                              case (MR_Integer) 51:
                                if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".int3s"))
                                  case_num_2 = (MR_Integer) 23;
                                break;
                              case (MR_Integer) 115:
                                if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".ints"))
                                  case_num_2 = (MR_Integer) 24;
                                break;
                            }
                            break;
                        }
                      break;
                    case (MR_Integer) 106:
                      if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) == (MR_Integer) 97))
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 3)) {
                          case (MR_Integer) 114:
                            if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".jar"))
                              case_num_2 = (MR_Integer) 25;
                            break;
                          case (MR_Integer) 118:
                            if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".javas"))
                              case_num_2 = (MR_Integer) 26;
                            break;
                        }
                      break;
                    case (MR_Integer) 108:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".lib"))
                        case_num_2 = (MR_Integer) 27;
                      break;
                    case (MR_Integer) 109:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 104:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".mh"))
                            case_num_2 = (MR_Integer) 28;
                          break;
                        case (MR_Integer) 108:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".mlds_dump"))
                            case_num_2 = (MR_Integer) 29;
                          break;
                      }
                      break;
                    case (MR_Integer) 111:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18), 2)) {
                        case (MR_Integer) 112:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".opts"))
                            case_num_2 = (MR_Integer) 30;
                          break;
                        case (MR_Integer) 114:
                          if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".order"))
                            case_num_2 = (MR_Integer) 31;
                          break;
                      }
                      break;
                    case (MR_Integer) 114:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".realclean"))
                        case_num_2 = (MR_Integer) 32;
                      break;
                    case (MR_Integer) 115:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".so"))
                        case_num_2 = (MR_Integer) 33;
                      break;
                    case (MR_Integer) 116:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".trans_opts"))
                        case_num_2 = (MR_Integer) 34;
                      break;
                    case (MR_Integer) 117:
                      if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) ".ugly"))
                        case_num_2 = (MR_Integer) 35;
                      break;
                  }
                  break;
              }
              if ((case_num_2 < (MR_Integer) 0))
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
              else
              {
                // we found a match; look up the results
                ;
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
              }
            }
            if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
            {
              *DirComponents_15 = (MR_Word) ((MR_Unsigned) 0U);
              *FileName_16 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_14, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18);
            }
            else
            {
              MR_String SubDirName_20;
              MR_Word Var_23;
              MR_Word UseGradeSubdirs_59;
              MR_Word UseSubdirs_60;
              MR_String ExtStr_61;
              MR_Word Var_64;
              MR_Word Var_65;
              MR_String SubDirNamePrime_37;
              MR_Integer slot_3 = ((MR_hash_string4((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18)) & (MR_Integer) 31);
              MR_String str_4;
              MR_Integer lo_8;
              MR_Integer hi_9;
              MR_Integer mid_10;
              MR_Integer result_11;

              // hashed string simple lookup switch
              ;
              // compute the hash value of the input string
              ;
              // hash chain loop
              ;
              do
              {
                // lookup the string for this hash slot
                ;
                str_4 = ((&parse_tree__file_names_vector_common_5[0 + slot_3]))->parse_tree__file_names__vector_common_type_5_0__vct_5_f_0;
                // did we find a match?
                ;
                if ((((str_4 != NULL)) && ((strcmp(str_4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18) == 0))))
                {
                  // we found a match; look up the results
                  ;
                  SubDirNamePrime_37 = ((&parse_tree__file_names_vector_common_5[0 + slot_3]))->parse_tree__file_names__vector_common_type_5_0__vct_5_f_2;
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
                  // jump out of search loop
                  ;
                  goto label_0;
                }
                else
                {
                  // no match yet, so get next slot in hash chain
                  ;
                  slot_3 = ((&parse_tree__file_names_vector_common_5[0 + slot_3]))->parse_tree__file_names__vector_common_type_5_0__vct_5_f_1;
                }
              }
              while ((slot_3 >= (MR_Integer) 0));
              (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
            label_0:;
              if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                SubDirName_20 = SubDirNamePrime_37;
              else
              {
                MR_String LibExt_38;
                MR_String SharedLibExt_39;

                libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 611, &LibExt_38);
                libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 610, &SharedLibExt_39);
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, LibExt_38) == 0);
                if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, SharedLibExt_39) == 0);
                if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                  SubDirName_20 = (MR_String) "lib";
                else
                {
                  parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_6(&env);
                  if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                    SubDirName_20 = (MR_String) "os";
                  else
                  {
                    MR_String ExtName_40;

                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = mercury__string__remove_prefix_3_p_0((MR_String) "_init.", (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, &ExtName_40);
                    if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                      SubDirName_20 = mercury__string__f_43_43_2_f_0(ExtName_40, (MR_String) "s");
                    else
                    {
                      MR_String ExtName_56;

                      (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = mercury__string__remove_prefix_3_p_0((MR_String) ".", (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, &ExtName_56);
                      if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                        SubDirName_20 = mercury__string__f_43_43_2_f_0(ExtName_56, (MR_String) "s");
                      else
                      {
                        MR_String Var_51;
                        MR_String Var_53;

                        Var_53 = mercury__string__f_43_43_2_f_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_18, (MR_String) "\'");
                        Var_51 = mercury__string__f_43_43_2_f_0((MR_String) "unknown extension \140", Var_53);
                        {
                          mercury__require__unexpected_2_p_0((MR_String) "predicate \140parse_tree.file_names.choose_subdir_name\'/3", Var_51);
                          return;
                        }
                      }
                    }
                  }
                }
              }
              {
                Var_23 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                MR_hl_field(1, Var_23, 0) = ((MR_Box) (SubDirName_20));
                MR_hl_field(1, Var_23, 1) = ((MR_Box) (BaseParentDirs_13));
              }
              Var_64 = (MR_Integer) 685;
              libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, Var_64, &UseGradeSubdirs_59);
              Var_65 = (MR_Integer) 684;
              libs__globals__lookup_bool_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, Var_65, &UseSubdirs_60);
              ExtStr_61 = (MR_String) (OtherExt_12);
              (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (UseGradeSubdirs_59 == (MR_Integer) 1);
              if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
              {
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73 = (MR_String) (OtherExt_12);
                {
                  MR_Integer case_num_6 = (MR_Integer) -1;

                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 0)) {
                    case (MR_Integer) 0:
                      case_num_6 = (MR_Integer) 0;
                      break;
                    case (MR_Integer) 46:
                      switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 1)) {
                        case (MR_Integer) 36:
                          if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".\044A"))
                            case_num_6 = (MR_Integer) 1;
                          break;
                        case (MR_Integer) 97:
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) {
                            case (MR_Integer) 0:
                              case_num_6 = (MR_Integer) 2;
                              break;
                            case (MR_Integer) 110:
                              if (((((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) == (MR_Integer) 97)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 4)) == (MR_Integer) 108)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 5)) == (MR_Integer) 121)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 6)) == (MR_Integer) 115)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 7)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 8)) == (MR_Integer) 115))))
                                switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 9)) {
                                  case (MR_Integer) 0:
                                    case_num_6 = (MR_Integer) 3;
                                    break;
                                  case (MR_Integer) 95:
                                    switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 10)) {
                                      case (MR_Integer) 100:
                                        if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".analysis_date"))
                                          case_num_6 = (MR_Integer) 4;
                                        break;
                                      case (MR_Integer) 115:
                                        if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".analysis_status"))
                                          case_num_6 = (MR_Integer) 5;
                                        break;
                                    }
                                    break;
                                }
                              break;
                          }
                          break;
                        case (MR_Integer) 98:
                          if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".bat"))
                            case_num_6 = (MR_Integer) 6;
                          break;
                        case (MR_Integer) 99:
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) {
                            case (MR_Integer) 0:
                              case_num_6 = (MR_Integer) 7;
                              break;
                            case (MR_Integer) 95:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".c_date"))
                                case_num_6 = (MR_Integer) 8;
                              break;
                            case (MR_Integer) 108:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".class"))
                                case_num_6 = (MR_Integer) 9;
                              break;
                            case (MR_Integer) 115:
                              switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) {
                                case (MR_Integer) 0:
                                  case_num_6 = (MR_Integer) 10;
                                  break;
                                case (MR_Integer) 95:
                                  if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".cs_date"))
                                    case_num_6 = (MR_Integer) 11;
                                  break;
                              }
                              break;
                          }
                          break;
                        case (MR_Integer) 100:
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) {
                            case (MR_Integer) 105:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".dir"))
                                case_num_6 = (MR_Integer) 12;
                              break;
                            case (MR_Integer) 108:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".dll"))
                                case_num_6 = (MR_Integer) 13;
                              break;
                          }
                          break;
                        case (MR_Integer) 105:
                          switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) {
                            case (MR_Integer) 109:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".imdg"))
                                case_num_6 = (MR_Integer) 14;
                              break;
                            case (MR_Integer) 110:
                              if (MR_offset_streq(3, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".init"))
                                case_num_6 = (MR_Integer) 15;
                              break;
                          }
                          break;
                        case (MR_Integer) 106:
                          if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) == (MR_Integer) 97))
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) {
                              case (MR_Integer) 114:
                                if (MR_offset_streq(4, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".jar"))
                                  case_num_6 = (MR_Integer) 16;
                                break;
                              case (MR_Integer) 118:
                                if (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 4)) == (MR_Integer) 97))
                                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 5)) {
                                    case (MR_Integer) 0:
                                      case_num_6 = (MR_Integer) 17;
                                      break;
                                    case (MR_Integer) 95:
                                      if (MR_offset_streq(6, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".java_date"))
                                        case_num_6 = (MR_Integer) 18;
                                      break;
                                  }
                                break;
                            }
                          break;
                        case (MR_Integer) 109:
                          if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".mih"))
                            case_num_6 = (MR_Integer) 19;
                          break;
                        case (MR_Integer) 111:
                          if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) == (MR_Integer) 112)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) == (MR_Integer) 116))))
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 4)) {
                              case (MR_Integer) 0:
                                case_num_6 = (MR_Integer) 20;
                                break;
                              case (MR_Integer) 100:
                                if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".optdate"))
                                  case_num_6 = (MR_Integer) 21;
                                break;
                            }
                          break;
                        case (MR_Integer) 114:
                          if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".request"))
                            case_num_6 = (MR_Integer) 22;
                          break;
                        case (MR_Integer) 116:
                          if (((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) == (MR_Integer) 114)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) == (MR_Integer) 97))))
                            switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 4)) {
                              case (MR_Integer) 99:
                                if (MR_offset_streq(5, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".track_flags"))
                                  case_num_6 = (MR_Integer) 23;
                                break;
                              case (MR_Integer) 110:
                                if (((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 5)) == (MR_Integer) 115)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 6)) == (MR_Integer) 95)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 7)) == (MR_Integer) 111)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 8)) == (MR_Integer) 112)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 9)) == (MR_Integer) 116))))
                                  switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 10)) {
                                    case (MR_Integer) 0:
                                      case_num_6 = (MR_Integer) 24;
                                      break;
                                    case (MR_Integer) 95:
                                      if (MR_offset_streq(11, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".trans_opt_date"))
                                        case_num_6 = (MR_Integer) 25;
                                      break;
                                  }
                                break;
                            }
                          break;
                        case (MR_Integer) 117:
                          if (MR_offset_streq(2, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) ".used"))
                            case_num_6 = (MR_Integer) 26;
                          break;
                      }
                      break;
                    case (MR_Integer) 95:
                      if (((((((((((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 1)) == (MR_Integer) 105)) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 2)) == (MR_Integer) 110)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 3)) == (MR_Integer) 105)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 4)) == (MR_Integer) 116)))) && (((MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 5)) == (MR_Integer) 46))))
                        switch (MR_nth_code_unit(((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73), 6)) {
                          case (MR_Integer) 36:
                            if (MR_offset_streq(7, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) "_init.\044O"))
                              case_num_6 = (MR_Integer) 27;
                            break;
                          case (MR_Integer) 99:
                            if (MR_offset_streq(7, (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, (MR_String) "_init.c"))
                              case_num_6 = (MR_Integer) 28;
                            break;
                        }
                      break;
                  }
                  if ((case_num_6 < (MR_Integer) 0))
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
                  else
                  {
                    // we found a match; look up the results
                    ;
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
                  }
                }
                if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                {
                  {
                    MR_String Var_81;

                    libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 612, &Var_81);
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, Var_81) == 0);
                  }
                  if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                  {
                    {
                      MR_String Var_82;

                      libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 611, &Var_82);
                      (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, Var_82) == 0);
                    }
                    if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                    {
                      {
                        MR_String Var_83;

                        libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 610, &Var_83);
                        (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (strcmp((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__ExtStr_73, Var_83) == 0);
                      }
                      if (!((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded))
                        parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_8_p_0_9(&env);
                    }
                  }
                }
                if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                {
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (Search_11 == (MR_Integer) 0);
                  if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                  {
                    // binary string simple lookup switch
                    ;
                    lo_8 = (MR_Integer) 0;
                    hi_9 = (MR_Integer) 4;
                    do
                    {
                      mid_10 = (((MR_Integer) ((MR_Unsigned) lo_8 + (MR_Unsigned) hi_9)) / (MR_Integer) 2);
                      result_11 = MR_strcmp(ExtStr_61, ((&parse_tree__file_names_vector_common_4[54 + mid_10]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0);
                      if ((result_11 == (MR_Integer) 0))
                      {
                        (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_TRUE;
                        // jump out of search loop
                        ;
                        goto label_1;
                      }
                      else
                      if ((result_11 < (MR_Integer) 0))
                        hi_9 = (MR_Integer) ((MR_Unsigned) mid_10 - (MR_Unsigned) 1);
                      else
                        lo_8 = (MR_Integer) ((MR_Unsigned) mid_10 + (MR_Unsigned) 1);
                    }
                    while ((lo_8 <= hi_9));
                    (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = MR_FALSE;
                  label_1:;
                  }
                  (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = !((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded);
                }
              }
              if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
              {
                MR_String Grade_62;
                MR_String TargetArch_63;
                MR_Word Var_68;
                MR_Word Var_69;
                MR_Word Var_70;
                MR_Word Components_88;
                MR_Word Var_89;
                MR_String Var_90;

                libs__compute_grade__grade_directory_component_2_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, &Grade_62);
                libs__globals__lookup_string_option_3_p_0((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__Globals_9, (MR_Integer) 703, &TargetArch_63);
                {
                  Var_70 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_70, 0) = ((MR_Box) ((MR_String) "Mercury"));
                  MR_hl_field(1, Var_70, 1) = ((MR_Box) (Var_23));
                }
                {
                  Var_69 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_69, 0) = ((MR_Box) (TargetArch_63));
                  MR_hl_field(1, Var_69, 1) = ((MR_Box) (Var_70));
                }
                {
                  Var_68 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_68, 0) = ((MR_Box) (Grade_62));
                  MR_hl_field(1, Var_68, 1) = ((MR_Box) (Var_69));
                }
                {
                  MR_Word base;
                  base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  *DirComponents_15 = base;
                  MR_hl_field(1, base, 0) = ((MR_Box) ((MR_String) "Mercury"));
                  MR_hl_field(1, base, 1) = ((MR_Box) (Var_68));
                }
                Var_90 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_14, ExtStr_61);
                {
                  Var_89 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                  MR_hl_field(1, Var_89, 0) = ((MR_Box) (Var_90));
                  MR_hl_field(1, Var_89, 1) = ((MR_Box) ((MR_Unsigned) 0U));
                }
                Components_88 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), *DirComponents_15, Var_89);
                *FileName_16 = mercury__dir__relative_path_name_from_components_1_f_0(Components_88);
              }
              else
              {
                (env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded = (UseSubdirs_60 == (MR_Integer) 1);
                if ((env).parse_tree__file_names__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_104_111_111_115_101_95_102_105_108_101_95_110_97_109_101_95_95_91_50_93_95_48_95_56_95_112_95_48_95_101_110_118_95_48__succeeded)
                  {
                    MR_Word base;
                    base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
                    *DirComponents_15 = base;
                    MR_hl_field(1, base, 0) = ((MR_Box) ((MR_String) "Mercury"));
                    MR_hl_field(1, base, 1) = ((MR_Box) (Var_23));
                  }
                else
                  *DirComponents_15 = Var_23;
                *FileName_16 = parse_tree__file_names__glue_dir_names_file_name_3_f_0(*DirComponents_15, BaseNameNoExt_14, ExtStr_61);
              }
            }
          }
          break;
      }
  }
}

static MR_String MR_CALL 
parse_tree__file_names__glue_dir_names_file_name_3_f_0(
  MR_Word DirComponents_5,
  MR_String BaseNameNoExt_6,
  MR_String ExtStr_7)
{
  MR_String FileName_8;

  if ((DirComponents_5 == (MR_Word) ((MR_Unsigned) 0U)))
    FileName_8 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_6, ExtStr_7);
  else
  {
    MR_Word Components_11;
    MR_Word Var_12;
    MR_String Var_13;

    Var_13 = mercury__string__f_43_43_2_f_0(BaseNameNoExt_6, ExtStr_7);
    {
      Var_12 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_12, 0) = ((MR_Box) (Var_13));
      MR_hl_field(1, Var_12, 1) = ((MR_Box) ((MR_Unsigned) 0U));
    }
    Components_11 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), DirComponents_5, Var_12);
    FileName_8 = mercury__dir__relative_path_name_from_components_1_f_0(Components_11);
  }
  return FileName_8;
}

static void MR_CALL 
parse_tree__file_names__maybe_create_dirs_on_path_4_p_0(
  MR_Word MkDir_5,
  MR_Word DirComponents_6)
{
  MR_bool succeeded;

  if (!((DirComponents_6 == (MR_Word) ((MR_Unsigned) 0U))))
    switch (MkDir_5) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_String DirName_10;
          MR_Word MadeDirs0_11;

          DirName_10 = mercury__dir__relative_path_name_from_components_1_f_0(DirComponents_6);
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0

	MR_Word X;

		{
X = parse_tree__file_names__mutable_variable_made_dirs;


		;}
#undef MR_PROC_LABEL
	MadeDirs0_11  = X;
}
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
          succeeded = mercury__set_tree234__contains_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MadeDirs0_11, ((MR_Box) (DirName_10)));
          if (!(succeeded))
          {
            MR_Word MadeDirs_14;
            MR_Word Var_13;

            mercury__dir__make_directory_4_p_0(DirName_10, &Var_13);
            mercury__set_tree234__insert_3_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), ((MR_Box) (DirName_10)), MadeDirs0_11, &MadeDirs_14);
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_LOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0

	MR_Word X;

	X = MadeDirs_14 ;
		{
parse_tree__file_names__mutable_variable_made_dirs = X;


		;}
#undef MR_PROC_LABEL
}
{
#define MR_PROC_LABEL parse_tree__file_names__maybe_create_dirs_on_path_4_p_0


		{
#ifdef MR_THREAD_SAFE
  MR_UNLOCK(&parse_tree__file_names__mutable_variable_made_dirs_lock, "parse_tree__file_names__mutable_variable_made_dirs_lock");
#endif


		;}
#undef MR_PROC_LABEL
}
          }
        }
        break;
      case (MR_Integer) 1:
        {
        }
        break;
    }
}

void MR_CALL 
parse_tree__file_names__module_name_to_source_file_name_4_p_0(
  MR_Word ModuleName_5,
  MR_String * SourceFileName_6)
{
  MR_Word MaybeFileName_8;

  parse_tree__source_file_map__lookup_module_source_file_4_p_0(ModuleName_5, &MaybeFileName_8);
  if ((MaybeFileName_8 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    MR_String Var_13;

    Var_13 = parse_tree__source_file_map__default_source_file_name_1_f_0(ModuleName_5);
    *SourceFileName_6 = mercury__string__f_43_43_2_f_0((MR_String) "Mercury/.missing.", Var_13);
  }
  else
    *SourceFileName_6 = ((MR_String) ((MR_hl_field(1, MaybeFileName_8, (MR_Integer) 0))));
}

MR_Word MR_CALL 
parse_tree__file_names__make_module_dep_file_extension_0_f_0(void)
{
  return (MR_Word) (((MR_Box) ((MR_String) ".module_dep")));
}

MR_String MR_CALL 
parse_tree__file_names__extension_to_string_3_f_0(
  MR_Word Globals_5,
  MR_Word Ext_6,
  MR_Word NewExt_7)
{
  MR_bool succeeded;
  MR_String ExtStr_8;

  if ((Ext_6 == (MR_Word) ((MR_Unsigned) 0U)))
    ExtStr_8 = (MR_String) ".m";
  else
  {
    MR_Word OtherExt_40 = ((MR_Word) ((MR_hl_field(1, Ext_6, (MR_Integer) 0))));

    ExtStr_8 = (MR_String) (OtherExt_40);
  }
  succeeded = !((mercury_envvar_NO_EXT_CHECKS != (MR_Integer) 0));
  if (succeeded)
  {
    MR_String NewExtStr_10;

    NewExtStr_10 = parse_tree__file_names__newext_to_string_2_f_0(Globals_5, NewExt_7);
    succeeded = (strcmp(ExtStr_8, NewExtStr_10) == 0);
    if (!(succeeded))
    {
      MR_String ExtRawStr_11;
      MR_String NewExtRawStr_12;
      MR_String Msg_13;
      MR_String Var_29;
      MR_String Var_31;
      MR_String Var_32;
      MR_String Var_34;
      MR_String Var_35;
      MR_String Var_37;
      MR_String Var_38;

      ExtRawStr_11 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0), ((MR_Box) (Ext_6)));
      NewExtRawStr_12 = mercury__string__string_1_f_0((MR_Word) (&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0), ((MR_Box) (NewExt_7)));
      Var_29 = mercury__string__f_43_43_2_f_0(NewExtStr_10, (MR_String) "\n");
      Var_31 = mercury__string__f_43_43_2_f_0((MR_String) " vs ", Var_29);
      Var_32 = mercury__string__f_43_43_2_f_0(ExtStr_8, Var_31);
      Var_34 = mercury__string__f_43_43_2_f_0((MR_String) ": ", Var_32);
      Var_35 = mercury__string__f_43_43_2_f_0(NewExtRawStr_12, Var_34);
      Var_37 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_35);
      Var_38 = mercury__string__f_43_43_2_f_0(ExtRawStr_11, Var_37);
      Msg_13 = mercury__string__f_43_43_2_f_0((MR_String) "EXT_TO_STRING MISMATCH for ", Var_38);
      mercury__require__unexpected_2_p_0((MR_String) "function \140parse_tree.file_names.extension_to_string\'/3", Msg_13);
    }
  }
  return ExtStr_8;
}

static MR_String MR_CALL 
parse_tree__file_names__newext_to_string_2_f_0(
  MR_Word Globals_4,
  MR_Word Ext_5)
{
  MR_String ExtStr_6;

  switch (MR_tag((MR_Word) Ext_5)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      ExtStr_6 = (MR_String) ".m";
      break;
    case (MR_Integer) 1:
      {
        MR_Word ExtInt_7 = ((MR_Unsigned) ((MR_hl_field(1, Ext_5, (MR_Integer) 0))) & (MR_Integer) 7);

        ExtStr_6 = ((&parse_tree__file_names_vector_common_4[5 + ExtInt_7]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word ExtOpt_9 = ((MR_Unsigned) ((MR_hl_field(2, Ext_5, (MR_Integer) 0))) & (MR_Integer) 3);

        ExtStr_6 = ((&parse_tree__file_names_vector_common_4[34 + ExtOpt_9]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, Ext_5, (MR_Integer) 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          ExtStr_6 = (MR_String) ".mh";
          break;
        case (MR_Integer) 1:
          ExtStr_6 = (MR_String) ".mih";
          break;
        case (MR_Integer) 2:
          {
            MR_Word ExtCCs_11 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 1);

            switch (ExtCCs_11) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".c";
                break;
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".cs";
                break;
            }
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word ExtJava_12 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 1);

            switch (ExtJava_12) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".class";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".java";
                break;
            }
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word ExtTargetDate_14 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 3);

            switch (ExtTargetDate_14) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".c_date";
                break;
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".cs_date";
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) ".java_date";
                break;
            }
          }
          break;
        case (MR_Integer) 5:
          {
            MR_Word ExtObj_15 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 7);

            switch (ExtObj_15) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".\044(EXT_FOR_PIC_OBJECTS)";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".\044O";
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) ".o";
                break;
              case (MR_Integer) 4:
                libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 559, &ExtStr_6);
                break;
              case (MR_Integer) 3:
                ExtStr_6 = (MR_String) ".pic_o";
                break;
              case (MR_Integer) 5:
                libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 560, &ExtStr_6);
                break;
            }
          }
          break;
        case (MR_Integer) 6:
          ExtStr_6 = (MR_String) "_init.c";
          break;
        case (MR_Integer) 7:
          {
            MR_Word ExtInitObj_17 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 7);

            switch (ExtInitObj_17) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) "_init.\044O";
                break;
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) "_init.o";
                break;
              case (MR_Integer) 3:
                {
                  MR_String ExtStr0_84;

                  libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 559, &ExtStr0_84);
                  ExtStr_6 = mercury__string__f_43_43_2_f_0((MR_String) "_init", ExtStr0_84);
                }
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) "_init.pic_o";
                break;
              case (MR_Integer) 4:
                {
                  MR_String ExtStr0_89;

                  libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 560, &ExtStr0_89);
                  ExtStr_6 = mercury__string__f_43_43_2_f_0((MR_String) "_init", ExtStr0_89);
                }
                break;
            }
          }
          break;
        case (MR_Integer) 8:
          ExtStr_6 = (MR_String) ".exe";
          break;
        case (MR_Integer) 9:
          {
            MR_Word ExtExecGs_19 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 3);

            switch (ExtExecGs_19) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 2:
                libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 612, &ExtStr_6);
                break;
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".bat";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) "";
                break;
            }
          }
          break;
        case (MR_Integer) 10:
          {
            MR_Word ExtLib_20 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 3);

            switch (ExtLib_20) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".\044(EXT_FOR_SHARED_LIB)";
                break;
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".lib";
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) ".so";
                break;
            }
          }
          break;
        case (MR_Integer) 11:
          {
            MR_Word ExtLibGs_21 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 7);

            switch (ExtLibGs_21) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".a";
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) ".dll";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".\044A";
                break;
              case (MR_Integer) 3:
                ExtStr_6 = (MR_String) ".init";
                break;
              case (MR_Integer) 4:
                ExtStr_6 = (MR_String) ".jar";
                break;
              case (MR_Integer) 5:
                libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 611, &ExtStr_6);
                break;
              case (MR_Integer) 6:
                libs__globals__lookup_string_option_3_p_0(Globals_4, (MR_Integer) 610, &ExtStr_6);
                break;
            }
          }
          break;
        case (MR_Integer) 12:
          {
            MR_Word ExtMf_22 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 3);

            ExtStr_6 = ((&parse_tree__file_names_vector_common_4[12 + ExtMf_22]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
          }
          break;
        case (MR_Integer) 13:
          {
            MR_Word ExtMT_23 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 31);

            ExtStr_6 = ((&parse_tree__file_names_vector_common_4[16 + ExtMT_23]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
          }
          break;
        case (MR_Integer) 14:
          {
            MR_Word ExtUser_24 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 7);

            ExtStr_6 = ((&parse_tree__file_names_vector_common_4[38 + ExtUser_24]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
          }
          break;
        case (MR_Integer) 15:
          {
            MR_Word ExtUserNgs_25 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 15);

            ExtStr_6 = ((&parse_tree__file_names_vector_common_4[44 + ExtUserNgs_25]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
          }
          break;
        case (MR_Integer) 16:
          {
            MR_Word ExtAn_26 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 7);

            ExtStr_6 = ((&parse_tree__file_names_vector_common_4[0 + ExtAn_26]))->parse_tree__file_names__vector_common_type_4_0__vct_4_f_0;
          }
          break;
        case (MR_Integer) 17:
          {
            MR_Word ExtByte_27 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 1);

            switch (ExtByte_27) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".bytedebug";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".mbc";
                break;
            }
          }
          break;
        case (MR_Integer) 18:
          {
            MR_Word ExtMiscNgs_28 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 3);

            switch (ExtMiscNgs_28) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".err_date";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".module_dep";
                break;
              case (MR_Integer) 2:
                ExtStr_6 = (MR_String) ".prof";
                break;
            }
          }
          break;
        case (MR_Integer) 19:
          {
            MR_Word ExtMiscGs_29 = ((MR_Unsigned) ((MR_hl_field(3, Ext_5, (MR_Integer) 1))) & (MR_Integer) 1);

            switch (ExtMiscGs_29) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                ExtStr_6 = (MR_String) ".track_flags";
                break;
              case (MR_Integer) 0:
                ExtStr_6 = (MR_String) ".used";
                break;
            }
          }
          break;
        case (MR_Integer) 20:
          mercury__require__unexpected_2_p_0((MR_String) "function \140parse_tree.file_names.newext_to_string\'/2", (MR_String) "newext_other");
          break;
      }
      break;
  }
  return ExtStr_6;
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____count_sum_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____count_sum_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____count_sum_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____count_sum_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_analysis_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_analysis_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_analysis_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_analysis_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_bytecode_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_bytecode_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_bytecode_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_bytecode_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_exec_0_0();
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_exec_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_exec_0_0(&conv0_HeadVar__1_1);
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_exec_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_exec_gs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_exec_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_exec_gs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_c_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_init_c_0_0();
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_init_c_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_init_c_0_0(&conv0_HeadVar__1_1);
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_init_obj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_init_obj_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_init_obj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_init_obj_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_int_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_int_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_int_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_int_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_lib_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_lib_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_lib_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_lib_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_lib_gs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_lib_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_lib_gs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mh_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_mh_0_0();
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_mh_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_mh_0_0(&conv0_HeadVar__1_1);
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mih_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_mih_0_0();
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_mih_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_mih_0_0(&conv0_HeadVar__1_1);
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_gs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_misc_gs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_misc_gs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_misc_gs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_misc_ngs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_misc_ngs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_misc_ngs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_misc_ngs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_fragment_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_mmake_fragment_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_fragment_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_mmake_fragment_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_mmake_target_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_mmake_target_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_mmake_target_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_mmake_target_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_obj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_obj_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_obj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_obj_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_opt_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_opt_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_opt_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_opt_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_c_cs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_target_c_cs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_c_cs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_target_c_cs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_date_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_target_date_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_date_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_target_date_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_target_java_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_target_java_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_target_java_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_target_java_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_user_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_user_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_user_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____ext_user_ngs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____ext_user_ngs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____ext_user_ngs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____ext_user_ngs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_create_dirs_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____maybe_create_dirs_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____maybe_create_dirs_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____maybe_create_dirs_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____maybe_search_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____maybe_search_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____maybe_search_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____maybe_search_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____newext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____newext_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____newext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____newext_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____other_ext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____other_ext_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____other_ext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____other_ext_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____other_newext_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____other_newext_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____other_newext_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____other_newext_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_key_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____record_key_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____record_key_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____record_key_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
parse_tree__file_names____Unify____record_value_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = parse_tree__file_names____Unify____record_value_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
parse_tree__file_names____Compare____record_value_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  parse_tree__file_names____Compare____record_value_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

void mercury__parse_tree__file_names__init(void)
{
}

void mercury__parse_tree__file_names__init_type_tables(void)
{
	static MR_bool initialised = MR_FALSE;
	if (initialised) return;
	initialised = MR_TRUE;

	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_count_sum_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_analysis_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_bytecode_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_exec_gs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_c_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_init_obj_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_int_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_lib_gs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mh_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mih_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_gs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_misc_ngs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_fragment_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_mmake_target_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_obj_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_opt_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_c_cs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_date_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_target_java_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_ext_user_ngs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_create_dirs_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_maybe_search_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_newext_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_ext_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_other_newext_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_key_0);
	MR_register_type_ctor_info(&parse_tree__file_names__parse_tree__file_names__type_ctor_info_record_value_0);
}

void mercury__parse_tree__file_names__init_debugger(void)
{
	MR_fatal_error("debugger initialization in MLDS grade");
}

void mercury__parse_tree__file_names__required_init(void)
{
	parse_tree__file_names__user_init_pred_141_0();
	parse_tree__file_names__user_init_pred_300_0();
	parse_tree__file_names__user_init_pred_303_0();
	parse_tree__file_names__user_init_pred_304_0();
}

// Ensure everything is compiled with the same grade.
const char *mercury__parse_tree__file_names__grade_check(void)
{
    return &MR_GRADE_VAR;
}

// :- end_module parse_tree.file_names.
