#include "run-time.h"

/* Typedefs for referenced classes */

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(3);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(4);
define__KLsimple_object_vectorGVKd(8);
define__KLsimple_object_vectorGVKd(0);

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
} _KLstack_overflow_errorGVKe;

typedef struct {
  D wrapper;
  D handler_type_;
  D handler_function_;
  D handler_test_;
  D handler_init_arguments_;
} _KLhandlerGVKi;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
  D condition_macro_name_;
} _KLinfinite_aux_rule_recursion_match_errorGVdfmc_macro_expander;

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(25);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(16);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(12);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(10);

#define  define__KLsimple_closure_methodGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D xep_; \
    D function_signature_; \
    D mep_; \
    D environment_size_; \
    D environment_element_[nrepeated+1]; \
  } _KLsimple_closure_methodGVKi_##nrepeated;
define__KLsimple_closure_methodGVKi(0);

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D fragment_record_;
  D fragment_source_position_;
} _KLfragmentGVdfmc_reader;

typedef struct {
  D wrapper;
  D class_properties_;
  D iclass_class_;
  D class_mm_wrapper_;
  D repeated_slot_descriptor_;
  D instance_slot_descriptors_;
  D iclass_dispatch_key_;
  D class_constructor_;
  D direct_superclasses_;
  D class_rcpl_vector_;
  D class_rcpl_position_;
  D class_rcpl_other_positions_;
  D class_known_joint_;
  D iclass_dependent_generics_;
  D iclass_subclass_dependent_generics_;
  D direct_subclasses_;
  D direct_methods_;
  D direct_slot_descriptors_;
  D slot_descriptors_;
  D direct_inherited_slot_descriptors_;
  D direct_initialization_argument_descriptors_;
  D class_slot_descriptors_;
  D defaulted_initialization_arguments_slot_;
  D class_slot_storage_;
} _KLimplementation_classGVKe;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLempty_listGVKd;

typedef struct {
  D wrapper;
  D slot_descriptor_properties_;
  D init_data_slot_;
  D slot_owner_;
  D init_keyword_;
  D slot_getter_;
  D slot_setter_;
  D slot_type_;
} _KLinstance_slot_descriptorGVKe;

typedef struct {
  D wrapper;
} _KLstringGVKd;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLpairGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D method_slot_descriptor_;
} _KLgetter_methodGVKi;

typedef struct {
  D wrapper;
} _KLintegerGVKd;

typedef struct {
  D wrapper;
  D xep_;
} _KLfunctionGVKd;

typedef struct {
  D wrapper;
} _KLsequenceGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
  D signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D namespace_name_;
  D home_library_;
} _KLmoduleGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D singleton_object_;
} _KLsingletonGVKd;


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D macro_word_class_;
  D macro_expander_function_;
  D macro_referenced_names_;
} _KLmacro_descriptorGVdfmc_macro_expander;

typedef struct {
  D wrapper;
  D macro_word_class_;
  D macro_expander_function_;
  D macro_referenced_names_;
  D macro_suffix_;
} _KLsuffixed_macro_descriptorGVdfmc_macro_expander;

typedef struct {
  D wrapper;
  D macro_word_class_;
  D macro_expander_function_;
  D macro_referenced_names_;
} _KLsimple_macro_descriptorGVdfmc_macro_expander;


/* Referenced object declarations */

D KPadd_classVKeI (D);
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLsymbolGVKd KJtype_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLstack_overflow_errorGVKe;
extern _KLmm_wrapperGVKi_0 KLstack_overflow_errorGVKeW;
extern _KLsymbolGVKd KJfunction_;
extern _KLsymbolGVKd KJtest_;
extern _KLsymbolGVKd KJinit_arguments_;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
D KLhandlerGZ32ZconstructorVKiMM0I (D, D, D, D, D, D);
extern _KLclassGVKd KLhandlerGVKi;
extern _KLmm_wrapperGVKi_0 KLhandlerGVKiW;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLsealed_generic_functionGVKe Kfragment_source_locationVdfmc_reader;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsealed_generic_functionGVKe Kfragment_macroVdfmc_reader;
extern _KLincremental_generic_functionGVKe KnoteVdfmc_conditions;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLclassGVKd KLinfinite_aux_rule_recursion_match_errorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLinfinite_aux_rule_recursion_match_errorGVdfmc_macro_expanderW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLfragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLfragmentGVdfmc_readerW;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLstringGVKd;
extern _KLmm_wrapperGVKi_0 KLstringGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLpairGVKd;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
D KerrorVKdMM1I (D, D);
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLclassGVKd KLsequenceGVKd;
extern _KLmm_wrapperGVKi_0 KLsequenceGVKdW;
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LfunctionG_typesVKi;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLmoduleGVKe Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLincremental_generic_functionGVKe KsizeVKd;
extern _KLincremental_generic_functionGVKe KLVKd;
extern _KLincremental_generic_functionGVKe K_VKd;
D Kcopy_sequenceVKdMM3I (D, D, D, D);
D KmakeVKdMM56I (D, D, D);
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
extern _KLincremental_generic_functionGVKe Kas_lowercaseVKd;
extern _KLincremental_generic_functionGVKe KelementVKd;
D KEEVKdI (D, D);
extern _KLincremental_generic_functionGVKe KAVKd;
extern _KLincremental_generic_functionGVKe KEVKd;
extern _KLkeyword_methodGVKe Kdefault_class_constructorVKi;
D Kclass_instanceQ_rcpl_single_smallVKiI (D, D);
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kunion_instanceQVKiI (D, D);
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
extern D Tcurrent_handlersTVKi;

