/*===========================================================================*/
/*   (BackEnd/jvm.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/jvm.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_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;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzbackend_jvmz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_passz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzread_jvmz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzbackend_c_mainz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzsaw_jvm_compilez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzjas_asz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzjas_peepz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzjvm_ldz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__osz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__ppz00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long, char *);
BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long, char *);
static obj_t BGl_jvmzd2dirnamezd2zzbackend_jvmz00(obj_t);
static obj_t BGl_methodzd2initzd2zzbackend_jvmz00();
extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
BGL_IMPORT obj_t close_output_port(obj_t);
extern obj_t BGl_jvmz00zzbackend_backendz00;
extern obj_t BGl_stopzd2onzd2passz00zzengine_passz00(obj_t, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_saw_jvmzd2compilezd2zzsaw_jvm_compilez00(BgL_jvmz00_bglt);
extern obj_t BGl_makezd2bigloozd2mainz00zzbackend_c_mainz00();
extern obj_t BGl_za2srczd2filesza2zd2zzengine_paramz00;
static obj_t BGl_emitz00zzbackend_jvmz00(obj_t, obj_t);
extern BgL_jvmz00_bglt BGl_makezd2jvmzd2zzbackend_backendz00(obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
static obj_t BGl_jvmzd2filenamezd2zzbackend_jvmz00(obj_t);
BGL_IMPORT obj_t string_to_symbol(char *);
BGL_IMPORT obj_t BGl_makezd2filezd2namez00zz__osz00(obj_t, obj_t);
static obj_t BGl_jvmzd2checkzd2packagez00zzbackend_jvmz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_ppz00zz__ppz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
BGL_IMPORT obj_t open_output_binary_file(obj_t);
BGL_IMPORT obj_t string_append(obj_t, obj_t);
static obj_t BGl_addsuffixz00zzbackend_jvmz00(obj_t);
static obj_t BGl__buildzd2jvmzd2backendz00zzbackend_jvmz00(obj_t);
BGL_IMPORT bool_t BGl_makezd2directorieszd2zz__r4_ports_6_10_1z00(obj_t);
BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern obj_t BGl_jvmzd2aszd2zzjas_asz00(obj_t, obj_t);
extern obj_t BGl_za2moduleza2z00zzmodule_modulez00;
BGL_IMPORT obj_t string_to_bstring(char *);
BGL_EXPORTED_DECL obj_t BGl_buildzd2jvmzd2backendz00zzbackend_jvmz00();
extern obj_t BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(obj_t);
extern obj_t BGl_za2mainza2z00zzmodule_modulez00;
static obj_t BGl_zc3anonymousza31740ze3z83zzbackend_jvmz00(obj_t);
static obj_t BGl_backendzd2linkzd2jvm1437z00zzbackend_jvmz00(obj_t, obj_t, obj_t);
extern obj_t BGl_za2destza2z00zzengine_paramz00;
static obj_t BGl_backendzd2compilezd2jvm1435z00zzbackend_jvmz00(obj_t, obj_t);
static obj_t BGl__startzd2jvmzd2emissionz12z12zzbackend_jvmz00(obj_t);
static obj_t BGl_startzd2jvmzd2emissionz12z12zzbackend_jvmz00();
extern obj_t BGl_za2passza2z00zzengine_paramz00;
extern obj_t BGl_jvmzd2ldzd2zzjvm_ldz00();
extern obj_t BGl_internalzd2errorzd2zztools_errorz00(obj_t, obj_t, obj_t);
static obj_t BGl_zc3anonymousza31746ze3z83zzbackend_jvmz00(obj_t);
BGL_IMPORT obj_t open_output_file(obj_t);
static obj_t BGl_zc3anonymousza31751ze3z83zzbackend_jvmz00(obj_t);
BGL_IMPORT bool_t directoryp(char *);
static obj_t BGl_cnstzd2initzd2zzbackend_jvmz00();
BGL_IMPORT obj_t BGl_basenamez00zz__osz00(obj_t);
BGL_IMPORT bool_t bigloo_strcmp(obj_t, obj_t);
static obj_t BGl_jasnamez00zzbackend_jvmz00(obj_t);
BGL_IMPORT obj_t BGl_dirnamez00zz__osz00(obj_t);
BGL_IMPORT bool_t fexists(char *);
extern obj_t BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00;
extern obj_t BGl_za2currentzd2passza2zd2zzengine_passz00;
static obj_t BGl_importedzd2moduleszd2initz00zzbackend_jvmz00();
BGL_IMPORT obj_t BGl_warningz00zz__errorz00(obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzbackend_jvmz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_za2ppzd2widthza2zd2zz__ppz00;
extern obj_t BGl_za2jvmzd2directoryza2zd2zzengine_paramz00;
BGL_IMPORT obj_t BGl_za2ppzd2caseza2zd2zz__ppz00;
BGL_IMPORT obj_t BGl_prefixz00zz__osz00(obj_t);
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_jvmasdumpz00zzbackend_jvmz00(obj_t, obj_t);
BGL_IMPORT bool_t BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzbackend_jvmz00();
BGL_IMPORT obj_t close_binary_port(obj_t);
static obj_t BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00 = BUNSPEC;
static obj_t BGl_toplevelzd2initzd2zzbackend_jvmz00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
BGL_IMPORT bool_t BGl_2zc3zc3zz__r4_numbers_6_5z00(obj_t, obj_t);
static obj_t __cnst[ 12 ] ;


DEFINE_STATIC_PROCEDURE( BGl_proc1945z00zzbackend_jvmz00, BgL_bgl_backendza7d2compileza7d2jvm1435za700za7za7backend_jvmza7001994z00, BGl_backendzd2compilezd2jvm1435z00zzbackend_jvmz00, 0L, 1 );
DEFINE_STATIC_PROCEDURE( BGl_proc1946z00zzbackend_jvmz00, BgL_bgl_backendza7d2linkza7d2jvm1437za700za7za7backend_jvmza7001995z00, BGl_backendzd2linkzd2jvm1437z00zzbackend_jvmz00, 0L, 2 );
DEFINE_STATIC_PROCEDURE( BGl_proc1954z00zzbackend_jvmz00, BgL_bgl_za7c3anonymousza7a31740za7e3za783za7za7backend_jvmza7001996za7, BGl_zc3anonymousza31740ze3z83zzbackend_jvmz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_proc1955z00zzbackend_jvmz00, BgL_bgl_za7c3anonymousza7a31746za7e3za783za7za7backend_jvmza7001997za7, BGl_zc3anonymousza31746ze3z83zzbackend_jvmz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_proc1956z00zzbackend_jvmz00, BgL_bgl_za7c3anonymousza7a31751za7e3za783za7za7backend_jvmza7001998za7, BGl_zc3anonymousza31751ze3z83zzbackend_jvmz00, 0L, 0 );
extern obj_t BGl_backendzd2compilezd2envz00zzbackend_backendz00;
extern obj_t BGl_backendzd2linkzd2envz00zzbackend_backendz00;
DEFINE_STRING( BGl_string1961z00zzbackend_jvmz00, BgL_bgl_string1961za700za7za7backend_jvmza7001999z00, "done cc (ld distrib) (start-jvm-emission!) pass-started ld class jvmas jast lower unamed jvm ", 93 );
DEFINE_STRING( BGl_string1960z00zzbackend_jvmz00, BgL_bgl_string1960za700za7za7backend_jvmza7002000z00, "Can't open file for output", 26 );
DEFINE_STRING( BGl_string1959z00zzbackend_jvmz00, BgL_bgl_string1959za700za7za7backend_jvmza7002001z00, "jvm-dump", 8 );
DEFINE_STRING( BGl_string1958z00zzbackend_jvmz00, BgL_bgl_string1958za700za7za7backend_jvmza7002002z00, "/a.class", 8 );
DEFINE_STRING( BGl_string1957z00zzbackend_jvmz00, BgL_bgl_string1957za700za7za7backend_jvmza7002003z00, "/", 1 );
DEFINE_STRING( BGl_string1953z00zzbackend_jvmz00, BgL_bgl_string1953za700za7za7backend_jvmza7002004z00, "a.class", 7 );
DEFINE_STRING( BGl_string1952z00zzbackend_jvmz00, BgL_bgl_string1952za700za7za7backend_jvmza7002005z00, "      [module: ", 15 );
DEFINE_STRING( BGl_string1951z00zzbackend_jvmz00, BgL_bgl_string1951za700za7za7backend_jvmza7002006z00, " qualified type name: ", 22 );
DEFINE_STRING( BGl_string1950z00zzbackend_jvmz00, BgL_bgl_string1950za700za7za7backend_jvmza7002007z00, "]", 1 );
DEFINE_STRING( BGl_string1949z00zzbackend_jvmz00, BgL_bgl_string1949za700za7za7backend_jvmza7002008z00, "failure during prelude hook", 27 );
DEFINE_STRING( BGl_string1948z00zzbackend_jvmz00, BgL_bgl_string1948za700za7za7backend_jvmza7002009z00, "   . ", 5 );
DEFINE_STRING( BGl_string1947z00zzbackend_jvmz00, BgL_bgl_string1947za700za7za7backend_jvmza7002010z00, "Jvm", 3 );
DEFINE_STRING( BGl_string1944z00zzbackend_jvmz00, BgL_bgl_string1944za700za7za7backend_jvmza7002011z00, "Can't write dest file because directory doesn't exist", 53 );
DEFINE_STRING( BGl_string1943z00zzbackend_jvmz00, BgL_bgl_string1943za700za7za7backend_jvmza7002012z00, "start-jvm-emission!", 19 );
DEFINE_STRING( BGl_string1942z00zzbackend_jvmz00, BgL_bgl_string1942za700za7za7backend_jvmza7002013z00, "Incompatible package name and class path.", 41 );
DEFINE_STRING( BGl_string1941z00zzbackend_jvmz00, BgL_bgl_string1941za700za7za7backend_jvmza7002014z00, "Package name for module ", 24 );
DEFINE_STRING( BGl_string1940z00zzbackend_jvmz00, BgL_bgl_string1940za700za7za7backend_jvmza7002015z00, " is `", 5 );
DEFINE_STRING( BGl_string1939z00zzbackend_jvmz00, BgL_bgl_string1939za700za7za7backend_jvmza7002016z00, "', class path is `", 18 );
DEFINE_STRING( BGl_string1938z00zzbackend_jvmz00, BgL_bgl_string1938za700za7za7backend_jvmza7002017z00, "'.", 2 );
DEFINE_STRING( BGl_string1937z00zzbackend_jvmz00, BgL_bgl_string1937za700za7za7backend_jvmza7002018z00, "", 0 );
DEFINE_STRING( BGl_string1936z00zzbackend_jvmz00, BgL_bgl_string1936za700za7za7backend_jvmza7002019z00, "dummy", 5 );
DEFINE_STRING( BGl_string1935z00zzbackend_jvmz00, BgL_bgl_string1935za700za7za7backend_jvmza7002020z00, ".", 1 );
DEFINE_EXPORT_PROCEDURE( BGl_buildzd2jvmzd2backendzd2envzd2zzbackend_jvmz00, BgL_bgl__buildza7d2jvmza7d2backendza700za7za7backend_jvmza7002021z00, BGl__buildzd2jvmzd2backendz00zzbackend_jvmz00, 0L, 0 );
DEFINE_STATIC_PROCEDURE( BGl_startzd2jvmzd2emissionz12zd2envzc0zzbackend_jvmz00, BgL_bgl__startza7d2jvmza7d2emissionza712za712za7za7backend_jvmza7002022za7, BGl__startzd2jvmzd2emissionz12z12zzbackend_jvmz00, 0L, 0 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzbackend_jvmz00(long BgL_checksumz00_549, char * BgL_fromz00_550)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzbackend_jvmz00))
{ 
BGl_requirezd2initializa7ationz75zzbackend_jvmz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzbackend_jvmz00(); 
BGl_cnstzd2initzd2zzbackend_jvmz00(); 
BGl_importedzd2moduleszd2initz00zzbackend_jvmz00(); 
BGl_methodzd2initzd2zzbackend_jvmz00(); 
BGl_toplevelzd2initzd2zzbackend_jvmz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 1 */
BGl_modulezd2initializa7ationz75zz__osz00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__ppz00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__errorz00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)0), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(((long)0), "backend_jvm"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 1 */
{ /* ./BackEnd/jvm.scm 1 */
obj_t BgL_cportz00_540;
BgL_cportz00_540 = 
open_input_string(BGl_string1961z00zzbackend_jvmz00); 
{ 
long BgL_iz00_541;
BgL_iz00_541 = ((long)11); 
BgL_loopz00_542:
{ /* ./BackEnd/jvm.scm 1 */
bool_t BgL_test1963z00_543;
BgL_test1963z00_543 = 
(BgL_iz00_541==((long)-1)); 
if(BgL_test1963z00_543)
{ /* ./BackEnd/jvm.scm 1 */
return BUNSPEC;}  else 
{ /* ./BackEnd/jvm.scm 1 */
{ /* ./BackEnd/jvm.scm 1 */
obj_t BgL_arg1965z00_544;
{ /* ./BackEnd/jvm.scm 1 */
obj_t BgL_list1968z00_545;
BgL_list1968z00_545 = 
MAKE_PAIR(BgL_cportz00_540, BNIL); 
BgL_arg1965z00_544 = 
BGl_readz00zz__readerz00(BgL_list1968z00_545); } 
{ /* ./BackEnd/jvm.scm 1 */
int BgL_auxz00_573;
BgL_auxz00_573 = 
(int)(BgL_iz00_541); 
CNST_TABLE_SET(BgL_auxz00_573, BgL_arg1965z00_544); } } 
{ /* ./BackEnd/jvm.scm 1 */
int BgL_auxz00_546;
{ /* ./BackEnd/jvm.scm 1 */
long BgL_auxz00_576;
BgL_auxz00_576 = 
(BgL_iz00_541-((long)1)); 
BgL_auxz00_546 = 
(int)(BgL_auxz00_576); } 
{ 
long BgL_iz00_579;
BgL_iz00_579 = 
(long)(BgL_auxz00_546); 
BgL_iz00_541 = BgL_iz00_579; 
goto BgL_loopz00_542;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 1 */
BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00 = BGl_string1935z00zzbackend_jvmz00; 
return BUNSPEC;} 
}



/* build-jvm-backend */
BGL_EXPORTED_DEF obj_t BGl_buildzd2jvmzd2backendz00zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 19 */
{ /* ./BackEnd/jvm.scm 20 */
BgL_jvmz00_bglt BgL_mez00_184;
BgL_mez00_184 = 
BGl_makezd2jvmzd2zzbackend_backendz00(
CNST_TABLE_REF(((long)0)), BGl_string1936z00zzbackend_jvmz00, BNIL, BNIL, BNIL, BNIL, BNIL, BNIL, 
CNST_TABLE_REF(((long)1)), BNIL, BFALSE, BNIL, BNIL, BNIL, BFALSE, BNIL); 
{ /* ./BackEnd/jvm.scm 21 */
obj_t BgL_arg1440z00_185;
{ /* ./BackEnd/jvm.scm 21 */
obj_t BgL_arg1444z00_186;
BgL_arg1444z00_186 = 
BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(BGl_za2moduleza2z00zzmodule_modulez00); 
{ /* ./BackEnd/jvm.scm 21 */
char * BgL_auxz00_585;
BgL_auxz00_585 = 
BSTRING_TO_STRING(BgL_arg1444z00_186); 
BgL_arg1440z00_185 = 
string_to_symbol(BgL_auxz00_585); } } 
{ /* ./BackEnd/jvm.scm 21 */
BgL_jvmz00_bglt BgL_obj1291z00_432;obj_t BgL_val1290z00_433;
BgL_obj1291z00_432 = BgL_mez00_184; 
BgL_val1290z00_433 = BgL_arg1440z00_185; 
((((BgL_jvmz00_bglt)CREF(BgL_obj1291z00_432))->BgL_qnamez00) = ((obj_t)BgL_val1290z00_433), BUNSPEC); } } 
return 
(obj_t)(BgL_mez00_184);} } 
}



/* _build-jvm-backend */
obj_t BGl__buildzd2jvmzd2backendz00zzbackend_jvmz00(obj_t BgL_envz00_520)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 19 */
return 
BGl_buildzd2jvmzd2backendz00zzbackend_jvmz00();} 
}



/* jvm-check-package */
obj_t BGl_jvmzd2checkzd2packagez00zzbackend_jvmz00(obj_t BgL_modulez00_2, obj_t BgL_pathz00_3)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 78 */
{ 
obj_t BgL_basez00_207;obj_t BgL_pathz00_208;
{ /* ./BackEnd/jvm.scm 95 */
obj_t BgL_qtypez00_188;
BgL_qtypez00_188 = 
BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(BgL_modulez00_2); 
{ /* ./BackEnd/jvm.scm 95 */
obj_t BgL_basez00_189;
{ /* ./BackEnd/jvm.scm 96 */
obj_t BgL_prez00_204;
BgL_prez00_204 = 
BGl_prefixz00zz__osz00(BgL_qtypez00_188); 
{ /* ./BackEnd/jvm.scm 98 */
bool_t BgL_test1487z00_205;
BgL_test1487z00_205 = 
bigloo_strcmp(BgL_prez00_204, BGl_string1937z00zzbackend_jvmz00); 
if(BgL_test1487z00_205)
{ /* ./BackEnd/jvm.scm 98 */
BgL_basez00_189 = BGl_string1935z00zzbackend_jvmz00; }  else 
{ /* ./BackEnd/jvm.scm 100 */
bool_t BgL_test1488z00_206;
BgL_test1488z00_206 = 
bigloo_strcmp(BgL_prez00_204, BgL_qtypez00_188); 
if(BgL_test1488z00_206)
{ /* ./BackEnd/jvm.scm 100 */
BgL_basez00_189 = BGl_string1935z00zzbackend_jvmz00; }  else 
{ /* ./BackEnd/jvm.scm 100 */
BgL_basez00_189 = BgL_prez00_204; } } } } 
{ /* ./BackEnd/jvm.scm 96 */

{ /* ./BackEnd/jvm.scm 104 */
bool_t BgL_test1448z00_190;
{ /* ./BackEnd/jvm.scm 104 */
obj_t BgL_arg1484z00_203;
BgL_arg1484z00_203 = 
BGl_jvmzd2filenamezd2zzbackend_jvmz00(BgL_basez00_189); 
BgL_basez00_207 = BgL_arg1484z00_203; 
BgL_pathz00_208 = BgL_pathz00_3; 
{ /* ./BackEnd/jvm.scm 80 */
int BgL_lbasez00_210;int BgL_lpathz00_211;
BgL_lbasez00_210 = 
STRING_LENGTH(BgL_basez00_207); 
BgL_lpathz00_211 = 
STRING_LENGTH(BgL_pathz00_208); 
if(
BGl_2zc3zc3zz__r4_numbers_6_5z00(
BINT(BgL_lpathz00_211), 
BINT(BgL_lbasez00_210)))
{ /* ./BackEnd/jvm.scm 82 */
BgL_test1448z00_190 = ((bool_t)0); }  else 
{ 
long BgL_rpathz00_213;long BgL_rbasez00_214;
{ /* ./BackEnd/jvm.scm 84 */
long BgL_auxz00_622;
BgL_auxz00_622 = 
(long)(BgL_lpathz00_211); 
BgL_rpathz00_213 = 
(BgL_auxz00_622-((long)1)); } 
{ /* ./BackEnd/jvm.scm 85 */
long BgL_auxz00_625;
BgL_auxz00_625 = 
(long)(BgL_lbasez00_210); 
BgL_rbasez00_214 = 
(BgL_auxz00_625-((long)1)); } 
BgL_loopz00_215:
if(
(BgL_rbasez00_214==((long)-1)))
{ /* ./BackEnd/jvm.scm 86 */
BgL_test1448z00_190 = ((bool_t)1); }  else 
{ /* ./BackEnd/jvm.scm 88 */
unsigned char BgL_cbasez00_219;unsigned char BgL_cpathz00_220;
{ /* ./BackEnd/jvm.scm 88 */
int BgL_auxz00_606;
BgL_auxz00_606 = 
(int)(BgL_rbasez00_214); 
BgL_cbasez00_219 = 
STRING_REF(BgL_basez00_207, BgL_auxz00_606); } 
{ /* ./BackEnd/jvm.scm 89 */
int BgL_auxz00_609;
BgL_auxz00_609 = 
(int)(BgL_rpathz00_213); 
BgL_cpathz00_220 = 
STRING_REF(BgL_pathz00_208, BgL_auxz00_609); } 
{ /* ./BackEnd/jvm.scm 90 */
bool_t BgL_testz00_612;
if(
(BgL_cbasez00_219==BgL_cpathz00_220))
{ /* ./BackEnd/jvm.scm 90 */
BgL_testz00_612 = ((bool_t)1)
; }  else 
{ /* ./BackEnd/jvm.scm 90 */
if(
(BgL_cpathz00_220==((unsigned char)'/')))
{ /* ./BackEnd/jvm.scm 91 */
BgL_testz00_612 = 
(BgL_cbasez00_219==((unsigned char)'.'))
; }  else 
{ /* ./BackEnd/jvm.scm 91 */
BgL_testz00_612 = ((bool_t)0)
; } } 
if(BgL_testz00_612)
{ 
long BgL_rbasez00_620;long BgL_rpathz00_618;
BgL_rpathz00_618 = 
(BgL_rpathz00_213-((long)1)); 
BgL_rbasez00_620 = 
(BgL_rbasez00_214-((long)1)); 
BgL_rbasez00_214 = BgL_rbasez00_620; 
BgL_rpathz00_213 = BgL_rpathz00_618; 
goto BgL_loopz00_215;}  else 
{ /* ./BackEnd/jvm.scm 90 */
BgL_test1448z00_190 = ((bool_t)0); } } } } } } 
if(BgL_test1448z00_190)
{ /* ./BackEnd/jvm.scm 104 */
return BFALSE;}  else 
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_list1450z00_191;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1454z00_193;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1458z00_195;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1461z00_196;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1466z00_198;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1470z00_199;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1476z00_201;
{ /* ./BackEnd/jvm.scm 105 */
obj_t BgL_arg1480z00_202;
BgL_arg1480z00_202 = 
MAKE_PAIR(BGl_string1938z00zzbackend_jvmz00, BNIL); 
BgL_arg1476z00_201 = 
MAKE_PAIR(BgL_pathz00_3, BgL_arg1480z00_202); } 
BgL_arg1470z00_199 = 
MAKE_PAIR(BGl_string1939z00zzbackend_jvmz00, BgL_arg1476z00_201); } 
BgL_arg1466z00_198 = 
MAKE_PAIR(BgL_basez00_189, BgL_arg1470z00_199); } 
BgL_arg1461z00_196 = 
MAKE_PAIR(BGl_string1940z00zzbackend_jvmz00, BgL_arg1466z00_198); } 
BgL_arg1458z00_195 = 
MAKE_PAIR(BGl_za2moduleza2z00zzmodule_modulez00, BgL_arg1461z00_196); } 
BgL_arg1454z00_193 = 
MAKE_PAIR(BGl_string1941z00zzbackend_jvmz00, BgL_arg1458z00_195); } 
BgL_list1450z00_191 = 
MAKE_PAIR(BGl_string1942z00zzbackend_jvmz00, BgL_arg1454z00_193); } 
return 
BGl_warningz00zz__errorz00(BgL_list1450z00_191);} } } } } } } 
}



