/*===========================================================================*/
/*   (BackEnd/walk.scm)                                                      */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -q -afile .afile -fsharing -fno-reflection -cc gcc-2.95 -lib-dir /users/serrano/prgm/project/bigloo/lib/2.6b -unsafev -no-hello -O2 -rm -unsafe -s -indent BackEnd/walk.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
typedef struct BgL_ccompz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_producerz00;
   obj_t BgL_consumerz00;
   obj_t BgL_finaliza7erza7;
} *BgL_ccompz00_bglt;

typedef struct BgL_typez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   obj_t BgL_siza7eza7;
   obj_t BgL_classz00;
   obj_t BgL_coercezd2tozd2;
   obj_t BgL_parentsz00;
   bool_t BgL_initzf3zf3;
   bool_t BgL_magiczf3zf3;
   obj_t BgL_z42z42;
   obj_t BgL_aliasz00;
   obj_t BgL_pointedzd2tozd2byz00;
   obj_t BgL_tvectorz00;
   obj_t BgL_locationz00;
   obj_t BgL_importzd2locationzd2;
} *BgL_typez00_bglt;

typedef struct BgL_valuez00_bgl {
   header_t header;
   obj_t widening;
} *BgL_valuez00_bglt;

typedef struct BgL_variablez00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
} *BgL_variablez00_bglt;

typedef struct BgL_globalz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   obj_t BgL_modulez00;
   obj_t BgL_importz00;
   bool_t BgL_evaluablezf3zf3;
   bool_t BgL_libraryzf3zf3;
   bool_t BgL_userzf3zf3;
   obj_t BgL_pragmaz00;
   obj_t BgL_srcz00;
   obj_t BgL_jvmzd2typezd2namez00;
} *BgL_globalz00_bglt;

typedef struct BgL_localz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_idz00;
   obj_t BgL_namez00;
   struct BgL_typez00_bgl * BgL_typez00;
   struct BgL_valuez00_bgl * BgL_valuez00;
   obj_t BgL_accessz00;
   obj_t BgL_fastzd2alphazd2;
   obj_t BgL_removablez00;
   long BgL_occurrencez00;
   bool_t BgL_userzf3zf3;
   long BgL_keyz00;
} *BgL_localz00_bglt;

typedef struct BgL_funz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
} *BgL_funz00_bglt;

typedef struct BgL_sfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_propertyz00;
   obj_t BgL_argsz00;
   obj_t BgL_bodyz00;
   obj_t BgL_classz00;
   obj_t BgL_dssslzd2keywordszd2;
   obj_t BgL_locz00;
} *BgL_sfunz00_bglt;

typedef struct BgL_cfunz00_bgl {
   header_t header;
   obj_t widening;
   long BgL_arityz00;
   obj_t BgL_sidezd2effectzf3z21;
   obj_t BgL_predicatezd2ofzd2;
   obj_t BgL_stackzd2allocatorzd2;
   bool_t BgL_topzf3zf3;
   obj_t BgL_thezd2closurezd2;
   obj_t BgL_effectz00;
   obj_t BgL_argszd2typezd2;
   bool_t BgL_macrozf3zf3;
   bool_t BgL_infixzf3zf3;
   obj_t BgL_methodz00;
} *BgL_cfunz00_bglt;

typedef struct BgL_svarz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_locz00;
} *BgL_svarz00_bglt;

typedef struct BgL_scnstz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_nodez00;
   obj_t BgL_classz00;
   obj_t BgL_locz00;
} *BgL_scnstz00_bglt;

typedef struct BgL_cvarz00_bgl {
   header_t header;
   obj_t widening;
   bool_t BgL_macrozf3zf3;
} *BgL_cvarz00_bglt;

typedef struct BgL_sexitz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_handlerz00;
   bool_t BgL_detachedzf3zf3;
} *BgL_sexitz00_bglt;

typedef struct BgL_feffectz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_readz00;
   obj_t BgL_writez00;
} *BgL_feffectz00_bglt;

typedef struct BgL_backendz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_backendz00_bglt;

typedef struct BgL_cvmz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_cvmz00_bglt;

typedef struct BgL_sawcz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_sawcz00_bglt;

typedef struct BgL_cgenz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
} *BgL_cgenz00_bglt;

typedef struct BgL_jvmz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
   obj_t BgL_qnamez00;
   obj_t BgL_classesz00;
   obj_t BgL_currentzd2classzd2;
   obj_t BgL_declarationsz00;
   obj_t BgL_fieldsz00;
   obj_t BgL_methodsz00;
   obj_t BgL_currentzd2methodzd2;
   obj_t BgL_codez00;
} *BgL_jvmz00_bglt;

typedef struct BgL_dotnetz00_bgl {
   header_t header;
   obj_t widening;
   obj_t BgL_languagez00;
   obj_t BgL_namez00;
   obj_t BgL_externzd2variableszd2;
   obj_t BgL_externzd2functionszd2;
   obj_t BgL_externzd2typeszd2;
   obj_t BgL_variablesz00;
   obj_t BgL_functionsz00;
   obj_t BgL_typesz00;
   obj_t BgL_outz00;
   obj_t BgL_qnamez00;
} *BgL_dotnetz00_bglt;