/* Defined object declarations */

extern _KLclassGVKd KLmacro_descriptorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLmacro_descriptorGVdfmc_macro_expanderW;
extern _KLsimple_methodGVKe Kexpand_macro_callVdfmc_macro_expander;
D Kexpand_macro_callVdfmc_macro_expanderI (D, D);
static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF7;
static D KUhandler_functionUF7I (D, D);
static _KLsymbolGVKd KJsource_location_;
static _KLsymbolGVKd KJmacro_name_;
static _KLbyte_stringGVKd_10 K10;
static _KLbyte_stringGVKd_15 K11;
static _KLsignatureGVKe K12;
static _KLsimple_object_vectorGVKd_2 K13;
static _KLsignatureGVKe K14;
static _KLsimple_object_vectorGVKd_2 K15;
extern _KLclassGVKd KLsuffixed_macro_descriptorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLsuffixed_macro_descriptorGVdfmc_macro_expanderW;
static _KLimplementation_classGVKe K18;
static _KLsimple_object_vectorGVKd_4 K19;
extern _KLkeyword_methodGVKe KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0;
D KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I (D, D, D, D, D, D);
static _KLsimple_object_vectorGVKd_1 K22;
static _KLsimple_object_vectorGVKd_6 K23;
static _KLsimple_object_vectorGVKd_1 K24;
extern _KLinstance_slot_descriptorGVKe Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG;
static _KLsymbolGVKd KJsuffix_;
extern _KLsealed_generic_functionGVKe Kmacro_suffixVdfmc_macro_expander;
extern _KLgetter_methodGVKi Kmacro_suffixVdfmc_macro_expanderMM0;
static _KLpairGVKd K29;
static _KLbyte_stringGVKd_12 K30;
static _KLbyte_stringGVKd_6 K31;
static _KLsymbolGVKd KJword_class_;
static _KLbyte_stringGVKd_23 K33;
static _KLsymbolGVKd KJexpander_function_;
static _KLbyte_stringGVKd_17 K35;
static _KLbyte_stringGVKd_10 K36;
static _KLkeyword_signatureAvaluesGVKi K37;
static _KLsimple_object_vectorGVKd_8 K38;
static _KLsymbolGVKd KJreferenced_names_;
static _KLbyte_stringGVKd_16 K40;
static _KLsimple_object_vectorGVKd_4 K41;
static _KLsimple_object_vectorGVKd_1 K42;
extern _KLinstance_slot_descriptorGVKe Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG;
extern _KLinstance_slot_descriptorGVKe Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG;
extern _KLinstance_slot_descriptorGVKe Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG;
extern _KLsealed_generic_functionGVKe Kmacro_referenced_namesVdfmc_macro_expander;
extern _KLgetter_methodGVKi Kmacro_referenced_namesVdfmc_macro_expanderMM0;
static _KLpairGVKd K48;
static _KLbyte_stringGVKd_22 K49;
extern _KLsealed_generic_functionGVKe Kmacro_expander_functionVdfmc_macro_expander;
extern _KLgetter_methodGVKi Kmacro_expander_functionVdfmc_macro_expanderMM0;
static _KLpairGVKd K52;
static _KLsignatureAvaluesGVKi K53;
static _KLbyte_stringGVKd_23 K54;
extern _KLsealed_generic_functionGVKe Kmacro_word_classVdfmc_macro_expander;
extern _KLgetter_methodGVKi Kmacro_word_classVdfmc_macro_expanderMM0;
static _KLpairGVKd K57;
static _KLbyte_stringGVKd_16 K58;
static _KLbyte_stringGVKd_27 K59;
extern _KLclassGVKd KLsimple_macro_descriptorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLsimple_macro_descriptorGVdfmc_macro_expanderW;
static _KLimplementation_classGVKe K62;
static _KLsimple_object_vectorGVKd_3 K63;
extern _KLkeyword_methodGVKe KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0;
D KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I (D, D, D, D, D);
static _KLsimple_object_vectorGVKd_6 K66;
static _KLkeyword_signatureAvaluesGVKi K67;
static _KLsimple_object_vectorGVKd_6 K68;
static _KLsimple_object_vectorGVKd_3 K69;
static _KLsimple_object_vectorGVKd_1 K70;
static _KLbyte_stringGVKd_25 K71;
extern _KLsealed_generic_functionGVKe Kmacro_word_in_variable_nameVdfmc_macro_expander;
extern _KLsimple_methodGVKe Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0;
D Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0I (D, D);
extern _KLsimple_methodGVKe Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1;
D Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1I (D, D);
static _KLpairGVKd K77;
static _KLpairGVKd K78;
static _KLsignatureAvaluesGVKi K79;
static _KLbyte_stringGVKd_27 K80;
static _KLsimple_object_vectorGVKd_2 K81;
static _KLsimple_object_vectorGVKd_2 K82;
D Ksuffixed_nameQVdfmc_macro_expanderMM0I (D, D);
extern _KLsimple_methodGVKe Kcompare_suffix_insensitivelyVdfmc_macro_expander;
D Kcompare_suffix_insensitivelyVdfmc_macro_expanderI (D, D, D);
static _KLsignatureGVKe K86;
static _KLsimple_object_vectorGVKd_3 K87;
static _KLsignatureAvaluesGVKi K88;
static _KLsimple_object_vectorGVKd_2 K89;
static _KLimplementation_classGVKe K90;
static _KLsimple_object_vectorGVKd_1 K91;
static _KLsimple_object_vectorGVKd_6 K92;
static _KLbyte_stringGVKd_18 K93;
extern _KLsimple_methodGVKe Ksuffixed_nameQVdfmc_macro_expanderMM0;
static _KLsignatureAvaluesGVKi K95;
static _KLsimple_object_vectorGVKd_2 K96;
static _KLsimple_object_vectorGVKd_1 K97;
static _KLunionGVKe K98;
static _KLsingletonGVKd K99;
static _KLpairGVKd K100;
static _KLpairGVKd K101;