/* jvmasdump */
obj_t BGl_jvmasdumpz00zzbackend_jvmz00(obj_t BgL_classfilez00_4, obj_t BgL_portz00_5)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 111 */
{ /* ./BackEnd/jvm.scm 112 */
obj_t BgL_owz00_227;obj_t BgL_ocz00_228;
BgL_owz00_227 = BGl_za2ppzd2widthza2zd2zz__ppz00; 
BgL_ocz00_228 = BGl_za2ppzd2caseza2zd2zz__ppz00; 
BGl_za2ppzd2widthza2zd2zz__ppz00 = 
BINT(((long)10240)); 
BGl_za2ppzd2caseza2zd2zz__ppz00 = 
CNST_TABLE_REF(((long)2)); 
{ /* ./BackEnd/jvm.scm 115 */
obj_t BgL_list1521z00_229;
BgL_list1521z00_229 = 
MAKE_PAIR(BgL_portz00_5, BNIL); 
BGl_ppz00zz__ppz00(BgL_classfilez00_4, BgL_list1521z00_229); } 
BGl_za2ppzd2caseza2zd2zz__ppz00 = BgL_ocz00_228; 
return ( 
BGl_za2ppzd2widthza2zd2zz__ppz00 = BgL_owz00_227, BUNSPEC) ;} } 
}