extern obj_t BGl_buildzd2cgenzd2backendz00zzbackend_cz00();
BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzbackend_walkz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzread_jvmz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_cz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_jvmz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_dotnetz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
static obj_t BGl_methodzd2initzd2zzbackend_walkz00();
BGL_IMPORT obj_t open_input_string(obj_t);
static obj_t BGl__backendzd2walkzd2zzbackend_walkz00(obj_t, obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
extern obj_t BGl_backendzd2linkzd2zzbackend_backendz00(BgL_backendz00_bglt, obj_t);
extern obj_t BGl_za2moduleza2z00zzmodule_modulez00;
extern obj_t BGl_buildzd2jvmzd2backendz00zzbackend_jvmz00();
extern obj_t BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(obj_t);
static obj_t BGl_backendzd2buildzd2zzbackend_walkz00(obj_t);
extern obj_t BGl_za2sawza2z00zzengine_paramz00;
static obj_t BGl_cnstzd2initzd2zzbackend_walkz00();
static obj_t BGl_importedzd2moduleszd2initz00zzbackend_walkz00();
extern obj_t BGl_buildzd2sawczd2backendz00zzbackend_cz00();
static obj_t BGl_requirezd2initializa7ationz75zzbackend_walkz00 = BUNSPEC;
BGL_EXPORTED_DECL obj_t BGl_backendzd2walkzd2zzbackend_walkz00(obj_t, obj_t);
extern obj_t BGl_buildzd2dotnetzd2backendz00zzbackend_dotnetz00();
BGL_IMPORT bool_t BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzbackend_walkz00();
extern obj_t BGl_backendzd2compilezd2zzbackend_backendz00(BgL_backendz00_bglt);
static obj_t __cnst[ 3 ] ;


DEFINE_EXPORT_PROCEDURE( BGl_backendzd2walkzd2envz00zzbackend_walkz00, BgL_bgl__backendza7d2walkza7d2za7za7backend_walkza7002107za7, BGl__backendzd2walkzd2zzbackend_walkz00, 0L, 2 );
DEFINE_STRING( BGl_string2082z00zzbackend_walkz00, BgL_bgl_string2082za700za7za7backend_walkza7002108z00, ".net jvm c ", 11 );
DEFINE_STRING( BGl_string2081z00zzbackend_walkz00, BgL_bgl_string2081za700za7za7backend_walkza7002109z00, "Unimplemented target language", 29 );
DEFINE_STRING( BGl_string2080z00zzbackend_walkz00, BgL_bgl_string2080za700za7za7backend_walkza7002110z00, "backend", 7 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzbackend_walkz00(long BgL_checksumz00_598, char * BgL_fromz00_599)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzbackend_walkz00))
{ 
BGl_requirezd2initializa7ationz75zzbackend_walkz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzbackend_walkz00(); 
BGl_cnstzd2initzd2zzbackend_walkz00(); 
BGl_importedzd2moduleszd2initz00zzbackend_walkz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzbackend_walkz00()
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "backend_walk"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)0), "backend_walk"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzbackend_walkz00()
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 15 */
{ /* ./BackEnd/walk.scm 15 */
obj_t BgL_cportz00_591;
BgL_cportz00_591 = 
open_input_string(BGl_string2082z00zzbackend_walkz00); 
{ 
long BgL_iz00_592;
BgL_iz00_592 = ((long)2); 
BgL_loopz00_593:
{ /* ./BackEnd/walk.scm 15 */
bool_t BgL_test2084z00_594;
BgL_test2084z00_594 = 
(BgL_iz00_592==((long)-1)); 
if(BgL_test2084z00_594)
{ /* ./BackEnd/walk.scm 15 */
return BUNSPEC;}  else 
{ /* ./BackEnd/walk.scm 15 */
{ /* ./BackEnd/walk.scm 15 */
obj_t BgL_arg2086z00_595;
{ /* ./BackEnd/walk.scm 15 */
obj_t BgL_list2089z00_596;
BgL_list2089z00_596 = 
MAKE_PAIR(BgL_cportz00_591, BNIL); 
BgL_arg2086z00_595 = 
BGl_readz00zz__readerz00(BgL_list2089z00_596); } 
{ /* ./BackEnd/walk.scm 15 */
int BgL_auxz00_613;
BgL_auxz00_613 = 
(int)(BgL_iz00_592); 
CNST_TABLE_SET(BgL_auxz00_613, BgL_arg2086z00_595); } } 
{ /* ./BackEnd/walk.scm 15 */
int BgL_auxz00_597;
{ /* ./BackEnd/walk.scm 15 */
long BgL_auxz00_616;
BgL_auxz00_616 = 
(BgL_iz00_592-((long)1)); 
BgL_auxz00_597 = 
(int)(BgL_auxz00_616); } 
{ 
long BgL_iz00_619;
BgL_iz00_619 = 
(long)(BgL_auxz00_597); 
BgL_iz00_592 = BgL_iz00_619; 
goto BgL_loopz00_593;} } } } } } } 
}



