示例#1
0
文件: main.c 项目: mschaef/vcsh
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;
}
示例#2
0
文件: mlis.c 项目: kzfm1024/misc
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);
}
示例#3
0
文件: mlis.c 项目: kzfm1024/misc
//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);  
}
示例#4
0
int freshcell(void){
	int res;
    
    res = H;
    H = heap[H].cdr;
    SET_CDR(res,0);
	F--;
    return(res);
}
示例#5
0
文件: mlis.c 项目: kzfm1024/misc
int cons(int car, int cdr){
    int addr;
    
    addr = freshcell();
    SET_TAG(addr,LIS);
    SET_CAR(addr,car);
    SET_CDR(addr,cdr);
    return(addr);
}
示例#6
0
文件: mlis.c 项目: kzfm1024/misc
int freshcell(void){
    int res;
    
    res = hp;
    hp = heap[hp].cdr;
    SET_CDR(res,0);
    fc--;
    return(res);
}
示例#7
0
文件: mlis.c 项目: kzfm1024/misc
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);
}
示例#8
0
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);
}
示例#9
0
文件: mlis.c 项目: kzfm1024/misc
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);
}
示例#10
0
文件: list.c 项目: sasagawa888/Simple
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);
}
示例#11
0
/*---------------------------------------------------------------------*/
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 ) ) );
   }
}
示例#12
0
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);
}
示例#13
0
文件: mono.c 项目: kmizumar/Mono
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;
}
示例#14
0
文件: env.c 项目: barak/sigscheme
/**
 * 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;
}
示例#15
0
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;
}
示例#16
0
文件: mlis.c 项目: kzfm1024/misc
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++;
    }
}
示例#17
0
文件: mono.c 项目: kmizumar/Mono
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;
}
示例#18
0
/*---------------------------------------------------------------------*/
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 );
}
示例#19
0
文件: fasl.c 项目: mschaef/vcsh
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);
    }
}
示例#20
0
/*---------------------------------------------------------------------*/
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;
}
示例#21
0
/*---------------------------------------------------------------------*/
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;
      }
   }
}
示例#22
0
文件: env.c 项目: barak/sigscheme
/** 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;
}
示例#23
0
文件: evaluator.c 项目: mschaef/vcsh
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;
}
示例#24
0
/* 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);
				}
			}
		}
	}
示例#25
0
文件: list.c 项目: sasagawa888/Simple
int setcdr(int x, int y){
	SET_CDR(x,y);
    return(x);
}
示例#26
0
/* 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) ;} } } 
}
示例#27
0
/* <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);
						}
					}
				}
			}
		}
	}
示例#28
0
/* 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;
				}
			}
		}
	}
示例#29
0
文件: load.c 项目: 8l/bigloo-llvm
/* 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;
							}
					}
			}
		}
	}