#include "append!.h" static SCM append_excl_(args) SCM args; { SCM target,tails; if(NULL_P(args)) { args=const_1; } else BOOL_F; target=CAR(args); tails=CDR(args); return append_excl__fn1(target,tails); } static SCM append_excl__fn1(target__1,tails__2) SCM target__1,tails__2; { SCM tmp_var1,tmp_var2; tailrecursion: if(NULL_P(target__1)) { if(PAIR_P(tails__2)) { tmp_var1=CAR(tails__2); tmp_var2=CDR(tails__2); target__1=tmp_var1; tails__2=tmp_var2; goto tailrecursion; } else return EOL; } else return append_excl__fn2(target__1,tails__2,target__1); } static SCM append_excl__fn2(target__1,tails__3,p) SCM target__1,tails__3,p; { SCM tmp_var1,tmp_var2,new_tail; tailrecursion: if(NULL_P(tails__3)) return target__1; else { new_tail=CAR(tails__3); if(NULL_P(new_tail)) { tails__3=CDR(tails__3); goto tailrecursion; } else { SET_CDR(apply(GLOBAL(last_pair),p,listofnull),new_tail); tmp_var1=CDR(tails__3); tmp_var2=new_tail; tails__3=tmp_var1; p=tmp_var2; goto tailrecursion; } } } static SCM top_actions_append_excl_() { return make_subr((char *)"append!",tc7_lsubr,append_excl_); } SCM scm_init_append_excl_() { last_pair=&CDR(intern((char *)"last-pair",9)); protect_constants_append_excl_=&CDR(intern((char *)"protect_constants_append!",25)); GLOBAL(protect_constants_append_excl_)=EOL; const_1=cons(EOL,EOL); GLOBAL(protect_constants_append_excl_)=cons(const_1,GLOBAL(protect_constants_append_excl_)); top_actions_append_excl_(); }