/* Indirection variables */

static D IKJsource_location_ = &KJsource_location_;
static D IKJmacro_name_ = &KJmacro_name_;
static D IKJsuffix_ = &KJsuffix_;
static D IKJword_class_ = &KJword_class_;
static D IKJexpander_function_ = &KJexpander_function_;
static D IKJreferenced_names_ = &KJreferenced_names_;

/* Variables */

D suffixed_nameQVdfmc_macro_expander = &Ksuffixed_nameQVdfmc_macro_expanderMM0;
D macro_referenced_namesVdfmc_macro_expander = &Kmacro_referenced_namesVdfmc_macro_expander;
D Lmacro_descriptorGVdfmc_macro_expander = &KLmacro_descriptorGVdfmc_macro_expander;
D macro_word_in_variable_nameVdfmc_macro_expander = &Kmacro_word_in_variable_nameVdfmc_macro_expander;
D macro_expander_functionVdfmc_macro_expander = &Kmacro_expander_functionVdfmc_macro_expander;
D Lsimple_macro_descriptorGVdfmc_macro_expander = &KLsimple_macro_descriptorGVdfmc_macro_expander;
D Lsuffixed_macro_descriptorGVdfmc_macro_expander = &KLsuffixed_macro_descriptorGVdfmc_macro_expander;
D expand_macro_callVdfmc_macro_expander = &Kexpand_macro_callVdfmc_macro_expander;

/* Objects */

_KLclassGVKd KLmacro_descriptorGVdfmc_macro_expander = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_rcpl_single_smallVKiI,
  &K93,
  &K90,
  (D) 1,
  &Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander
};

_KLmm_wrapperGVKi_0 KLmacro_descriptorGVdfmc_macro_expanderW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K90,
  (D) 1,
  13,
  33554439,
  (D) 1
};

_KLsimple_methodGVKe Kexpand_macro_callVdfmc_macro_expander = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K14,
  &Kexpand_macro_callVdfmc_macro_expanderI
};

static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF7 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K12,
  &KUhandler_functionUF7I,
  (D) 1
};

static _KLsymbolGVKd KJsource_location_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K11
};

static _KLsymbolGVKd KJmacro_name_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K10
};

static _KLbyte_stringGVKd_10 K10 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "macro-name"
};

static _KLbyte_stringGVKd_15 K11 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "source-location"
};

static _KLsignatureGVKe K12 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040201,
  &K13
};

static _KLsimple_object_vectorGVKd_2 K13 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLstack_overflow_errorGVKe,
  &KLobjectGVKd
};

static _KLsignatureGVKe K14 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040201,
  &K15
};

static _KLsimple_object_vectorGVKd_2 K15 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KLfragmentGVdfmc_reader
};

_KLclassGVKd KLsuffixed_macro_descriptorGVdfmc_macro_expander = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K59,
  &K18,
  (D) 1,
  &Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander
};

_KLmm_wrapperGVKi_0 KLsuffixed_macro_descriptorGVdfmc_macro_expanderW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K18,
  (D) 1,
  17,
  33554439,
  (D) 1
};

static _KLimplementation_classGVKe K18 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527433745,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expanderW,
  &KPfalseVKi,
  &K19,
  (D) -3,
  &KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0,
  &K22,
  &K23,
  (D) 9,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K24,
  &K19,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_4 K19 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG,
  &Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG,
  &Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG,
  &Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG
};

_KLkeyword_methodGVKe KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_6,
  &K37,
  &key_mep_2,
  &KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I,
  &K38
};

static _KLsimple_object_vectorGVKd_1 K22 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLmacro_descriptorGVdfmc_macro_expander
};

static _KLsimple_object_vectorGVKd_6 K23 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_1 K24 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG
};

