/*===========================================================================*/
/*   (Foreign/cenum.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 Foreign/cenum.scm)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>


/* Object type definitions */
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_caliasz00_bgl {
   bool_t BgL_arrayzf3zf3;
} *BgL_caliasz00_bglt;

typedef struct BgL_cenumz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   obj_t BgL_literalsz00;
} *BgL_cenumz00_bglt;

typedef struct BgL_copaquez00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
} *BgL_copaquez00_bglt;

typedef struct BgL_cfunctionz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   long BgL_arityz00;
   struct BgL_typez00_bgl * BgL_typezd2reszd2;
   obj_t BgL_typezd2argszd2;
} *BgL_cfunctionz00_bglt;

typedef struct BgL_cptrz00_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   struct BgL_typez00_bgl * BgL_pointzd2tozd2;
   bool_t BgL_arrayzf3zf3;
} *BgL_cptrz00_bglt;

typedef struct BgL_cstructz00_bgl {
   bool_t BgL_structzf3zf3;
   obj_t BgL_fieldsz00;
   obj_t BgL_cstructza2za2;
} *BgL_cstructz00_bglt;

typedef struct BgL_cstructza2za2_bgl {
   struct BgL_typez00_bgl * BgL_btypez00;
   struct BgL_cstructz00_bgl * BgL_cstructz00;
} *BgL_cstructza2za2_bglt;

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;


BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zzforeign_cenumz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztools_miscz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_toolsz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_ctypez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_accessz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzforeign_libraryz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzmodule_modulez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zzast_identz00(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__r4_symbols_6_4z00(long, char *);
static obj_t BGl_methodzd2initzd2zzforeign_cenumz00();
static obj_t BGl_makezd2ctypezd2accessesz12zd2cenum1588zc0zzforeign_cenumz00(obj_t, obj_t, obj_t, obj_t);
BGL_IMPORT obj_t open_input_string(obj_t);
extern obj_t BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(obj_t);
extern obj_t BGl_cenumz00zzforeign_ctypez00;
BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t);
extern obj_t BGl_makezd2protozd2inlinez00zzforeign_libraryz00(obj_t);
extern obj_t BGl_makezd2definezd2inlinez00zzforeign_libraryz00(obj_t, obj_t);
BGL_IMPORT obj_t BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(obj_t);
static obj_t BGl_cnstzd2initzd2zzforeign_cenumz00();
static obj_t BGl_importedzd2moduleszd2initz00zzforeign_cenumz00();
extern obj_t BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(obj_t);
static obj_t BGl_requirezd2initializa7ationz75zzforeign_cenumz00 = BUNSPEC;
BGL_IMPORT obj_t BGl_addzd2methodz12zc0zz__objectz00(obj_t, obj_t, obj_t);
static obj_t BGl_libraryzd2moduleszd2initz00zzforeign_cenumz00();
extern obj_t BGl_makezd2typedzd2identz00zzast_identz00(obj_t, obj_t);
extern obj_t BGl_stringzd2sanszd2z42z42zztype_toolsz00(obj_t);
static obj_t BGl_toplevelzd2initzd2zzforeign_cenumz00();
BGL_IMPORT obj_t string_append_3(obj_t, obj_t, obj_t);
static obj_t __cnst[ 23 ] ;