/* addsuffix */
obj_t BGl_addsuffixz00zzbackend_jvmz00(obj_t BgL_namez00_6)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 119 */
{ /* ./BackEnd/jvm.scm 121 */
char * BgL_arg1524z00_230;
{ /* ./BackEnd/jvm.scm 121 */
obj_t BgL_casezd2valuezd2_231;
BgL_casezd2valuezd2_231 = BGl_za2passza2z00zzengine_paramz00; 
if(
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_231, 
CNST_TABLE_REF(((long)3))))
{ /* ./BackEnd/jvm.scm 121 */
BgL_arg1524z00_230 = ".jast"; }  else 
{ /* ./BackEnd/jvm.scm 121 */
if(
BGl_eqvzf3zf3zz__r4_equivalence_6_2z00(BgL_casezd2valuezd2_231, 
CNST_TABLE_REF(((long)4))))
{ /* ./BackEnd/jvm.scm 121 */
BgL_arg1524z00_230 = ".jas"; }  else 
{ /* ./BackEnd/jvm.scm 121 */
BgL_arg1524z00_230 = ".class"; } } } 
{ /* ./BackEnd/jvm.scm 120 */
obj_t BgL_auxz00_648;
BgL_auxz00_648 = 
string_to_bstring(BgL_arg1524z00_230); 
return 
string_append(BgL_namez00_6, BgL_auxz00_648);} } } 
}