_KLinstance_slot_descriptorGVKe Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander,
  &KJsuffix_,
  &Kmacro_suffixVdfmc_macro_expander,
  &KPfalseVKi,
  &KLstringGVKd
};

static _KLsymbolGVKd KJsuffix_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K31
};

_KLsealed_generic_functionGVKe Kmacro_suffixVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K30,
  &K29,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kmacro_suffixVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG
};

static _KLpairGVKd K29 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_suffixVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_12 K30 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "macro-suffix"
};

static _KLbyte_stringGVKd_6 K31 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 25,
  "suffix"
};

static _KLsymbolGVKd KJword_class_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K36
};

static _KLbyte_stringGVKd_23 K33 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "Missing init keyword %="
};

static _KLsymbolGVKd KJexpander_function_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K35
};

static _KLbyte_stringGVKd_17 K35 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "expander-function"
};

static _KLbyte_stringGVKd_10 K36 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "word-class"
};

static _KLkeyword_signatureAvaluesGVKi K37 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K41,
  &KDsignature_LobjectG_typesVKi,
  &K42
};

static _KLsimple_object_vectorGVKd_8 K38 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 33,
  &KJword_class_,
  &KPunboundVKi,
  &KJexpander_function_,
  &KPunboundVKi,
  &KJreferenced_names_,
  &KPempty_listVKi,
  &KJsuffix_,
  &KPunboundVKi
};

static _KLsymbolGVKd KJreferenced_names_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K40
};

static _KLbyte_stringGVKd_16 K40 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 65,
  "referenced-names"
};

static _KLsimple_object_vectorGVKd_4 K41 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJword_class_,
  &KJexpander_function_,
  &KJreferenced_names_,
  &KJsuffix_
};

static _KLsimple_object_vectorGVKd_1 K42 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander
};

_KLinstance_slot_descriptorGVKe Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KJword_class_,
  &Kmacro_word_classVdfmc_macro_expander,
  &KPfalseVKi,
  &KLintegerGVKd
};

_KLinstance_slot_descriptorGVKe Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KJexpander_function_,
  &Kmacro_expander_functionVdfmc_macro_expander,
  &KPfalseVKi,
  &KLfunctionGVKd
};

_KLinstance_slot_descriptorGVKe Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 157,
  &KPempty_listVKi,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KJreferenced_names_,
  &Kmacro_referenced_namesVdfmc_macro_expander,
  &KPfalseVKi,
  &KLsequenceGVKd
};

_KLsealed_generic_functionGVKe Kmacro_referenced_namesVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K49,
  &K48,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kmacro_referenced_namesVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG
};

static _KLpairGVKd K48 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_referenced_namesVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_22 K49 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 89,
  "macro-referenced-names"
};

_KLsealed_generic_functionGVKe Kmacro_expander_functionVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K53,
  &KPfalseVKi,
  &K54,
  &K52,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kmacro_expander_functionVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG
};

static _KLpairGVKd K52 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_expander_functionVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K53 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K22,
  &KDsignature_LfunctionG_typesVKi
};

static _KLbyte_stringGVKd_23 K54 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "macro-expander-function"
};

_KLsealed_generic_functionGVKe Kmacro_word_classVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K58,
  &K57,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kmacro_word_classVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG
};

static _KLpairGVKd K57 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_word_classVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_16 K58 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 65,
  "macro-word-class"
};

static _KLbyte_stringGVKd_27 K59 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "<suffixed-macro-descriptor>"
};

_KLclassGVKd KLsimple_macro_descriptorGVdfmc_macro_expander = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K71,
  &K62,
  (D) 1,
  &Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander
};

_KLmm_wrapperGVKi_0 KLsimple_macro_descriptorGVdfmc_macro_expanderW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K62,
  (D) 1,
  13,
  33554439,
  (D) 1
};

static _KLimplementation_classGVKe K62 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 477102093,
  &KLsimple_macro_descriptorGVdfmc_macro_expander,
  &KLsimple_macro_descriptorGVdfmc_macro_expanderW,
  &KPfalseVKi,
  &K63,
  (D) -3,
  &KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0,
  &K22,
  &K66,
  (D) 9,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K63,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_3 K63 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG,
  &Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG,
  &Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG
};

_KLkeyword_methodGVKe KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K67,
  &key_mep_2,
  &KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I,
  &K68
};

static _KLsimple_object_vectorGVKd_6 K66 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KLsimple_macro_descriptorGVdfmc_macro_expander,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K67 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K69,
  &KDsignature_LobjectG_typesVKi,
  &K70
};

static _KLsimple_object_vectorGVKd_6 K68 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KJword_class_,
  &KPunboundVKi,
  &KJexpander_function_,
  &KPunboundVKi,
  &KJreferenced_names_,
  &KPempty_listVKi
};

static _KLsimple_object_vectorGVKd_3 K69 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KJword_class_,
  &KJexpander_function_,
  &KJreferenced_names_
};

static _KLsimple_object_vectorGVKd_1 K70 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLsimple_macro_descriptorGVdfmc_macro_expander
};