extern obj_t BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00;
DEFINE_STATIC_PROCEDURE( BGl_proc2012z00zzforeign_cenumz00, BgL_bgl_makeza7d2ctypeza7d2accessesza712za7d2cenum1588za7c0za7za7foreign_cenumza7002044z00, BGl_makezd2ctypezd2accessesz12zd2cenum1588zc0zzforeign_cenumz00, 0L, 3 );
DEFINE_STRING( BGl_string2016z00zzforeign_cenumz00, BgL_bgl_string2016za700za7za7foreign_cenumza7002045z00, "predicate-of ::obj static foreign pragma - (pragma::bool \"($1 == $2)\" o1 o2) o2 o1 ?::bool = quote foreign-id eq? o foreign? if o::obj symbol macro ::bool ? -> ", 160 );
DEFINE_STRING( BGl_string2015z00zzforeign_cenumz00, BgL_bgl_string2015za700za7za7foreign_cenumza7002046z00, ")FOREIGN_TO_COBJ", 16 );
DEFINE_STRING( BGl_string2014z00zzforeign_cenumz00, BgL_bgl_string2014za700za7za7foreign_cenumza7002047z00, "(", 1 );
DEFINE_STRING( BGl_string2013z00zzforeign_cenumz00, BgL_bgl_string2013za700za7za7foreign_cenumza7002048z00, "CENUM_TO_FOREIGN", 16 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zzforeign_cenumz00(long BgL_checksumz00_352, char * BgL_fromz00_353)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zzforeign_cenumz00))
{ 
BGl_requirezd2initializa7ationz75zzforeign_cenumz00 = 
BBOOL(((bool_t)0)); 
BGl_libraryzd2moduleszd2initz00zzforeign_cenumz00(); 
BGl_cnstzd2initzd2zzforeign_cenumz00(); 
BGl_importedzd2moduleszd2initz00zzforeign_cenumz00(); 
BGl_methodzd2initzd2zzforeign_cenumz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* library-modules-init */
obj_t BGl_libraryzd2moduleszd2initz00zzforeign_cenumz00()
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 15 */
BGl_modulezd2initializa7ationz75zz__readerz00(((long)0), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)0), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zz__objectz00(((long)0), "foreign_cenum"); 
return BUNSPEC;} 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zzforeign_cenumz00()
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 15 */
{ /* ./Foreign/cenum.scm 15 */
obj_t BgL_cportz00_345;
BgL_cportz00_345 = 
open_input_string(BGl_string2016z00zzforeign_cenumz00); 
{ 
long BgL_iz00_346;
BgL_iz00_346 = ((long)22); 
BgL_loopz00_347:
{ /* ./Foreign/cenum.scm 15 */
bool_t BgL_test2018z00_348;
BgL_test2018z00_348 = 
(BgL_iz00_346==((long)-1)); 
if(BgL_test2018z00_348)
{ /* ./Foreign/cenum.scm 15 */
return BUNSPEC;}  else 
{ /* ./Foreign/cenum.scm 15 */
{ /* ./Foreign/cenum.scm 15 */
obj_t BgL_arg2021z00_349;
{ /* ./Foreign/cenum.scm 15 */
obj_t BgL_list2024z00_350;
BgL_list2024z00_350 = 
MAKE_PAIR(BgL_cportz00_345, BNIL); 
BgL_arg2021z00_349 = 
BGl_readz00zz__readerz00(BgL_list2024z00_350); } 
{ /* ./Foreign/cenum.scm 15 */
int BgL_auxz00_369;
BgL_auxz00_369 = 
(int)(BgL_iz00_346); 
CNST_TABLE_SET(BgL_auxz00_369, BgL_arg2021z00_349); } } 
{ /* ./Foreign/cenum.scm 15 */
int BgL_auxz00_351;
{ /* ./Foreign/cenum.scm 15 */
long BgL_auxz00_372;
BgL_auxz00_372 = 
(BgL_iz00_346-((long)1)); 
BgL_auxz00_351 = 
(int)(BgL_auxz00_372); } 
{ 
long BgL_iz00_375;
BgL_iz00_375 = 
(long)(BgL_auxz00_351); 
BgL_iz00_346 = BgL_iz00_375; 
goto BgL_loopz00_347;} } } } } } } 
}



/* toplevel-init */
obj_t BGl_toplevelzd2initzd2zzforeign_cenumz00()
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 15 */
return BUNSPEC;} 
}



/* method-init */
obj_t BGl_methodzd2initzd2zzforeign_cenumz00()
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 15 */
return 
BGl_addzd2methodz12zc0zz__objectz00(BGl_makezd2ctypezd2accessesz12zd2envzc0zzforeign_accessz00, BGl_cenumz00zzforeign_ctypez00, BGl_proc2012z00zzforeign_cenumz00);} 
}