/* jasname */
obj_t BGl_jasnamez00zzbackend_jvmz00(obj_t BgL_cfz00_7)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 129 */
{ /* ./BackEnd/jvm.scm 130 */
bool_t BgL_test1530z00_237;
BgL_test1530z00_237 = 
PAIRP(BgL_cfz00_7); 
if(BgL_test1530z00_237)
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_carzd2105zd2_238;
BgL_carzd2105zd2_238 = 
CAR(BgL_cfz00_7); 
{ /* ./BackEnd/jvm.scm 130 */
bool_t BgL_test1531z00_239;
BgL_test1531z00_239 = 
PAIRP(BgL_carzd2105zd2_238); 
if(BgL_test1531z00_239)
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_cdrzd2109zd2_240;
BgL_cdrzd2109zd2_240 = 
CDR(BgL_carzd2105zd2_238); 
{ /* ./BackEnd/jvm.scm 130 */
bool_t BgL_test1532z00_241;
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_auxz00_659;obj_t BgL_auxz00_657;
BgL_auxz00_659 = 
CNST_TABLE_REF(((long)5)); 
BgL_auxz00_657 = 
CAR(BgL_carzd2105zd2_238); 
BgL_test1532z00_241 = 
(BgL_auxz00_657==BgL_auxz00_659); } 
if(BgL_test1532z00_241)
{ /* ./BackEnd/jvm.scm 130 */
bool_t BgL_test1533z00_242;
BgL_test1533z00_242 = 
PAIRP(BgL_cdrzd2109zd2_240); 
if(BgL_test1533z00_242)
{ /* ./BackEnd/jvm.scm 130 */
bool_t BgL_test1534z00_243;
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_auxz00_665;
BgL_auxz00_665 = 
CDR(BgL_cdrzd2109zd2_240); 
BgL_test1534z00_243 = 
NULLP(BgL_auxz00_665); } 
if(BgL_test1534z00_243)
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_arg1537z00_244;
BgL_arg1537z00_244 = 
CAR(BgL_cdrzd2109zd2_240); 
{ /* ./BackEnd/jvm.scm 130 */
obj_t BgL_arg1557z00_470;
BgL_arg1557z00_470 = 
SYMBOL_TO_STRING(BgL_arg1537z00_244); 
return 
BGl_addsuffixz00zzbackend_jvmz00(BgL_arg1557z00_470);} }  else 
{ /* ./BackEnd/jvm.scm 130 */
return BFALSE;} }  else 
{ /* ./BackEnd/jvm.scm 130 */
return BFALSE;} }  else 
{ /* ./BackEnd/jvm.scm 130 */
return BFALSE;} } }  else 
{ /* ./BackEnd/jvm.scm 130 */
return BFALSE;} } }  else 
{ /* ./BackEnd/jvm.scm 130 */
return BFALSE;} } } 
}