static _KLbyte_stringGVKd_25 K71 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "<simple-macro-descriptor>"
};

_KLsealed_generic_functionGVKe Kmacro_word_in_variable_nameVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K79,
  &KPfalseVKi,
  &K80,
  &K77,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K79,
  &Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K88,
  &Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1I
};

static _KLpairGVKd K77 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0,
  &K78
};

static _KLpairGVKd K78 = {
  &KLpairGVKdW /* wrapper */,
  &Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K79 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33556489,
  &K81,
  &K82
};

static _KLbyte_stringGVKd_27 K80 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "macro-word-in-variable-name"
};

static _KLsimple_object_vectorGVKd_2 K81 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KLsymbolGVKd
};

static _KLsimple_object_vectorGVKd_2 K82 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLsymbolGVKd,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Kcompare_suffix_insensitivelyVdfmc_macro_expander = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K86,
  &Kcompare_suffix_insensitivelyVdfmc_macro_expanderI
};

static _KLsignatureGVKe K86 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040205,
  &K87
};

static _KLsimple_object_vectorGVKd_3 K87 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLstringGVKd,
  &KLstringGVKd,
  &KLintegerGVKd
};

static _KLsignatureAvaluesGVKi K88 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33556489,
  &K89,
  &K82
};

static _KLsimple_object_vectorGVKd_2 K89 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander,
  &KLsymbolGVKd
};

static _KLimplementation_classGVKe K90 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 460587021,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KLmacro_descriptorGVdfmc_macro_expanderW,
  &KPfalseVKi,
  &K63,
  (D) -3,
  &Kdefault_class_constructorVKi,
  &K91,
  &K92,
  (D) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &K100,
  &KPempty_vectorVKi,
  &K63,
  &K63,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_1 K91 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLobjectGVKd
};

static _KLsimple_object_vectorGVKd_6 K92 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLmacro_descriptorGVdfmc_macro_expander,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLbyte_stringGVKd_18 K93 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "<macro-descriptor>"
};

_KLsimple_methodGVKe Ksuffixed_nameQVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K95,
  &Ksuffixed_nameQVdfmc_macro_expanderMM0I
};

static _KLsignatureAvaluesGVKi K95 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K96,
  &K97
};

static _KLsimple_object_vectorGVKd_2 K96 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLsymbolGVKd,
  &KLstringGVKd
};

static _KLsimple_object_vectorGVKd_1 K97 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &K98
};

static _KLunionGVKe K98 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K99,
  &KLsymbolGVKd
};

static _KLsingletonGVKd K99 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KPfalseVKi
};

static _KLpairGVKd K100 = {
  &KLpairGVKdW /* wrapper */,
  &KLsuffixed_macro_descriptorGVdfmc_macro_expander,
  &K101
};

static _KLpairGVKd K101 = {
  &KLpairGVKdW /* wrapper */,
  &KLsimple_macro_descriptorGVdfmc_macro_expander,
  &KPempty_listVKi
};

/* Code */

