static void accept_command_line_arguments(int argc, _TCHAR * argv[]) { lref_t arg_list = NIL; lref_t arg_list_bud = NIL; for (int ii = 0; ii < argc; ii++) { if (is_vm_argument(argv[ii])) continue; lref_t new_cell = lcons(strconsbuf(argv[ii]), NIL); if (NULLP(arg_list_bud)) { arg_list = arg_list_bud = new_cell; } else { SET_CDR(arg_list_bud, new_cell); arg_list_bud = new_cell; } } interp.startup_args = arg_list; }
void clrcell(int addr){ SET_TAG(addr,EMP); free(heap[addr].name); heap[addr].name = NULL; SET_CAR(addr,0); SET_CDR(addr,0); SET_BIND(addr,0); }
//deep-bindによる。シンボルが見つからなかったら登録。 //見つかったらそこに値をいれておく。 void bindsym(int sym, int val){ int addr; addr= assoc(sym,ep); if(addr == 0) assocsym(sym,val); else SET_CDR(addr,val); }
int freshcell(void){ int res; res = H; H = heap[H].cdr; SET_CDR(res,0); F--; return(res); }
int cons(int car, int cdr){ int addr; addr = freshcell(); SET_TAG(addr,LIS); SET_CAR(addr,car); SET_CDR(addr,cdr); return(addr); }
int freshcell(void){ int res; res = hp; hp = heap[hp].cdr; SET_CDR(res,0); fc--; return(res); }
void bindfunc1(char *name, int addr){ int sym,val; sym = makesym(name); val = freshcell(); SET_TAG(val,FUNC); SET_BIND(val,addr); SET_CDR(val,0); bindsym(sym,val); }
int f_rplacd(int arglist){ int arg1,arg2; checkarg(LEN2_TEST, "rplacd", arglist); arg1 = car(arglist); arg2 = cadr(arglist); checkarg(LIST_TEST, "rplacd", arg1); SET_CDR(arg1,arg2); return(arg1); }
void bindfunc(char *name, tag tag, int(*func)(int)){ int sym,val; sym = makesym(name); val = freshcell(); SET_TAG(val,tag); SET_SUBR(val,func); SET_CDR(val,0); bindsym(sym,val); }
int reverse2(int lis){ int x,addr; addr = NIL; while(!(nullp(lis))){ x = cdr(lis); SET_CDR(lis,addr); addr = lis; lis = x; } return(addr); }
/*---------------------------------------------------------------------*/ static void bglk_unregister_proc( obj_t proc ) { if( CAR( registered_proc ) == proc ) { registered_proc = CDR( proc ); } else { obj_t run = registered_proc; while( CAR( CDR( run ) ) != proc ) run = CDR( run ); SET_CDR( run , CDR( CDR( run ) ) ); } }
void bindfunc(char *name, tag tag, int func){ int sym,val; sym = makesym(name); val = freshcell(); SET_TAG(val,tag); switch(tag){ case SUBR: case FSUBR: SET_SUBR(val,func); break; case LAMBDA: SET_BIND(val,func); break; } SET_CDR(val,0); bindsym(sym,val); }
void bindfunc(char *name, ftype ftype, int func){ int addr; addr = freshcell(); SET_NAME(addr,name); SET_TAG(addr,FUN); SET_FTYPE(addr,ftype); switch(ftype){ case SUBR: case FSUBR: SET_SUBR(addr,func); case LAMBDA: SET_BIND(addr,func); } SET_CDR(addr,E); E = addr; }
/** * Replace all actuals of recentmost frame of an env * * The environment must be replaced with returned one in caller side even if * this implementation returns identical to the one passed. This rule is * required to be compatible with future alternative implementations. */ SCM_EXPORT ScmObj scm_update_environment(ScmObj actuals, ScmObj env) { ScmObj frame; DECLARE_INTERNAL_FUNCTION("scm_update_environment"); SCM_ASSERT(VALID_ENVP(env)); SCM_ASSERT(CONSP(env)); frame = CAR(env); SCM_ASSERT(scm_valid_environment_extensionp(CAR(frame), actuals)); SET_CDR(frame, actuals); return env; }
OBJ builtin_set_cdr(int numArgs){ if(numArgs != 2){ POPN(numArgs); js_error("(set-cdr!): expects 2 argument", js_nil); } OBJ newCdr = POP(); OBJ theCons = POP(); if(!ISCONS(theCons)){ js_error("(set-cdr!): non-cons argument", theCons); } SET_CDR(theCons, newCdr); return js_void; }
void gbcsweep(void){ int addr; addr = 0; while(addr < HEAPSIZE){ if(USED_CELL(addr)) NOMARK_CELL(addr); else{ clrcell(addr); SET_CDR(addr,hp); hp = addr; } addr++; } }
void initcell(void){ int addr,addr1; for(addr=0; addr < HEAPSIZE; addr++){ heap[addr].tag = EMP; heap[addr].cdr = addr+1; } H = 0; //0番地はnil、1番地はTとして環境レジスタを設定する。初期環境 addr = freshcell(); //symbol nil SET_TAG(addr,SYM); SET_NAME(addr,"nil"); addr1 = freshcell(); //symbol t SET_TAG(addr1,SYM); SET_NAME(addr1,"t"); SET_CDR(addr1,addr); E = addr1; }
/*---------------------------------------------------------------------*/ BGL_RUNTIME_DEF obj_t get_trace_stack( int depth ) { long level = 0L; struct bgl_dframe *runner = BGL_ENV_GET_TOP_OF_FRAME( BGL_CURRENT_DYNAMIC_ENV() ); obj_t l = MAKE_PAIR( BNIL, BNIL ); obj_t r = l; while( ((depth < 0) || (level < depth)) && runner ) { if( SYMBOLP( runner->name ) ) { obj_t p = MAKE_PAIR( runner->name, MAKE_PAIR( runner->location, BNIL ) ); SET_CDR( r, MAKE_PAIR( p, BNIL ) ); r = CDR( r ); level++; } runner = runner->link; } return CDR( l ); }
static void fast_read_list(lref_t reader, bool read_listd, lref_t * list) { *list = NIL; lref_t list_bud = NIL; lref_t next_list_cell = NIL; lref_t list_length; fast_read(reader, &list_length, false); if (!FIXNUMP(list_length)) vmerror_fast_read("expected fixnum for list length", reader, list_length); *list = NIL; for (fixnum_t ii = 0; ii < FIXNM(list_length); ii++) { next_list_cell = lcons(NIL, NIL); if (NULLP(*list)) *list = next_list_cell; else SET_CDR(list_bud, next_list_cell); list_bud = next_list_cell; fast_read(reader, &(next_list_cell->as.cons.car), false); if (EOFP(CAR(next_list_cell))) vmerror_fast_read("incomplete list definition", reader, NIL); } if (read_listd) { fast_read(reader, &(list_bud->as.cons.cdr), false); if (EOFP(CDR(list_bud))) vmerror_fast_read("incomplete list defintion, missing cdr", reader, NIL); } }
/*---------------------------------------------------------------------*/ int bgl_dunload( obj_t filename ) { #if HAVE_DLOPEN extern bool_t bigloo_strcmp( obj_t, obj_t ); obj_t p = dload_list; BGL_MUTEX_LOCK( dload_mutex ); if ( NULLP( dload_list) ) { BGL_MUTEX_UNLOCK( dload_mutex ); return 0; } if( bigloo_strcmp( CAR( CAR( p ) ), filename ) ) { dload_list = CDR( dload_list ); dlclose( CDR( CAR( p ) ) ); BGL_MUTEX_UNLOCK( dload_mutex ); return 0; } else { obj_t r = CDR( p ); while( PAIRP( r ) ) { if( bigloo_strcmp( CAR( CAR( r ) ), filename ) ) { SET_CDR( p, CDR( r ) ); dlclose( CDR( CAR( r ) ) ); BGL_MUTEX_UNLOCK( dload_mutex ); return 0; } } } BGL_MUTEX_UNLOCK( dload_mutex ); #endif return 1; }
/*---------------------------------------------------------------------*/ static obj_t bgl_bstring_to_symbol( obj_t name ) { long hash_number; obj_t bucket; char *cname = BSTRING_TO_STRING( name ); hash_number = ____get_hash_power_number( cname, SYMBOL_HASH_TABLE_SIZE_SHIFT ); bucket = VECTOR_REF( ____bgl_get_symtab(), hash_number ); if( NULLP( bucket ) ) { obj_t symbol = make_symbol( name ); obj_t pair = MAKE_PAIR( symbol, BNIL ); VECTOR_SET( ____bgl_get_symtab(), hash_number, pair ); return symbol; } else { obj_t run = bucket, back = bucket; while( !NULLP( run ) && SYMBOL( CAR( run ) ).string && !bigloo_strcmp( SYMBOL( CAR( run ) ).string, name ) ) back = run, run = CDR( run ); if( !NULLP( run ) ) { return CAR( run ); } else { obj_t symbol = make_symbol( name ); obj_t pair = MAKE_PAIR( symbol, BNIL ); SET_CDR( back, pair ); return symbol; } } }
/** Add a binding to recentmost frame of an env */ SCM_EXPORT ScmObj scm_add_environment(ScmObj var, ScmObj val, ScmObj env) { ScmObj frame, formals, actuals; DECLARE_INTERNAL_FUNCTION("scm_add_environment"); SCM_ASSERT(IDENTIFIERP(var)); SCM_ASSERT(VALID_ENVP(env)); /* add (var, val) pair to recentmost frame of the env */ if (NULLP(env)) { frame = CONS(LIST_1(var), LIST_1(val)); env = LIST_1(frame); } else if (CONSP(env)) { frame = CAR(env); formals = CONS(var, CAR(frame)); actuals = CONS(val, CDR(frame)); SET_CAR(frame, formals); SET_CDR(frame, actuals); } else { SCM_NOTREACHED; } return env; }
static lref_t execute_fast_op(lref_t fop, lref_t env) { lref_t retval = NIL; lref_t sym; lref_t binding; lref_t fn; lref_t args; size_t argc; lref_t argv[ARG_BUF_LEN]; lref_t after; lref_t tag; lref_t cell; lref_t escape_retval; jmp_buf *jmpbuf; STACK_CHECK(&fop); _process_interrupts(); fstack_enter_eval_frame(&fop, fop, env); while(!NULLP(fop)) { switch(fop->header.opcode) { case FOP_LITERAL: retval = fop->as.fast_op.arg1; fop = fop->as.fast_op.next; break; case FOP_GLOBAL_REF: sym = fop->as.fast_op.arg1; binding = SYMBOL_VCELL(sym); if (UNBOUND_MARKER_P(binding)) vmerror_unbound(sym); retval = binding; fop = fop->as.fast_op.next; break; case FOP_GLOBAL_SET: sym = fop->as.fast_op.arg1; binding = SYMBOL_VCELL(sym); if (UNBOUND_MARKER_P(binding)) vmerror_unbound(sym); SET_SYMBOL_VCELL(sym, retval); fop = fop->as.fast_op.next; break; case FOP_APPLY_GLOBAL: sym = fop->as.fast_op.arg1; fn = SYMBOL_VCELL(sym); if (UNBOUND_MARKER_P(fn)) vmerror_unbound(sym); argc = 0; args = fop->as.fast_op.arg2; while (CONSP(args)) { if (argc >= ARG_BUF_LEN) { vmerror_unsupported(_T("too many actual arguments")); break; } argv[argc] = execute_fast_op(CAR(args), env); args = CDR(args); argc++; } if (!NULLP(args)) vmerror_arg_out_of_range(fop->as.fast_op.arg2, _T("bad formal argument list")); fop = apply(fn, argc, argv, &env, &retval); break; case FOP_APPLY: argc = 0; fn = execute_fast_op(fop->as.fast_op.arg1, env); args = fop->as.fast_op.arg2; while (CONSP(args)) { if (argc >= ARG_BUF_LEN) { vmerror_unsupported(_T("too many actual arguments")); break; } argv[argc] = execute_fast_op(CAR(args), env); args = CDR(args); argc++; } if (!NULLP(args)) vmerror_arg_out_of_range(fop->as.fast_op.arg2, _T("bad formal argument list")); fop = apply(fn, argc, argv, &env, &retval); break; case FOP_IF_TRUE: if (TRUEP(retval)) fop = fop->as.fast_op.arg1; else fop = fop->as.fast_op.arg2; break; case FOP_RETVAL: fop = fop->as.fast_op.next; break; case FOP_SEQUENCE: retval = execute_fast_op(fop->as.fast_op.arg1, env); fop = fop->as.fast_op.arg2; break; case FOP_THROW: tag = execute_fast_op(fop->as.fast_op.arg1, env); escape_retval = execute_fast_op(fop->as.fast_op.arg2, env); dscwritef(DF_SHOW_THROWS, (_T("; DEBUG: throw ~a, retval = ~a\n"), tag, escape_retval)); CURRENT_TIB()->escape_frame = find_matching_escape(CURRENT_TIB()->frame, tag); CURRENT_TIB()->escape_value = escape_retval; if (CURRENT_TIB()->escape_frame == NULL) { /* If we don't find a matching catch for the throw, we have a * problem and need to invoke a trap. */ vmtrap(TRAP_UNCAUGHT_THROW, (enum vmt_options_t)(VMT_MANDATORY_TRAP | VMT_HANDLER_MUST_ESCAPE), 2, tag, escape_retval); } unwind_stack_for_throw(); fop = fop->as.fast_op.next; break; case FOP_CATCH: tag = execute_fast_op(fop->as.fast_op.arg1, env); jmpbuf = fstack_enter_catch_frame(tag, CURRENT_TIB()->frame); dscwritef(DF_SHOW_THROWS, (_T("; DEBUG: setjmp tag: ~a, frame: ~c&, jmpbuf: ~c&\n"), tag, CURRENT_TIB()->frame, jmpbuf)); if (setjmp(*jmpbuf) == 0) { retval = execute_fast_op(fop->as.fast_op.arg2, env); } else { dscwritef(DF_SHOW_THROWS, (_T("; DEBUG: catch, retval = ~a\n"), CURRENT_TIB()->escape_value)); retval = CURRENT_TIB()->escape_value; CURRENT_TIB()->escape_value = NIL; } fstack_leave_frame(); fop = fop->as.fast_op.next; break; case FOP_WITH_UNWIND_FN: fstack_enter_unwind_frame(execute_fast_op(fop->as.fast_op.arg1, env)); retval = execute_fast_op(fop->as.fast_op.arg2, env); after = CURRENT_TIB()->frame[FOFS_UNWIND_AFTER]; fstack_leave_frame(); apply1(after, 0, NULL); fop = fop->as.fast_op.next; break; case FOP_CLOSURE: retval = lclosurecons(env, lcons(lcar(fop->as.fast_op.arg1), fop->as.fast_op.arg2), lcdr(fop->as.fast_op.arg1)); fop = fop->as.fast_op.next; break; case FOP_CAR: retval = lcar(retval); fop = fop->as.fast_op.next; break; case FOP_CDR: retval = lcdr(retval); fop = fop->as.fast_op.next; break; case FOP_NOT: retval = boolcons(!TRUEP(retval)); fop = fop->as.fast_op.next; break; case FOP_NULLP: retval = boolcons(NULLP(retval)); fop = fop->as.fast_op.next; break; case FOP_EQP: retval = boolcons(EQ(execute_fast_op(fop->as.fast_op.arg1, env), execute_fast_op(fop->as.fast_op.arg2, env))); fop = fop->as.fast_op.next; break; case FOP_GET_ENV: retval = env; fop = fop->as.fast_op.next; break; case FOP_GLOBAL_DEF: // three args, third was genv, but currently unused retval = lidefine_global(fop->as.fast_op.arg1, fop->as.fast_op.arg2); fop = fop->as.fast_op.next; break; case FOP_GET_FSP: retval = fixcons((fixnum_t)CURRENT_TIB()->fsp); fop = fop->as.fast_op.next; break; case FOP_GET_FRAME: retval = fixcons((fixnum_t)CURRENT_TIB()->frame); fop = fop->as.fast_op.next; break; case FOP_GET_HFRAMES: retval = CURRENT_TIB()->handler_frames; fop = fop->as.fast_op.next; break; case FOP_SET_HFRAMES: CURRENT_TIB()->handler_frames = execute_fast_op(fop->as.fast_op.arg1, env); fop = fop->as.fast_op.next; break; case FOP_GLOBAL_PRESERVE_FRAME: sym = fop->as.fast_op.arg1; binding = SYMBOL_VCELL(sym); if (UNBOUND_MARKER_P(binding)) vmerror_unbound(sym); SET_SYMBOL_VCELL(sym, fixcons((fixnum_t)CURRENT_TIB()->frame)); retval = execute_fast_op(fop->as.fast_op.arg2, env); fop = fop->as.fast_op.next; break; case FOP_STACK_BOUNDARY: sym = execute_fast_op(fop->as.fast_op.arg1, env); fstack_enter_boundary_frame(sym); retval = execute_fast_op(fop->as.fast_op.arg2, env); fstack_leave_frame(); fop = fop->as.fast_op.next; break; case FOP_FAST_ENQUEUE_CELL: retval = execute_fast_op(fop->as.fast_op.arg2, env); cell = execute_fast_op(fop->as.fast_op.arg1, env); SET_CDR(CAR(retval), cell); SET_CAR(retval, cell); fop = fop->as.fast_op.next; break; case FOP_WHILE_TRUE: while(TRUEP(execute_fast_op(fop->as.fast_op.arg1, env))) { retval = execute_fast_op(fop->as.fast_op.arg2, env); } fop = fop->as.fast_op.next; break; case FOP_LOCAL_REF_BY_INDEX: retval = lenvlookup_by_index(FIXNM(fop->as.fast_op.arg1), FIXNM(fop->as.fast_op.arg2), env); fop = fop->as.fast_op.next; break; case FOP_LOCAL_REF_RESTARG: retval = lenvlookup_restarg_by_index(FIXNM(fop->as.fast_op.arg1), FIXNM(fop->as.fast_op.arg2), env); fop = fop->as.fast_op.next; break; case FOP_LOCAL_SET_BY_INDEX: lenvlookup_set_by_index(FIXNM(fop->as.fast_op.arg1), FIXNM(fop->as.fast_op.arg2), env, retval); fop = fop->as.fast_op.next; break; default: panic("Unsupported fast-op"); } } fstack_leave_frame(); return retval; }
/* set-integration! */ BGL_EXPORTED_DEF obj_t BGl_setzd2integrationz12zc0zzglobaliza7e_integrationza7(BgL_globalz00_bglt BgL_globalz00_1, obj_t BgL_ez00_2, obj_t BgL_g0z00_3, obj_t BgL_g1z00_4) { AN_OBJECT; { /* Globalize/integration.scm 31 */ { obj_t BgL_l3651z00_921; BgL_l3651z00_921 = BgL_ez00_2; BgL_zc3anonymousza33663ze3z83_922: if (PAIRP(BgL_l3651z00_921)) { /* Globalize/integration.scm 34 */ { /* Globalize/integration.scm 35 */ obj_t BgL_fz00_924; BgL_fz00_924 = CAR(BgL_l3651z00_921); { /* Globalize/integration.scm 36 */ BgL_localzf2ginfozf2_bglt BgL_obj3525z00_1422; bool_t BgL_val3524z00_1423; BgL_obj3525z00_1422 = (BgL_localzf2ginfozf2_bglt) (BgL_fz00_924); BgL_val3524z00_1423 = ((bool_t) 1); { obj_t BgL_auxz00_1528; { /* Globalize/integration.scm 36 */ BgL_objectz00_bglt BgL_auxz00_1529; BgL_auxz00_1529 = (BgL_objectz00_bglt) (BgL_obj3525z00_1422); BgL_auxz00_1528 = BGL_OBJECT_WIDENING(BgL_auxz00_1529); } ((((BgL_localzf2ginfozf2_bglt) CREF(BgL_auxz00_1528))-> BgL_globaliza7edzf3z54) = ((bool_t) BgL_val3524z00_1423), BUNSPEC); } } } { obj_t BgL_l3651z00_1533; BgL_l3651z00_1533 = CDR(BgL_l3651z00_921); BgL_l3651z00_921 = BgL_l3651z00_1533; goto BgL_zc3anonymousza33663ze3z83_922; } } else { /* Globalize/integration.scm 34 */ ((bool_t) 1); } } { /* Globalize/integration.scm 40 */ obj_t BgL_g3639z00_928; BgL_g3639z00_928 = MAKE_PAIR((obj_t) (BgL_globalz00_1), BgL_ez00_2); { obj_t BgL_fnsz00_930; BgL_fnsz00_930 = BgL_g3639z00_928; BgL_zc3anonymousza33666ze3z83_931: if (PAIRP(BgL_fnsz00_930)) { /* Globalize/integration.scm 42 */ obj_t BgL_arg3668z00_933; { /* Globalize/integration.scm 42 */ obj_t BgL_runner3680z00_952; { /* Globalize/integration.scm 42 */ obj_t BgL_l3653z00_934; BgL_l3653z00_934 = BgL_fnsz00_930; { /* Globalize/integration.scm 42 */ obj_t BgL_head3655z00_936; BgL_head3655z00_936 = MAKE_PAIR (BGl_traversezd2callzd2toz12z12zzglobaliza7e_integrationza7 (CAR(BgL_l3653z00_934)), BNIL); { /* Globalize/integration.scm 42 */ obj_t BgL_g3658z00_937; BgL_g3658z00_937 = CDR(BgL_l3653z00_934); { obj_t BgL_l3653z00_939; obj_t BgL_tail3656z00_940; BgL_l3653z00_939 = BgL_g3658z00_937; BgL_tail3656z00_940 = BgL_head3655z00_936; BgL_zc3anonymousza33670ze3z83_941: if (NULLP(BgL_l3653z00_939)) { /* Globalize/integration.scm 42 */ BgL_runner3680z00_952 = BgL_head3655z00_936; } else { /* Globalize/integration.scm 42 */ obj_t BgL_newtail3657z00_943; BgL_newtail3657z00_943 = MAKE_PAIR (BGl_traversezd2callzd2toz12z12zzglobaliza7e_integrationza7 (CAR(BgL_l3653z00_939)), BNIL); SET_CDR(BgL_tail3656z00_940, BgL_newtail3657z00_943); { obj_t BgL_tail3656z00_1551; obj_t BgL_l3653z00_1549; BgL_l3653z00_1549 = CDR(BgL_l3653z00_939); BgL_tail3656z00_1551 = BgL_newtail3657z00_943; BgL_tail3656z00_940 = BgL_tail3656z00_1551; BgL_l3653z00_939 = BgL_l3653z00_1549; goto BgL_zc3anonymousza33670ze3z83_941; } } } } } } BgL_arg3668z00_933 = BGl_appendz00zz__r4_pairs_and_lists_6_3z00 (BgL_runner3680z00_952); } { obj_t BgL_fnsz00_1553; BgL_fnsz00_1553 = BgL_arg3668z00_933; BgL_fnsz00_930 = BgL_fnsz00_1553; goto BgL_zc3anonymousza33666ze3z83_931; } } else { /* Globalize/integration.scm 41 */ ((bool_t) 0); } } } { obj_t BgL_l3659z00_955; BgL_l3659z00_955 = BgL_g1z00_4; BgL_zc3anonymousza33681ze3z83_956: if (PAIRP(BgL_l3659z00_955)) { /* Globalize/integration.scm 44 */ { /* Globalize/integration.scm 45 */ obj_t BgL_fz00_958; BgL_fz00_958 = CAR(BgL_l3659z00_955); { /* Globalize/integration.scm 45 */ bool_t BgL_testz00_1557; { /* Globalize/integration.scm 45 */ bool_t BgL__ortest_3646z00_1441; BgL__ortest_3646z00_1441 = BGl_iszd2azf3z21zz__objectz00(BgL_fz00_958, BGl_globalz00zzast_varz00); if (BgL__ortest_3646z00_1441) { /* Globalize/integration.scm 45 */ BgL_testz00_1557 = BgL__ortest_3646z00_1441; } else { /* Globalize/integration.scm 45 */ BgL_localzf2ginfozf2_bglt BgL_obj3523z00_1443; BgL_obj3523z00_1443 = (BgL_localzf2ginfozf2_bglt) (BgL_fz00_958); { obj_t BgL_auxz00_1561; { /* Globalize/integration.scm 45 */ BgL_objectz00_bglt BgL_auxz00_1562; BgL_auxz00_1562 = (BgL_objectz00_bglt) (BgL_obj3523z00_1443); BgL_auxz00_1561 = BGL_OBJECT_WIDENING(BgL_auxz00_1562); } BgL_testz00_1557 = (((BgL_localzf2ginfozf2_bglt) CREF(BgL_auxz00_1561))-> BgL_globaliza7edzf3z54); } } } if (BgL_testz00_1557) { /* Globalize/integration.scm 45 */ BFALSE; } else { /* Globalize/integration.scm 48 */ BgL_valuez00_bglt BgL_instance3640z00_960; { BgL_variablez00_bglt BgL_auxz00_1566; BgL_auxz00_1566 = (BgL_variablez00_bglt) (BgL_fz00_958); BgL_instance3640z00_960 = (((BgL_variablez00_bglt) CREF(BgL_auxz00_1566))-> BgL_valuez00); } { /* Globalize/integration.scm 49 */ obj_t BgL_arg3684z00_961; { /* Globalize/integration.scm 49 */ BgL_sfunzf2ginfozf2_bglt BgL_obj3345z00_1445; BgL_obj3345z00_1445 = (BgL_sfunzf2ginfozf2_bglt) (BgL_instance3640z00_960); { obj_t BgL_auxz00_1570; { /* Globalize/integration.scm 49 */ BgL_objectz00_bglt BgL_auxz00_1571; BgL_auxz00_1571 = (BgL_objectz00_bglt) (BgL_obj3345z00_1445); BgL_auxz00_1570 = BGL_OBJECT_WIDENING(BgL_auxz00_1571); } BgL_arg3684z00_961 = (((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1570))->BgL_imarkz00); } } { /* Globalize/integration.scm 49 */ BgL_sfunzf2ginfozf2_bglt BgL_obj3344z00_1446; obj_t BgL_val3343z00_1447; BgL_obj3344z00_1446 = (BgL_sfunzf2ginfozf2_bglt) (BgL_instance3640z00_960); BgL_val3343z00_1447 = BgL_arg3684z00_961; { obj_t BgL_auxz00_1576; { /* Globalize/integration.scm 49 */ BgL_objectz00_bglt BgL_auxz00_1577; BgL_auxz00_1577 = (BgL_objectz00_bglt) (BgL_obj3344z00_1446); BgL_auxz00_1576 = BGL_OBJECT_WIDENING(BgL_auxz00_1577); } ((((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1576))-> BgL_integratorz00) = ((obj_t) BgL_val3343z00_1447), BUNSPEC); } } } } } } { obj_t BgL_l3659z00_1581; BgL_l3659z00_1581 = CDR(BgL_l3659z00_955); BgL_l3659z00_955 = BgL_l3659z00_1581; goto BgL_zc3anonymousza33681ze3z83_956; } } else { /* Globalize/integration.scm 44 */ ((bool_t) 1); } } { obj_t BgL_l3661z00_965; { /* Globalize/integration.scm 52 */ bool_t BgL_auxz00_1583; BgL_l3661z00_965 = BgL_g1z00_4; BgL_zc3anonymousza33686ze3z83_966: if (PAIRP(BgL_l3661z00_965)) { /* Globalize/integration.scm 52 */ { /* Globalize/integration.scm 53 */ obj_t BgL_fz00_968; BgL_fz00_968 = CAR(BgL_l3661z00_965); { /* Globalize/integration.scm 53 */ BgL_valuez00_bglt BgL_instance3642z00_969; { BgL_variablez00_bglt BgL_auxz00_1587; BgL_auxz00_1587 = (BgL_variablez00_bglt) (BgL_fz00_968); BgL_instance3642z00_969 = (((BgL_variablez00_bglt) CREF(BgL_auxz00_1587))-> BgL_valuez00); } { /* Globalize/integration.scm 56 */ bool_t BgL_testz00_1590; { /* Globalize/integration.scm 56 */ bool_t BgL__ortest_3646z00_1453; BgL__ortest_3646z00_1453 = BGl_iszd2azf3z21zz__objectz00(BgL_fz00_968, BGl_globalz00zzast_varz00); if (BgL__ortest_3646z00_1453) { /* Globalize/integration.scm 56 */ BgL_testz00_1590 = BgL__ortest_3646z00_1453; } else { /* Globalize/integration.scm 56 */ BgL_localzf2ginfozf2_bglt BgL_obj3523z00_1455; BgL_obj3523z00_1455 = (BgL_localzf2ginfozf2_bglt) (BgL_fz00_968); { obj_t BgL_auxz00_1594; { /* Globalize/integration.scm 56 */ BgL_objectz00_bglt BgL_auxz00_1595; BgL_auxz00_1595 = (BgL_objectz00_bglt) (BgL_obj3523z00_1455); BgL_auxz00_1594 = BGL_OBJECT_WIDENING(BgL_auxz00_1595); } BgL_testz00_1590 = (((BgL_localzf2ginfozf2_bglt) CREF(BgL_auxz00_1594))->BgL_globaliza7edzf3z54); } } } if (BgL_testz00_1590) { /* Globalize/integration.scm 56 */ { /* Globalize/integration.scm 58 */ BgL_valuez00_bglt BgL_arg3713z00_1457; { BgL_variablez00_bglt BgL_auxz00_1599; BgL_auxz00_1599 = (BgL_variablez00_bglt) (BgL_fz00_968); BgL_arg3713z00_1457 = (((BgL_variablez00_bglt) CREF(BgL_auxz00_1599))-> BgL_valuez00); } { /* Globalize/integration.scm 58 */ BgL_sfunzf2ginfozf2_bglt BgL_obj3344z00_1459; obj_t BgL_val3343z00_1460; BgL_obj3344z00_1459 = (BgL_sfunzf2ginfozf2_bglt) (BgL_arg3713z00_1457); BgL_val3343z00_1460 = BFALSE; { obj_t BgL_auxz00_1603; { /* Globalize/integration.scm 58 */ BgL_objectz00_bglt BgL_auxz00_1604; BgL_auxz00_1604 = (BgL_objectz00_bglt) (BgL_obj3344z00_1459); BgL_auxz00_1603 = BGL_OBJECT_WIDENING(BgL_auxz00_1604); } ((((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1603))->BgL_integratorz00) = ((obj_t) BgL_val3343z00_1460), BUNSPEC); } } } } else { /* Globalize/integration.scm 59 */ bool_t BgL_testz00_1608; { /* Globalize/integration.scm 59 */ obj_t BgL_arg3694z00_976; { /* Globalize/integration.scm 59 */ BgL_sfunzf2ginfozf2_bglt BgL_obj3342z00_1461; BgL_obj3342z00_1461 = (BgL_sfunzf2ginfozf2_bglt) (BgL_instance3642z00_969); { obj_t BgL_auxz00_1610; { /* Globalize/integration.scm 59 */ BgL_objectz00_bglt BgL_auxz00_1611; BgL_auxz00_1611 = (BgL_objectz00_bglt) (BgL_obj3342z00_1461); BgL_auxz00_1610 = BGL_OBJECT_WIDENING(BgL_auxz00_1611); } BgL_arg3694z00_976 = (((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1610))->BgL_integratorz00); } } BgL_testz00_1608 = BGl_iszd2azf3z21zz__objectz00(BgL_arg3694z00_976, BGl_variablez00zzast_varz00); } if (BgL_testz00_1608) { /* Globalize/integration.scm 59 */ { /* Globalize/integration.scm 63 */ obj_t BgL_arg3690z00_972; { /* Globalize/integration.scm 63 */ BgL_sfunzf2ginfozf2_bglt BgL_obj3342z00_1463; BgL_obj3342z00_1463 = (BgL_sfunzf2ginfozf2_bglt) (BgL_instance3642z00_969); { obj_t BgL_auxz00_1617; { /* Globalize/integration.scm 63 */ BgL_objectz00_bglt BgL_auxz00_1618; BgL_auxz00_1618 = (BgL_objectz00_bglt) (BgL_obj3342z00_1463); BgL_auxz00_1617 = BGL_OBJECT_WIDENING(BgL_auxz00_1618); } BgL_arg3690z00_972 = (((BgL_sfunzf2ginfozf2_bglt) CREF(BgL_auxz00_1617))-> BgL_integratorz00); } } BGl_integratezd2inz12zc0zzglobaliza7e_integrationza7 (BgL_fz00_968, BgL_arg3690z00_972); } } else { /* Globalize/integration.scm 59 */ BGl_internalzd2errorzd2zztools_errorz00 (BGl_string3767z00zzglobaliza7e_integrationza7, BGl_string3768z00zzglobaliza7e_integrationza7, BGl_shapez00zztools_shapez00(BgL_fz00_968)); } } } } } { obj_t BgL_l3661z00_1625; BgL_l3661z00_1625 = CDR(BgL_l3661z00_965); BgL_l3661z00_965 = BgL_l3661z00_1625; goto BgL_zc3anonymousza33686ze3z83_966; } } else { /* Globalize/integration.scm 52 */ BgL_auxz00_1583 = ((bool_t) 1); } return BBOOL(BgL_auxz00_1583); } } } }
int setcdr(int x, int y){ SET_CDR(x,y); return(x); }
/* module-add-access-inner! */ obj_t BGl_modulezd2addzd2accesszd2innerz12zc0zz__modulez00(obj_t BgL_modulez00_10, obj_t BgL_filesz00_11, obj_t BgL_abasez00_12) { AN_OBJECT; { /* Llib/module.scm 160 */ { /* Llib/module.scm 161 */ obj_t BgL_basez00_829; { /* Llib/module.scm 161 */ obj_t BgL_auxz00_1957; { /* Llib/module.scm 161 */ obj_t BgL_aux2287z00_1699; BgL_aux2287z00_1699 = BGl_afilezd2tablezd2zz__modulez00; { /* Llib/module.scm 161 */ bool_t BgL_testz00_1958; if( PAIRP(BgL_aux2287z00_1699)) { /* Llib/module.scm 161 */ BgL_testz00_1958 = ((bool_t)1) ; } else { /* Llib/module.scm 161 */ BgL_testz00_1958 = NULLP(BgL_aux2287z00_1699) ; } if(BgL_testz00_1958) { /* Llib/module.scm 161 */ BgL_auxz00_1957 = BgL_aux2287z00_1699 ; } else { obj_t BgL_auxz00_1962; BgL_auxz00_1962 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6199)), BGl_string2346z00zz__modulez00, BGl_string2341z00zz__modulez00, BgL_aux2287z00_1699); FAILURE(BgL_auxz00_1962,BFALSE,BFALSE);} } } BgL_basez00_829 = BGl_assocz00zz__r4_pairs_and_lists_6_3z00(BgL_abasez00_12, BgL_auxz00_1957); } if( CBOOL(BgL_basez00_829)) { /* Llib/module.scm 165 */ obj_t BgL_cellz00_830; { /* Llib/module.scm 165 */ obj_t BgL_auxz00_1969; { /* Llib/module.scm 165 */ obj_t BgL_pairz00_1402; if( PAIRP(BgL_basez00_829)) { /* Llib/module.scm 165 */ BgL_pairz00_1402 = BgL_basez00_829; } else { obj_t BgL_auxz00_1972; BgL_auxz00_1972 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6351)), BGl_string2346z00zz__modulez00, BGl_string2343z00zz__modulez00, BgL_basez00_829); FAILURE(BgL_auxz00_1972,BFALSE,BFALSE);} { /* Llib/module.scm 165 */ obj_t BgL_aux2291z00_1703; BgL_aux2291z00_1703 = CDR(BgL_pairz00_1402); { /* Llib/module.scm 165 */ bool_t BgL_testz00_1977; if( PAIRP(BgL_aux2291z00_1703)) { /* Llib/module.scm 165 */ BgL_testz00_1977 = ((bool_t)1) ; } else { /* Llib/module.scm 165 */ BgL_testz00_1977 = NULLP(BgL_aux2291z00_1703) ; } if(BgL_testz00_1977) { /* Llib/module.scm 165 */ BgL_auxz00_1969 = BgL_aux2291z00_1703 ; } else { obj_t BgL_auxz00_1981; BgL_auxz00_1981 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6346)), BGl_string2346z00zz__modulez00, BGl_string2341z00zz__modulez00, BgL_aux2291z00_1703); FAILURE(BgL_auxz00_1981,BFALSE,BFALSE);} } } } BgL_cellz00_830 = BGl_assqz00zz__r4_pairs_and_lists_6_3z00(BgL_modulez00_10, BgL_auxz00_1969); } if( CBOOL(BgL_cellz00_830)) { /* Llib/module.scm 168 */ bool_t BgL_testz00_1988; { /* Llib/module.scm 168 */ obj_t BgL_auxz00_1989; { /* Llib/module.scm 168 */ obj_t BgL_pairz00_1403; if( PAIRP(BgL_cellz00_830)) { /* Llib/module.scm 168 */ BgL_pairz00_1403 = BgL_cellz00_830; } else { obj_t BgL_auxz00_1992; BgL_auxz00_1992 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6462)), BGl_string2346z00zz__modulez00, BGl_string2343z00zz__modulez00, BgL_cellz00_830); FAILURE(BgL_auxz00_1992,BFALSE,BFALSE);} BgL_auxz00_1989 = CDR(BgL_pairz00_1403); } BgL_testz00_1988 = BGl_equalzf3zf3zz__r4_equivalence_6_2z00(BgL_auxz00_1989, BgL_filesz00_11); } if(BgL_testz00_1988) { /* Llib/module.scm 168 */ return BFALSE;} else { /* Llib/module.scm 168 */ { /* Llib/module.scm 169 */ obj_t BgL_pairz00_1404; if( PAIRP(BgL_cellz00_830)) { /* Llib/module.scm 169 */ BgL_pairz00_1404 = BgL_cellz00_830; } else { obj_t BgL_auxz00_2000; BgL_auxz00_2000 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6491)), BGl_string2346z00zz__modulez00, BGl_string2343z00zz__modulez00, BgL_cellz00_830); FAILURE(BgL_auxz00_2000,BFALSE,BFALSE);} SET_CDR(BgL_pairz00_1404, BgL_filesz00_11); } { /* Llib/module.scm 170 */ obj_t BgL_arg1910z00_832;obj_t BgL_arg1914z00_835; BgL_arg1910z00_832 = BGl_symbol2347z00zz__modulez00; BgL_arg1914z00_835 = CDR(BgL_cellz00_830); { /* Llib/module.scm 170 */ obj_t BgL_list1919z00_839; { /* Llib/module.scm 170 */ obj_t BgL_arg1920z00_840; { /* Llib/module.scm 170 */ obj_t BgL_arg1921z00_841; { /* Llib/module.scm 170 */ obj_t BgL_arg1922z00_842; { /* Llib/module.scm 170 */ obj_t BgL_arg1923z00_843; { /* Llib/module.scm 170 */ obj_t BgL_arg1924z00_844; { /* Llib/module.scm 170 */ obj_t BgL_arg1925z00_845; { /* Llib/module.scm 170 */ obj_t BgL_arg1926z00_846; { /* Llib/module.scm 170 */ obj_t BgL_arg1927z00_847; { /* Llib/module.scm 170 */ obj_t BgL_arg1929z00_848; BgL_arg1929z00_848 = MAKE_PAIR(BGl_string2349z00zz__modulez00, BNIL); BgL_arg1927z00_847 = MAKE_PAIR(BgL_abasez00_12, BgL_arg1929z00_848); } BgL_arg1926z00_846 = MAKE_PAIR(BGl_string2350z00zz__modulez00, BgL_arg1927z00_847); } BgL_arg1925z00_845 = MAKE_PAIR(BgL_filesz00_11, BgL_arg1926z00_846); } BgL_arg1924z00_844 = MAKE_PAIR(BGl_string2351z00zz__modulez00, BgL_arg1925z00_845); } BgL_arg1923z00_843 = MAKE_PAIR(BgL_arg1914z00_835, BgL_arg1924z00_844); } BgL_arg1922z00_842 = MAKE_PAIR(BGl_string2352z00zz__modulez00, BgL_arg1923z00_843); } BgL_arg1921z00_841 = MAKE_PAIR(BgL_modulez00_10, BgL_arg1922z00_842); } BgL_arg1920z00_840 = MAKE_PAIR(BGl_string2353z00zz__modulez00, BgL_arg1921z00_841); } BgL_list1919z00_839 = MAKE_PAIR(BgL_arg1910z00_832, BgL_arg1920z00_840); } return BGl_warningz00zz__errorz00(BgL_list1919z00_839);} } } } else { /* Llib/module.scm 167 */ obj_t BgL_arg1931z00_850; { /* Llib/module.scm 167 */ obj_t BgL_arg1932z00_851;obj_t BgL_arg1935z00_852; BgL_arg1932z00_851 = MAKE_PAIR(BgL_modulez00_10, BgL_filesz00_11); { /* Llib/module.scm 167 */ obj_t BgL_pairz00_1407; if( PAIRP(BgL_basez00_829)) { /* Llib/module.scm 167 */ BgL_pairz00_1407 = BgL_basez00_829; } else { obj_t BgL_auxz00_2020; BgL_auxz00_2020 = BGl_typezd2errorzd2zz__errorz00(BGl_string2330z00zz__modulez00, BINT(((long)6430)), BGl_string2346z00zz__modulez00, BGl_string2343z00zz__modulez00, BgL_basez00_829); FAILURE(BgL_auxz00_2020,BFALSE,BFALSE);} BgL_arg1935z00_852 = CDR(BgL_pairz00_1407); } BgL_arg1931z00_850 = MAKE_PAIR(BgL_arg1932z00_851, BgL_arg1935z00_852); } return SET_CDR(BgL_basez00_829, BgL_arg1931z00_850);} } else { /* Llib/module.scm 164 */ obj_t BgL_arg1938z00_854; { /* Llib/module.scm 164 */ obj_t BgL_arg1940z00_855; { /* Llib/module.scm 164 */ obj_t BgL_arg1941z00_856; BgL_arg1941z00_856 = MAKE_PAIR(BgL_modulez00_10, BgL_filesz00_11); { /* Llib/module.scm 164 */ obj_t BgL_list1942z00_857; BgL_list1942z00_857 = MAKE_PAIR(BgL_arg1941z00_856, BNIL); BgL_arg1940z00_855 = BgL_list1942z00_857; } } BgL_arg1938z00_854 = MAKE_PAIR(BgL_abasez00_12, BgL_arg1940z00_855); } return ( BGl_afilezd2tablezd2zz__modulez00 = MAKE_PAIR(BgL_arg1938z00_854, BGl_afilezd2tablezd2zz__modulez00), BUNSPEC) ;} } } }
/* <anonymous:1896> */ obj_t BGl_zc3anonymousza31896ze3z83zz__match_expandz00(obj_t BgL_envz00_1693, obj_t BgL_patz00_1695, obj_t BgL_envz00_1696) { AN_OBJECT; { /* Match/mexpand.scm 96 */ { /* Match/mexpand.scm 97 */ obj_t BgL_expz00_1694; BgL_expz00_1694 = PROCEDURE_REF(BgL_envz00_1693, (int) (((long) 0))); { obj_t BgL_patz00_803; obj_t BgL_envz00_804; BgL_patz00_803 = BgL_patz00_1695; BgL_envz00_804 = BgL_envz00_1696; { /* Match/mexpand.scm 97 */ obj_t BgL_compiledzd2patzd2_806; obj_t BgL_prototypesz00_807; BgL_compiledzd2patzd2_806 = BGl_pcompilez00zz__match_compilerz00(BgL_patz00_803); BgL_prototypesz00_807 = BGl_fetchzd2prototypeszd2zz__match_expandz00(BgL_patz00_803); { /* Match/mexpand.scm 101 */ obj_t BgL_arg1898z00_808; obj_t BgL_arg1899z00_809; BgL_arg1898z00_808 = BGl_symbol2319z00zz__match_expandz00; { /* Match/mexpand.scm 102 */ obj_t BgL_arg1900z00_810; { /* Match/mexpand.scm 102 */ obj_t BgL_arg1904z00_814; if (NULLP(BgL_prototypesz00_807)) { /* Match/mexpand.scm 102 */ BgL_arg1904z00_814 = BNIL; } else { /* Match/mexpand.scm 102 */ obj_t BgL_head1850z00_818; BgL_head1850z00_818 = MAKE_PAIR(BNIL, BNIL); { obj_t BgL_l1848z00_820; obj_t BgL_tail1851z00_821; BgL_l1848z00_820 = BgL_prototypesz00_807; BgL_tail1851z00_821 = BgL_head1850z00_818; BgL_zc3anonymousza31907ze3z83_822: if (NULLP(BgL_l1848z00_820)) { /* Match/mexpand.scm 102 */ BgL_arg1904z00_814 = CDR(BgL_head1850z00_818); } else { /* Match/mexpand.scm 102 */ obj_t BgL_newtail1852z00_824; { /* Match/mexpand.scm 102 */ obj_t BgL_arg1910z00_826; { /* Match/mexpand.scm 102 */ obj_t BgL_prototypez00_828; BgL_prototypez00_828 = CAR(BgL_l1848z00_820); { /* Match/mexpand.scm 104 */ obj_t BgL_bodyz00_829; BgL_bodyz00_829 = CDR(BGl_assqz00zz__r4_pairs_and_lists_6_3z00 (CAR(BgL_prototypez00_828), BgL_envz00_804)); if (NULLP(BgL_bodyz00_829)) { /* Match/mexpand.scm 105 */ BgL_arg1910z00_826 = BGl_errorz00zz__errorz00 (BGl_symbol2316z00zz__match_expandz00, BGl_string2318z00zz__match_expandz00, BgL_expz00_1694); } else { /* Match/mexpand.scm 107 */ obj_t BgL_arg1914z00_831; obj_t BgL_arg1915z00_832; BgL_arg1914z00_831 = CAR(BgL_prototypez00_828); { /* Match/mexpand.scm 108 */ obj_t BgL_arg1916z00_833; { /* Match/mexpand.scm 108 */ obj_t BgL_pairz00_1402; BgL_pairz00_1402 = BgL_prototypez00_828; BgL_arg1916z00_833 = CAR(CDR(BgL_pairz00_1402)); } BgL_arg1915z00_832 = MAKE_PAIR(BgL_arg1916z00_833, BgL_bodyz00_829); } BgL_arg1910z00_826 = MAKE_PAIR(BgL_arg1914z00_831, BgL_arg1915z00_832); } } } BgL_newtail1852z00_824 = MAKE_PAIR(BgL_arg1910z00_826, BNIL); } SET_CDR(BgL_tail1851z00_821, BgL_newtail1852z00_824); { obj_t BgL_tail1851z00_1805; obj_t BgL_l1848z00_1803; BgL_l1848z00_1803 = CDR(BgL_l1848z00_820); BgL_tail1851z00_1805 = BgL_newtail1852z00_824; BgL_tail1851z00_821 = BgL_tail1851z00_1805; BgL_l1848z00_820 = BgL_l1848z00_1803; goto BgL_zc3anonymousza31907ze3z83_822; } } } } BgL_arg1900z00_810 = BGl_eappendzd22zd2zz__r4_pairs_and_lists_6_3z00 (BgL_arg1904z00_814, BNIL); } { /* Match/mexpand.scm 101 */ obj_t BgL_list1902z00_812; { /* Match/mexpand.scm 101 */ obj_t BgL_arg1903z00_813; BgL_arg1903z00_813 = MAKE_PAIR(BNIL, BNIL); BgL_list1902z00_812 = MAKE_PAIR(BgL_compiledzd2patzd2_806, BgL_arg1903z00_813); } BgL_arg1899z00_809 = BGl_consza2za2zz__r4_pairs_and_lists_6_3z00 (BgL_arg1900z00_810, BgL_list1902z00_812); } } return MAKE_PAIR(BgL_arg1898z00_808, BgL_arg1899z00_809); } } } } } }
/* global->blocks */ BGL_EXPORTED_DEF obj_t BGl_globalzd2ze3blocksz31zzsaw_woodcutterz00(BgL_backendz00_bglt BgL_backz00_1, BgL_globalz00_bglt BgL_vz00_2) { AN_OBJECT; { /* SawMill/woodcutter.scm 37 */ { /* SawMill/woodcutter.scm 42 */ BgL_blockz00_bglt BgL_bz00_1260; obj_t BgL_argsz00_1261; BgL_bz00_1260 = BGl_globalzd2ze3rtlz31zzsaw_node2rtlz00(BgL_vz00_2); { /* SawMill/woodcutter.scm 43 */ obj_t BgL_l4408z00_1272; { /* SawMill/woodcutter.scm 43 */ BgL_sfunz00_bglt BgL_obj1880z00_1878; { /* SawMill/woodcutter.scm 43 */ BgL_variablez00_bglt BgL_obj1611z00_1877; BgL_obj1611z00_1877 = (BgL_variablez00_bglt) (BgL_vz00_2); BgL_obj1880z00_1878 = (BgL_sfunz00_bglt) ( (((BgL_variablez00_bglt) CREF(BgL_obj1611z00_1877))-> BgL_valuez00)); } BgL_l4408z00_1272 = (((BgL_sfunz00_bglt) CREF(BgL_obj1880z00_1878))->BgL_argsz00); } if (NULLP(BgL_l4408z00_1272)) { /* SawMill/woodcutter.scm 43 */ BgL_argsz00_1261 = BNIL; } else { /* SawMill/woodcutter.scm 43 */ obj_t BgL_head4410z00_1274; { /* SawMill/woodcutter.scm 43 */ BgL_rtl_regz00_bglt BgL_arg4426z00_1287; { /* SawMill/woodcutter.scm 43 */ obj_t BgL_arg4428z00_1289; BgL_arg4428z00_1289 = CAR(BgL_l4408z00_1272); BgL_arg4426z00_1287 = BGl_localzd2ze3regz31zzsaw_node2rtlz00( (BgL_localz00_bglt) (BgL_arg4428z00_1289)); } BgL_head4410z00_1274 = MAKE_PAIR((obj_t) (BgL_arg4426z00_1287), BNIL); } { /* SawMill/woodcutter.scm 43 */ obj_t BgL_g4413z00_1275; BgL_g4413z00_1275 = CDR(BgL_l4408z00_1272); { obj_t BgL_l4408z00_1277; obj_t BgL_tail4411z00_1278; BgL_l4408z00_1277 = BgL_g4413z00_1275; BgL_tail4411z00_1278 = BgL_head4410z00_1274; BgL_zc3anonymousza34420ze3z83_1279: if (NULLP(BgL_l4408z00_1277)) { /* SawMill/woodcutter.scm 43 */ BgL_argsz00_1261 = BgL_head4410z00_1274; } else { /* SawMill/woodcutter.scm 43 */ obj_t BgL_newtail4412z00_1281; { /* SawMill/woodcutter.scm 43 */ BgL_rtl_regz00_bglt BgL_arg4423z00_1283; { /* SawMill/woodcutter.scm 43 */ obj_t BgL_arg4425z00_1285; BgL_arg4425z00_1285 = CAR(BgL_l4408z00_1277); BgL_arg4423z00_1283 = BGl_localzd2ze3regz31zzsaw_node2rtlz00( (BgL_localz00_bglt) (BgL_arg4425z00_1285)); } BgL_newtail4412z00_1281 = MAKE_PAIR((obj_t) (BgL_arg4423z00_1283), BNIL); } SET_CDR(BgL_tail4411z00_1278, BgL_newtail4412z00_1281); { obj_t BgL_tail4411z00_1933; obj_t BgL_l4408z00_1931; BgL_l4408z00_1931 = CDR(BgL_l4408z00_1277); BgL_tail4411z00_1933 = BgL_newtail4412z00_1281; BgL_tail4411z00_1278 = BgL_tail4411z00_1933; BgL_l4408z00_1277 = BgL_l4408z00_1931; goto BgL_zc3anonymousza34420ze3z83_1279; } } } } } } if (BGl_za2collapseza2z00zzsaw_woodcutterz00) { /* SawMill/woodcutter.scm 44 */ BGl_collapsez00zzsaw_collapsez00(BgL_bz00_1260); } else { /* SawMill/woodcutter.scm 44 */ BFALSE; } if (BGl_za2removeza2z00zzsaw_woodcutterz00) { /* SawMill/woodcutter.scm 45 */ BgL_bz00_1260 = BGl_removez00zzsaw_removez00(BgL_bz00_1260); } else { /* SawMill/woodcutter.scm 45 */ BFALSE; } if (BGl_za2saw_inline_returnsza2z00zzsaw_woodcutterz00) { /* SawMill/woodcutter.scm 46 */ BGl_inlinezd2returnszd2zzsaw_inline_returnz00(BgL_bz00_1260); } else { /* SawMill/woodcutter.scm 46 */ BFALSE; } { /* SawMill/woodcutter.scm 47 */ obj_t BgL_lz00_1262; BgL_lz00_1262 = BGl_blockzd2orderingzd2zzsaw_blockorderz00(BgL_bz00_1260); { long BgL_iz00_1264; obj_t BgL_lz00_1265; BgL_iz00_1264 = ((long) 0); BgL_lz00_1265 = BgL_lz00_1262; BgL_zc3anonymousza34414ze3z83_1266: if (PAIRP(BgL_lz00_1265)) { /* SawMill/woodcutter.scm 49 */ { /* SawMill/woodcutter.scm 50 */ obj_t BgL_arg4416z00_1268; BgL_arg4416z00_1268 = CAR(BgL_lz00_1265); { int BgL_auxz00_1946; BgL_blockz00_bglt BgL_auxz00_1944; BgL_auxz00_1946 = (int) (BgL_iz00_1264); BgL_auxz00_1944 = (BgL_blockz00_bglt) (BgL_arg4416z00_1268); ((((BgL_blockz00_bglt) CREF(BgL_auxz00_1944))-> BgL_labelz00) = ((int) BgL_auxz00_1946), BUNSPEC); }} { obj_t BgL_lz00_1951; long BgL_iz00_1949; BgL_iz00_1949 = (BgL_iz00_1264 + ((long) 1)); BgL_lz00_1951 = CDR(BgL_lz00_1265); BgL_lz00_1265 = BgL_lz00_1951; BgL_iz00_1264 = BgL_iz00_1949; goto BgL_zc3anonymousza34414ze3z83_1266; } } else { /* SawMill/woodcutter.scm 49 */ ((bool_t) 0); } } BGl_addzd2gotoszd2zzsaw_gotosz00(BgL_lz00_1262); if (BGl_za2castza2z00zzsaw_woodcutterz00) { /* SawMill/woodcutter.scm 53 */ BGl_addzd2castszd2zzsaw_castz00(BgL_backz00_1, BgL_lz00_1262); } else { /* SawMill/woodcutter.scm 53 */ BFALSE; } return BgL_lz00_1262; } } } }
/* load-parser */ obj_t BGl_loadzd2parserzd2zzmodule_loadz00(obj_t BgL_protoz00_2, obj_t BgL_clausez00_3) { AN_OBJECT; { /* Module/load.scm 50 */ { obj_t BgL_modulez00_408; obj_t BgL_filez00_409; obj_t BgL_filesz00_410; if (PAIRP(BgL_protoz00_2)) { /* Module/load.scm 51 */ obj_t BgL_carzd21407zd2_416; obj_t BgL_cdrzd21408zd2_417; BgL_carzd21407zd2_416 = CAR(BgL_protoz00_2); BgL_cdrzd21408zd2_417 = CDR(BgL_protoz00_2); if (SYMBOLP(BgL_carzd21407zd2_416)) { /* Module/load.scm 51 */ if (PAIRP(BgL_cdrzd21408zd2_417)) { /* Module/load.scm 51 */ obj_t BgL_carzd21413zd2_420; BgL_carzd21413zd2_420 = CAR(BgL_cdrzd21408zd2_417); if (STRINGP(BgL_carzd21413zd2_420)) { /* Module/load.scm 51 */ BgL_modulez00_408 = BgL_carzd21407zd2_416; BgL_filez00_409 = BgL_carzd21413zd2_420; BgL_filesz00_410 = CDR(BgL_cdrzd21408zd2_417); { obj_t BgL_fz00_428; BgL_fz00_428 = BgL_filesz00_410; BgL_zc3anonymousza32156ze3z83_429: if (NULLP(BgL_fz00_428)) { /* Module/load.scm 56 */ obj_t BgL_arg2159z00_431; BgL_arg2159z00_431 = MAKE_PAIR(BgL_filez00_409, BgL_filesz00_410); return BGl_loadzd2modulezd2zzread_loadz00 (BgL_modulez00_408, BgL_arg2159z00_431); } else { /* Module/load.scm 57 */ bool_t BgL_testz00_697; { /* Module/load.scm 57 */ obj_t BgL_auxz00_698; BgL_auxz00_698 = CAR(BgL_fz00_428); BgL_testz00_697 = STRINGP(BgL_auxz00_698); } if (BgL_testz00_697) { obj_t BgL_fz00_701; BgL_fz00_701 = CDR(BgL_fz00_428); BgL_fz00_428 = BgL_fz00_701; goto BgL_zc3anonymousza32156ze3z83_429; } else { /* Module/load.scm 58 */ obj_t BgL_list2166z00_434; BgL_list2166z00_434 = MAKE_PAIR(BNIL, BNIL); return BGl_userzd2errorzd2zztools_errorz00 (BGl_string2258z00zzmodule_loadz00, BGl_string2260z00zzmodule_loadz00, BgL_clausez00_3, BgL_list2166z00_434); } } } } else { /* Module/load.scm 51 */ BgL_tagzd21399zd2_413: { /* Module/load.scm 68 */ obj_t BgL_list2209z00_460; BgL_list2209z00_460 = MAKE_PAIR(BNIL, BNIL); return BGl_userzd2errorzd2zztools_errorz00 (BGl_string2258z00zzmodule_loadz00, BGl_string2260z00zzmodule_loadz00, BgL_clausez00_3, BgL_list2209z00_460); } } } else { /* Module/load.scm 51 */ goto BgL_tagzd21399zd2_413; } } else { /* Module/load.scm 51 */ goto BgL_tagzd21399zd2_413; } } else { /* Module/load.scm 51 */ if (SYMBOLP(BgL_protoz00_2)) { /* Module/load.scm 51 */ { /* Module/load.scm 62 */ obj_t BgL_abasez00_437; { /* Module/load.scm 62 */ obj_t BgL_l2116z00_442; BgL_l2116z00_442 = BGl_za2accesszd2filesza2zd2zzengine_paramz00; if (NULLP(BgL_l2116z00_442)) { /* Module/load.scm 62 */ BgL_abasez00_437 = BNIL; } else { /* Module/load.scm 62 */ obj_t BgL_head2118z00_444; BgL_head2118z00_444 = MAKE_PAIR(BGl_dirnamez00zz__osz00(CAR (BgL_l2116z00_442)), BNIL); { /* Module/load.scm 62 */ obj_t BgL_g2121z00_445; BgL_g2121z00_445 = CDR(BgL_l2116z00_442); { obj_t BgL_l2116z00_447; obj_t BgL_tail2119z00_448; BgL_l2116z00_447 = BgL_g2121z00_445; BgL_tail2119z00_448 = BgL_head2118z00_444; BgL_zc3anonymousza32177ze3z83_449: if (NULLP(BgL_l2116z00_447)) { /* Module/load.scm 62 */ BgL_abasez00_437 = BgL_head2118z00_444; } else { /* Module/load.scm 62 */ obj_t BgL_newtail2120z00_451; BgL_newtail2120z00_451 = MAKE_PAIR(BGl_dirnamez00zz__osz00(CAR (BgL_l2116z00_447)), BNIL); SET_CDR(BgL_tail2119z00_448, BgL_newtail2120z00_451); { obj_t BgL_tail2119z00_724; obj_t BgL_l2116z00_722; BgL_l2116z00_722 = CDR(BgL_l2116z00_447); BgL_tail2119z00_724 = BgL_newtail2120z00_451; BgL_tail2119z00_448 = BgL_tail2119z00_724; BgL_l2116z00_447 = BgL_l2116z00_722; goto BgL_zc3anonymousza32177ze3z83_449; } } } } } } { /* Module/load.scm 62 */ obj_t BgL_bz00_438; { /* Module/load.scm 63 */ obj_t BgL_fun2175z00_441; BgL_fun2175z00_441 = BGl_bigloozd2modulezd2resolverz00zz__modulez00(); BgL_bz00_438 = PROCEDURE_ENTRY(BgL_fun2175z00_441) (BgL_fun2175z00_441, BgL_protoz00_2, BgL_abasez00_437, BEOA); } { /* Module/load.scm 63 */ if (PAIRP(BgL_bz00_438)) { /* Module/load.scm 64 */ return BGl_loadzd2modulezd2zzread_loadz00(BgL_protoz00_2, BgL_bz00_438); } else { /* Module/load.scm 64 */ return BGl_userzd2errorzd2zztools_errorz00 (BGl_string2261z00zzmodule_loadz00, BGl_string2262z00zzmodule_loadz00, BgL_protoz00_2, BNIL); } } } } } else { /* Module/load.scm 51 */ goto BgL_tagzd21399zd2_413; } } } } }