/* jvm-filename */
obj_t BGl_jvmzd2filenamezd2zzbackend_jvmz00(obj_t BgL_namez00_8)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 137 */
{ /* ./BackEnd/jvm.scm 138 */
bool_t BgL_test1560z00_249;
{ /* ./BackEnd/jvm.scm 138 */
obj_t BgL_objz00_474;
BgL_objz00_474 = BGl_za2jvmzd2directoryza2zd2zzengine_paramz00; 
BgL_test1560z00_249 = 
STRINGP(BgL_objz00_474); } 
if(BgL_test1560z00_249)
{ /* ./BackEnd/jvm.scm 139 */
bool_t BgL_test1561z00_250;
BgL_test1561z00_250 = 
bigloo_strcmp(BgL_namez00_8, BGl_string1935z00zzbackend_jvmz00); 
if(BgL_test1561z00_250)
{ /* ./BackEnd/jvm.scm 139 */
return BGl_za2jvmzd2directoryza2zd2zzengine_paramz00;}  else 
{ /* ./BackEnd/jvm.scm 139 */
return 
BGl_makezd2filezd2namez00zz__osz00(BGl_za2jvmzd2directoryza2zd2zzengine_paramz00, BgL_namez00_8);} }  else 
{ /* ./BackEnd/jvm.scm 138 */
return BgL_namez00_8;} } } 
}



/* jvm-dirname */
obj_t BGl_jvmzd2dirnamezd2zzbackend_jvmz00(obj_t BgL_filez00_9)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 147 */
{ /* ./BackEnd/jvm.scm 148 */
obj_t BgL_dfilez00_251;
BgL_dfilez00_251 = 
BGl_dirnamez00zz__osz00(BgL_filez00_9); 
{ /* ./BackEnd/jvm.scm 148 */
obj_t BgL_dirz00_252;
BgL_dirz00_252 = 
BGl_jvmzd2filenamezd2zzbackend_jvmz00(BgL_dfilez00_251); 
{ /* ./BackEnd/jvm.scm 149 */

{ /* ./BackEnd/jvm.scm 150 */
bool_t BgL_test1565z00_253;
{ /* ./BackEnd/jvm.scm 150 */
bool_t BgL_test1567z00_254;
BgL_test1567z00_254 = 
bigloo_strcmp(BgL_dfilez00_251, BGl_string1937z00zzbackend_jvmz00); 
if(BgL_test1567z00_254)
{ /* ./BackEnd/jvm.scm 150 */
BgL_test1565z00_253 = ((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 151 */
bool_t BgL_test1568z00_255;
{ /* ./BackEnd/jvm.scm 151 */
char * BgL_stringz00_479;
BgL_stringz00_479 = 
BSTRING_TO_STRING(BgL_dfilez00_251); 
BgL_test1568z00_255 = 
directoryp(BgL_stringz00_479); } 
if(BgL_test1568z00_255)
{ /* ./BackEnd/jvm.scm 151 */
BgL_test1565z00_253 = ((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 152 */
bool_t BgL_test1569z00_256;
{ /* ./BackEnd/jvm.scm 152 */
char * BgL_namez00_480;
BgL_namez00_480 = 
BSTRING_TO_STRING(BgL_dfilez00_251); 
BgL_test1569z00_256 = 
fexists(BgL_namez00_480); } 
if(BgL_test1569z00_256)
{ /* ./BackEnd/jvm.scm 152 */
BgL_test1565z00_253 = ((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 153 */
bool_t BgL__ortest_1433z00_257;
{ /* ./BackEnd/jvm.scm 153 */
bool_t BgL_test1571z00_258;
{ /* ./BackEnd/jvm.scm 153 */
obj_t BgL_objz00_481;
BgL_objz00_481 = BGl_za2jvmzd2directoryza2zd2zzengine_paramz00; 
BgL_test1571z00_258 = 
STRINGP(BgL_objz00_481); } 
if(BgL_test1571z00_258)
{ /* ./BackEnd/jvm.scm 153 */
BgL__ortest_1433z00_257 = ((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 153 */
BgL__ortest_1433z00_257 = ((bool_t)1); } } 
if(BgL__ortest_1433z00_257)
{ /* ./BackEnd/jvm.scm 153 */
BgL_test1565z00_253 = BgL__ortest_1433z00_257; }  else 
{ /* ./BackEnd/jvm.scm 154 */
char * BgL_stringz00_482;
BgL_stringz00_482 = 
BSTRING_TO_STRING(BGl_za2jvmzd2directoryza2zd2zzengine_paramz00); 
BgL_test1565z00_253 = 
directoryp(BgL_stringz00_482); } } } } } 
if(BgL_test1565z00_253)
{ /* ./BackEnd/jvm.scm 150 */
BGl_makezd2directorieszd2zz__r4_ports_6_10_1z00(BgL_dirz00_252); }  else 
{ /* ./BackEnd/jvm.scm 150 */((bool_t)0); } } 
return BgL_dirz00_252;} } } } 
}



/* start-jvm-emission! */
obj_t BGl_startzd2jvmzd2emissionz12z12zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 162 */
{ /* ./BackEnd/jvm.scm 164 */
bool_t BgL_test1578z00_259;
{ /* ./BackEnd/jvm.scm 164 */
obj_t BgL_objz00_483;
BgL_objz00_483 = BGl_za2destza2z00zzengine_paramz00; 
BgL_test1578z00_259 = 
STRINGP(BgL_objz00_483); } 
if(BgL_test1578z00_259)
{ /* ./BackEnd/jvm.scm 164 */
{ /* ./BackEnd/jvm.scm 165 */
obj_t BgL_dnamez00_260;
BgL_dnamez00_260 = 
BGl_dirnamez00zz__osz00(BGl_za2destza2z00zzengine_paramz00); 
{ /* ./BackEnd/jvm.scm 166 */
bool_t BgL_test1579z00_261;
BgL_test1579z00_261 = 
bigloo_strcmp(BgL_dnamez00_260, BGl_string1937z00zzbackend_jvmz00); 
if(BgL_test1579z00_261)
{ /* ./BackEnd/jvm.scm 166 */BFALSE; }  else 
{ /* ./BackEnd/jvm.scm 166 */
BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00 = 
BGl_jvmzd2dirnamezd2zzbackend_jvmz00(BGl_za2destza2z00zzengine_paramz00); } } } }  else 
{ /* ./BackEnd/jvm.scm 168 */
bool_t BgL_test1583z00_262;
{ /* ./BackEnd/jvm.scm 168 */
obj_t BgL_auxz00_700;
BgL_auxz00_700 = 
CNST_TABLE_REF(((long)6)); 
BgL_test1583z00_262 = 
(BGl_za2passza2z00zzengine_paramz00==BgL_auxz00_700); } 
if(BgL_test1583z00_262)
{ /* ./BackEnd/jvm.scm 168 */
{ /* ./BackEnd/jvm.scm 169 */
bool_t BgL_test1584z00_263;
{ /* ./BackEnd/jvm.scm 169 */
obj_t BgL_objz00_486;
BgL_objz00_486 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_test1584z00_263 = 
PAIRP(BgL_objz00_486); } 
if(BgL_test1584z00_263)
{ /* ./BackEnd/jvm.scm 170 */
obj_t BgL_arg1586z00_264;
{ /* ./BackEnd/jvm.scm 170 */
obj_t BgL_pairz00_487;
BgL_pairz00_487 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_arg1586z00_264 = 
CAR(BgL_pairz00_487); } 
BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00 = 
BGl_jvmzd2dirnamezd2zzbackend_jvmz00(BgL_arg1586z00_264); }  else 
{ /* ./BackEnd/jvm.scm 169 */BFALSE; } } }  else 
{ /* ./BackEnd/jvm.scm 168 */BFALSE; } } } 
{ /* ./BackEnd/jvm.scm 171 */
bool_t BgL_test1592z00_265;
{ /* ./BackEnd/jvm.scm 171 */
bool_t BgL_test1594z00_266;
{ /* ./BackEnd/jvm.scm 171 */
char * BgL_namez00_488;
BgL_namez00_488 = 
BSTRING_TO_STRING(BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00); 
BgL_test1594z00_266 = 
fexists(BgL_namez00_488); } 
if(BgL_test1594z00_266)
{ /* ./BackEnd/jvm.scm 171 */
char * BgL_stringz00_489;
BgL_stringz00_489 = 
BSTRING_TO_STRING(BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00); 
BgL_test1592z00_265 = 
directoryp(BgL_stringz00_489); }  else 
{ /* ./BackEnd/jvm.scm 171 */
BgL_test1592z00_265 = ((bool_t)0); } } 
if(BgL_test1592z00_265)
{ /* ./BackEnd/jvm.scm 171 */
return BTRUE;}  else 
{ /* ./BackEnd/jvm.scm 172 */
obj_t BgL_objectz00_492;
BgL_objectz00_492 = BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00; 
FAILURE(BGl_string1943z00zzbackend_jvmz00,BGl_string1944z00zzbackend_jvmz00,BgL_objectz00_492);} } } 
}



/* _start-jvm-emission! */
obj_t BGl__startzd2jvmzd2emissionz12z12zzbackend_jvmz00(obj_t BgL_envz00_521)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 162 */
return 
BGl_startzd2jvmzd2emissionz12z12zzbackend_jvmz00();} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 1 */
BGl_addzd2methodz12zc0zz__objectz00(BGl_backendzd2compilezd2envz00zzbackend_backendz00, BGl_jvmz00zzbackend_backendz00, BGl_proc1945z00zzbackend_jvmz00); 
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_backendzd2linkzd2envz00zzbackend_backendz00, BGl_jvmz00zzbackend_backendz00, BGl_proc1946z00zzbackend_jvmz00);} 
}



