/*===========================================================================*/
/*   (Eval/expddo.scm)                                                       */
/*   Bigloo (2.6b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Mon Dec 15 12:14:36 CET 2003        */
/*===========================================================================*/
/* COMPILATION: (/users/serrano/prgm/project/bigloo/bin/bigloo -O4 -mklib -cc gcc-2.95 -fsharing -q -s -copt -DBGL_NO_PIC -unsafe -c Eval/expddo.scm -indent -o objs/obj_u/Eval/expddo.c)*/
/* GC selection */
#define THE_GC BOEHM_GC

#include <bigloo.h>
#include <signal.h>

BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__expander_doz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__biglooz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__tvectorz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__structurez00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_characters_6_6z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_booleans_6_1z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_input_6_10_2z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long, char *);
extern obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long, char *);
extern obj_t BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
extern long bgl_list_length(obj_t);
static obj_t BGl_symbol1847z00zz__expander_doz00 = BUNSPEC;
static obj_t BGl_symbol1846z00zz__expander_doz00 = BUNSPEC;
static obj_t BGl_symbol1845z00zz__expander_doz00 = BUNSPEC;
static obj_t BGl_symbol1844z00zz__expander_doz00 = BUNSPEC;
static obj_t BGl_symbol1843z00zz__expander_doz00 = BUNSPEC;
static obj_t BGl_cnstzd2initzd2zz__expander_doz00();
static obj_t BGl_symbol1841z00zz__expander_doz00 = BUNSPEC;
extern obj_t string_to_symbol(char *);
extern obj_t bgl_reverse(obj_t);
static obj_t BGl_importedzd2moduleszd2initz00zz__expander_doz00();
static obj_t BGl_requirezd2initializa7ationz75zz__expander_doz00 = BUNSPEC;
extern obj_t BGl_gensymz00zz__r4_symbols_6_4z00;
static obj_t BGl__expandzd2dozd2zz__expander_doz00(obj_t, obj_t, obj_t);
BGL_EXPORTED_DECL obj_t BGl_expandzd2dozd2zz__expander_doz00(obj_t, obj_t);
static obj_t *__cnst;


DEFINE_STRING( BGl_string1842z00zz__expander_doz00, BgL_bgl_string1842za700za7za7__expander_doza7001853z00, "Illegal form:", 13 );
DEFINE_STRING( BGl_string1840z00zz__expander_doz00, BgL_bgl_string1840za700za7za7__expander_doza7001854z00, "Illegal form", 12 );
DEFINE_STRING( BGl_string1839z00zz__expander_doz00, BgL_bgl_string1839za700za7za7__expander_doza7001855z00, "do", 2 );
DEFINE_STRING( BGl_string1838z00zz__expander_doz00, BgL_bgl_string1838za700za7za7__expander_doza7001856z00, "do-loop--", 9 );
DEFINE_EXPORT_PROCEDURE( BGl_expandzd2dozd2envz00zz__expander_doz00, BgL_bgl__expandza7d2doza7d2za7za7__expander_doza7001857za7, BGl__expandzd2dozd2zz__expander_doz00, 0L, 2 );



/* module-initialization */
BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__expander_doz00(long BgL_checksumz00_650, char * BgL_fromz00_651)
{ AN_OBJECT;
{ 
if(
CBOOL(BGl_requirezd2initializa7ationz75zz__expander_doz00))
{ 
BGl_requirezd2initializa7ationz75zz__expander_doz00 = 
BBOOL(((bool_t)0)); 
BGl_cnstzd2initzd2zz__expander_doz00(); 
BGl_importedzd2moduleszd2initz00zz__expander_doz00(); 
return BUNSPEC;}  else 
{ 
return BUNSPEC;} } 
}