D Kexpand_macro_callVdfmc_macro_expanderI (D desc_, D f_) {
  volatile D Uunwind_exceptionUPexit_5_;
  volatile D T3;
  volatile D Uoriginal_handlersU_;
  volatile D T5;
  volatile D T6;
  volatile D T7;
  volatile D T8;
  volatile D T9;
  volatile _KLsimple_object_vectorGVKd_8 T10 = {&KLsimple_object_vectorGVKdW, (D) 33};
  volatile D T11_0;
  volatile D T12;
  volatile D T13;
  volatile D T14;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:91
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  ENTER_EXIT_FRAME(Uunwind_exceptionUPexit_5_);
  if (nlx_setjmp(FRAME_DEST(Uunwind_exceptionUPexit_5_))) {
    T9 = FRAME_RETVAL(Uunwind_exceptionUPexit_5_);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    Uoriginal_handlersU_ = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T5 = MAKE_CLOSURE_INITD(&KUhandler_functionUF7, 3, Uoriginal_handlersU_, Uunwind_exceptionUPexit_5_, f_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T10.vector_element_[0] = &KJtype_;
    T10.vector_element_[1] = &KLstack_overflow_errorGVKe;
    T10.vector_element_[2] = &KJfunction_;
    T10.vector_element_[3] = T5;
    T10.vector_element_[4] = &KJtest_;
    T10.vector_element_[5] = &KPfalseVKi;
    T10.vector_element_[6] = &KJinit_arguments_;
    T10.vector_element_[7] = &KPempty_vectorVKi;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T11_0 = KLhandlerGZ32ZconstructorVKiMM0I(&KLhandlerGVKi, &T10, &KLstack_overflow_errorGVKe, T5, &KPfalseVKi, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T12 = T11_0;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T6 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    T13 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    SLOT_VALUE_SETTER(T12, T13, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    SLOT_VALUE_SETTER(T6, T13, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    primitive_write_thread_variable(Tcurrent_handlersTVKi, T13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    ENTER_UNWIND_FRAME(T7);
    if (!nlx_setjmp(FRAME_DEST(T7))) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:94
      T14 = SLOT_VALUE_INITD(desc_, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:94
      T8 = CALL2(T14, &KPfalseVKi, f_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
      FALL_THROUGH_UNWIND(T8);
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    primitive_write_thread_variable(Tcurrent_handlersTVKi, Uoriginal_handlersU_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
    CONTINUE_UNWIND();
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  T9 = T8;
    /* invalidate Uunwind_exceptionUPexit_5_ */
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:91
  return(T9);
}

static D KUhandler_functionUF7I (D UdummyU_, D Unext_handlerU_) {
  D T3;
  D T4;
  D T5;
  D all_values_;
  _KLsimple_object_vectorGVKd_4 T7 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T8;
  D T9;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  primitive_write_thread_variable(Tcurrent_handlersTVKi, CREF(0));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:97
  CONGRUENT_CALL_PROLOG(&Kfragment_source_locationVdfmc_reader, 1);
  T3 = CONGRUENT_CALL1(CREF(2));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:98
  CONGRUENT_CALL_PROLOG(&Kfragment_macroVdfmc_reader, 1);
  T4 = CONGRUENT_CALL1(CREF(2));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:96
  T7.vector_element_[0] = IKJsource_location_;
  T7.vector_element_[1] = T3;
  T7.vector_element_[2] = IKJmacro_name_;
  T7.vector_element_[3] = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:96
  CONGRUENT_CALL_PROLOG(&KnoteVdfmc_conditions, 2);
  CONGRUENT_CALL2(&KLinfinite_aux_rule_recursion_match_errorGVdfmc_macro_expander, &T7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:99
  T5 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  all_values_ = MV_GET_REST_AT(T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  T8 = MV_SET_REST_AT(all_values_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  T9 = NLX(CREF(1), T8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:93
  return(T9);
}

D KLsuffixed_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I (D class_, D init_args_, D Uunique_macro_word_class_, D Uunique_macro_expander_function_, D Uunique_macro_referenced_names_, D Uunique_macro_suffix_) {
  D T7;
  D Uunique_macro_word_classF8;
  D T9;
  D Uunique_macro_expander_functionF10;
  D T11;
  D Uunique_macro_suffixF12;
  D T13;
  D Uunique_macro_word_classF14;
  D Uunique_macro_expander_functionF15;
  D Uunique_macro_referenced_namesF16;
  D Uunique_macro_suffixF17;
  D T18_0;
  D T19;
  _KLsimple_object_vectorGVKd_1 T20 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T21;
  D T22;
  _KLsimple_object_vectorGVKd_1 T23 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T24;
  D T25;
  _KLsimple_object_vectorGVKd_1 T26 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T27;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  T19 = primitive_idQ(Uunique_macro_word_class_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  if (T19 != &KPfalseVKi) {
    T20.vector_element_[0] = IKJword_class_;
    T21 = KerrorVKdMM1I(&K33, &T20);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
    T7 = T21;
    Uunique_macro_word_classF8 = T7;
  } else {
    Uunique_macro_word_classF8 = Uunique_macro_word_class_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  T22 = primitive_idQ(Uunique_macro_expander_function_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  if (T22 != &KPfalseVKi) {
    T23.vector_element_[0] = IKJexpander_function_;
    T24 = KerrorVKdMM1I(&K33, &T23);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
    T9 = T24;
    Uunique_macro_expander_functionF10 = T9;
  } else {
    Uunique_macro_expander_functionF10 = Uunique_macro_expander_function_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  T25 = primitive_idQ(Uunique_macro_suffix_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  if (T25 != &KPfalseVKi) {
    T26.vector_element_[0] = IKJsuffix_;
    T27 = KerrorVKdMM1I(&K33, &T26);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
    T11 = T27;
    Uunique_macro_suffixF12 = T11;
  } else {
    Uunique_macro_suffixF12 = Uunique_macro_suffix_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  T13 = primitive_object_allocate_filled(5,&KLsuffixed_macro_descriptorGVdfmc_macro_expanderW,4,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_macro_word_classF8, &KLintegerGVKd);
  Uunique_macro_word_classF14 = Uunique_macro_word_classF8;
  SLOT_VALUE_SETTER(Uunique_macro_word_classF14, T13, 0);
  primitive_type_check(Uunique_macro_expander_functionF10, &KLfunctionGVKd);
  Uunique_macro_expander_functionF15 = Uunique_macro_expander_functionF10;
  SLOT_VALUE_SETTER(Uunique_macro_expander_functionF15, T13, 1);
  primitive_type_check(Uunique_macro_referenced_names_, &KLsequenceGVKd);
  Uunique_macro_referenced_namesF16 = Uunique_macro_referenced_names_;
  SLOT_VALUE_SETTER(Uunique_macro_referenced_namesF16, T13, 2);
  primitive_type_check(Uunique_macro_suffixF12, &KLstringGVKd);
  Uunique_macro_suffixF17 = Uunique_macro_suffixF12;
  SLOT_VALUE_SETTER(Uunique_macro_suffixF17, T13, 3);
  APPLY2(&KinitializeVKd, T13, init_args_);
  T18_0 = T13;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:42
  MV_SET_COUNT(1);
  return(T18_0);
}

D KLsimple_macro_descriptorGZ32ZconstructorVdfmc_macro_expanderMM0I (D class_, D init_args_, D Uunique_macro_word_class_, D Uunique_macro_expander_function_, D Uunique_macro_referenced_names_) {
  D T6;
  D Uunique_macro_word_classF7;
  D T8;
  D Uunique_macro_expander_functionF9;
  D T10;
  D Uunique_macro_word_classF11;
  D Uunique_macro_expander_functionF12;
  D Uunique_macro_referenced_namesF13;
  D T14_0;
  D T15;
  _KLsimple_object_vectorGVKd_1 T16 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_1 T19 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T20;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  T15 = primitive_idQ(Uunique_macro_word_class_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  if (T15 != &KPfalseVKi) {
    T16.vector_element_[0] = IKJword_class_;
    T17 = KerrorVKdMM1I(&K33, &T16);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
    T6 = T17;
    Uunique_macro_word_classF7 = T6;
  } else {
    Uunique_macro_word_classF7 = Uunique_macro_word_class_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  T18 = primitive_idQ(Uunique_macro_expander_function_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  if (T18 != &KPfalseVKi) {
    T19.vector_element_[0] = IKJexpander_function_;
    T20 = KerrorVKdMM1I(&K33, &T19);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
    T8 = T20;
    Uunique_macro_expander_functionF9 = T8;
  } else {
    Uunique_macro_expander_functionF9 = Uunique_macro_expander_function_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  T10 = primitive_object_allocate_filled(4,&KLsimple_macro_descriptorGVdfmc_macro_expanderW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_macro_word_classF7, &KLintegerGVKd);
  Uunique_macro_word_classF11 = Uunique_macro_word_classF7;
  SLOT_VALUE_SETTER(Uunique_macro_word_classF11, T10, 0);
  primitive_type_check(Uunique_macro_expander_functionF9, &KLfunctionGVKd);
  Uunique_macro_expander_functionF12 = Uunique_macro_expander_functionF9;
  SLOT_VALUE_SETTER(Uunique_macro_expander_functionF12, T10, 1);
  primitive_type_check(Uunique_macro_referenced_names_, &KLsequenceGVKd);
  Uunique_macro_referenced_namesF13 = Uunique_macro_referenced_names_;
  SLOT_VALUE_SETTER(Uunique_macro_referenced_namesF13, T10, 2);
  APPLY2(&KinitializeVKd, T10, init_args_);
  T14_0 = T10;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:34
  MV_SET_COUNT(1);
  return(T14_0);
}

D Kmacro_word_in_variable_nameVdfmc_macro_expanderMM0I (D desc_, D name_) {
  D T3;
  D T4_0;
  D T4_1;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:36
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:39
  T3 = SLOT_VALUE_INITD(desc_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:39
  T4_0 = name_;
  T4_1 = T3;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:36
  MV_SET_ELT(1, T4_1);
  MV_SET_COUNT(2);
  return(T4_0);
}

D Kmacro_word_in_variable_nameVdfmc_macro_expanderMM1I (D desc_, D name_) {
  D main_part_;
  D T4_0;
  D T4_1;
  D T5;
  D T6;
  D T7;
  D T8_0;
  D T8_1;
  D T9_0;
  D T9_1;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:47
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:50
  T6 = SLOT_VALUE_INITD(desc_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:51
  main_part_ = Ksuffixed_nameQVdfmc_macro_expanderMM0I(name_, T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:52
  if (main_part_ != &KPfalseVKi) {
    T5 = main_part_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:53
    T7 = SLOT_VALUE_INITD(desc_, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:53
    T8_0 = T5;
    T8_1 = T7;
    T4_0 = T8_0;
    T4_1 = T8_1;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:55
    T9_0 = name_;
    T9_1 = (D) 133;
    T4_0 = T9_0;
    T4_1 = T9_1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:52
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:47
  MV_SET_ELT(1, T4_1);
  MV_SET_COUNT(2);
  return(T4_0);
}

D Ksuffixed_nameQVdfmc_macro_expanderMM0I (D name_, D suffix_) {
  D suffix_size_;
  D size_diff_;
  D T5;
  D T6_0;
  D T7_0;
  D T8_0;
  D T9_0;
  D T10;
  D T11_0;
  D T12_0;
  D nameF13;
  D T14;
  D T15_0;
  D T16;
  D T17;
  D T18_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:59
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:62
  T10 = SLOT_VALUE_INITD(name_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:62
  T11_0 = T10;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:62
  T12_0 = T11_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T11_0);
    primitive_type_check(T12_0, &KLbyte_stringGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:62
  nameF13 = T12_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:63
  T14 = SLOT_VALUE_INITD(nameF13, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:64
  CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
  suffix_size_ = CONGRUENT_CALL1(suffix_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:66
  CONGRUENT_CALL_PROLOG(&KLVKd, 2);
  T15_0 = CONGRUENT_CALL2(suffix_size_, T14);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:66
  T16 = T15_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:66
  if (T16 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:67
    CONGRUENT_CALL_PROLOG(&K_VKd, 2);
    size_diff_ = CONGRUENT_CALL2(T14, suffix_size_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:68
    T5 = CALL3(&Kcompare_suffix_insensitivelyVdfmc_macro_expander, suffix_, nameF13, size_diff_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:68
    if (T5 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:69
      T17 = Kcopy_sequenceVKdMM3I(nameF13, &KPempty_vectorVKi, (D) 1, size_diff_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:69
      T18_0 = KmakeVKdMM56I(&KLsymbolGVKd, &KPempty_vectorVKi, T17);
      T7_0 = T18_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:71
      T6_0 = &KPfalseVKi;
      T7_0 = T6_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:68
    T9_0 = T7_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:74
    T8_0 = &KPfalseVKi;
    T9_0 = T8_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:66
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:59
  MV_SET_COUNT(1);
  return(T9_0);
}

D Kcompare_suffix_insensitivelyVdfmc_macro_expanderI (D string_, D container_, D suffix_start_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D i_T, i_;
  D T10T, T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20;
  D T21;
  D T22;
  D T23;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:78
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  CONGRUENT_CALL_PROLOG(&Kforward_iteration_protocolVKd, 1);
  T3 = CONGRUENT_CALL1(string_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  T4 = T3;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  T5 = MV_GET_ELT(1);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  T6 = MV_GET_ELT(2);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  T7 = MV_GET_ELT(3);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  T8 = MV_GET_ELT(5);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  i_T = suffix_start_;
  T10T = T4;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    i_ = i_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    T10 = T10T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    T11 = CALL3(T7, string_, T10, T5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    if (T11 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
      T12 = CALL2(T8, string_, T10);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:81
      CONGRUENT_CALL_PROLOG(&Kas_lowercaseVKd, 1);
      T15 = CONGRUENT_CALL1(T12);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:81
      CONGRUENT_CALL_PROLOG(&KelementVKd, 3);
      T16 = CONGRUENT_CALL3(container_, i_, &KPempty_vectorVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:81
      CONGRUENT_CALL_PROLOG(&Kas_lowercaseVKd, 1);
      T17 = CONGRUENT_CALL1(T16);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:81
      T23 = KEEVKdI(T15, T17);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
      if (T23 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T13 = CONGRUENT_CALL2(i_, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
        T14 = CALL2(T6, string_, T10);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
        i_T = T13;
        T10T = T14;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:83
    CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
    T18 = CONGRUENT_CALL1(container_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:83
    CONGRUENT_CALL_PROLOG(&KEVKd, 2);
    T19 = CONGRUENT_CALL2(i_, T18);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:83
    if (T19 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:84
      T20 = &KPtrueVKi;
      MV_SET_ELT(0, &KPtrueVKi);
      MV_SET_COUNT(1);
      T22 = T20;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:86
      T21 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      T22 = T21;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:83
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:80
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:78
  return(T22);
}


/* SYSTEM INIT CODE */

void _Init_dfmc_macro_expander__X_macro_descriptors_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsource_location_);
    if (T0 != &KJsource_location_) {
      IKJsource_location_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJmacro_name_);
    if (T0 != &KJmacro_name_) {
      IKJmacro_name_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsuffix_);
    if (T0 != &KJsuffix_) {
      primitive_repeated_slot_value_setter(T0, &K41, 1, 3);
      primitive_repeated_slot_value_setter(T0, &K38, 1, 6);
      IKJsuffix_ = T0;
      primitive_slot_value_setter(T0, &Kmacro_suffixVdfmc_macro_expanderHLsuffixed_macro_descriptorG, 3);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJword_class_);
    if (T0 != &KJword_class_) {
      primitive_repeated_slot_value_setter(T0, &K69, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K68, 1, 0);
      IKJword_class_ = T0;
      primitive_slot_value_setter(T0, &Kmacro_word_classVdfmc_macro_expanderHLmacro_descriptorG, 3);
      primitive_repeated_slot_value_setter(T0, &K41, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K38, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJexpander_function_);
    if (T0 != &KJexpander_function_) {
      primitive_repeated_slot_value_setter(T0, &K69, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K68, 1, 2);
      IKJexpander_function_ = T0;
      primitive_slot_value_setter(T0, &Kmacro_expander_functionVdfmc_macro_expanderHLmacro_descriptorG, 3);
      primitive_repeated_slot_value_setter(T0, &K41, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K38, 1, 2);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJreferenced_names_);
    if (T0 != &KJreferenced_names_) {
      primitive_repeated_slot_value_setter(T0, &K69, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K68, 1, 4);
      primitive_slot_value_setter(T0, &Kmacro_referenced_namesVdfmc_macro_expanderHLmacro_descriptorG, 3);
      primitive_repeated_slot_value_setter(T0, &K41, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K38, 1, 4);
    }
  }
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/macro-descriptors.dylan:17
  T0 = KPadd_classVKeI(&KLmacro_descriptorGVdfmc_macro_expander);
  goto I0;
}
I0:

  return;
}

/* USER INIT CODE */

void _Init_dfmc_macro_expander__X_macro_descriptors_for_user () {
  return;
}


/* eof */