/* backend-link-jvm1437 */
obj_t BGl_backendzd2linkzd2jvm1437z00zzbackend_jvmz00(obj_t BgL_envz00_527, obj_t BgL_mez00_528, obj_t BgL_resultz00_529)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 181 */
return 
BGl_jvmzd2ldzd2zzjvm_ldz00();} 
}



/* backend-compile-jvm1435 */
obj_t BGl_backendzd2compilezd2jvm1435z00zzbackend_jvmz00(obj_t BgL_envz00_530, obj_t BgL_mez00_531)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 24 */
{ 
BgL_jvmz00_bglt BgL_mez00_339;
BgL_mez00_339 = 
(BgL_jvmz00_bglt)(BgL_mez00_531); 
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_list1643z00_343;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_arg1650z00_345;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_arg1655z00_347;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_auxz00_719;
BgL_auxz00_719 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg1655z00_347 = 
MAKE_PAIR(BgL_auxz00_719, BNIL); } 
BgL_arg1650z00_345 = 
MAKE_PAIR(BGl_string1947z00zzbackend_jvmz00, BgL_arg1655z00_347); } 
BgL_list1643z00_343 = 
MAKE_PAIR(BGl_string1948z00zzbackend_jvmz00, BgL_arg1650z00_345); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)1)), BgL_list1643z00_343); } 
BGl_za2nbzd2errorzd2onzd2passza2zd2zztools_errorz00 = 
BINT(((long)0)); 
BGl_za2currentzd2passza2zd2zzengine_passz00 = BGl_string1947z00zzbackend_jvmz00; 
{ 
obj_t BgL_hooksz00_348;obj_t BgL_hnamesz00_349;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_arg1659z00_351;obj_t BgL_arg1661z00_352;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_list1664z00_353;
BgL_list1664z00_353 = 
MAKE_PAIR(BGl_startzd2jvmzd2emissionz12zd2envzc0zzbackend_jvmz00, BNIL); 
BgL_arg1659z00_351 = BgL_list1664z00_353; } 
BgL_arg1661z00_352 = 
CNST_TABLE_REF(((long)8)); 
BgL_hooksz00_348 = BgL_arg1659z00_351; 
BgL_hnamesz00_349 = BgL_arg1661z00_352; 
BgL_loopz00_350:
{ /* ./BackEnd/jvm.scm 26 */
bool_t BgL_test1666z00_354;
BgL_test1666z00_354 = 
NULLP(BgL_hooksz00_348); 
if(BgL_test1666z00_354)
{ /* ./BackEnd/jvm.scm 26 */
CNST_TABLE_REF(((long)7)); }  else 
{ /* ./BackEnd/jvm.scm 26 */
bool_t BgL_test1667z00_355;
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_fun1684z00_361;
BgL_fun1684z00_361 = 
CAR(BgL_hooksz00_348); 
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_auxz00_733;
BgL_auxz00_733 = 
PROCEDURE_ENTRY(BgL_fun1684z00_361)(BgL_fun1684z00_361, BEOA); 
BgL_test1667z00_355 = 
CBOOL(BgL_auxz00_733); } } 
if(BgL_test1667z00_355)
{ /* ./BackEnd/jvm.scm 26 */
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_arg1669z00_356;obj_t BgL_arg1670z00_357;
BgL_arg1669z00_356 = 
CDR(BgL_hooksz00_348); 
BgL_arg1670z00_357 = 
CDR(BgL_hnamesz00_349); 
{ 
obj_t BgL_hnamesz00_741;obj_t BgL_hooksz00_740;
BgL_hooksz00_740 = BgL_arg1669z00_356; 
BgL_hnamesz00_741 = BgL_arg1670z00_357; 
BgL_hnamesz00_349 = BgL_hnamesz00_741; 
BgL_hooksz00_348 = BgL_hooksz00_740; 
goto BgL_loopz00_350;} } }  else 
{ /* ./BackEnd/jvm.scm 26 */
{ /* ./BackEnd/jvm.scm 26 */
obj_t BgL_arg1678z00_360;
BgL_arg1678z00_360 = 
CAR(BgL_hnamesz00_349); 
BGl_internalzd2errorzd2zztools_errorz00(BGl_string1947z00zzbackend_jvmz00, BGl_string1949z00zzbackend_jvmz00, BgL_arg1678z00_360); } } } } } } 
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1691z00_365;
BgL_arg1691z00_365 = 
BGl_modulezd2ze3qualifiedzd2typeze3zzread_jvmz00(BGl_za2moduleza2z00zzmodule_modulez00); 
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_list1694z00_367;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1696z00_368;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1699z00_369;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1702z00_370;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1705z00_371;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_arg1709z00_372;
{ /* ./BackEnd/jvm.scm 27 */
obj_t BgL_auxz00_745;
BgL_auxz00_745 = 
BCHAR(((unsigned char)'\n')); 
BgL_arg1709z00_372 = 
MAKE_PAIR(BgL_auxz00_745, BNIL); } 
BgL_arg1705z00_371 = 
MAKE_PAIR(BGl_string1950z00zzbackend_jvmz00, BgL_arg1709z00_372); } 
BgL_arg1702z00_370 = 
MAKE_PAIR(BgL_arg1691z00_365, BgL_arg1705z00_371); } 
BgL_arg1699z00_369 = 
MAKE_PAIR(BGl_string1951z00zzbackend_jvmz00, BgL_arg1702z00_370); } 
BgL_arg1696z00_368 = 
MAKE_PAIR(BGl_za2moduleza2z00zzmodule_modulez00, BgL_arg1699z00_369); } 
BgL_list1694z00_367 = 
MAKE_PAIR(BGl_string1952z00zzbackend_jvmz00, BgL_arg1696z00_368); } 
BGl_verbosez00zztools_speekz00(
BINT(((long)2)), BgL_list1694z00_367); } } 
{ /* ./BackEnd/jvm.scm 31 */
bool_t BgL_test1713z00_373;
if(
CBOOL(BGl_za2mainza2z00zzmodule_modulez00))
{ /* ./BackEnd/jvm.scm 31 */
BgL_test1713z00_373 = ((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 31 */
obj_t BgL_auxz00_757;
BgL_auxz00_757 = 
BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BGl_za2passza2z00zzengine_paramz00, 
CNST_TABLE_REF(((long)9))); 
BgL_test1713z00_373 = 
CBOOL(BgL_auxz00_757); } 
if(BgL_test1713z00_373)
{ /* ./BackEnd/jvm.scm 31 */
BGl_za2mainza2z00zzmodule_modulez00 = 
BGl_makezd2bigloozd2mainz00zzbackend_c_mainz00(); }  else 
{ /* ./BackEnd/jvm.scm 31 */BFALSE; } } 
BGl_jvmzd2checkzd2packagez00zzbackend_jvmz00(BGl_za2moduleza2z00zzmodule_modulez00, BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00); 
{ /* ./BackEnd/jvm.scm 53 */
obj_t BgL_lza2za2_374;obj_t BgL_bnamez00_375;
BgL_lza2za2_374 = 
BGl_saw_jvmzd2compilezd2zzsaw_jvm_compilez00(BgL_mez00_339); 
{ /* ./BackEnd/jvm.scm 55 */
bool_t BgL_test1753z00_396;
{ /* ./BackEnd/jvm.scm 55 */
obj_t BgL_auxz00_765;
BgL_auxz00_765 = 
CNST_TABLE_REF(((long)6)); 
BgL_test1753z00_396 = 
(BGl_za2passza2z00zzengine_paramz00==BgL_auxz00_765); } 
if(BgL_test1753z00_396)
{ /* ./BackEnd/jvm.scm 55 */
{ /* ./BackEnd/jvm.scm 56 */
bool_t BgL_test1754z00_397;
{ /* ./BackEnd/jvm.scm 56 */
obj_t BgL_objz00_500;
BgL_objz00_500 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_test1754z00_397 = 
PAIRP(BgL_objz00_500); } 
if(BgL_test1754z00_397)
{ /* ./BackEnd/jvm.scm 57 */
obj_t BgL_arg1756z00_398;
{ /* ./BackEnd/jvm.scm 57 */
obj_t BgL_arg1760z00_399;
{ /* ./BackEnd/jvm.scm 57 */
obj_t BgL_arg1766z00_400;
{ /* ./BackEnd/jvm.scm 57 */
obj_t BgL_pairz00_501;
BgL_pairz00_501 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_arg1766z00_400 = 
CAR(BgL_pairz00_501); } 
BgL_arg1760z00_399 = 
BGl_basenamez00zz__osz00(BgL_arg1766z00_400); } 
BgL_arg1756z00_398 = 
BGl_prefixz00zz__osz00(BgL_arg1760z00_399); } 
BgL_bnamez00_375 = 
BGl_addsuffixz00zzbackend_jvmz00(BgL_arg1756z00_398); }  else 
{ /* ./BackEnd/jvm.scm 56 */
BgL_bnamez00_375 = BGl_string1953z00zzbackend_jvmz00; } } }  else 
{ /* ./BackEnd/jvm.scm 59 */
bool_t BgL_test1770z00_401;
{ /* ./BackEnd/jvm.scm 59 */
obj_t BgL_objz00_502;
BgL_objz00_502 = BGl_za2destza2z00zzengine_paramz00; 
BgL_test1770z00_401 = 
STRINGP(BgL_objz00_502); } 
if(BgL_test1770z00_401)
{ /* ./BackEnd/jvm.scm 59 */
{ /* ./BackEnd/jvm.scm 64 */
obj_t BgL_arg1772z00_402;
{ /* ./BackEnd/jvm.scm 64 */
obj_t BgL_arg1775z00_403;
BgL_arg1775z00_403 = 
BGl_basenamez00zz__osz00(BGl_za2destza2z00zzengine_paramz00); 
BgL_arg1772z00_402 = 
BGl_prefixz00zz__osz00(BgL_arg1775z00_403); } 
BgL_bnamez00_375 = 
BGl_addsuffixz00zzbackend_jvmz00(BgL_arg1772z00_402); } }  else 
{ /* ./BackEnd/jvm.scm 59 */
{ /* ./BackEnd/jvm.scm 60 */
bool_t BgL_test1778z00_404;
{ /* ./BackEnd/jvm.scm 60 */
obj_t BgL_objz00_503;
BgL_objz00_503 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_test1778z00_404 = 
PAIRP(BgL_objz00_503); } 
if(BgL_test1778z00_404)
{ /* ./BackEnd/jvm.scm 61 */
obj_t BgL_arg1780z00_405;
{ /* ./BackEnd/jvm.scm 61 */
obj_t BgL_arg1783z00_406;
{ /* ./BackEnd/jvm.scm 61 */
obj_t BgL_arg1786z00_407;
{ /* ./BackEnd/jvm.scm 61 */
obj_t BgL_pairz00_504;
BgL_pairz00_504 = BGl_za2srczd2filesza2zd2zzengine_paramz00; 
BgL_arg1786z00_407 = 
CAR(BgL_pairz00_504); } 
BgL_arg1783z00_406 = 
BGl_basenamez00zz__osz00(BgL_arg1786z00_407); } 
BgL_arg1780z00_405 = 
BGl_prefixz00zz__osz00(BgL_arg1783z00_406); } 
BgL_bnamez00_375 = 
BGl_addsuffixz00zzbackend_jvmz00(BgL_arg1780z00_405); }  else 
{ /* ./BackEnd/jvm.scm 60 */
BgL_bnamez00_375 = BFALSE; } } } } } 
{ /* ./BackEnd/jvm.scm 65 */
obj_t BgL_arg1718z00_376;
BgL_arg1718z00_376 = 
CAR(BgL_lza2za2_374); 
BGl_emitz00zzbackend_jvmz00(BgL_arg1718z00_376, BgL_bnamez00_375); } 
{ 
obj_t BgL_l1430z00_377;
{ /* ./BackEnd/jvm.scm 67 */
obj_t BgL_arg1722z00_379;
BgL_arg1722z00_379 = 
CDR(BgL_lza2za2_374); 
BgL_l1430z00_377 = BgL_arg1722z00_379; 
BgL_forzd2each1431zd2_378:
{ /* ./BackEnd/jvm.scm 66 */
bool_t BgL_test1725z00_380;
BgL_test1725z00_380 = 
PAIRP(BgL_l1430z00_377); 
if(BgL_test1725z00_380)
{ /* ./BackEnd/jvm.scm 66 */
{ /* ./BackEnd/jvm.scm 66 */
obj_t BgL_cfz00_381;
BgL_cfz00_381 = 
CAR(BgL_l1430z00_377); 
{ /* ./BackEnd/jvm.scm 66 */
obj_t BgL_arg1727z00_382;
BgL_arg1727z00_382 = 
BGl_jasnamez00zzbackend_jvmz00(BgL_cfz00_381); 
BGl_emitz00zzbackend_jvmz00(BgL_cfz00_381, BgL_arg1727z00_382); } } 
{ /* ./BackEnd/jvm.scm 66 */
obj_t BgL_arg1732z00_383;
BgL_arg1732z00_383 = 
CDR(BgL_l1430z00_377); 
{ 
obj_t BgL_l1430z00_795;
BgL_l1430z00_795 = BgL_arg1732z00_383; 
BgL_l1430z00_377 = BgL_l1430z00_795; 
goto BgL_forzd2each1431zd2_378;} } }  else 
{ /* ./BackEnd/jvm.scm 66 */((bool_t)1); } } } } 
{ /* ./BackEnd/jvm.scm 68 */
obj_t BgL_arg1737z00_384;
BgL_arg1737z00_384 = 
CNST_TABLE_REF(((long)10)); 
BGl_stopzd2onzd2passz00zzengine_passz00(BgL_arg1737z00_384, BGl_proc1954z00zzbackend_jvmz00); } 
{ /* ./BackEnd/jvm.scm 69 */
obj_t BgL_arg1743z00_388;
BgL_arg1743z00_388 = 
CNST_TABLE_REF(((long)4)); 
BGl_stopzd2onzd2passz00zzengine_passz00(BgL_arg1743z00_388, BGl_proc1955z00zzbackend_jvmz00); } 
{ /* ./BackEnd/jvm.scm 70 */
obj_t BgL_arg1748z00_392;
BgL_arg1748z00_392 = 
CNST_TABLE_REF(((long)3)); 
return 
BGl_stopzd2onzd2passz00zzengine_passz00(BgL_arg1748z00_392, BGl_proc1956z00zzbackend_jvmz00);} } } } 
}