/* cnst-init */
obj_t BGl_cnstzd2initzd2zz__expander_doz00()
{ AN_OBJECT;
{ /* ./Eval/expddo.scm 14 */
BGl_symbol1841z00zz__expander_doz00 = 
string_to_symbol("do"); 
BGl_symbol1843z00zz__expander_doz00 = 
string_to_symbol("letrec"); 
BGl_symbol1844z00zz__expander_doz00 = 
string_to_symbol("lambda"); 
BGl_symbol1845z00zz__expander_doz00 = 
string_to_symbol("if"); 
BGl_symbol1846z00zz__expander_doz00 = 
string_to_symbol("begin"); 
return ( 
BGl_symbol1847z00zz__expander_doz00 = 
string_to_symbol("exp"), BUNSPEC) ;} 
}



/* expand-do */
BGL_EXPORTED_DEF obj_t BGl_expandzd2dozd2zz__expander_doz00(obj_t BgL_expz00_1, obj_t BgL_ez00_2)
{ AN_OBJECT;
{ /* ./Eval/expddo.scm 52 */
{ 
obj_t BgL_bindingsz00_355;obj_t BgL_endz00_356;obj_t BgL_commandz00_357;
if(
PAIRP(BgL_expz00_1))
{ /* ./Eval/expddo.scm 53 */
obj_t BgL_cdrzd2111zd2_362;
BgL_cdrzd2111zd2_362 = 
CDR(BgL_expz00_1); 
if(
PAIRP(BgL_cdrzd2111zd2_362))
{ /* ./Eval/expddo.scm 53 */
obj_t BgL_cdrzd2116zd2_364;
BgL_cdrzd2116zd2_364 = 
CDR(BgL_cdrzd2111zd2_362); 
if(
PAIRP(BgL_cdrzd2116zd2_364))
{ /* ./Eval/expddo.scm 53 */
BgL_bindingsz00_355 = 
CAR(BgL_cdrzd2111zd2_362); 
BgL_endz00_356 = 
CAR(BgL_cdrzd2116zd2_364); 
BgL_commandz00_357 = 
CDR(BgL_cdrzd2116zd2_364); 
{ /* ./Eval/expddo.scm 55 */
obj_t BgL_varsz00_370;
BgL_varsz00_370 = BNIL; 
{ /* ./Eval/expddo.scm 56 */
obj_t BgL_initsz00_371;
BgL_initsz00_371 = BNIL; 
{ /* ./Eval/expddo.scm 57 */
obj_t BgL_stepsz00_372;
BgL_stepsz00_372 = BNIL; 
{ /* ./Eval/expddo.scm 58 */
obj_t BgL_loopz00_373;
BgL_loopz00_373 = 
PROCEDURE_ENTRY(BGl_gensymz00zz__r4_symbols_6_4z00)(BGl_gensymz00zz__r4_symbols_6_4z00, BGl_string1838z00zz__expander_doz00, BEOA); 
{ /* ./Eval/expddo.scm 59 */
obj_t BgL_testz00_374;
if(
PAIRP(BgL_endz00_356))
{ /* ./Eval/expddo.scm 60 */
BgL_testz00_374 = 
CAR(BgL_endz00_356); }  else 
{ /* ./Eval/expddo.scm 60 */
FAILURE(BGl_string1839z00zz__expander_doz00,BGl_string1840z00zz__expander_doz00,BgL_expz00_1);} 
{ /* ./Eval/expddo.scm 60 */
obj_t BgL_endingz00_375;
{ /* ./Eval/expddo.scm 63 */
bool_t BgL_testz00_677;
{ /* ./Eval/expddo.scm 63 */
obj_t BgL_auxz00_678;
BgL_auxz00_678 = 
CDR(BgL_endz00_356); 
BgL_testz00_677 = 
NULLP(BgL_auxz00_678); } 
if(BgL_testz00_677)
{ /* ./Eval/expddo.scm 64 */
obj_t BgL_list1151z00_429;
BgL_list1151z00_429 = 
MAKE_PAIR(BFALSE, BNIL); 
BgL_endingz00_375 = BgL_list1151z00_429; }  else 
{ /* ./Eval/expddo.scm 63 */
BgL_endingz00_375 = 
CDR(BgL_endz00_356); } } 
{ /* ./Eval/expddo.scm 66 */

{ 
obj_t BgL_l1003z00_377;
BgL_l1003z00_377 = 
bgl_reverse(BgL_bindingsz00_355); 
BgL_forzd2each1004zd2_378:
if(
PAIRP(BgL_l1003z00_377))
{ /* ./Eval/expddo.scm 67 */
{ /* ./Eval/expddo.scm 69 */
obj_t BgL_varzd2initzd2stepz00_381;
BgL_varzd2initzd2stepz00_381 = 
CAR(BgL_l1003z00_377); 
{ /* ./Eval/expddo.scm 69 */
bool_t BgL_test1032z00_382;
{ /* ./Eval/expddo.scm 69 */
bool_t BgL_testz00_686;
{ /* ./Eval/expddo.scm 69 */
long BgL_auxz00_687;
BgL_auxz00_687 = 
bgl_list_length(BgL_varzd2initzd2stepz00_381); 
BgL_testz00_686 = 
(BgL_auxz00_687>=((long)2)); } 
if(BgL_testz00_686)
{ /* ./Eval/expddo.scm 70 */
long BgL_auxz00_690;
BgL_auxz00_690 = 
bgl_list_length(BgL_varzd2initzd2stepz00_381); 
BgL_test1032z00_382 = 
(BgL_auxz00_690<=((long)3)); }  else 
{ /* ./Eval/expddo.scm 69 */
BgL_test1032z00_382 = ((bool_t)0); } } 
if(BgL_test1032z00_382)
{ /* ./Eval/expddo.scm 71 */
obj_t BgL_varz00_383;
BgL_varz00_383 = 
CAR(BgL_varzd2initzd2stepz00_381); 
{ /* ./Eval/expddo.scm 71 */
obj_t BgL_initz00_384;
{ /* ./Eval/expddo.scm 72 */
obj_t BgL_auxz00_695;
BgL_auxz00_695 = 
CDR(BgL_varzd2initzd2stepz00_381); 
BgL_initz00_384 = 
CAR(BgL_auxz00_695); } 
{ /* ./Eval/expddo.scm 72 */
obj_t BgL_stepz00_385;
{ /* ./Eval/expddo.scm 73 */
bool_t BgL_testz00_698;
{ /* ./Eval/expddo.scm 73 */
obj_t BgL_auxz00_699;
{ /* ./Eval/expddo.scm 73 */
obj_t BgL_auxz00_700;
BgL_auxz00_700 = 
CDR(BgL_varzd2initzd2stepz00_381); 
BgL_auxz00_699 = 
CDR(BgL_auxz00_700); } 
BgL_testz00_698 = 
NULLP(BgL_auxz00_699); } 
if(BgL_testz00_698)
{ /* ./Eval/expddo.scm 73 */
BgL_stepz00_385 = BgL_varz00_383; }  else 
{ /* ./Eval/expddo.scm 74 */
obj_t BgL_auxz00_704;
{ /* ./Eval/expddo.scm 74 */
obj_t BgL_auxz00_705;
BgL_auxz00_705 = 
CDR(BgL_varzd2initzd2stepz00_381); 
BgL_auxz00_704 = 
CDR(BgL_auxz00_705); } 
BgL_stepz00_385 = 
CAR(BgL_auxz00_704); } } 
{ /* ./Eval/expddo.scm 73 */

BgL_varsz00_370 = 
MAKE_PAIR(BgL_varz00_383, BgL_varsz00_370); 
BgL_stepsz00_372 = 
MAKE_PAIR(BgL_stepz00_385, BgL_stepsz00_372); 
BgL_initsz00_371 = 
MAKE_PAIR(BgL_initz00_384, BgL_initsz00_371); } } } }  else 
{ /* ./Eval/expddo.scm 79 */
obj_t BgL_procz00_627;
BgL_procz00_627 = BGl_symbol1841z00zz__expander_doz00; 
FAILURE(BgL_procz00_627,BGl_string1842z00zz__expander_doz00,BgL_varzd2initzd2stepz00_381);} } } 
{ 
obj_t BgL_l1003z00_713;
BgL_l1003z00_713 = 
CDR(BgL_l1003z00_377); 
BgL_l1003z00_377 = BgL_l1003z00_713; 
goto BgL_forzd2each1004zd2_378;} }  else 
{ /* ./Eval/expddo.scm 67 */((bool_t)1); } } 
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1069z00_395;
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1073z00_396;obj_t BgL_arg1075z00_397;
BgL_arg1073z00_396 = BGl_symbol1843z00zz__expander_doz00; 
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1079z00_398;obj_t BgL_arg1080z00_399;
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1083z00_400;
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1087z00_402;
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1090z00_403;
{ /* ./Eval/expddo.scm 81 */
obj_t BgL_arg1094z00_405;obj_t BgL_arg1095z00_406;
BgL_arg1094z00_405 = BGl_symbol1844z00zz__expander_doz00; 
{ /* ./Eval/expddo.scm 82 */
obj_t BgL_arg1098z00_407;
{ /* ./Eval/expddo.scm 82 */
obj_t BgL_arg1101z00_408;
{ /* ./Eval/expddo.scm 82 */
obj_t BgL_arg1105z00_410;obj_t BgL_arg1106z00_411;
BgL_arg1105z00_410 = BGl_symbol1845z00zz__expander_doz00; 
{ /* ./Eval/expddo.scm 83 */
obj_t BgL_arg1109z00_412;
{ /* ./Eval/expddo.scm 83 */
obj_t BgL_arg1112z00_413;obj_t BgL_arg1113z00_414;
{ /* ./Eval/expddo.scm 83 */
obj_t BgL_auxz00_716;
BgL_auxz00_716 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_endingz00_375, BNIL); 
BgL_arg1112z00_413 = 
MAKE_PAIR(BGl_symbol1846z00zz__expander_doz00, BgL_auxz00_716); } 
{ /* ./Eval/expddo.scm 84 */
obj_t BgL_arg1122z00_417;
{ /* ./Eval/expddo.scm 84 */
obj_t BgL_arg1126z00_419;obj_t BgL_arg1127z00_420;
BgL_arg1126z00_419 = BGl_symbol1846z00zz__expander_doz00; 
{ /* ./Eval/expddo.scm 85 */
obj_t BgL_arg1130z00_421;
{ /* ./Eval/expddo.scm 85 */
obj_t BgL_arg1133z00_422;
{ /* ./Eval/expddo.scm 85 */
obj_t BgL_auxz00_719;
BgL_auxz00_719 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_stepsz00_372, BNIL); 
BgL_arg1133z00_422 = 
MAKE_PAIR(BgL_loopz00_373, BgL_auxz00_719); } 
BgL_arg1130z00_421 = 
MAKE_PAIR(BgL_arg1133z00_422, BNIL); } 
BgL_arg1127z00_420 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_commandz00_357, BgL_arg1130z00_421); } 
BgL_arg1122z00_417 = 
MAKE_PAIR(BgL_arg1126z00_419, BgL_arg1127z00_420); } 
BgL_arg1113z00_414 = 
MAKE_PAIR(BgL_arg1122z00_417, BNIL); } 
BgL_arg1109z00_412 = 
MAKE_PAIR(BgL_arg1112z00_413, BgL_arg1113z00_414); } 
BgL_arg1106z00_411 = 
MAKE_PAIR(BgL_testz00_374, BgL_arg1109z00_412); } 
BgL_arg1101z00_408 = 
MAKE_PAIR(BgL_arg1105z00_410, BgL_arg1106z00_411); } 
BgL_arg1098z00_407 = 
MAKE_PAIR(BgL_arg1101z00_408, BNIL); } 
BgL_arg1095z00_406 = 
MAKE_PAIR(BgL_varsz00_370, BgL_arg1098z00_407); } 
BgL_arg1090z00_403 = 
MAKE_PAIR(BgL_arg1094z00_405, BgL_arg1095z00_406); } 
BgL_arg1087z00_402 = 
MAKE_PAIR(BgL_arg1090z00_403, BNIL); } 
BgL_arg1083z00_400 = 
MAKE_PAIR(BgL_loopz00_373, BgL_arg1087z00_402); } 
BgL_arg1079z00_398 = 
MAKE_PAIR(BgL_arg1083z00_400, BNIL); } 
{ /* ./Eval/expddo.scm 86 */
obj_t BgL_arg1141z00_425;
{ /* ./Eval/expddo.scm 86 */
obj_t BgL_auxz00_735;
BgL_auxz00_735 = 
BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00(BgL_initsz00_371, BNIL); 
BgL_arg1141z00_425 = 
MAKE_PAIR(BgL_loopz00_373, BgL_auxz00_735); } 
BgL_arg1080z00_399 = 
MAKE_PAIR(BgL_arg1141z00_425, BNIL); } 
BgL_arg1075z00_397 = 
MAKE_PAIR(BgL_arg1079z00_398, BgL_arg1080z00_399); } 
BgL_arg1069z00_395 = 
MAKE_PAIR(BgL_arg1073z00_396, BgL_arg1075z00_397); } 
return 
PROCEDURE_ENTRY(BgL_ez00_2)(BgL_ez00_2, BgL_arg1069z00_395, BgL_ez00_2, BEOA);} } } } } } } } }  else 
{ /* ./Eval/expddo.scm 53 */
obj_t BgL_procz00_587;obj_t BgL_objectz00_589;
BgL_procz00_587 = BGl_symbol1841z00zz__expander_doz00; 
BgL_objectz00_589 = BGl_symbol1847z00zz__expander_doz00; 
FAILURE(BgL_procz00_587,BGl_string1840z00zz__expander_doz00,BgL_objectz00_589);} }  else 
{ /* ./Eval/expddo.scm 53 */
obj_t BgL_procz00_590;obj_t BgL_objectz00_592;
BgL_procz00_590 = BGl_symbol1841z00zz__expander_doz00; 
BgL_objectz00_592 = BGl_symbol1847z00zz__expander_doz00; 
FAILURE(BgL_procz00_590,BGl_string1840z00zz__expander_doz00,BgL_objectz00_592);} }  else 
{ /* ./Eval/expddo.scm 53 */
obj_t BgL_procz00_593;obj_t BgL_objectz00_595;
BgL_procz00_593 = BGl_symbol1841z00zz__expander_doz00; 
BgL_objectz00_595 = BGl_symbol1847z00zz__expander_doz00; 
FAILURE(BgL_procz00_593,BGl_string1840z00zz__expander_doz00,BgL_objectz00_595);} } } 
}



/* _expand-do */
obj_t BGl__expandzd2dozd2zz__expander_doz00(obj_t BgL_envz00_647, obj_t BgL_expz00_648, obj_t BgL_ez00_649)
{ AN_OBJECT;
{ /* ./Eval/expddo.scm 52 */
return 
BGl_expandzd2dozd2zz__expander_doz00(BgL_expz00_648, BgL_ez00_649);} 
}



/* imported-modules-init */
obj_t BGl_importedzd2moduleszd2initz00zz__expander_doz00()
{ AN_OBJECT;
{ /* ./Eval/expddo.scm 14 */
BGl_modulezd2initializa7ationz75zz__errorz00(((long)11084), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__biglooz00(((long)48291), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__tvectorz00(((long)57114), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__structurez00(((long)53290), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__bexitz00(((long)13855), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(((long)21694), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(((long)6615), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(((long)49269), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_characters_6_6z00(((long)29164), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(((long)51785), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_booleans_6_1z00(((long)35070), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(((long)247), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(((long)21875), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(((long)104413), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_input_6_10_2z00(((long)50132), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(((long)63121), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(((long)13988), "__expander_do"); 
BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(((long)45566), "__expander_do"); 
return 
BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(((long)18972), "__expander_do");} 
}

