public static Variable cb_downcall(Variable list) { List <object> lo = new List <object>(); VarDeque it = Builtins.start_iter(list); while (Kernel.IterHasFlat(it, true)) { lo.Add(Downcaller.DCArg(it.Shift())); } return(Downcaller.DCResult(list.Fetch().mo.setting, Downcaller.RawDowncall(lo.ToArray()))); }
public static Variable cb_finish(Variable si, Variable nam) { StringBuilder sb = new StringBuilder(); List <object> refs = new List <object>(); Downcaller.SerializeNam(nam, sb, refs); object[] args = new object[refs.Count + 3]; args[0] = "sub_finish"; args[1] = Kernel.UnboxAny <object>(si.Fetch()); args[2] = sb.ToString(); refs.CopyTo(args, 3); return(Downcaller.DCResult(si.Fetch().mo.setting, Downcaller.RawDowncall(args))); }
public static void cb_init_compartment(Variable c) { Downcaller.RawDowncall("set_binding", Downcaller.DCArg(c), Downcaller.obj_dirs, new UpcallReceiver()); }