/* emit */
obj_t BGl_emitz00zzbackend_jvmz00(obj_t BgL_classfilez00_408, obj_t BgL_destz00_409)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 51 */
{ /* ./BackEnd/jvm.scm 35 */
obj_t BgL_dirz00_411;
BgL_dirz00_411 = BGl_za2jvmzd2dirzd2nameza2z00zzbackend_jvmz00; 
{ /* ./BackEnd/jvm.scm 36 */
bool_t BgL_test1795z00_412;
{ /* ./BackEnd/jvm.scm 36 */
obj_t BgL_auxz00_803;
BgL_auxz00_803 = 
CNST_TABLE_REF(((long)4)); 
BgL_test1795z00_412 = 
(BGl_za2passza2z00zzengine_paramz00==BgL_auxz00_803); } 
if(BgL_test1795z00_412)
{ /* ./BackEnd/jvm.scm 37 */
obj_t BgL_portz00_413;
{ /* ./BackEnd/jvm.scm 37 */
bool_t BgL_test1803z00_416;
BgL_test1803z00_416 = 
STRINGP(BgL_destz00_409); 
if(BgL_test1803z00_416)
{ /* ./BackEnd/jvm.scm 40 */
obj_t BgL_arg1805z00_417;
BgL_arg1805z00_417 = 
string_append_3(BgL_dirz00_411, BGl_string1957z00zzbackend_jvmz00, BgL_destz00_409); 
BgL_portz00_413 = 
open_output_file(BgL_arg1805z00_417); }  else 
{ /* ./BackEnd/jvm.scm 37 */
BgL_portz00_413 = 
BGL_CURRENT_OUTPUT_PORT(); } } 
BGl_jvmasdumpz00zzbackend_jvmz00(BgL_classfilez00_408, BgL_portz00_413); 
{ /* ./BackEnd/jvm.scm 42 */
bool_t BgL_test1797z00_414;
{ /* ./BackEnd/jvm.scm 42 */
obj_t BgL_arg1800z00_415;
BgL_arg1800z00_415 = 
BGL_CURRENT_OUTPUT_PORT(); 
BgL_test1797z00_414 = 
(BgL_portz00_413==BgL_arg1800z00_415); } 
if(BgL_test1797z00_414)
{ /* ./BackEnd/jvm.scm 42 */
return BFALSE;}  else 
{ /* ./BackEnd/jvm.scm 42 */
return 
close_output_port(BgL_portz00_413);} } }  else 
{ /* ./BackEnd/jvm.scm 44 */
obj_t BgL_cnamez00_418;
{ /* ./BackEnd/jvm.scm 44 */
bool_t BgL_test1816z00_421;
BgL_test1816z00_421 = 
STRINGP(BgL_destz00_409); 
if(BgL_test1816z00_421)
{ /* ./BackEnd/jvm.scm 44 */
BgL_cnamez00_418 = 
string_append_3(BgL_dirz00_411, BGl_string1957z00zzbackend_jvmz00, BgL_destz00_409); }  else 
{ /* ./BackEnd/jvm.scm 44 */
BgL_cnamez00_418 = 
string_append(BgL_dirz00_411, BGl_string1958z00zzbackend_jvmz00); } } 
{ /* ./BackEnd/jvm.scm 44 */
obj_t BgL_portz00_419;
BgL_portz00_419 = 
open_output_binary_file(BgL_cnamez00_418); 
{ /* ./BackEnd/jvm.scm 47 */

{ /* ./BackEnd/jvm.scm 48 */
bool_t BgL_test1810z00_420;
BgL_test1810z00_420 = 
BINARY_PORTP(BgL_portz00_419); 
if(BgL_test1810z00_420)
{ /* ./BackEnd/jvm.scm 48 */((bool_t)0); }  else 
{ /* ./BackEnd/jvm.scm 48 */
FAILURE(BGl_string1959z00zzbackend_jvmz00,BGl_string1960z00zzbackend_jvmz00,BgL_cnamez00_418);} } 
BGl_jvmzd2aszd2zzjas_asz00(BgL_classfilez00_408, BgL_portz00_419); 
return 
close_binary_port(BgL_portz00_419);} } } } } } 
}