/* backend-walk */
BGL_EXPORTED_DEF obj_t BGl_backendzd2walkzd2zzbackend_walkz00(obj_t BgL_languagez00_1, obj_t BgL_functionsz00_2)
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 30 */
{ /* ./BackEnd/walk.scm 31 */
obj_t BgL_backendz00_571;
BgL_backendz00_571 = 
BGl_backendzd2buildzd2zzbackend_walkz00(BgL_languagez00_1); 
{ /* ./BackEnd/walk.scm 31 */
obj_t BgL_arg1922z00_575;
BgL_arg1922z00_575 = 
BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(BGl_za2moduleza2z00zzmodule_modulez00); 
{ /* ./BackEnd/walk.scm 31 */
BgL_backendz00_bglt BgL_obj1587z00_576;obj_t BgL_val1586z00_577;
BgL_obj1587z00_576 = 
(BgL_backendz00_bglt)(BgL_backendz00_571); 
BgL_val1586z00_577 = BgL_arg1922z00_575; 
((((BgL_backendz00_bglt)CREF(BgL_obj1587z00_576))->BgL_namez00) = ((obj_t)BgL_val1586z00_577), BUNSPEC); } } 
{ /* ./BackEnd/walk.scm 31 */
BgL_backendz00_bglt BgL_obj1602z00_578;obj_t BgL_val1601z00_579;
BgL_obj1602z00_578 = 
(BgL_backendz00_bglt)(BgL_backendz00_571); 
BgL_val1601z00_579 = BgL_functionsz00_2; 
((((BgL_backendz00_bglt)CREF(BgL_obj1602z00_578))->BgL_functionsz00) = ((obj_t)BgL_val1601z00_579), BUNSPEC); } 
{ /* ./BackEnd/walk.scm 31 */
obj_t BgL_arg1906z00_572;
BgL_arg1906z00_572 = 
BGl_backendzd2compilezd2zzbackend_backendz00(
(BgL_backendz00_bglt)(BgL_backendz00_571)); 
BGl_backendzd2linkzd2zzbackend_backendz00(
(BgL_backendz00_bglt)(BgL_backendz00_571), BgL_arg1906z00_572); } 
return BgL_backendz00_571;} } 
}



/* _backend-walk */
obj_t BGl__backendzd2walkzd2zzbackend_walkz00(obj_t BgL_envz00_588, obj_t BgL_languagez00_589, obj_t BgL_functionsz00_590)
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 30 */
return 
BGl_backendzd2walkzd2zzbackend_walkz00(BgL_languagez00_589, BgL_functionsz00_590);} 
}



/* backend-build */
obj_t BGl_backendzd2buildzd2zzbackend_walkz00(obj_t BgL_languagez00_3)
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 39 */
{ /* ./BackEnd/walk.scm 40 */
bool_t BgL_test1910z00_397;
BgL_test1910z00_397 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_languagez00_3, 
CNST_TABLE_REF(((long)0))); 
if(BgL_test1910z00_397)
{ /* ./BackEnd/walk.scm 40 */
if(
CBOOL(BGl_za2sawza2z00zzengine_paramz00))
{ /* ./BackEnd/walk.scm 41 */
return 
BGl_buildzd2sawczd2backendz00zzbackend_cz00();}  else 
{ /* ./BackEnd/walk.scm 41 */
return 
BGl_buildzd2cgenzd2backendz00zzbackend_cz00();} }  else 
{ /* ./BackEnd/walk.scm 40 */
bool_t BgL_test1913z00_398;
BgL_test1913z00_398 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_languagez00_3, 
CNST_TABLE_REF(((long)1))); 
if(BgL_test1913z00_398)
{ /* ./BackEnd/walk.scm 40 */
return 
BGl_buildzd2jvmzd2backendz00zzbackend_jvmz00();}  else 
{ /* ./BackEnd/walk.scm 40 */
bool_t BgL_test1915z00_399;
BgL_test1915z00_399 = 
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_languagez00_3, 
CNST_TABLE_REF(((long)2))); 
if(BgL_test1915z00_399)
{ /* ./BackEnd/walk.scm 40 */
return 
BGl_buildzd2dotnetzd2backendz00zzbackend_dotnetz00();}  else 
{ /* ./BackEnd/walk.scm 40 */
FAILURE(BGl_string2080z00zzbackend_walkz00,BGl_string2081z00zzbackend_walkz00,BgL_languagez00_3);} } } } } 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzbackend_walkz00()
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 15 */
return BUNSPEC;} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzbackend_walkz00()
{ AN_OBJECT;
{ /* ./BackEnd/walk.scm 15 */
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzread_jvmz00(((long)16338), "backend_walk"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzast_varz00(((long)44246), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzbackend_backendz00(((long)3428), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzbackend_cz00(((long)33592), "backend_walk"); 
BGl_modulezd2initializa7ationz75zzbackend_jvmz00(((long)38077), "backend_walk"); 
return 
BGl_modulezd2initializa7ationz75zzbackend_dotnetz00(((long)46127), "backend_walk");} 
}