/* make-ctype-accesses!-cenum1588 */
obj_t BGl_makezd2ctypezd2accessesz12zd2cenum1588zc0zzforeign_cenumz00(obj_t BgL_envz00_337, obj_t BgL_whatz00_338, obj_t BgL_whoz00_339, obj_t BgL_locz00_340)
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 28 */
{ 
BgL_cenumz00_bglt BgL_whatz00_172;BgL_typez00_bglt BgL_whoz00_173;obj_t BgL_locz00_174;
BgL_whatz00_172 = 
(BgL_cenumz00_bglt)(BgL_whatz00_338); 
BgL_whoz00_173 = 
(BgL_typez00_bglt)(BgL_whoz00_339); 
BgL_locz00_174 = BgL_locz00_340; 
{ /* ./Foreign/cenum.scm 29 */
BgL_typez00_bglt BgL_btypez00_177;
{ 
obj_t BgL_auxz00_378;
{ /* ./Foreign/cenum.scm 29 */
BgL_objectz00_bglt BgL_auxz00_379;
BgL_auxz00_379 = 
(BgL_objectz00_bglt)(BgL_whatz00_172); 
BgL_auxz00_378 = 
BGL_OBJECT_WIDENING(BgL_auxz00_379); } 
BgL_btypez00_177 = 
(((BgL_cenumz00_bglt)CREF(BgL_auxz00_378))->BgL_btypez00); } 
{ /* ./Foreign/cenum.scm 29 */
obj_t BgL_idz00_178;
BgL_idz00_178 = 
(((BgL_typez00_bglt)CREF(BgL_whoz00_173))->BgL_idz00); 
{ /* ./Foreign/cenum.scm 30 */
obj_t BgL_widz00_179;
{ /* ./Foreign/cenum.scm 31 */
BgL_typez00_bglt BgL_obj1003z00_324;
BgL_obj1003z00_324 = 
(BgL_typez00_bglt)(BgL_whatz00_172); 
BgL_widz00_179 = 
(((BgL_typez00_bglt)CREF(BgL_obj1003z00_324))->BgL_idz00); } 
{ /* ./Foreign/cenum.scm 31 */
obj_t BgL_bidz00_180;
BgL_bidz00_180 = 
(((BgL_typez00_bglt)CREF(BgL_btypez00_177))->BgL_idz00); 
{ /* ./Foreign/cenum.scm 32 */
obj_t BgL_idzd2ze3bidz31_181;
{ /* ./Foreign/cenum.scm 33 */
obj_t BgL_list1970z00_316;
{ /* ./Foreign/cenum.scm 33 */
obj_t BgL_arg1973z00_317;
{ /* ./Foreign/cenum.scm 33 */
obj_t BgL_arg1976z00_318;obj_t BgL_arg1977z00_319;
BgL_arg1976z00_318 = 
CNST_TABLE_REF(((long)0)); 
BgL_arg1977z00_319 = 
MAKE_PAIR(BgL_bidz00_180, BNIL); 
BgL_arg1973z00_317 = 
MAKE_PAIR(BgL_arg1976z00_318, BgL_arg1977z00_319); } 
BgL_list1970z00_316 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1973z00_317); } 
BgL_idzd2ze3bidz31_181 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1970z00_316); } 
{ /* ./Foreign/cenum.scm 33 */
obj_t BgL_bidzd2ze3idz31_182;
{ /* ./Foreign/cenum.scm 34 */
obj_t BgL_list1959z00_312;
{ /* ./Foreign/cenum.scm 34 */
obj_t BgL_arg1962z00_313;
{ /* ./Foreign/cenum.scm 34 */
obj_t BgL_arg1965z00_314;obj_t BgL_arg1966z00_315;
BgL_arg1965z00_314 = 
CNST_TABLE_REF(((long)0)); 
BgL_arg1966z00_315 = 
MAKE_PAIR(BgL_idz00_178, BNIL); 
BgL_arg1962z00_313 = 
MAKE_PAIR(BgL_arg1965z00_314, BgL_arg1966z00_315); } 
BgL_list1959z00_312 = 
MAKE_PAIR(BgL_bidz00_180, BgL_arg1962z00_313); } 
BgL_bidzd2ze3idz31_182 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1959z00_312); } 
{ /* ./Foreign/cenum.scm 34 */
obj_t BgL_bidzf3zf3_183;
{ /* ./Foreign/cenum.scm 35 */
obj_t BgL_list1953z00_310;
{ /* ./Foreign/cenum.scm 35 */
obj_t BgL_arg1955z00_311;
{ /* ./Foreign/cenum.scm 35 */
obj_t BgL_auxz00_397;
BgL_auxz00_397 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg1955z00_311 = 
MAKE_PAIR(BgL_auxz00_397, BNIL); } 
BgL_list1953z00_310 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1955z00_311); } 
BgL_bidzf3zf3_183 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1953z00_310); } 
{ /* ./Foreign/cenum.scm 35 */
obj_t BgL_bidzf3zd2boolz21_184;
{ /* ./Foreign/cenum.scm 36 */
obj_t BgL_list1947z00_308;
{ /* ./Foreign/cenum.scm 36 */
obj_t BgL_arg1949z00_309;
{ /* ./Foreign/cenum.scm 36 */
obj_t BgL_auxz00_402;
BgL_auxz00_402 = 
CNST_TABLE_REF(((long)2)); 
BgL_arg1949z00_309 = 
MAKE_PAIR(BgL_auxz00_402, BNIL); } 
BgL_list1947z00_308 = 
MAKE_PAIR(BgL_bidzf3zf3_183, BgL_arg1949z00_309); } 
BgL_bidzf3zd2boolz21_184 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1947z00_308); } 
{ /* ./Foreign/cenum.scm 36 */
obj_t BgL_namez00_185;
BgL_namez00_185 = 
(((BgL_typez00_bglt)CREF(BgL_whoz00_173))->BgL_namez00); 
{ /* ./Foreign/cenum.scm 37 */
obj_t BgL_namezd2sanszd2z42z42_186;
BgL_namezd2sanszd2z42z42_186 = 
BGl_stringzd2sanszd2z42z42zztype_toolsz00(BgL_namez00_185); 
{ /* ./Foreign/cenum.scm 38 */
obj_t BgL_literalsz00_187;
{ 
obj_t BgL_auxz00_409;
{ /* ./Foreign/cenum.scm 39 */
BgL_objectz00_bglt BgL_auxz00_410;
BgL_auxz00_410 = 
(BgL_objectz00_bglt)(BgL_whatz00_172); 
BgL_auxz00_409 = 
BGL_OBJECT_WIDENING(BgL_auxz00_410); } 
BgL_literalsz00_187 = 
(((BgL_cenumz00_bglt)CREF(BgL_auxz00_409))->BgL_literalsz00); } 
{ /* ./Foreign/cenum.scm 39 */

{ 

{ /* ./Foreign/cenum.scm 88 */
obj_t BgL_arg1676z00_193;
{ /* ./Foreign/cenum.scm 88 */
obj_t BgL_list1684z00_196;
{ /* ./Foreign/cenum.scm 88 */
obj_t BgL_arg1686z00_197;obj_t BgL_arg1687z00_198;
BgL_arg1686z00_197 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Foreign/cenum.scm 88 */
obj_t BgL_arg1690z00_199;
{ /* ./Foreign/cenum.scm 88 */
obj_t BgL_auxz00_415;
BgL_auxz00_415 = 
CNST_TABLE_REF(((long)1)); 
BgL_arg1690z00_199 = 
MAKE_PAIR(BgL_auxz00_415, BNIL); } 
BgL_arg1687z00_198 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1690z00_199); } 
BgL_list1684z00_196 = 
MAKE_PAIR(BgL_arg1686z00_197, BgL_arg1687z00_198); } 
BgL_arg1676z00_193 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1684z00_196); } 
{ /* ./Foreign/cenum.scm 86 */
obj_t BgL_list1678z00_194;
{ /* ./Foreign/cenum.scm 86 */
obj_t BgL_arg1680z00_195;
BgL_arg1680z00_195 = 
MAKE_PAIR(BgL_arg1676z00_193, BNIL); 
BgL_list1678z00_194 = 
MAKE_PAIR(BgL_bidzf3zf3_183, BgL_arg1680z00_195); } 
BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(BgL_list1678z00_194); } } 
{ /* ./Foreign/cenum.scm 91 */
obj_t BgL_arg1695z00_200;
{ /* ./Foreign/cenum.scm 91 */
obj_t BgL_arg1698z00_201;obj_t BgL_arg1699z00_202;
BgL_arg1698z00_201 = 
CNST_TABLE_REF(((long)19)); 
{ /* ./Foreign/cenum.scm 91 */
obj_t BgL_arg1702z00_203;obj_t BgL_arg1703z00_204;
{ /* ./Foreign/cenum.scm 45 */
obj_t BgL_arg1924z00_295;obj_t BgL_arg1925z00_296;
BgL_arg1924z00_295 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Foreign/cenum.scm 45 */
obj_t BgL_arg1928z00_297;
{ /* ./Foreign/cenum.scm 45 */
obj_t BgL_arg1931z00_298;
{ /* ./Foreign/cenum.scm 45 */
obj_t BgL_arg1934z00_299;obj_t BgL_arg1935z00_300;
{ /* ./Foreign/cenum.scm 45 */
obj_t BgL_arg1938z00_301;obj_t BgL_arg1939z00_302;
BgL_arg1938z00_301 = 
CNST_TABLE_REF(((long)4)); 
BgL_arg1939z00_302 = 
MAKE_PAIR(BgL_idz00_178, BNIL); 
BgL_arg1934z00_299 = 
MAKE_PAIR(BgL_arg1938z00_301, BgL_arg1939z00_302); } 
BgL_arg1935z00_300 = 
MAKE_PAIR(BGl_string2013z00zzforeign_cenumz00, BNIL); 
BgL_arg1931z00_298 = 
MAKE_PAIR(BgL_arg1934z00_299, BgL_arg1935z00_300); } 
BgL_arg1928z00_297 = 
MAKE_PAIR(BgL_idzd2ze3bidz31_181, BgL_arg1931z00_298); } 
BgL_arg1925z00_296 = 
MAKE_PAIR(BgL_bidz00_180, BgL_arg1928z00_297); } 
BgL_arg1702z00_203 = 
MAKE_PAIR(BgL_arg1924z00_295, BgL_arg1925z00_296); } 
{ /* ./Foreign/cenum.scm 91 */
obj_t BgL_arg1707z00_205;
{ /* ./Foreign/cenum.scm 48 */
obj_t BgL_mnamez00_287;
BgL_mnamez00_287 = 
string_append_3(BGl_string2014z00zzforeign_cenumz00, BgL_namezd2sanszd2z42z42_186, BGl_string2015z00zzforeign_cenumz00); 
{ /* ./Foreign/cenum.scm 49 */
obj_t BgL_arg1902z00_288;obj_t BgL_arg1904z00_289;
BgL_arg1902z00_288 = 
CNST_TABLE_REF(((long)3)); 
{ /* ./Foreign/cenum.scm 49 */
obj_t BgL_arg1908z00_290;
{ /* ./Foreign/cenum.scm 49 */
obj_t BgL_arg1911z00_291;
{ /* ./Foreign/cenum.scm 49 */
obj_t BgL_arg1915z00_292;obj_t BgL_arg1916z00_293;
BgL_arg1915z00_292 = 
MAKE_PAIR(BgL_bidz00_180, BNIL); 
BgL_arg1916z00_293 = 
MAKE_PAIR(BgL_mnamez00_287, BNIL); 
BgL_arg1911z00_291 = 
MAKE_PAIR(BgL_arg1915z00_292, BgL_arg1916z00_293); } 
BgL_arg1908z00_290 = 
MAKE_PAIR(BgL_bidzd2ze3idz31_182, BgL_arg1911z00_291); } 
BgL_arg1904z00_289 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1908z00_290); } 
BgL_arg1707z00_205 = 
MAKE_PAIR(BgL_arg1902z00_288, BgL_arg1904z00_289); } } 
BgL_arg1703z00_204 = 
MAKE_PAIR(BgL_arg1707z00_205, BNIL); } 
BgL_arg1699z00_202 = 
MAKE_PAIR(BgL_arg1702z00_203, BgL_arg1703z00_204); } 
BgL_arg1695z00_200 = 
MAKE_PAIR(BgL_arg1698z00_201, BgL_arg1699z00_202); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1695z00_200); } 
{ /* ./Foreign/cenum.scm 93 */
obj_t BgL_arg1713z00_207;
{ /* ./Foreign/cenum.scm 93 */
obj_t BgL_arg1716z00_208;obj_t BgL_arg1717z00_209;
BgL_arg1716z00_208 = 
CNST_TABLE_REF(((long)20)); 
{ /* ./Foreign/cenum.scm 94 */
obj_t BgL_arg1720z00_210;
{ /* ./Foreign/cenum.scm 94 */
obj_t BgL_arg1724z00_212;
{ /* ./Foreign/cenum.scm 94 */
obj_t BgL_arg1727z00_213;
{ /* ./Foreign/cenum.scm 94 */
obj_t BgL_auxz00_447;
BgL_auxz00_447 = 
CNST_TABLE_REF(((long)21)); 
BgL_arg1727z00_213 = 
MAKE_PAIR(BgL_auxz00_447, BNIL); } 
BgL_arg1724z00_212 = 
MAKE_PAIR(BgL_bidzf3zd2boolz21_184, BgL_arg1727z00_213); } 
BgL_arg1720z00_210 = 
BGl_makezd2protozd2inlinez00zzforeign_libraryz00(BgL_arg1724z00_212); } 
BgL_arg1717z00_209 = 
MAKE_PAIR(BgL_arg1720z00_210, BNIL); } 
BgL_arg1713z00_207 = 
MAKE_PAIR(BgL_arg1716z00_208, BgL_arg1717z00_209); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1713z00_207); } 
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1731z00_214;
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1734z00_215;obj_t BgL_arg1735z00_216;
BgL_arg1734z00_215 = 
CNST_TABLE_REF(((long)18)); 
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1738z00_217;
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1744z00_219;
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1748z00_220;
{ /* ./Foreign/cenum.scm 95 */
obj_t BgL_arg1752z00_222;obj_t BgL_arg1755z00_223;
BgL_arg1752z00_222 = 
CNST_TABLE_REF(((long)22)); 
BgL_arg1755z00_223 = 
MAKE_PAIR(BgL_widz00_179, BNIL); 
BgL_arg1748z00_220 = 
MAKE_PAIR(BgL_arg1752z00_222, BgL_arg1755z00_223); } 
BgL_arg1744z00_219 = 
MAKE_PAIR(BgL_arg1748z00_220, BNIL); } 
BgL_arg1738z00_217 = 
MAKE_PAIR(BgL_bidzf3zf3_183, BgL_arg1744z00_219); } 
BgL_arg1735z00_216 = 
MAKE_PAIR(BgL_arg1738z00_217, BNIL); } 
BgL_arg1731z00_214 = 
MAKE_PAIR(BgL_arg1734z00_215, BgL_arg1735z00_216); } 
BGl_producezd2modulezd2clausez12z12zzmodule_modulez00(BgL_arg1731z00_214); } 
{ /* ./Foreign/cenum.scm 98 */
obj_t BgL_arg1760z00_224;obj_t BgL_arg1761z00_225;
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_arg1815z00_252;obj_t BgL_arg1816z00_253;
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_arg1821z00_254;obj_t BgL_arg1822z00_255;
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_list1825z00_256;
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_arg1829z00_257;obj_t BgL_arg1830z00_258;
BgL_arg1829z00_257 = 
CNST_TABLE_REF(((long)12)); 
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_arg1833z00_259;
{ /* ./Foreign/cenum.scm 62 */
obj_t BgL_auxz00_465;
BgL_auxz00_465 = 
CNST_TABLE_REF(((long)13)); 
BgL_arg1833z00_259 = 
MAKE_PAIR(BgL_auxz00_465, BNIL); } 
BgL_arg1830z00_258 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1833z00_259); } 
BgL_list1825z00_256 = 
MAKE_PAIR(BgL_arg1829z00_257, BgL_arg1830z00_258); } 
BgL_arg1821z00_254 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1825z00_256); } 
{ /* ./Foreign/cenum.scm 63 */
obj_t BgL_arg1837z00_260;obj_t BgL_arg1838z00_261;
BgL_arg1837z00_260 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)14)), BgL_idz00_178); 
{ /* ./Foreign/cenum.scm 64 */
obj_t BgL_arg1842z00_262;
BgL_arg1842z00_262 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)15)), BgL_idz00_178); 
BgL_arg1838z00_261 = 
MAKE_PAIR(BgL_arg1842z00_262, BNIL); } 
BgL_arg1822z00_255 = 
MAKE_PAIR(BgL_arg1837z00_260, BgL_arg1838z00_261); } 
BgL_arg1815z00_252 = 
MAKE_PAIR(BgL_arg1821z00_254, BgL_arg1822z00_255); } 
BgL_arg1816z00_253 = 
CNST_TABLE_REF(((long)16)); 
BgL_arg1760z00_224 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg1815z00_252, BgL_arg1816z00_253); } 
{ /* ./Foreign/cenum.scm 98 */
obj_t BgL_arg1766z00_226;obj_t BgL_arg1767z00_227;
{ /* ./Foreign/cenum.scm 54 */
obj_t BgL_arg1848z00_265;obj_t BgL_arg1849z00_266;
{ /* ./Foreign/cenum.scm 54 */
obj_t BgL_arg1853z00_267;
{ /* ./Foreign/cenum.scm 54 */
obj_t BgL_auxz00_480;
BgL_auxz00_480 = 
CNST_TABLE_REF(((long)5)); 
BgL_arg1853z00_267 = 
MAKE_PAIR(BgL_auxz00_480, BNIL); } 
BgL_arg1848z00_265 = 
MAKE_PAIR(BgL_bidzf3zd2boolz21_184, BgL_arg1853z00_267); } 
{ /* ./Foreign/cenum.scm 55 */
obj_t BgL_arg1857z00_268;obj_t BgL_arg1859z00_269;
BgL_arg1857z00_268 = 
CNST_TABLE_REF(((long)6)); 
{ /* ./Foreign/cenum.scm 55 */
obj_t BgL_arg1862z00_270;obj_t BgL_arg1864z00_271;
{ /* ./Foreign/cenum.scm 55 */
obj_t BgL_arg1867z00_272;obj_t BgL_arg1868z00_273;
BgL_arg1867z00_272 = 
CNST_TABLE_REF(((long)7)); 
{ /* ./Foreign/cenum.scm 55 */
obj_t BgL_auxz00_486;
BgL_auxz00_486 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg1868z00_273 = 
MAKE_PAIR(BgL_auxz00_486, BNIL); } 
BgL_arg1862z00_270 = 
MAKE_PAIR(BgL_arg1867z00_272, BgL_arg1868z00_273); } 
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1872z00_274;obj_t BgL_arg1873z00_275;
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1876z00_276;obj_t BgL_arg1877z00_277;
BgL_arg1876z00_276 = 
CNST_TABLE_REF(((long)9)); 
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1880z00_278;obj_t BgL_arg1881z00_279;
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1884z00_280;obj_t BgL_arg1885z00_281;
BgL_arg1884z00_280 = 
CNST_TABLE_REF(((long)10)); 
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_auxz00_492;
BgL_auxz00_492 = 
CNST_TABLE_REF(((long)8)); 
BgL_arg1885z00_281 = 
MAKE_PAIR(BgL_auxz00_492, BNIL); } 
BgL_arg1880z00_278 = 
MAKE_PAIR(BgL_arg1884z00_280, BgL_arg1885z00_281); } 
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1889z00_282;
{ /* ./Foreign/cenum.scm 56 */
obj_t BgL_arg1893z00_284;obj_t BgL_arg1894z00_285;
BgL_arg1893z00_284 = 
CNST_TABLE_REF(((long)11)); 
BgL_arg1894z00_285 = 
MAKE_PAIR(BgL_bidz00_180, BNIL); 
BgL_arg1889z00_282 = 
MAKE_PAIR(BgL_arg1893z00_284, BgL_arg1894z00_285); } 
BgL_arg1881z00_279 = 
MAKE_PAIR(BgL_arg1889z00_282, BNIL); } 
BgL_arg1877z00_277 = 
MAKE_PAIR(BgL_arg1880z00_278, BgL_arg1881z00_279); } 
BgL_arg1872z00_274 = 
MAKE_PAIR(BgL_arg1876z00_276, BgL_arg1877z00_277); } 
BgL_arg1873z00_275 = 
MAKE_PAIR(BFALSE, BNIL); 
BgL_arg1864z00_271 = 
MAKE_PAIR(BgL_arg1872z00_274, BgL_arg1873z00_275); } 
BgL_arg1859z00_269 = 
MAKE_PAIR(BgL_arg1862z00_270, BgL_arg1864z00_271); } 
BgL_arg1849z00_266 = 
MAKE_PAIR(BgL_arg1857z00_268, BgL_arg1859z00_269); } 
BgL_arg1766z00_226 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg1848z00_265, BgL_arg1849z00_266); } 
{ 
obj_t BgL_literalsz00_229;obj_t BgL_resz00_230;
BgL_literalsz00_229 = BgL_literalsz00_187; 
BgL_resz00_230 = BNIL; 
BgL_loopz00_231:
{ /* ./Foreign/cenum.scm 71 */
bool_t BgL_test1773z00_232;
BgL_test1773z00_232 = 
NULLP(BgL_literalsz00_229); 
if(BgL_test1773z00_232)
{ /* ./Foreign/cenum.scm 71 */
BgL_arg1767z00_227 = BgL_resz00_230; }  else 
{ /* ./Foreign/cenum.scm 73 */
obj_t BgL_literalz00_233;
BgL_literalz00_233 = 
CAR(BgL_literalsz00_229); 
{ /* ./Foreign/cenum.scm 73 */
obj_t BgL_literalzd2idzd2_234;
BgL_literalzd2idzd2_234 = 
CAR(BgL_literalz00_233); 
{ /* ./Foreign/cenum.scm 74 */
obj_t BgL_literalzd2namezd2_235;
{ /* ./Foreign/cenum.scm 75 */
obj_t BgL_auxz00_511;
BgL_auxz00_511 = 
CDR(BgL_literalz00_233); 
BgL_literalzd2namezd2_235 = 
CAR(BgL_auxz00_511); } 
{ /* ./Foreign/cenum.scm 75 */
obj_t BgL_accesszd2idzd2_236;
{ /* ./Foreign/cenum.scm 76 */
obj_t BgL_list1799z00_247;
{ /* ./Foreign/cenum.scm 76 */
obj_t BgL_arg1801z00_248;
{ /* ./Foreign/cenum.scm 76 */
obj_t BgL_arg1804z00_249;obj_t BgL_arg1805z00_250;
BgL_arg1804z00_249 = 
CNST_TABLE_REF(((long)17)); 
BgL_arg1805z00_250 = 
MAKE_PAIR(BgL_literalzd2idzd2_234, BNIL); 
BgL_arg1801z00_248 = 
MAKE_PAIR(BgL_arg1804z00_249, BgL_arg1805z00_250); } 
BgL_list1799z00_247 = 
MAKE_PAIR(BgL_idz00_178, BgL_arg1801z00_248); } 
BgL_accesszd2idzd2_236 = 
BGl_symbolzd2appendzd2zz__r4_symbols_6_4z00(BgL_list1799z00_247); } 
{ /* ./Foreign/cenum.scm 76 */
obj_t BgL_accessz00_237;
{ /* ./Foreign/cenum.scm 78 */
obj_t BgL_arg1784z00_241;obj_t BgL_arg1785z00_242;
{ /* ./Foreign/cenum.scm 78 */
obj_t BgL_arg1788z00_243;
BgL_arg1788z00_243 = 
BGl_makezd2typedzd2identz00zzast_identz00(BgL_accesszd2idzd2_236, BgL_widz00_179); 
BgL_arg1784z00_241 = 
MAKE_PAIR(BgL_arg1788z00_243, BNIL); } 
{ /* ./Foreign/cenum.scm 79 */
obj_t BgL_arg1793z00_245;obj_t BgL_arg1794z00_246;
BgL_arg1793z00_245 = 
BGl_makezd2typedzd2identz00zzast_identz00(
CNST_TABLE_REF(((long)18)), BgL_widz00_179); 
BgL_arg1794z00_246 = 
MAKE_PAIR(BgL_literalzd2namezd2_235, BNIL); 
BgL_arg1785z00_242 = 
MAKE_PAIR(BgL_arg1793z00_245, BgL_arg1794z00_246); } 
BgL_accessz00_237 = 
BGl_makezd2definezd2inlinez00zzforeign_libraryz00(BgL_arg1784z00_241, BgL_arg1785z00_242); } 
{ /* ./Foreign/cenum.scm 77 */

{ /* ./Foreign/cenum.scm 81 */
obj_t BgL_list1775z00_238;
BgL_list1775z00_238 = 
MAKE_PAIR(BgL_accesszd2idzd2_236, BNIL); 
BGl_registerzd2foreignzd2accesszd2identsz12zc0zzforeign_libraryz00(BgL_list1775z00_238); } 
{ /* ./Foreign/cenum.scm 82 */
obj_t BgL_arg1778z00_239;obj_t BgL_arg1779z00_240;
BgL_arg1778z00_239 = 
CDR(BgL_literalsz00_229); 
BgL_arg1779z00_240 = 
MAKE_PAIR(BgL_accessz00_237, BgL_resz00_230); 
{ 
obj_t BgL_resz00_531;obj_t BgL_literalsz00_530;
BgL_literalsz00_530 = BgL_arg1778z00_239; 
BgL_resz00_531 = BgL_arg1779z00_240; 
BgL_resz00_230 = BgL_resz00_531; 
BgL_literalsz00_229 = BgL_literalsz00_530; 
goto BgL_loopz00_231;} } } } } } } } } } 
BgL_arg1761z00_225 = 
MAKE_PAIR(BgL_arg1766z00_226, BgL_arg1767z00_227); } 
return 
MAKE_PAIR(BgL_arg1760z00_224, BgL_arg1761z00_225);} } } } } } } } } } } } } } } } 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zzforeign_cenumz00()
{ AN_OBJECT;
{ /* ./Foreign/cenum.scm 15 */
BGl_modulezd2initializa7ationz75zztools_miscz00(((long)64117), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zztype_toolsz00(((long)15091), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zztype_typez00(((long)19090), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zzforeign_ctypez00(((long)51394), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zzforeign_accessz00(((long)13730), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zzforeign_libraryz00(((long)43975), "foreign_cenum"); 
BGl_modulezd2initializa7ationz75zzmodule_modulez00(((long)8699), "foreign_cenum"); 
return 
BGl_modulezd2initializa7ationz75zzast_identz00(((long)51504), "foreign_cenum");} 
}