/* <anonymous:1751> */
obj_t BGl_zc3anonymousza31751ze3z83zzbackend_jvmz00(obj_t BgL_envz00_532)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 70 */
{ 

return 
CNST_TABLE_REF(((long)11));} } 
}



/* <anonymous:1746> */
obj_t BGl_zc3anonymousza31746ze3z83zzbackend_jvmz00(obj_t BgL_envz00_533)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 69 */
{ 

return 
CNST_TABLE_REF(((long)11));} } 
}



/* <anonymous:1740> */
obj_t BGl_zc3anonymousza31740ze3z83zzbackend_jvmz00(obj_t BgL_envz00_534)
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 68 */
{ 

return 
CNST_TABLE_REF(((long)11));} } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzbackend_jvmz00()
{ AN_OBJECT;
{ /* ./BackEnd/jvm.scm 1 */
BGl_modulezd2initializa7ationz75zztools_speekz00(((long)23537), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zztools_errorz00(((long)25566), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzengine_passz00(((long)10268), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzengine_paramz00(((long)14260), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzbackend_backendz00(((long)3428), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzread_jvmz00(((long)16338), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzbackend_c_mainz00(((long)39441), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzsaw_jvm_compilez00(((long)52159), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzjas_asz00(((long)63774), "backend_jvm"); 
BGl_modulezd2initializa7ationz75zzjas_peepz00(((long)20893), "backend_jvm"); 
return 
BGl_modulezd2initializa7ationz75zzjvm_ldz00(((long)12620), "backend_jvm");} 
}

