/* GCC MELT GENERATED FILE warmelt-first.0+01.c - DO NOT EDIT */ /* secondary MELT generated C file of rank #1 */ #include "melt-run.h" /* used hash from melt-run.h when compiling this file: */ const char used_meltrun_md5_melt_f1[] = MELT_RUN_HASHMD5 /* from melt-run.h */; /**** warmelt-first.0+01.c declarations ****/ #define MELT_HAS_INITIAL_ENVIRONMENT 0 /**!!** *** Copyright 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Basile Starynkevitch This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . *****!!**/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_1_warmelt_first_INSTALL_CTYPE_DESCR(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_2_warmelt_first_ADD_NEW_SYMBOL_TOKEN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_3_warmelt_first_ADD_NEW_KEYWORD_TOKEN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_4_warmelt_first_INTERN_SYMBOL(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_5_warmelt_first_INTERN_KEYWORD(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_6_warmelt_first_CLONE_SYMBOL(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_7_warmelt_first_INITFRESH_CONTENVMAKER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_8_warmelt_first_INITVALUE_EXPORTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_9_warmelt_first_INITVALUE_IMPORTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_10_warmelt_first_INITMACRO_EXPORTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_11_warmelt_first_INITPATMACRO_EXPORTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_12_warmelt_first_INIT_EXITFINALIZER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_13_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_14_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_15_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_16_warmelt_first_AT_EXIT_FIRST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_17_warmelt_first_AT_EXIT_LAST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_18_warmelt_first_INIT_UNITSTARTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_19_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_20_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_21_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_22_warmelt_first_AT_START_UNIT_FIRST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_23_warmelt_first_AT_START_UNIT_LAST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_24_warmelt_first_INIT_UNITFINISHER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_25_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_26_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_27_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_28_warmelt_first_AT_FINISH_UNIT_FIRST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_29_warmelt_first_AT_FINISH_UNIT_LAST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_30_warmelt_first_INIT_OPTIONSETTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_31_warmelt_first_REGISTER_OPTION(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_32_warmelt_first_OPTION_HELPER_FUN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_33_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_34_warmelt_first_MAPOBJECT_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_35_warmelt_first_MAPOBJECT_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_36_warmelt_first_LIST_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_37_warmelt_first_LIST_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_38_warmelt_first_LIST_APPEND2LIST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_39_warmelt_first_LIST_MAP(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_40_warmelt_first_LIST_FIND(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_41_warmelt_first_LIST_TO_MULTIPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_42_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_43_warmelt_first_PAIRLIST_TO_MULTIPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_44_warmelt_first_MULTIPLE_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_45_warmelt_first_MULTIPLE_MAP(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_46_warmelt_first_MULTIPLE_TO_LIST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_47_warmelt_first_CLOSURE_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_48_warmelt_first_ROUTINE_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_49_warmelt_first_INSTALL_METHOD(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_50_warmelt_first_COMPARE_OBJ_RANKED(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_51_warmelt_first_MAPOBJECT_SORTED_ATTRIBUTE_TUPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_52_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_53_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_54_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_55_warmelt_first_FRESH_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_56_warmelt_first_FIND_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_57_warmelt_first_FIND_ENV_DEBUG(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_58_warmelt_first_FIND_ENCLOSING_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_59_warmelt_first_PUT_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_60_warmelt_first_OVERWRITE_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_61_warmelt_first_POST_INITIALIZATION(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_62_warmelt_first_DEBUG_MSG_FUN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_); void* start_module_melt (void*); struct frame_start_module_melt_st; void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_0 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_1 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_2 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_3 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_4 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_5 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_6 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_7 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_8 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_9 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_10 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_11 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_12 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_13 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_14 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_15 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_16 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_17 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_18 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_19 (struct frame_start_module_melt_st*, char*); void MELT_MODULE_VISIBILITY warmelt_first_initialmeltchunk_20 (struct frame_start_module_melt_st*, char*); static void forward_or_mark_module_start_frame_warmelt_first (struct callframe_melt_st* fp, int marking); /**** warmelt-first.0+01.c implementations ****/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_29_warmelt_first_AT_FINISH_UNIT_LAST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_29_warmelt_first_AT_FINISH_UNIT_LAST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 void* mcfr_varptr[3]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<3; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("AT_FINISH_UNIT_LAST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2630:/ getarg"); /*_.FUN__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2633:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)((/*!FINISH_UNIT_DELAYED_QUEUE*/ meltfrout->tabval[0])), 3, "DELQU_LAST");/*_.LASTLIST__V3*/ meltfptr[2] = slot; }; ; /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.FUN__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2635:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ { /*^locexp*/ meltgc_append_list((melt_ptr_t)(/*_.LASTLIST__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.FUN__V2*/ meltfptr[1]));} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:2633:/ clear"); /*clear*/ /*_.LASTLIST__V3*/ meltfptr[2] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L1*/ meltfnum[0] = 0 ; /*epilog*/ } ; goto labend_rout; labend_rout: melt_trace_end("AT_FINISH_UNIT_LAST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_29_warmelt_first_AT_FINISH_UNIT_LAST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_30_warmelt_first_INIT_OPTIONSETTER(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_30_warmelt_first_INIT_OPTIONSETTER_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 24 void* mcfr_varptr[24]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ const char* loc_CSTRING__o0; long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<24; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 24; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("INIT_OPTIONSETTER", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2652:/ getarg"); /*_.OPTSYMB__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_CSTRING) goto lab_endgetargs; /*_?*/ meltfram__.loc_CSTRING__o0 = xargtab_[0].bp_cstring; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:2653:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L1*/ meltfnum[0] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:2653:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "init_optionsetter optsymb"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L1*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 2653; /*_.DEBUG_MSG_FUN__V4*/ meltfptr[3] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[0])), (melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V3*/ meltfptr[2] = /*_.DEBUG_MSG_FUN__V4*/ meltfptr[3];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2653:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V4*/ meltfptr[3] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V3*/ meltfptr[2] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:2654:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)((/*!OPTION_MAP_CONTAINER*/ meltfrout->tabval[1])), 0, "CONTAINER_VALUE");/*_.OPTMAP__V6*/ meltfptr[5] = slot; }; ; /*_.OPTDEC__V7*/ meltfptr[6] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.OPTMAP__V6*/ meltfptr[5]), (meltobject_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]));; MELT_LOCATION("warmelt-first.melt:2656:/ cond"); /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[2])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.OPTNAME__V8*/ meltfptr[7] = slot; }; ; } else {/*^cond.else*/ /*_.OPTNAME__V8*/ meltfptr[7] = NULL;; } ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:2658:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_SYMBOL*/ meltfrout->tabval[3])));; MELT_LOCATION("warmelt-first.melt:2658:/ cond"); /*cond*/ if (/*_#IS_A__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V10*/ meltfptr[9] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:2658:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check optsymb"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (2658)?(2658):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V10*/ meltfptr[9] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V9*/ meltfptr[8] = /*_.IFELSE___V10*/ meltfptr[9];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2658:/ clear"); /*clear*/ /*_#IS_A__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V10*/ meltfptr[9] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V9*/ meltfptr[8] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:2659:/ cond"); /*cond*/ if (/*_.OPTDEC__V7*/ meltfptr[6]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2660:/ quasiblock"); /*^cond*/ /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.OPTDEC__V7*/ meltfptr[6]), (melt_ptr_t)((/*!CLASS_OPTION_DESCRIPTOR*/ meltfrout->tabval[4])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.OPTDEC__V7*/ meltfptr[6]), 1, "OPTDESC_FUN");/*_.OPTFUN__V13*/ meltfptr[12] = slot; }; ; } else {/*^cond.else*/ /*_.OPTFUN__V13*/ meltfptr[12] = NULL;; } ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:2662:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L3*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.OPTDEC__V7*/ meltfptr[6]), (melt_ptr_t)((/*!CLASS_OPTION_DESCRIPTOR*/ meltfrout->tabval[4])));; MELT_LOCATION("warmelt-first.melt:2662:/ cond"); /*cond*/ if (/*_#IS_A__L3*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V15*/ meltfptr[14] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:2662:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check optdec"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (2662)?(2662):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V15*/ meltfptr[14] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V14*/ meltfptr[13] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2662:/ clear"); /*clear*/ /*_#IS_A__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V15*/ meltfptr[14] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V14*/ meltfptr[13] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:2663:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:2663:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "init_optionsetter optdec"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 2663; /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[0])), (melt_ptr_t)(/*_.OPTDEC__V7*/ meltfptr[6]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V16*/ meltfptr[14] = /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2663:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V16*/ meltfptr[14] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:2664:/ quasiblock"); /*^apply*/ /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = /*_?*/ meltfram__.loc_CSTRING__o0; /*_.OPTRES__V19*/ meltfptr[18] = melt_apply ((meltclosure_ptr_t)(/*_.OPTFUN__V13*/ meltfptr[12]), (melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), (BPARSTR_CSTRING ""), argtab, "", (union meltparam_un*)0); } ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:2666:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L5*/ meltfnum[0] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:2666:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "init_optionsetter optres"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L5*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 2666; /*_.DEBUG_MSG_FUN__V21*/ meltfptr[20] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[0])), (melt_ptr_t)(/*_.OPTRES__V19*/ meltfptr[18]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V20*/ meltfptr[19] = /*_.DEBUG_MSG_FUN__V21*/ meltfptr[20];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2666:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L5*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V21*/ meltfptr[20] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V20*/ meltfptr[19] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:2667:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.OPTRES__V19*/ meltfptr[18];; MELT_LOCATION("warmelt-first.melt:2667:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V18*/ meltfptr[16] = /*_.RETURN___V22*/ meltfptr[20];; MELT_LOCATION("warmelt-first.melt:2664:/ clear"); /*clear*/ /*_.OPTRES__V19*/ meltfptr[18] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V20*/ meltfptr[19] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V22*/ meltfptr[20] = 0 ; /*_.LET___V12*/ meltfptr[11] = /*_.LET___V18*/ meltfptr[16];; MELT_LOCATION("warmelt-first.melt:2660:/ clear"); /*clear*/ /*_.OPTFUN__V13*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V14*/ meltfptr[13] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V16*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V18*/ meltfptr[16] = 0 ; /*_.IFELSE___V11*/ meltfptr[9] = /*_.LET___V12*/ meltfptr[11];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2659:/ clear"); /*clear*/ /*_.LET___V12*/ meltfptr[11] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ { MELT_LOCATION("warmelt-first.melt:2670:/ locexp"); warning (0, "unrecognized MELT option %s. Use -f[plugin-arg-]melt-option=help", melt_string_str (/*_.OPTNAME__V8*/ meltfptr[7])) ;} ; MELT_LOCATION("warmelt-first.melt:2672:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION("warmelt-first.melt:2672:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:2668:/ quasiblock"); /*_.PROGN___V24*/ meltfptr[19] = /*_.RETURN___V23*/ meltfptr[18];; /*^compute*/ /*_.IFELSE___V11*/ meltfptr[9] = /*_.PROGN___V24*/ meltfptr[19];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2659:/ clear"); /*clear*/ /*_.RETURN___V23*/ meltfptr[18] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V24*/ meltfptr[19] = 0 ;} ; } ; /*_.LET___V5*/ meltfptr[3] = /*_.IFELSE___V11*/ meltfptr[9];; MELT_LOCATION("warmelt-first.melt:2654:/ clear"); /*clear*/ /*_.OPTMAP__V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.OPTDEC__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.OPTNAME__V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V11*/ meltfptr[9] = 0 ; MELT_LOCATION("warmelt-first.melt:2652:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V5*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:2652:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.IFCPP___V3*/ meltfptr[2] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V5*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("INIT_OPTIONSETTER", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_30_warmelt_first_INIT_OPTIONSETTER*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_31_warmelt_first_REGISTER_OPTION(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_31_warmelt_first_REGISTER_OPTION_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 7 void* mcfr_varptr[7]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<7; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 7; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("REGISTER_OPTION", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2675:/ getarg"); /*_.OPTSYMB__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.OPTHELP__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.OPTHELP__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.OPTFUN__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.OPTFUN__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.OPTSYMB__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_SYMBOL*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:2678:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_STRING__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.OPTHELP__V3*/ meltfptr[2])) == MELTOBMAG_STRING);; MELT_LOCATION("warmelt-first.melt:2678:/ cond"); /*cond*/ if (/*_#IS_STRING__L3*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L5*/ meltfnum[4] = (melt_magic_discr((melt_ptr_t)(/*_.OPTFUN__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; /*^compute*/ /*_#IF___L4*/ meltfnum[3] = /*_#IS_CLOSURE__L5*/ meltfnum[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2678:/ clear"); /*clear*/ /*_#IS_CLOSURE__L5*/ meltfnum[4] = 0 ;} ; } else {/*^cond.else*/ /*_#IF___L4*/ meltfnum[3] = 0;; } ; /*^compute*/ /*_#IF___L2*/ meltfnum[1] = /*_#IF___L4*/ meltfnum[3];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2678:/ clear"); /*clear*/ /*_#IS_STRING__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#IF___L4*/ meltfnum[3] = 0 ;} ; } else {/*^cond.else*/ /*_#IF___L2*/ meltfnum[1] = 0;; } ; MELT_LOCATION("warmelt-first.melt:2678:/ cond"); /*cond*/ if (/*_#IF___L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2681:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)((/*!OPTION_MAP_CONTAINER*/ meltfrout->tabval[1])), 0, "CONTAINER_VALUE");/*_.OPTMAP__V5*/ meltfptr[4] = slot; }; ; MELT_LOCATION("warmelt-first.melt:2682:/ quasiblock"); /*^rawallocobj*/ /*rawallocobj*/ { melt_ptr_t newobj = 0; melt_raw_object_create(newobj,(melt_ptr_t)((/*!CLASS_OPTION_DESCRIPTOR*/ meltfrout->tabval[2])), (3), "CLASS_OPTION_DESCRIPTOR");/*_.INST__V7*/ meltfptr[6] = newobj; }; ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @OPTDESC_NAME", melt_magic_discr((melt_ptr_t)(/*_.INST__V7*/ meltfptr[6])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V7*/ meltfptr[6]), (0), (/*_.OPTSYMB__V2*/ meltfptr[1]), "OPTDESC_NAME"); ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @OPTDESC_FUN", melt_magic_discr((melt_ptr_t)(/*_.INST__V7*/ meltfptr[6])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V7*/ meltfptr[6]), (1), (/*_.OPTFUN__V4*/ meltfptr[3]), "OPTDESC_FUN"); ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @OPTDESC_HELP", melt_magic_discr((melt_ptr_t)(/*_.INST__V7*/ meltfptr[6])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V7*/ meltfptr[6]), (2), (/*_.OPTHELP__V3*/ meltfptr[2]), "OPTDESC_HELP"); ; /*_.OPTDESC__V6*/ meltfptr[5] = /*_.INST__V7*/ meltfptr[6];; { MELT_LOCATION("warmelt-first.melt:2687:/ locexp"); meltgc_put_mapobjects( (meltmapobjects_ptr_t) (/*_.OPTMAP__V5*/ meltfptr[4]), (meltobject_ptr_t) (/*_.OPTSYMB__V2*/ meltfptr[1]), (melt_ptr_t)(/*_.OPTDESC__V6*/ meltfptr[5]));} ; MELT_LOCATION("warmelt-first.melt:2681:/ clear"); /*clear*/ /*_.OPTMAP__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.OPTDESC__V6*/ meltfptr[5] = 0 ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2675:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#IF___L2*/ meltfnum[1] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("REGISTER_OPTION", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_31_warmelt_first_REGISTER_OPTION*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_32_warmelt_first_OPTION_HELPER_FUN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_32_warmelt_first_OPTION_HELPER_FUN_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 18 void* mcfr_varptr[18]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ const char* loc_CSTRING__o0; long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<18; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 18; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("OPTION_HELPER_FUN", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2690:/ getarg"); /*_.HELPSYMB__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_CSTRING) goto lab_endgetargs; /*_?*/ meltfram__.loc_CSTRING__o0 = xargtab_[0].bp_cstring; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2691:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)((/*!OPTION_MAP_CONTAINER*/ meltfrout->tabval[0])), 0, "CONTAINER_VALUE");/*_.OPTMAP__V4*/ meltfptr[3] = slot; }; ; MELT_LOCATION("warmelt-first.melt:2692:/ cond"); /*cond*/ if (/*_?*/ meltfram__.loc_CSTRING__o0) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_.GET_RAW_SYMBOL__V6*/ meltfptr[5] = meltgc_named_symbol((char*) /*_?*/ meltfram__.loc_CSTRING__o0, MELT_GET);; /*^compute*/ /*_.SYMB__V5*/ meltfptr[4] = /*_.GET_RAW_SYMBOL__V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2692:/ clear"); /*clear*/ /*_.GET_RAW_SYMBOL__V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.SYMB__V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.OPTD__V7*/ meltfptr[5] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.OPTMAP__V4*/ meltfptr[3]), (meltobject_ptr_t)(/*_.SYMB__V5*/ meltfptr[4]));; /*^compute*/ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.OPTD__V7*/ meltfptr[5]), (melt_ptr_t)((/*!CLASS_OPTION_DESCRIPTOR*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:2696:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2697:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.OPTD__V7*/ meltfptr[5]), 2, "OPTDESC_HELP");/*_.OPTHELP__V10*/ meltfptr[9] = slot; }; ; { MELT_LOCATION("warmelt-first.melt:2700:/ locexp"); inform (UNKNOWN_LOCATION, "MELT help for option %s : %s", /*_?*/ meltfram__.loc_CSTRING__o0, melt_string_str ((melt_ptr_t) /*_.OPTHELP__V10*/ meltfptr[9])) ;} ; MELT_LOCATION("warmelt-first.melt:2703:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.HELPSYMB__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2703:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V9*/ meltfptr[8] = /*_.RETURN___V11*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:2697:/ clear"); /*clear*/ /*_.OPTHELP__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V11*/ meltfptr[10] = 0 ; /*_.IFELSE___V8*/ meltfptr[7] = /*_.LET___V9*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2696:/ clear"); /*clear*/ /*_.LET___V9*/ meltfptr[8] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2706:/ quasiblock"); /*^apply*/ /*apply*/{ /*_.SORTEDSYMBTUP__V13*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)((/*!MAPOBJECT_SORTED_ATTRIBUTE_TUPLE*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.OPTMAP__V4*/ meltfptr[3]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; MELT_LOCATION("warmelt-first.melt:2708:/ quasiblock"); /*^newclosure*/ /*newclosure*/ /*_.LAMBDA___V15*/ meltfptr[14] = meltgc_new_closure((meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_CLOSURE)))), (meltroutine_ptr_t)((/*!konst_5*/ meltfrout->tabval[5])), (0)); ; /*_.LAMBDA___V14*/ meltfptr[8] = /*_.LAMBDA___V15*/ meltfptr[14];; MELT_LOCATION("warmelt-first.melt:2707:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.LAMBDA___V14*/ meltfptr[8]; /*_.SORTEDNAMETUP__V16*/ meltfptr[15] = melt_apply ((meltclosure_ptr_t)((/*!MULTIPLE_MAP*/ meltfrout->tabval[3])), (melt_ptr_t)(/*_.SORTEDSYMBTUP__V13*/ meltfptr[10]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /*_#NBSYMB__L2*/ meltfnum[1] = (melt_multiple_length((melt_ptr_t)(/*_.SORTEDSYMBTUP__V13*/ meltfptr[10])));; { MELT_LOCATION("warmelt-first.melt:2714:/ locexp"); int i=0; inform (UNKNOWN_LOCATION, "There are %d MELT options", (int) /*_#NBSYMB__L2*/ meltfnum[1]); for (i=0; i<(int) /*_#NBSYMB__L2*/ meltfnum[1]; i+=2) { char *n1 = (char*) melt_string_str(melt_multiple_nth((melt_ptr_t) /*_.SORTEDNAMETUP__V16*/ meltfptr[15], i)); char *n2 = (char*) melt_string_str(melt_multiple_nth((melt_ptr_t) /*_.SORTEDNAMETUP__V16*/ meltfptr[15], i+1)); if (n1 && n2) inform (UNKNOWN_LOCATION, "possible MELT options: %s & %s", n1, n2); else inform (UNKNOWN_LOCATION, "possible MELT option: %s", n1); }; inform (UNKNOWN_LOCATION, "Use -f[plugin-arg-]melt-option=help=X for help about MELT option X"); ;} ; MELT_LOCATION("warmelt-first.melt:2729:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.HELPSYMB__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2729:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V12*/ meltfptr[9] = /*_.RETURN___V17*/ meltfptr[16];; MELT_LOCATION("warmelt-first.melt:2706:/ clear"); /*clear*/ /*_.SORTEDSYMBTUP__V13*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.LAMBDA___V14*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.SORTEDNAMETUP__V16*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_#NBSYMB__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V17*/ meltfptr[16] = 0 ; MELT_LOCATION("warmelt-first.melt:2705:/ quasiblock"); /*_.PROGN___V18*/ meltfptr[10] = /*_.LET___V12*/ meltfptr[9];; /*^compute*/ /*_.IFELSE___V8*/ meltfptr[7] = /*_.PROGN___V18*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2696:/ clear"); /*clear*/ /*_.LET___V12*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V18*/ meltfptr[10] = 0 ;} ; } ; /*_.LET___V3*/ meltfptr[2] = /*_.IFELSE___V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:2691:/ clear"); /*clear*/ /*_.OPTMAP__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.SYMB__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.OPTD__V7*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V8*/ meltfptr[7] = 0 ; MELT_LOCATION("warmelt-first.melt:2690:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V3*/ meltfptr[2];; MELT_LOCATION("warmelt-first.melt:2690:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.LET___V3*/ meltfptr[2] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("OPTION_HELPER_FUN", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_32_warmelt_first_OPTION_HELPER_FUN*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_33_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_33_warmelt_first_LAMBDA__st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 void* mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<3; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2708:/ getarg"); /*_.SY__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*^cond*/ /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.SY__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[0])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.SY__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.NAMED_NAME__V3*/ meltfptr[2] = slot; }; ; } else {/*^cond.else*/ /*_.NAMED_NAME__V3*/ meltfptr[2] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:2708:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.NAMED_NAME__V3*/ meltfptr[2];; MELT_LOCATION("warmelt-first.melt:2708:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.NAMED_NAME__V3*/ meltfptr[2] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LAMBDA_", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_33_warmelt_first_LAMBDA_*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_34_warmelt_first_MAPOBJECT_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_34_warmelt_first_MAPOBJECT_EVERY_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void* mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<6; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MAPOBJECT_EVERY", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2785:/ getarg"); /*_.MAP__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.MAP__V2*/ meltfptr[1])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:2789:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2790:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*citerblock FOREACH_IN_MAPOBJECT*/ { /*cit1__EACHOBMAP :*/ int cit1__EACHOBMAP_ix=0, cit1__EACHOBMAP_siz=0; for (cit1__EACHOBMAP_ix=0; /* we retrieve in cit1__EACHOBMAP_siz the size at each iteration since it could change. */ cit1__EACHOBMAP_ix>=0 && (cit1__EACHOBMAP_siz= melt_size_mapobjects((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1]))>0 && cit1__EACHOBMAP_ix < cit1__EACHOBMAP_siz; cit1__EACHOBMAP_ix++) { /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; /*_.CURAT__V4*/ meltfptr[3] = ((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHOBMAP_ix].e_at; if (/*_.CURAT__V4*/ meltfptr[3] == HTAB_DELETED_ENTRY) { /*_.CURAT__V4*/ meltfptr[3] = NULL; continue; }; if (!/*_.CURAT__V4*/ meltfptr[3]) continue; /*_.CURVAL__V5*/ meltfptr[4] = ((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHOBMAP_ix].e_va; if (!/*_.CURVAL__V5*/ meltfptr[4]) continue; MELT_LOCATION("warmelt-first.melt:2794:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.CURVAL__V5*/ meltfptr[4]; /*_.F__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURAT__V4*/ meltfptr[3]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /* end cit1__EACHOBMAP */ /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; } /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:2791:/ clear"); /*clear*/ /*_.CURAT__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.CURVAL__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.F__V6*/ meltfptr[5] = 0 ;} /*endciterblock FOREACH_IN_MAPOBJECT*/ ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2789:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ;} ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2785:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MAPOBJECT_EVERY", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_34_warmelt_first_MAPOBJECT_EVERY*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_35_warmelt_first_MAPOBJECT_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_35_warmelt_first_MAPOBJECT_ITERATE_TEST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void* mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<10; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MAPOBJECT_ITERATE_TEST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2800:/ getarg"); /*_.MAP__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.MAP__V2*/ meltfptr[1])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:2807:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2808:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*citerblock FOREACH_IN_MAPOBJECT*/ { /*cit1__EACHOBMAP :*/ int cit1__EACHOBMAP_ix=0, cit1__EACHOBMAP_siz=0; for (cit1__EACHOBMAP_ix=0; /* we retrieve in cit1__EACHOBMAP_siz the size at each iteration since it could change. */ cit1__EACHOBMAP_ix>=0 && (cit1__EACHOBMAP_siz= melt_size_mapobjects((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1]))>0 && cit1__EACHOBMAP_ix < cit1__EACHOBMAP_siz; cit1__EACHOBMAP_ix++) { /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; /*_.CURAT__V4*/ meltfptr[3] = ((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHOBMAP_ix].e_at; if (/*_.CURAT__V4*/ meltfptr[3] == HTAB_DELETED_ENTRY) { /*_.CURAT__V4*/ meltfptr[3] = NULL; continue; }; if (!/*_.CURAT__V4*/ meltfptr[3]) continue; /*_.CURVAL__V5*/ meltfptr[4] = ((meltmapobjects_ptr_t)/*_.MAP__V2*/ meltfptr[1])->entab[cit1__EACHOBMAP_ix].e_va; if (!/*_.CURVAL__V5*/ meltfptr[4]) continue; MELT_LOCATION("warmelt-first.melt:2812:/ quasiblock"); /*^multiapply*/ /*multiapply 2args, 1x.res*/ { union meltparam_un argtab[1]; union meltparam_un restab[1]; memset(&restab, 0, sizeof(restab)); memset(&argtab, 0, sizeof(argtab)); /*^multiapply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.CURVAL__V5*/ meltfptr[4]; /*^multiapply.xres*/ restab[0].bp_aptr = (melt_ptr_t*) &/*_.OTHER__V8*/ meltfptr[7]; /*^multiapply.appl*/ /*_.TEST__V7*/ meltfptr[6] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURAT__V4*/ meltfptr[3]), (BPARSTR_PTR ""), argtab, (BPARSTR_PTR ""), restab); } ; /*^quasiblock*/ /*_#NULL__L3*/ meltfnum[2] = ((/*_.TEST__V7*/ meltfptr[6]) == NULL);; MELT_LOCATION("warmelt-first.melt:2815:/ cond"); /*cond*/ if (/*_#NULL__L3*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2816:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.CURAT__V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:2816:/ putxtraresult"); if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[0] != BPAR_PTR) goto labend_rout; if (xrestab_[0].bp_aptr) *(xrestab_[0].bp_aptr) = (melt_ptr_t) (/*_.CURVAL__V5*/ meltfptr[4]); ; /*^putxtraresult*/ if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[1] != BPAR_PTR) goto labend_rout; if (xrestab_[1].bp_aptr) *(xrestab_[1].bp_aptr) = (melt_ptr_t) (/*_.OTHER__V8*/ meltfptr[7]); ; /*^finalreturn*/ ; /*finalret*/ goto labend_rout ; /*_.IF___V9*/ meltfptr[8] = /*_.RETURN___V10*/ meltfptr[9];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2815:/ clear"); /*clear*/ /*_.RETURN___V10*/ meltfptr[9] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V9*/ meltfptr[8] = NULL;; } ; /*^compute*/ /*_.MULTI___V6*/ meltfptr[5] = /*_.IF___V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:2812:/ clear"); /*clear*/ /*_#NULL__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.OTHER__V8*/ meltfptr[7] = 0 ; /* end cit1__EACHOBMAP */ /*_.CURAT__V4*/ meltfptr[3] = NULL; /*_.CURVAL__V5*/ meltfptr[4] = NULL; } /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:2809:/ clear"); /*clear*/ /*_.CURAT__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.CURVAL__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.MULTI___V6*/ meltfptr[5] = 0 ;} /*endciterblock FOREACH_IN_MAPOBJECT*/ ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2807:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ;} ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2800:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MAPOBJECT_ITERATE_TEST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_35_warmelt_first_MAPOBJECT_ITERATE_TEST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_36_warmelt_first_LIST_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_36_warmelt_first_LIST_EVERY_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void* mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<6; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_EVERY", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2840:/ getarg"); /*_.LIS__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION("warmelt-first.melt:2842:/ cond"); /*cond*/ if (/*_#IS_LIST__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2843:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*citerblock FOREACH_IN_LIST*/ { /* start cit1__EACHLIST */ for (/*_.CURPAIR__V4*/ meltfptr[3] = melt_list_first(/*_.LIS__V2*/ meltfptr[1]); melt_magic_discr(/*_.CURPAIR__V4*/ meltfptr[3]) == MELTOBMAG_PAIR; /*_.CURPAIR__V4*/ meltfptr[3] = melt_pair_tail(/*_.CURPAIR__V4*/ meltfptr[3])) { /*_.CURCOMP__V5*/ meltfptr[4] = melt_pair_head(/*_.CURPAIR__V4*/ meltfptr[3]); MELT_LOCATION("warmelt-first.melt:2847:/ apply"); /*apply*/{ /*_.F__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURCOMP__V5*/ meltfptr[4]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; } /* end cit1__EACHLIST */ /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:2844:/ clear"); /*clear*/ /*_.CURPAIR__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.CURCOMP__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.F__V6*/ meltfptr[5] = 0 ;} /*endciterblock FOREACH_IN_LIST*/ ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2842:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ;} ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2840:/ clear"); /*clear*/ /*_#IS_LIST__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_EVERY", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_36_warmelt_first_LIST_EVERY*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_37_warmelt_first_LIST_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_37_warmelt_first_LIST_ITERATE_TEST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void* mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<10; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_ITERATE_TEST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2851:/ getarg"); /*_.LIS__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION("warmelt-first.melt:2855:/ cond"); /*cond*/ if (/*_#IS_LIST__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2856:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*citerblock FOREACH_IN_LIST*/ { /* start cit1__EACHLIST */ for (/*_.CURPAIR__V4*/ meltfptr[3] = melt_list_first(/*_.LIS__V2*/ meltfptr[1]); melt_magic_discr(/*_.CURPAIR__V4*/ meltfptr[3]) == MELTOBMAG_PAIR; /*_.CURPAIR__V4*/ meltfptr[3] = melt_pair_tail(/*_.CURPAIR__V4*/ meltfptr[3])) { /*_.CURCOMP__V5*/ meltfptr[4] = melt_pair_head(/*_.CURPAIR__V4*/ meltfptr[3]); MELT_LOCATION("warmelt-first.melt:2860:/ quasiblock"); /*^multiapply*/ /*multiapply 2args, 1x.res*/ { union meltparam_un argtab[1]; union meltparam_un restab[1]; memset(&restab, 0, sizeof(restab)); memset(&argtab, 0, sizeof(argtab)); /*^multiapply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.CURPAIR__V4*/ meltfptr[3]; /*^multiapply.xres*/ restab[0].bp_aptr = (melt_ptr_t*) &/*_.OTHER__V8*/ meltfptr[7]; /*^multiapply.appl*/ /*_.TEST__V7*/ meltfptr[6] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURCOMP__V5*/ meltfptr[4]), (BPARSTR_PTR ""), argtab, (BPARSTR_PTR ""), restab); } ; /*^quasiblock*/ /*_#NULL__L3*/ meltfnum[2] = ((/*_.TEST__V7*/ meltfptr[6]) == NULL);; MELT_LOCATION("warmelt-first.melt:2863:/ cond"); /*cond*/ if (/*_#NULL__L3*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.CURCOMP__V5*/ meltfptr[4];; MELT_LOCATION("warmelt-first.melt:2863:/ putxtraresult"); if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[0] != BPAR_PTR) goto labend_rout; if (xrestab_[0].bp_aptr) *(xrestab_[0].bp_aptr) = (melt_ptr_t) (/*_.OTHER__V8*/ meltfptr[7]); ; /*^finalreturn*/ ; /*finalret*/ goto labend_rout ; /*_.IF___V9*/ meltfptr[8] = /*_.RETURN___V10*/ meltfptr[9];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2863:/ clear"); /*clear*/ /*_.RETURN___V10*/ meltfptr[9] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V9*/ meltfptr[8] = NULL;; } ; /*^compute*/ /*_.MULTI___V6*/ meltfptr[5] = /*_.IF___V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:2860:/ clear"); /*clear*/ /*_#NULL__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.OTHER__V8*/ meltfptr[7] = 0 ; } /* end cit1__EACHLIST */ /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:2857:/ clear"); /*clear*/ /*_.CURPAIR__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.CURCOMP__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.MULTI___V6*/ meltfptr[5] = 0 ;} /*endciterblock FOREACH_IN_LIST*/ ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2855:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ;} ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2851:/ clear"); /*clear*/ /*_#IS_LIST__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_ITERATE_TEST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_37_warmelt_first_LIST_ITERATE_TEST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_38_warmelt_first_LIST_APPEND2LIST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_38_warmelt_first_LIST_APPEND2LIST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 11 void* mcfr_varptr[11]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<11; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 11; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_APPEND2LIST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2867:/ getarg"); /*_.DLIST__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.SLIST__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.SLIST__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.SLIST__V3*/ meltfptr[2])) == MELTOBMAG_LIST);; /*^compute*/ /*_#NOT__L2*/ meltfnum[1] = (!(/*_#IS_LIST__L1*/ meltfnum[0]));; MELT_LOCATION("warmelt-first.melt:2871:/ cond"); /*cond*/ if (/*_#NOT__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.DLIST__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2871:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IF___V4*/ meltfptr[3] = /*_.RETURN___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2871:/ clear"); /*clear*/ /*_.RETURN___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; /*^compute*/ /*_#IS_LIST__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.DLIST__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; /*^compute*/ /*_#NOT__L4*/ meltfnum[3] = (!(/*_#IS_LIST__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:2872:/ cond"); /*cond*/ if (/*_#NOT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_.MAKE_LIST__V7*/ meltfptr[6] = (meltgc_new_list((meltobject_ptr_t)((/*!DISCR_LIST*/ meltfrout->tabval[0]))));; MELT_LOCATION("warmelt-first.melt:2872:/ compute"); /*_.DLIST__V2*/ meltfptr[1] = /*_.SETQ___V8*/ meltfptr[7] = /*_.MAKE_LIST__V7*/ meltfptr[6];; /*_.IF___V6*/ meltfptr[4] = /*_.SETQ___V8*/ meltfptr[7];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2872:/ clear"); /*clear*/ /*_.MAKE_LIST__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V8*/ meltfptr[7] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V6*/ meltfptr[4] = NULL;; } ; /*citerblock FOREACH_IN_LIST*/ { /* start cit1__EACHLIST */ for (/*_.CURPAIR__V9*/ meltfptr[6] = melt_list_first(/*_.SLIST__V3*/ meltfptr[2]); melt_magic_discr(/*_.CURPAIR__V9*/ meltfptr[6]) == MELTOBMAG_PAIR; /*_.CURPAIR__V9*/ meltfptr[6] = melt_pair_tail(/*_.CURPAIR__V9*/ meltfptr[6])) { /*_.CURCOMP__V10*/ meltfptr[7] = melt_pair_head(/*_.CURPAIR__V9*/ meltfptr[6]); { MELT_LOCATION("warmelt-first.melt:2876:/ locexp"); meltgc_append_list((melt_ptr_t)(/*_.DLIST__V2*/ meltfptr[1]), (melt_ptr_t)(/*_.CURCOMP__V10*/ meltfptr[7]));} ; } /* end cit1__EACHLIST */ /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:2873:/ clear"); /*clear*/ /*_.CURPAIR__V9*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.CURCOMP__V10*/ meltfptr[7] = 0 ;} /*endciterblock FOREACH_IN_LIST*/ ; MELT_LOCATION("warmelt-first.melt:2877:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.DLIST__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2877:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:2867:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.RETURN___V11*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:2867:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_LIST__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_#IS_LIST__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V11*/ meltfptr[10] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_APPEND2LIST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_38_warmelt_first_LIST_APPEND2LIST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_39_warmelt_first_LIST_MAP(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_39_warmelt_first_LIST_MAP_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 14 void* mcfr_varptr[14]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<14; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 14; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_MAP", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2882:/ getarg"); /*_.LIS__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION("warmelt-first.melt:2886:/ cond"); /*cond*/ if (/*_#IS_LIST__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2887:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2888:/ quasiblock"); /*_.RESLIS__V7*/ meltfptr[6] = (meltgc_new_list((meltobject_ptr_t)((/*!DISCR_LIST*/ meltfrout->tabval[0]))));; /*^compute*/ /*_.CURPAIR__V8*/ meltfptr[7] = (melt_list_first((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])));; MELT_LOCATION("warmelt-first.melt:2890:/ loop"); /*loop*/{ labloop_LISLOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_PAIR__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.CURPAIR__V8*/ meltfptr[7])) == MELTOBMAG_PAIR);; /*^compute*/ /*_#NOT__L4*/ meltfnum[3] = (!(/*_#IS_PAIR__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:2891:/ cond"); /*cond*/ if (/*_#NOT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.LISLOOP__V10*/ meltfptr[9] = /*_.RESLIS__V7*/ meltfptr[6];; /*^exit*/ /*exit*/{ goto labexit_LISLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:2892:/ quasiblock"); /*_.CURELEM__V11*/ meltfptr[10] = (melt_pair_head((melt_ptr_t)(/*_.CURPAIR__V8*/ meltfptr[7])));; MELT_LOCATION("warmelt-first.melt:2893:/ apply"); /*apply*/{ /*_.F__V12*/ meltfptr[11] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURELEM__V11*/ meltfptr[10]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; { /*^locexp*/ meltgc_append_list((melt_ptr_t)(/*_.RESLIS__V7*/ meltfptr[6]), (melt_ptr_t)(/*_.F__V12*/ meltfptr[11]));} ; MELT_LOCATION("warmelt-first.melt:2892:/ clear"); /*clear*/ /*_.CURELEM__V11*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.F__V12*/ meltfptr[11] = 0 ; /*_.PAIR_TAIL__V13*/ meltfptr[10] = (melt_pair_tail((melt_ptr_t)(/*_.CURPAIR__V8*/ meltfptr[7])));; MELT_LOCATION("warmelt-first.melt:2894:/ compute"); /*_.CURPAIR__V8*/ meltfptr[7] = /*_.SETQ___V14*/ meltfptr[11] = /*_.PAIR_TAIL__V13*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2890:/ clear"); /*clear*/ /*_#IS_PAIR__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.PAIR_TAIL__V13*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V14*/ meltfptr[11] = 0 ;} ; ; goto labloop_LISLOOP_1; labexit_LISLOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V9*/ meltfptr[8] = /*_.LISLOOP__V10*/ meltfptr[9];; } ; /*^compute*/ /*_.LET___V6*/ meltfptr[5] = /*_.FOREVER___V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:2888:/ clear"); /*clear*/ /*_.RESLIS__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.CURPAIR__V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V9*/ meltfptr[8] = 0 ; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2887:/ clear"); /*clear*/ /*_.LET___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.IF___V4*/ meltfptr[3] = /*_.IF___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2886:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:2882:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:2882:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_LIST__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_MAP", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_39_warmelt_first_LIST_MAP*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_40_warmelt_first_LIST_FIND(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_40_warmelt_first_LIST_FIND_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 25 void* mcfr_varptr[25]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<25; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 25; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_FIND", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2899:/ getarg"); /*_.LIS__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.X__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.X__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.F__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_LIST__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION("warmelt-first.melt:2902:/ cond"); /*cond*/ if (/*_#IS_LIST__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2903:/ quasiblock"); /*_.CURPAIR__V7*/ meltfptr[6] = (melt_list_first((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])));; /*^compute*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2904:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2905:/ loop"); /*loop*/{ labloop_LISLOOP_2:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_PAIR__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])) == MELTOBMAG_PAIR);; /*^compute*/ /*_#NOT__L4*/ meltfnum[3] = (!(/*_#IS_PAIR__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:2906:/ cond"); /*cond*/ if (/*_#NOT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.LISLOOP__V10*/ meltfptr[9] = NULL;; /*^exit*/ /*exit*/{ goto labexit_LISLOOP_2;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:2907:/ quasiblock"); /*_.CURELEM__V12*/ meltfptr[11] = (melt_pair_head((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])));; MELT_LOCATION("warmelt-first.melt:2908:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.X__V3*/ meltfptr[2]; /*_.T__V13*/ meltfptr[12] = melt_apply ((meltclosure_ptr_t)(/*_.F__V4*/ meltfptr[3]), (melt_ptr_t)(/*_.CURELEM__V12*/ meltfptr[11]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; MELT_LOCATION("warmelt-first.melt:2909:/ cond"); /*cond*/ if (/*_.T__V13*/ meltfptr[12]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.T__V13*/ meltfptr[12];; MELT_LOCATION("warmelt-first.melt:2909:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IF___V14*/ meltfptr[13] = /*_.RETURN___V15*/ meltfptr[14];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2909:/ clear"); /*clear*/ /*_.RETURN___V15*/ meltfptr[14] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V14*/ meltfptr[13] = NULL;; } ; /*^compute*/ /*_.PAIR_TAIL__V16*/ meltfptr[14] = (melt_pair_tail((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])));; MELT_LOCATION("warmelt-first.melt:2910:/ compute"); /*_.CURPAIR__V7*/ meltfptr[6] = /*_.SETQ___V17*/ meltfptr[16] = /*_.PAIR_TAIL__V16*/ meltfptr[14];; /*_.LET___V11*/ meltfptr[10] = /*_.SETQ___V17*/ meltfptr[16];; MELT_LOCATION("warmelt-first.melt:2907:/ clear"); /*clear*/ /*_.CURELEM__V12*/ meltfptr[11] = 0 ; /*^clear*/ /*clear*/ /*_.T__V13*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V14*/ meltfptr[13] = 0 ; /*^clear*/ /*clear*/ /*_.PAIR_TAIL__V16*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V17*/ meltfptr[16] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2905:/ clear"); /*clear*/ /*_#IS_PAIR__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V11*/ meltfptr[10] = 0 ;} ; ; goto labloop_LISLOOP_2; labexit_LISLOOP_2:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V9*/ meltfptr[8] = /*_.LISLOOP__V10*/ meltfptr[9];; } ; /*^compute*/ /*_.IFELSE___V8*/ meltfptr[7] = /*_.FOREVER___V9*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2904:/ clear"); /*clear*/ /*_.FOREVER___V9*/ meltfptr[8] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2912:/ loop"); /*loop*/{ labloop_MEMLOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_PAIR__L5*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])) == MELTOBMAG_PAIR);; /*^compute*/ /*_#NOT__L6*/ meltfnum[3] = (!(/*_#IS_PAIR__L5*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:2913:/ cond"); /*cond*/ if (/*_#NOT__L6*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.MEMLOOP__V19*/ meltfptr[12] = NULL;; /*^exit*/ /*exit*/{ goto labexit_MEMLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:2914:/ quasiblock"); /*_.CURELEM__V21*/ meltfptr[14] = (melt_pair_head((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])));; /*^compute*/ /*_#__L7*/ meltfnum[6] = ((/*_.CURELEM__V21*/ meltfptr[14]) == (/*_.X__V3*/ meltfptr[2]));; MELT_LOCATION("warmelt-first.melt:2915:/ cond"); /*cond*/ if (/*_#__L7*/ meltfnum[6]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.CURELEM__V21*/ meltfptr[14];; MELT_LOCATION("warmelt-first.melt:2915:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IF___V22*/ meltfptr[16] = /*_.RETURN___V23*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2915:/ clear"); /*clear*/ /*_.RETURN___V23*/ meltfptr[10] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V22*/ meltfptr[16] = NULL;; } ; /*^compute*/ /*_.PAIR_TAIL__V24*/ meltfptr[8] = (melt_pair_tail((melt_ptr_t)(/*_.CURPAIR__V7*/ meltfptr[6])));; MELT_LOCATION("warmelt-first.melt:2916:/ compute"); /*_.CURPAIR__V7*/ meltfptr[6] = /*_.SETQ___V25*/ meltfptr[10] = /*_.PAIR_TAIL__V24*/ meltfptr[8];; /*_.LET___V20*/ meltfptr[13] = /*_.SETQ___V25*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:2914:/ clear"); /*clear*/ /*_.CURELEM__V21*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_#__L7*/ meltfnum[6] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V22*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_.PAIR_TAIL__V24*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V25*/ meltfptr[10] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2912:/ clear"); /*clear*/ /*_#IS_PAIR__L5*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L6*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V20*/ meltfptr[13] = 0 ;} ; ; goto labloop_MEMLOOP_1; labexit_MEMLOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V18*/ meltfptr[11] = /*_.MEMLOOP__V19*/ meltfptr[12];; } ; /*^compute*/ /*_.IFELSE___V8*/ meltfptr[7] = /*_.FOREVER___V18*/ meltfptr[11];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2904:/ clear"); /*clear*/ /*_.FOREVER___V18*/ meltfptr[11] = 0 ;} ; } ; /*_.LET___V6*/ meltfptr[5] = /*_.IFELSE___V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:2903:/ clear"); /*clear*/ /*_.CURPAIR__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V8*/ meltfptr[7] = 0 ; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2902:/ clear"); /*clear*/ /*_.LET___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:2899:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V5*/ meltfptr[4];; MELT_LOCATION("warmelt-first.melt:2899:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_LIST__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_FIND", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_40_warmelt_first_LIST_FIND*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_41_warmelt_first_LIST_TO_MULTIPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_41_warmelt_first_LIST_TO_MULTIPLE_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 14 void* mcfr_varptr[14]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<14; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 14; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LIST_TO_MULTIPLE", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2922:/ getarg"); /*_.LIS__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.DISC__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.DISC__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.F__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#NULL__L1*/ meltfnum[0] = ((/*_.DISC__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION("warmelt-first.melt:2923:/ cond"); /*cond*/ if (/*_#NULL__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^compute*/ /*_.DISC__V3*/ meltfptr[2] = /*_.SETQ___V6*/ meltfptr[5] = (/*!DISCR_MULTIPLE*/ meltfrout->tabval[0]);; /*_.IF___V5*/ meltfptr[4] = /*_.SETQ___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2923:/ clear"); /*clear*/ /*_.SETQ___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_#IS_LIST__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])) == MELTOBMAG_LIST);; MELT_LOCATION("warmelt-first.melt:2924:/ cond"); /*cond*/ if (/*_#IS_LIST__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2925:/ quasiblock"); /*_#LN__L3*/ meltfnum[2] = (melt_list_length((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])));; /*^compute*/ /*_.TUP__V9*/ meltfptr[8] = (meltgc_new_multiple((meltobject_ptr_t)(/*_.DISC__V3*/ meltfptr[2]), (/*_#LN__L3*/ meltfnum[2])));; /*^compute*/ /*_.IXB__V10*/ meltfptr[9] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[1])), (0)));; /*^compute*/ /*_.CURPAIR__V11*/ meltfptr[10] = (melt_list_first((melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1])));; MELT_LOCATION("warmelt-first.melt:2931:/ quasiblock"); /*^newclosure*/ /*newclosure*/ /*_.LAMBDA___V13*/ meltfptr[12] = meltgc_new_closure((meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_CLOSURE)))), (meltroutine_ptr_t)((/*!konst_3*/ meltfrout->tabval[3])), (3)); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V13*/ meltfptr[12])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 0>= 0 && 0< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V13*/ meltfptr[12]))); ((meltclosure_ptr_t)/*_.LAMBDA___V13*/ meltfptr[12])->tabval[0] = (melt_ptr_t)(/*_.IXB__V10*/ meltfptr[9]); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V13*/ meltfptr[12])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 1>= 0 && 1< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V13*/ meltfptr[12]))); ((meltclosure_ptr_t)/*_.LAMBDA___V13*/ meltfptr[12])->tabval[1] = (melt_ptr_t)(/*_.F__V4*/ meltfptr[3]); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V13*/ meltfptr[12])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 2>= 0 && 2< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V13*/ meltfptr[12]))); ((meltclosure_ptr_t)/*_.LAMBDA___V13*/ meltfptr[12])->tabval[2] = (melt_ptr_t)(/*_.TUP__V9*/ meltfptr[8]); ; /*_.LAMBDA___V12*/ meltfptr[11] = /*_.LAMBDA___V13*/ meltfptr[12];; MELT_LOCATION("warmelt-first.melt:2929:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.LAMBDA___V12*/ meltfptr[11]; /*_.LIST_EVERY__V14*/ meltfptr[13] = melt_apply ((meltclosure_ptr_t)((/*!LIST_EVERY*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.LIS__V2*/ meltfptr[1]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /*_.LET___V8*/ meltfptr[7] = /*_.TUP__V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:2925:/ clear"); /*clear*/ /*_#LN__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.TUP__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.IXB__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.CURPAIR__V11*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.LAMBDA___V12*/ meltfptr[11] = 0 ; /*^clear*/ /*clear*/ /*_.LIST_EVERY__V14*/ meltfptr[13] = 0 ; /*_.IF___V7*/ meltfptr[5] = /*_.LET___V8*/ meltfptr[7];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2924:/ clear"); /*clear*/ /*_.LET___V8*/ meltfptr[7] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V7*/ meltfptr[5] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:2922:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V7*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:2922:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#NULL__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_#IS_LIST__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V7*/ meltfptr[5] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LIST_TO_MULTIPLE", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_41_warmelt_first_LIST_TO_MULTIPLE*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_42_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_42_warmelt_first_LAMBDA__st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 4 void* mcfr_varptr[4]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<4; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 4; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2931:/ getarg"); /*_.C__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:2932:/ quasiblock"); /*_#IX__L1*/ meltfnum[0] = (melt_get_int((melt_ptr_t)((/*~IXB*/ meltfclos->tabval[0]))));; /*^compute*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)((/*~F*/ meltfclos->tabval[1]))) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2933:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^apply*/ /*apply*/{ /*_.F__V4*/ meltfptr[3] = melt_apply ((meltclosure_ptr_t)((/*~F*/ meltfclos->tabval[1])), (melt_ptr_t)(/*_.C__V2*/ meltfptr[1]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; /*_.TC__V3*/ meltfptr[2] = /*_.F__V4*/ meltfptr[3];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2933:/ clear"); /*clear*/ /*_.F__V4*/ meltfptr[3] = 0 ;} ; } else {/*^cond.else*/ /*_.TC__V3*/ meltfptr[2] = /*_.C__V2*/ meltfptr[1];; } ; /*^compute*/ /*_#I__L3*/ meltfnum[2] = ((/*_#IX__L1*/ meltfnum[0]) + (1));; { MELT_LOCATION("warmelt-first.melt:2935:/ locexp"); melt_put_int((melt_ptr_t)((/*~IXB*/ meltfclos->tabval[0])), (/*_#I__L3*/ meltfnum[2]));} ; { MELT_LOCATION("warmelt-first.melt:2936:/ locexp"); meltgc_multiple_put_nth((melt_ptr_t)((/*~TUP*/ meltfclos->tabval[2])), (/*_#IX__L1*/ meltfnum[0]), (melt_ptr_t)(/*_.TC__V3*/ meltfptr[2]));} ; MELT_LOCATION("warmelt-first.melt:2932:/ clear"); /*clear*/ /*_#IX__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.TC__V3*/ meltfptr[2] = 0 ; /*^clear*/ /*clear*/ /*_#I__L3*/ meltfnum[2] = 0 ; /*epilog*/ } ; goto labend_rout; labend_rout: melt_trace_end("LAMBDA_", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_42_warmelt_first_LAMBDA_*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_43_warmelt_first_PAIRLIST_TO_MULTIPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_43_warmelt_first_PAIRLIST_TO_MULTIPLE_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 25 void* mcfr_varptr[25]; #define MELTFRAM_NBVARNUM 12 long mcfr_varnum[12]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<25; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 25; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("PAIRLIST_TO_MULTIPLE", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:2942:/ getarg"); /*_.PAIR__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.DISC__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.DISC__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.F__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#NULL__L1*/ meltfnum[0] = ((/*_.DISC__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION("warmelt-first.melt:2948:/ cond"); /*cond*/ if (/*_#NULL__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^compute*/ /*_.DISC__V3*/ meltfptr[2] = /*_.SETQ___V6*/ meltfptr[5] = (/*!DISCR_MULTIPLE*/ meltfrout->tabval[0]);; /*_.IF___V5*/ meltfptr[4] = /*_.SETQ___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2948:/ clear"); /*clear*/ /*_.SETQ___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:2949:/ quasiblock"); /*_#LN__L2*/ meltfnum[1] = 0;; MELT_LOCATION("warmelt-first.melt:2950:/ quasiblock"); /*_.CURPAIR__V9*/ meltfptr[8] = /*_.PAIR__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2951:/ loop"); /*loop*/{ labloop_LOOPLN_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_PAIR__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.CURPAIR__V9*/ meltfptr[8])) == MELTOBMAG_PAIR);; /*^compute*/ /*_#NOT__L4*/ meltfnum[3] = (!(/*_#IS_PAIR__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:2952:/ cond"); /*cond*/ if (/*_#NOT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.LOOPLN__V11*/ meltfptr[10] = NULL;; /*^exit*/ /*exit*/{ goto labexit_LOOPLN_1;} ; /*epilog*/ } ; } /*noelse*/ ; /*_#I__L5*/ meltfnum[4] = ((/*_#LN__L2*/ meltfnum[1]) + (1));; MELT_LOCATION("warmelt-first.melt:2953:/ compute"); /*_#LN__L2*/ meltfnum[1] = /*_#SETQ___L6*/ meltfnum[5] = /*_#I__L5*/ meltfnum[4];; /*_.PAIR_TAIL__V12*/ meltfptr[11] = (melt_pair_tail((melt_ptr_t)(/*_.CURPAIR__V9*/ meltfptr[8])));; MELT_LOCATION("warmelt-first.melt:2954:/ compute"); /*_.CURPAIR__V9*/ meltfptr[8] = /*_.SETQ___V13*/ meltfptr[12] = /*_.PAIR_TAIL__V12*/ meltfptr[11];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2951:/ clear"); /*clear*/ /*_#IS_PAIR__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_#I__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_#SETQ___L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.PAIR_TAIL__V12*/ meltfptr[11] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V13*/ meltfptr[12] = 0 ;} ; ; goto labloop_LOOPLN_1; labexit_LOOPLN_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V10*/ meltfptr[9] = /*_.LOOPLN__V11*/ meltfptr[10];; } ; /*^compute*/ /*_.LET___V8*/ meltfptr[7] = /*_.FOREVER___V10*/ meltfptr[9];; MELT_LOCATION("warmelt-first.melt:2950:/ clear"); /*clear*/ /*_.CURPAIR__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V10*/ meltfptr[9] = 0 ; MELT_LOCATION("warmelt-first.melt:2955:/ quasiblock"); /*_.TUP__V15*/ meltfptr[12] = (meltgc_new_multiple((meltobject_ptr_t)(/*_.DISC__V3*/ meltfptr[2]), (/*_#LN__L2*/ meltfnum[1])));; /*^compute*/ /*_#IX__L7*/ meltfnum[2] = 0;; /*^compute*/ /*_.CURPAIR__V16*/ meltfptr[8] = /*_.PAIR__V2*/ meltfptr[1];; MELT_LOCATION("warmelt-first.melt:2959:/ loop"); /*loop*/{ labloop_LOOPFI_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_PAIR__L8*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.CURPAIR__V16*/ meltfptr[8])) == MELTOBMAG_PAIR);; /*^compute*/ /*_#NOT__L9*/ meltfnum[4] = (!(/*_#IS_PAIR__L8*/ meltfnum[3]));; MELT_LOCATION("warmelt-first.melt:2960:/ cond"); /*cond*/ if (/*_#NOT__L9*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.LOOPFI__V18*/ meltfptr[17] = NULL;; /*^exit*/ /*exit*/{ goto labexit_LOOPFI_1;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:2961:/ quasiblock"); /*_.C__V20*/ meltfptr[19] = (melt_pair_head((melt_ptr_t)(/*_.CURPAIR__V16*/ meltfptr[8])));; /*^compute*/ /*_#IS_CLOSURE__L10*/ meltfnum[5] = (melt_magic_discr((melt_ptr_t)(/*_.F__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:2962:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L10*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^apply*/ /*apply*/{ /*_.F__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t)(/*_.F__V4*/ meltfptr[3]), (melt_ptr_t)(/*_.C__V20*/ meltfptr[19]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; /*_.TC__V21*/ meltfptr[20] = /*_.F__V22*/ meltfptr[21];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2962:/ clear"); /*clear*/ /*_.F__V22*/ meltfptr[21] = 0 ;} ; } else {/*^cond.else*/ /*_.TC__V21*/ meltfptr[20] = /*_.C__V20*/ meltfptr[19];; } ; { MELT_LOCATION("warmelt-first.melt:2963:/ locexp"); meltgc_multiple_put_nth((melt_ptr_t)(/*_.TUP__V15*/ meltfptr[12]), (/*_#IX__L7*/ meltfnum[2]), (melt_ptr_t)(/*_.TC__V21*/ meltfptr[20]));} ; /*_#I__L11*/ meltfnum[10] = ((/*_#IX__L7*/ meltfnum[2]) + (1));; MELT_LOCATION("warmelt-first.melt:2964:/ compute"); /*_#IX__L7*/ meltfnum[2] = /*_#SETQ___L12*/ meltfnum[11] = /*_#I__L11*/ meltfnum[10];; /*_.PAIR_TAIL__V23*/ meltfptr[21] = (melt_pair_tail((melt_ptr_t)(/*_.CURPAIR__V16*/ meltfptr[8])));; MELT_LOCATION("warmelt-first.melt:2965:/ compute"); /*_.CURPAIR__V16*/ meltfptr[8] = /*_.SETQ___V24*/ meltfptr[23] = /*_.PAIR_TAIL__V23*/ meltfptr[21];; /*_.LET___V19*/ meltfptr[18] = /*_.SETQ___V24*/ meltfptr[23];; MELT_LOCATION("warmelt-first.melt:2961:/ clear"); /*clear*/ /*_.C__V20*/ meltfptr[19] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L10*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.TC__V21*/ meltfptr[20] = 0 ; /*^clear*/ /*clear*/ /*_#I__L11*/ meltfnum[10] = 0 ; /*^clear*/ /*clear*/ /*_#SETQ___L12*/ meltfnum[11] = 0 ; /*^clear*/ /*clear*/ /*_.PAIR_TAIL__V23*/ meltfptr[21] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V24*/ meltfptr[23] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:2959:/ clear"); /*clear*/ /*_#IS_PAIR__L8*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L9*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V19*/ meltfptr[18] = 0 ;} ; ; goto labloop_LOOPFI_1; labexit_LOOPFI_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V17*/ meltfptr[9] = /*_.LOOPFI__V18*/ meltfptr[17];; } ; MELT_LOCATION("warmelt-first.melt:2966:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.TUP__V15*/ meltfptr[12];; MELT_LOCATION("warmelt-first.melt:2966:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V14*/ meltfptr[11] = /*_.RETURN___V25*/ meltfptr[19];; MELT_LOCATION("warmelt-first.melt:2955:/ clear"); /*clear*/ /*_.TUP__V15*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L7*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.CURPAIR__V16*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V17*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V25*/ meltfptr[19] = 0 ; /*_.LET___V7*/ meltfptr[5] = /*_.LET___V14*/ meltfptr[11];; MELT_LOCATION("warmelt-first.melt:2949:/ clear"); /*clear*/ /*_#LN__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V14*/ meltfptr[11] = 0 ; MELT_LOCATION("warmelt-first.melt:2942:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V7*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:2942:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#NULL__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V7*/ meltfptr[5] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("PAIRLIST_TO_MULTIPLE", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_43_warmelt_first_PAIRLIST_TO_MULTIPLE*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_44_warmelt_first_MULTIPLE_ITERATE_TEST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_44_warmelt_first_MULTIPLE_ITERATE_TEST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 9 void* mcfr_varptr[9]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<9; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 9; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MULTIPLE_ITERATE_TEST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3007:/ getarg"); /*_.TUP__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_MULTIPLE__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION("warmelt-first.melt:3011:/ cond"); /*cond*/ if (/*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3012:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*citerblock FOREACH_IN_MULTIPLE*/ { /* start cit1__EACHTUP: */ long cit1__EACHTUP_ln = melt_multiple_length((melt_ptr_t)/*_.TUP__V2*/ meltfptr[1]); for (/*_#IX__L3*/ meltfnum[2] = 0; (/*_#IX__L3*/ meltfnum[2] >= 0) && (/*_#IX__L3*/ meltfnum[2] < cit1__EACHTUP_ln); /*_#IX__L3*/ meltfnum[2]++) { /*_.COMP__V4*/ meltfptr[3] = melt_multiple_nth((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1]), /*_#IX__L3*/ meltfnum[2]); MELT_LOCATION("warmelt-first.melt:3016:/ quasiblock"); /*^multiapply*/ /*multiapply 2args, 1x.res*/ { union meltparam_un argtab[1]; union meltparam_un restab[1]; memset(&restab, 0, sizeof(restab)); memset(&argtab, 0, sizeof(argtab)); /*^multiapply.arg*/ argtab[0].bp_long = /*_#IX__L3*/ meltfnum[2]; /*^multiapply.xres*/ restab[0].bp_aptr = (melt_ptr_t*) &/*_.OTHER__V7*/ meltfptr[6]; /*^multiapply.appl*/ /*_.TEST__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.COMP__V4*/ meltfptr[3]), (BPARSTR_LONG ""), argtab, (BPARSTR_PTR ""), restab); } ; /*^quasiblock*/ /*_#NULL__L4*/ meltfnum[3] = ((/*_.TEST__V6*/ meltfptr[5]) == NULL);; MELT_LOCATION("warmelt-first.melt:3019:/ cond"); /*cond*/ if (/*_#NULL__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.COMP__V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3019:/ putxtraresult"); if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[0] != BPAR_LONG) goto labend_rout; if (xrestab_[0].bp_longptr) *(xrestab_[0].bp_longptr) = (/*_#IX__L3*/ meltfnum[2]); ; /*^putxtraresult*/ if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[1] != BPAR_PTR) goto labend_rout; if (xrestab_[1].bp_aptr) *(xrestab_[1].bp_aptr) = (melt_ptr_t) (/*_.OTHER__V7*/ meltfptr[6]); ; /*^finalreturn*/ ; /*finalret*/ goto labend_rout ; /*_.IF___V8*/ meltfptr[7] = /*_.RETURN___V9*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3019:/ clear"); /*clear*/ /*_.RETURN___V9*/ meltfptr[8] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V8*/ meltfptr[7] = NULL;; } ; /*^compute*/ /*_.MULTI___V5*/ meltfptr[4] = /*_.IF___V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3016:/ clear"); /*clear*/ /*_#NULL__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.OTHER__V7*/ meltfptr[6] = 0 ; if (/*_#IX__L3*/ meltfnum[2]<0) break; } /* end cit1__EACHTUP */ /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:3013:/ clear"); /*clear*/ /*_.COMP__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.MULTI___V5*/ meltfptr[4] = 0 ;} /*endciterblock FOREACH_IN_MULTIPLE*/ ; /*epilog*/ } ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3011:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ;} ; } /*noelse*/ ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3007:/ clear"); /*clear*/ /*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MULTIPLE_ITERATE_TEST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_44_warmelt_first_MULTIPLE_ITERATE_TEST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_45_warmelt_first_MULTIPLE_MAP(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_45_warmelt_first_MULTIPLE_MAP_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 11 void* mcfr_varptr[11]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<11; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 11; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MULTIPLE_MAP", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3024:/ getarg"); /*_.TUP__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_MULTIPLE__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION("warmelt-first.melt:3027:/ cond"); /*cond*/ if (/*_#IS_MULTIPLE__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3028:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3029:/ quasiblock"); /*_#LN__L3*/ meltfnum[2] = (melt_multiple_length((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1])));; /*^compute*/ /*_#IX__L4*/ meltfnum[3] = 0;; /*^compute*/ /*_.RES__V7*/ meltfptr[6] = (meltgc_new_multiple((meltobject_ptr_t)((/*!DISCR_MULTIPLE*/ meltfrout->tabval[0])), (/*_#LN__L3*/ meltfnum[2])));; MELT_LOCATION("warmelt-first.melt:3033:/ loop"); /*loop*/{ labloop_TUPLOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#I__L5*/ meltfnum[4] = ((/*_#IX__L4*/ meltfnum[3]) >= (/*_#LN__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3034:/ cond"); /*cond*/ if (/*_#I__L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.TUPLOOP__V9*/ meltfptr[8] = /*_.RES__V7*/ meltfptr[6];; /*^exit*/ /*exit*/{ goto labexit_TUPLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3035:/ quasiblock"); /*_.CURCOMP__V10*/ meltfptr[9] = (melt_multiple_nth((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1]), (/*_#IX__L4*/ meltfnum[3])));; MELT_LOCATION("warmelt-first.melt:3036:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_long = /*_#IX__L4*/ meltfnum[3]; /*_.F__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CURCOMP__V10*/ meltfptr[9]), (BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; { /*^locexp*/ meltgc_multiple_put_nth((melt_ptr_t)(/*_.RES__V7*/ meltfptr[6]), (/*_#IX__L4*/ meltfnum[3]), (melt_ptr_t)(/*_.F__V11*/ meltfptr[10]));} ; MELT_LOCATION("warmelt-first.melt:3035:/ clear"); /*clear*/ /*_.CURCOMP__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.F__V11*/ meltfptr[10] = 0 ; /*_#I__L6*/ meltfnum[5] = ((/*_#IX__L4*/ meltfnum[3]) + (1));; MELT_LOCATION("warmelt-first.melt:3037:/ compute"); /*_#IX__L4*/ meltfnum[3] = /*_#SETQ___L7*/ meltfnum[6] = /*_#I__L6*/ meltfnum[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3033:/ clear"); /*clear*/ /*_#I__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_#I__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_#SETQ___L7*/ meltfnum[6] = 0 ;} ; ; goto labloop_TUPLOOP_1; labexit_TUPLOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V8*/ meltfptr[7] = /*_.TUPLOOP__V9*/ meltfptr[8];; } ; /*^compute*/ /*_.LET___V6*/ meltfptr[5] = /*_.FOREVER___V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3029:/ clear"); /*clear*/ /*_#LN__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.RES__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V8*/ meltfptr[7] = 0 ; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3028:/ clear"); /*clear*/ /*_.LET___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.IF___V4*/ meltfptr[3] = /*_.IF___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3027:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3024:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3024:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_MULTIPLE__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MULTIPLE_MAP", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_45_warmelt_first_MULTIPLE_MAP*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_46_warmelt_first_MULTIPLE_TO_LIST(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_46_warmelt_first_MULTIPLE_TO_LIST_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 12 void* mcfr_varptr[12]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<12; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 12; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MULTIPLE_TO_LIST", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3041:/ getarg"); /*_.TUP__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.DISC__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.DISC__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.TRANSF__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.TRANSF__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#NULL__L1*/ meltfnum[0] = ((/*_.DISC__V3*/ meltfptr[2]) == NULL);; MELT_LOCATION("warmelt-first.melt:3045:/ cond"); /*cond*/ if (/*_#NULL__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^compute*/ /*_.DISC__V3*/ meltfptr[2] = /*_.SETQ___V6*/ meltfptr[5] = (/*!DISCR_LIST*/ meltfrout->tabval[0]);; /*_.IF___V5*/ meltfptr[4] = /*_.SETQ___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3045:/ clear"); /*clear*/ /*_.SETQ___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_#IS_MULTIPLE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE);; MELT_LOCATION("warmelt-first.melt:3046:/ cond"); /*cond*/ if (/*_#IS_MULTIPLE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3047:/ quasiblock"); /*_.LIS__V9*/ meltfptr[8] = (meltgc_new_list((meltobject_ptr_t)(/*_.DISC__V3*/ meltfptr[2])));; /*citerblock FOREACH_IN_MULTIPLE*/ { /* start cit1__EACHTUP: */ long cit1__EACHTUP_ln = melt_multiple_length((melt_ptr_t)/*_.TUP__V2*/ meltfptr[1]); for (/*_#IX__L3*/ meltfnum[2] = 0; (/*_#IX__L3*/ meltfnum[2] >= 0) && (/*_#IX__L3*/ meltfnum[2] < cit1__EACHTUP_ln); /*_#IX__L3*/ meltfnum[2]++) { /*_.COMP__V10*/ meltfptr[9] = melt_multiple_nth((melt_ptr_t)(/*_.TUP__V2*/ meltfptr[1]), /*_#IX__L3*/ meltfnum[2]); /*_#IS_CLOSURE__L4*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.TRANSF__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3051:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3052:/ apply"); /*apply*/{ /*_.TRANSF__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)(/*_.TRANSF__V4*/ meltfptr[3]), (melt_ptr_t)(/*_.COMP__V10*/ meltfptr[9]), (""), (union meltparam_un*)0, "", (union meltparam_un*)0); } ; { /*^locexp*/ meltgc_append_list((melt_ptr_t)(/*_.LIS__V9*/ meltfptr[8]), (melt_ptr_t)(/*_.TRANSF__V11*/ meltfptr[10]));} ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3051:/ clear"); /*clear*/ /*_.TRANSF__V11*/ meltfptr[10] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ { MELT_LOCATION("warmelt-first.melt:3053:/ locexp"); meltgc_append_list((melt_ptr_t)(/*_.LIS__V9*/ meltfptr[8]), (melt_ptr_t)(/*_.COMP__V10*/ meltfptr[9]));} ; /*epilog*/ } ; } ; if (/*_#IX__L3*/ meltfnum[2]<0) break; } /* end cit1__EACHTUP */ /*citerepilog*/ MELT_LOCATION("warmelt-first.melt:3048:/ clear"); /*clear*/ /*_.COMP__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L4*/ meltfnum[3] = 0 ;} /*endciterblock FOREACH_IN_MULTIPLE*/ ; MELT_LOCATION("warmelt-first.melt:3054:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LIS__V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:3054:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V8*/ meltfptr[7] = /*_.RETURN___V12*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:3047:/ clear"); /*clear*/ /*_.LIS__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V12*/ meltfptr[10] = 0 ; /*_.IF___V7*/ meltfptr[5] = /*_.LET___V8*/ meltfptr[7];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3046:/ clear"); /*clear*/ /*_.LET___V8*/ meltfptr[7] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V7*/ meltfptr[5] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3041:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V7*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3041:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#NULL__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_#IS_MULTIPLE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V7*/ meltfptr[5] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MULTIPLE_TO_LIST", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_46_warmelt_first_MULTIPLE_TO_LIST*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_47_warmelt_first_CLOSURE_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_47_warmelt_first_CLOSURE_EVERY_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void* mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<10; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("CLOSURE_EVERY", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3059:/ getarg"); /*_.CLO__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.CLO__V2*/ meltfptr[1])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3061:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3062:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3063:/ quasiblock"); /*_#LN__L3*/ meltfnum[2] = (melt_closure_size((melt_ptr_t)(/*_.CLO__V2*/ meltfptr[1])));; /*^compute*/ /*_#IX__L4*/ meltfnum[3] = 0;; MELT_LOCATION("warmelt-first.melt:3065:/ loop"); /*loop*/{ labloop_CLOLOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#I__L5*/ meltfnum[4] = ((/*_#IX__L4*/ meltfnum[3]) >= (/*_#LN__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3066:/ cond"); /*cond*/ if (/*_#I__L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.CLOLOOP__V8*/ meltfptr[7] = NULL;; /*^exit*/ /*exit*/{ goto labexit_CLOLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; /*_.CLOSURE_NTH__V9*/ meltfptr[8] = (melt_closure_nth((melt_ptr_t)(/*_.CLO__V2*/ meltfptr[1]), (int)(/*_#IX__L4*/ meltfnum[3])));; MELT_LOCATION("warmelt-first.melt:3067:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_long = /*_#IX__L4*/ meltfnum[3]; /*_.F__V10*/ meltfptr[9] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.CLOSURE_NTH__V9*/ meltfptr[8]), (BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_#I__L6*/ meltfnum[5] = ((/*_#IX__L4*/ meltfnum[3]) + (1));; MELT_LOCATION("warmelt-first.melt:3068:/ compute"); /*_#IX__L4*/ meltfnum[3] = /*_#SETQ___L7*/ meltfnum[6] = /*_#I__L6*/ meltfnum[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3065:/ clear"); /*clear*/ /*_#I__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.CLOSURE_NTH__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.F__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_#I__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_#SETQ___L7*/ meltfnum[6] = 0 ;} ; ; goto labloop_CLOLOOP_1; labexit_CLOLOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V7*/ meltfptr[6] = /*_.CLOLOOP__V8*/ meltfptr[7];; } ; /*^compute*/ /*_.LET___V6*/ meltfptr[5] = /*_.FOREVER___V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3063:/ clear"); /*clear*/ /*_#LN__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V7*/ meltfptr[6] = 0 ; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3062:/ clear"); /*clear*/ /*_.LET___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.IF___V4*/ meltfptr[3] = /*_.IF___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3061:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3059:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3059:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("CLOSURE_EVERY", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_47_warmelt_first_CLOSURE_EVERY*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_48_warmelt_first_ROUTINE_EVERY(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_48_warmelt_first_ROUTINE_EVERY_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 10 void* mcfr_varptr[10]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<10; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 10; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("ROUTINE_EVERY", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3072:/ getarg"); /*_.ROU__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.F__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_ROUTINE__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.ROU__V2*/ meltfptr[1])) == MELTOBMAG_ROUTINE);; MELT_LOCATION("warmelt-first.melt:3074:/ cond"); /*cond*/ if (/*_#IS_ROUTINE__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L2*/ meltfnum[1] = (melt_magic_discr((melt_ptr_t)(/*_.F__V3*/ meltfptr[2])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3075:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3076:/ quasiblock"); /*_#LN__L3*/ meltfnum[2] = (melt_routine_size((melt_ptr_t)(/*_.ROU__V2*/ meltfptr[1])));; /*^compute*/ /*_#IX__L4*/ meltfnum[3] = 0;; MELT_LOCATION("warmelt-first.melt:3078:/ loop"); /*loop*/{ labloop_ROULOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#I__L5*/ meltfnum[4] = ((/*_#IX__L4*/ meltfnum[3]) >= (/*_#LN__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3079:/ cond"); /*cond*/ if (/*_#I__L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.ROULOOP__V8*/ meltfptr[7] = NULL;; /*^exit*/ /*exit*/{ goto labexit_ROULOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; /*_.ROUTINE_NTH__V9*/ meltfptr[8] = (melt_routine_nth((melt_ptr_t)(/*_.ROU__V2*/ meltfptr[1]), (int) (/*_#IX__L4*/ meltfnum[3])));; MELT_LOCATION("warmelt-first.melt:3080:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_long = /*_#IX__L4*/ meltfnum[3]; /*_.F__V10*/ meltfptr[9] = melt_apply ((meltclosure_ptr_t)(/*_.F__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.ROUTINE_NTH__V9*/ meltfptr[8]), (BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_#I__L6*/ meltfnum[5] = ((/*_#IX__L4*/ meltfnum[3]) + (1));; MELT_LOCATION("warmelt-first.melt:3081:/ compute"); /*_#IX__L4*/ meltfnum[3] = /*_#SETQ___L7*/ meltfnum[6] = /*_#I__L6*/ meltfnum[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3078:/ clear"); /*clear*/ /*_#I__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.ROUTINE_NTH__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.F__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_#I__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_#SETQ___L7*/ meltfnum[6] = 0 ;} ; ; goto labloop_ROULOOP_1; labexit_ROULOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V7*/ meltfptr[6] = /*_.ROULOOP__V8*/ meltfptr[7];; } ; /*^compute*/ /*_.LET___V6*/ meltfptr[5] = /*_.FOREVER___V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3076:/ clear"); /*clear*/ /*_#LN__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#IX__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V7*/ meltfptr[6] = 0 ; /*_.IF___V5*/ meltfptr[4] = /*_.LET___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3075:/ clear"); /*clear*/ /*_.LET___V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.IF___V4*/ meltfptr[3] = /*_.IF___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3074:/ clear"); /*clear*/ /*_#IS_CLOSURE__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3072:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3072:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#IS_ROUTINE__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("ROUTINE_EVERY", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_48_warmelt_first_ROUTINE_EVERY*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_49_warmelt_first_INSTALL_METHOD(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_49_warmelt_first_INSTALL_METHOD_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 9 void* mcfr_varptr[9]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<9; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 9; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("INSTALL_METHOD", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3084:/ getarg"); /*_.CLA__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.SEL__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.SEL__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.FUN__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.FUN__V4*/ meltfptr[3])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_DISCRIMINANT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3086:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L2*/ meltfnum[1] = melt_is_instance_of((melt_ptr_t)(/*_.SEL__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_SELECTOR*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3087:/ cond"); /*cond*/ if (/*_#IS_A__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#IS_CLOSURE__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.FUN__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3088:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L3*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3089:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3091:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), 2, "DISC_METHODICT");/*_.MAPDICT__V5*/ meltfptr[4] = slot; }; ; /*_#IS_MAPOBJECT__L4*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.MAPDICT__V5*/ meltfptr[4])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3092:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ { MELT_LOCATION("warmelt-first.melt:3093:/ locexp"); meltgc_put_mapobjects( (meltmapobjects_ptr_t) (/*_.MAPDICT__V5*/ meltfptr[4]), (meltobject_ptr_t) (/*_.SEL__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.FUN__V4*/ meltfptr[3]));} ; /*epilog*/ } ; } else {MELT_LOCATION("warmelt-first.melt:3092:/ cond.else"); /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3094:/ quasiblock"); /*_.NEWMAPDICT__V6*/ meltfptr[5] = (meltgc_new_mapobjects( (meltobject_ptr_t) ((/*!DISCR_METHOD_MAP*/ meltfrout->tabval[2])), (35)));; MELT_LOCATION("warmelt-first.melt:3095:/ quasiblock"); /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @DISC_METHODICT", melt_magic_discr((melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.CLA__V2*/ meltfptr[1]), (2), (/*_.NEWMAPDICT__V6*/ meltfptr[5]), "DISC_METHODICT"); ; /*^touch*/ meltgc_touch(/*_.CLA__V2*/ meltfptr[1]); ; { MELT_LOCATION("warmelt-first.melt:3096:/ locexp"); meltgc_put_mapobjects( (meltmapobjects_ptr_t) (/*_.NEWMAPDICT__V6*/ meltfptr[5]), (meltobject_ptr_t) (/*_.SEL__V3*/ meltfptr[2]), (melt_ptr_t)(/*_.FUN__V4*/ meltfptr[3]));} ; MELT_LOCATION("warmelt-first.melt:3094:/ clear"); /*clear*/ /*_.NEWMAPDICT__V6*/ meltfptr[5] = 0 ; /*epilog*/ } ; } ; MELT_LOCATION("warmelt-first.melt:3089:/ clear"); /*clear*/ /*_.MAPDICT__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_#IS_MAPOBJECT__L4*/ meltfnum[3] = 0 ; /*epilog*/ } ; } else {MELT_LOCATION("warmelt-first.melt:3088:/ cond.else"); /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3098:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3099:/ cond"); /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[3])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.CLANAM__V7*/ meltfptr[5] = slot; }; ; } else {/*^cond.else*/ /*_.CLANAM__V7*/ meltfptr[5] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3100:/ cond"); /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.SEL__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[3])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.SEL__V3*/ meltfptr[2]), 1, "NAMED_NAME");/*_.SELNAM__V8*/ meltfptr[4] = slot; }; ; } else {/*^cond.else*/ /*_.SELNAM__V8*/ meltfptr[4] = NULL;; } ; { MELT_LOCATION("warmelt-first.melt:3104:/ locexp"); warning (0, "MELT INSTALL_METHOD WARNING [#%ld] non-function in %s for selector %s", melt_dbgcounter, melt_string_str((melt_ptr_t) /*_.CLANAM__V7*/ meltfptr[5]), melt_string_str((melt_ptr_t) /*_.SELNAM__V8*/ meltfptr[4])) ; ;} ; { MELT_LOCATION("warmelt-first.melt:3111:/ locexp"); #if ENABLE_CHECKING if (flag_melt_debug) melt_dbgshortbacktrace(( "INSTALL_METHOD failing on non-function"), (20)); #endif ;} ; MELT_LOCATION("warmelt-first.melt:3098:/ clear"); /*clear*/ /*_.CLANAM__V7*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.SELNAM__V8*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3087:/ clear"); /*clear*/ /*_#IS_CLOSURE__L3*/ meltfnum[2] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3114:/ quasiblock"); /*^cond*/ /*cond*/ if (/*ifisa*/ melt_is_instance_of((melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[3])))) /*then*/ { /*^cond.then*/ /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CLA__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.CLANAM__V9*/ meltfptr[5] = slot; }; ; } else {/*^cond.else*/ /*_.CLANAM__V9*/ meltfptr[5] = NULL;; } ; { MELT_LOCATION("warmelt-first.melt:3118:/ locexp"); warning (0, "MELT INSTALL_METHOD WARNING [#%ld] install with non-selector in %s", melt_dbgcounter, melt_string_str((melt_ptr_t) /*_.CLANAM__V9*/ meltfptr[5])) ; ;} ; { MELT_LOCATION("warmelt-first.melt:3124:/ locexp"); #if ENABLE_CHECKING if (flag_melt_debug) melt_dbgshortbacktrace(( "INSTALL_METHOD failing on non-selector"), (20)); #endif ;} ; MELT_LOCATION("warmelt-first.melt:3114:/ clear"); /*clear*/ /*_.CLANAM__V9*/ meltfptr[5] = 0 ; /*epilog*/ } ; } ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3086:/ clear"); /*clear*/ /*_#IS_A__L2*/ meltfnum[1] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ { MELT_LOCATION("warmelt-first.melt:3130:/ locexp"); warning (0, "MELT INSTALL_METHOD WARNING [#%ld] non-discriminant", melt_dbgcounter) ; ;} ; { MELT_LOCATION("warmelt-first.melt:3135:/ locexp"); #if ENABLE_CHECKING if (flag_melt_debug) melt_dbgshortbacktrace(( "INSTALL_METHOD failing on non-discriminant"), (20)); #endif ;} ; MELT_LOCATION("warmelt-first.melt:3127:/ quasiblock"); /*epilog*/ } ; } ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3084:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("INSTALL_METHOD", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_49_warmelt_first_INSTALL_METHOD*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_50_warmelt_first_COMPARE_OBJ_RANKED(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_50_warmelt_first_COMPARE_OBJ_RANKED_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 76 void* mcfr_varptr[76]; #define MELTFRAM_NBVARNUM 25 long mcfr_varnum[25]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<76; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 76; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("COMPARE_OBJ_RANKED", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3144:/ getarg"); /*_.X1__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BXRK1__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BXRK1__V3*/ meltfptr[2])) != NULL); /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_PTR) goto lab_endgetargs; /*_.X2__V4*/ meltfptr[3] = (xargtab_[1].bp_aptr) ? (*(xargtab_[1].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.X2__V4*/ meltfptr[3])) != NULL); /*getarg#3*/ /*^getarg*/ if (xargdescr_[2] != BPAR_PTR) goto lab_endgetargs; /*_.BXRK2__V5*/ meltfptr[4] = (xargtab_[2].bp_aptr) ? (*(xargtab_[2].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BXRK2__V5*/ meltfptr[4])) != NULL); /*getarg#4*/ /*^getarg*/ if (xargdescr_[3] != BPAR_PTR) goto lab_endgetargs; /*_.VLESS__V6*/ meltfptr[5] = (xargtab_[3].bp_aptr) ? (*(xargtab_[3].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.VLESS__V6*/ meltfptr[5])) != NULL); /*getarg#5*/ /*^getarg*/ if (xargdescr_[4] != BPAR_PTR) goto lab_endgetargs; /*_.VEQ__V7*/ meltfptr[6] = (xargtab_[4].bp_aptr) ? (*(xargtab_[4].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.VEQ__V7*/ meltfptr[6])) != NULL); /*getarg#6*/ /*^getarg*/ if (xargdescr_[5] != BPAR_PTR) goto lab_endgetargs; /*_.VGREAT__V8*/ meltfptr[7] = (xargtab_[5].bp_aptr) ? (*(xargtab_[5].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.VGREAT__V8*/ meltfptr[7])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#__L1*/ meltfnum[0] = ((/*_.X1__V2*/ meltfptr[1]) == (/*_.X2__V4*/ meltfptr[3]));; MELT_LOCATION("warmelt-first.melt:3145:/ cond"); /*cond*/ if (/*_#__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3146:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VEQ__V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3146:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.RETURN___V10*/ meltfptr[9];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3145:/ clear"); /*clear*/ /*_.RETURN___V10*/ meltfptr[9] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3147:/ quasiblock"); /*_.X1DIS__V12*/ meltfptr[11] = (melt_discr((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1])));; /*^compute*/ /*_.X2DIS__V13*/ meltfptr[12] = (melt_discr((melt_ptr_t)(/*_.X2__V4*/ meltfptr[3])));; /*^compute*/ /*_#RK1__L2*/ meltfnum[1] = (melt_get_int((melt_ptr_t)(/*_.BXRK1__V3*/ meltfptr[2])));; /*^compute*/ /*_#RK2__L3*/ meltfnum[2] = (melt_get_int((melt_ptr_t)(/*_.BXRK2__V5*/ meltfptr[4])));; /*^compute*/ /*_#__L4*/ meltfnum[3] = ((/*_.X1DIS__V12*/ meltfptr[11]) != (/*_.X2DIS__V13*/ meltfptr[12]));; MELT_LOCATION("warmelt-first.melt:3152:/ cond"); /*cond*/ if (/*_#__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3153:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1DIS__V12*/ meltfptr[11]), 1, "NAMED_NAME");/*_.NAMED_NAME__V15*/ meltfptr[14] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3154:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X2DIS__V13*/ meltfptr[12]), 1, "NAMED_NAME");/*_.NAMED_NAME__V16*/ meltfptr[15] = slot; }; ; /*_#STRING___L5*/ meltfnum[4] = melt_string_less((melt_ptr_t)(/*_.NAMED_NAME__V15*/ meltfptr[14]), (melt_ptr_t)(/*_.NAMED_NAME__V16*/ meltfptr[15]));; MELT_LOCATION("warmelt-first.melt:3153:/ cond"); /*cond*/ if (/*_#STRING___L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3155:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3155:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V17*/ meltfptr[16] = /*_.RETURN___V18*/ meltfptr[17];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3153:/ clear"); /*clear*/ /*_.RETURN___V18*/ meltfptr[17] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3156:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3156:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V17*/ meltfptr[16] = /*_.RETURN___V19*/ meltfptr[17];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3153:/ clear"); /*clear*/ /*_.RETURN___V19*/ meltfptr[17] = 0 ;} ; } ; /*_.IFELSE___V14*/ meltfptr[13] = /*_.IFELSE___V17*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3152:/ clear"); /*clear*/ /*_.NAMED_NAME__V15*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.NAMED_NAME__V16*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_#STRING___L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V17*/ meltfptr[16] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L6*/ meltfnum[4] = melt_is_instance_of((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_CLONED_SYMBOL*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3158:/ cond"); /*cond*/ if (/*_#IS_A__L6*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3159:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.N1__V22*/ meltfptr[15] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3160:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X2__V4*/ meltfptr[3]), 1, "NAMED_NAME");/*_.N2__V23*/ meltfptr[16] = slot; }; ; /*_#STRING___L7*/ meltfnum[6] = melt_string_less((melt_ptr_t)(/*_.N1__V22*/ meltfptr[15]), (melt_ptr_t)(/*_.N2__V23*/ meltfptr[16]));; MELT_LOCATION("warmelt-first.melt:3161:/ cond"); /*cond*/ if (/*_#STRING___L7*/ meltfnum[6]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3162:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3162:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V24*/ meltfptr[23] = /*_.RETURN___V25*/ meltfptr[24];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3161:/ clear"); /*clear*/ /*_.RETURN___V25*/ meltfptr[24] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#STRING___L8*/ meltfnum[7] = melt_string_less((melt_ptr_t)(/*_.N2__V23*/ meltfptr[16]), (melt_ptr_t)(/*_.N1__V22*/ meltfptr[15]));; MELT_LOCATION("warmelt-first.melt:3163:/ cond"); /*cond*/ if (/*_#STRING___L8*/ meltfnum[7]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3164:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3164:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V26*/ meltfptr[24] = /*_.RETURN___V27*/ meltfptr[26];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3163:/ clear"); /*clear*/ /*_.RETURN___V27*/ meltfptr[26] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3166:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3167:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), 3, "CSYM_URANK");/*_.YR1__V29*/ meltfptr[28] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3168:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X2__V4*/ meltfptr[3]), 3, "CSYM_URANK");/*_.YR2__V30*/ meltfptr[29] = slot; }; ; /*_#NR1__L9*/ meltfnum[8] = (melt_get_int((melt_ptr_t)(/*_.YR1__V29*/ meltfptr[28])));; /*^compute*/ /*_#NR2__L10*/ meltfnum[9] = (melt_get_int((melt_ptr_t)(/*_.YR2__V30*/ meltfptr[29])));; /*^compute*/ /*_#I__L11*/ meltfnum[10] = ((/*_#NR1__L9*/ meltfnum[8]) < (/*_#NR2__L10*/ meltfnum[9]));; MELT_LOCATION("warmelt-first.melt:3172:/ cond"); /*cond*/ if (/*_#I__L11*/ meltfnum[10]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3173:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3173:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V31*/ meltfptr[30] = /*_.RETURN___V32*/ meltfptr[31];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3172:/ clear"); /*clear*/ /*_.RETURN___V32*/ meltfptr[31] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L12*/ meltfnum[11] = ((/*_#NR1__L9*/ meltfnum[8]) > (/*_#NR2__L10*/ meltfnum[9]));; MELT_LOCATION("warmelt-first.melt:3174:/ cond"); /*cond*/ if (/*_#I__L12*/ meltfnum[11]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3175:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3175:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V33*/ meltfptr[31] = /*_.RETURN___V34*/ meltfptr[33];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3174:/ clear"); /*clear*/ /*_.RETURN___V34*/ meltfptr[33] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3178:/ cppif.then"); /*^block*/ /*anyblock*/{ /*^cond*/ /*cond*/ if ((/*nil*/NULL)) /*then*/ { /*^cond.then*/ /*_.IFELSE___V36*/ meltfptr[35] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3178:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "corrupted same cloned symbols"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3178)?(3178):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V36*/ meltfptr[35] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V35*/ meltfptr[33] = /*_.IFELSE___V36*/ meltfptr[35];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3178:/ clear"); /*clear*/ /*_.IFELSE___V36*/ meltfptr[35] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V35*/ meltfptr[33] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3179:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = (/*nil*/NULL);; MELT_LOCATION("warmelt-first.melt:3179:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:3176:/ quasiblock"); /*_.PROGN___V38*/ meltfptr[37] = /*_.RETURN___V37*/ meltfptr[35];; /*^compute*/ /*_.IFELSE___V33*/ meltfptr[31] = /*_.PROGN___V38*/ meltfptr[37];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3174:/ clear"); /*clear*/ /*_.IFCPP___V35*/ meltfptr[33] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V37*/ meltfptr[35] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V38*/ meltfptr[37] = 0 ;} ; } ; /*_.IFELSE___V31*/ meltfptr[30] = /*_.IFELSE___V33*/ meltfptr[31];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3172:/ clear"); /*clear*/ /*_#I__L12*/ meltfnum[11] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V33*/ meltfptr[31] = 0 ;} ; } ; /*_.LET___V28*/ meltfptr[26] = /*_.IFELSE___V31*/ meltfptr[30];; MELT_LOCATION("warmelt-first.melt:3166:/ clear"); /*clear*/ /*_.YR1__V29*/ meltfptr[28] = 0 ; /*^clear*/ /*clear*/ /*_.YR2__V30*/ meltfptr[29] = 0 ; /*^clear*/ /*clear*/ /*_#NR1__L9*/ meltfnum[8] = 0 ; /*^clear*/ /*clear*/ /*_#NR2__L10*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_#I__L11*/ meltfnum[10] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V31*/ meltfptr[30] = 0 ; MELT_LOCATION("warmelt-first.melt:3165:/ quasiblock"); /*_.PROGN___V39*/ meltfptr[33] = /*_.LET___V28*/ meltfptr[26];; /*^compute*/ /*_.IFELSE___V26*/ meltfptr[24] = /*_.PROGN___V39*/ meltfptr[33];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3163:/ clear"); /*clear*/ /*_.LET___V28*/ meltfptr[26] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V39*/ meltfptr[33] = 0 ;} ; } ; /*_.IFELSE___V24*/ meltfptr[23] = /*_.IFELSE___V26*/ meltfptr[24];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3161:/ clear"); /*clear*/ /*_#STRING___L8*/ meltfnum[7] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V26*/ meltfptr[24] = 0 ;} ; } ; /*_.LET___V21*/ meltfptr[14] = /*_.IFELSE___V24*/ meltfptr[23];; MELT_LOCATION("warmelt-first.melt:3159:/ clear"); /*clear*/ /*_.N1__V22*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.N2__V23*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_#STRING___L7*/ meltfnum[6] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V24*/ meltfptr[23] = 0 ; /*_.IFELSE___V20*/ meltfptr[17] = /*_.LET___V21*/ meltfptr[14];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3158:/ clear"); /*clear*/ /*_.LET___V21*/ meltfptr[14] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L13*/ meltfnum[11] = melt_is_instance_of((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_NAMED*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3182:/ cond"); /*cond*/ if (/*_#IS_A__L13*/ meltfnum[11]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3183:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), 1, "NAMED_NAME");/*_.N1__V42*/ meltfptr[31] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3184:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X2__V4*/ meltfptr[3]), 1, "NAMED_NAME");/*_.N2__V43*/ meltfptr[28] = slot; }; ; /*_#STRING___L14*/ meltfnum[8] = melt_string_less((melt_ptr_t)(/*_.N1__V42*/ meltfptr[31]), (melt_ptr_t)(/*_.N2__V43*/ meltfptr[28]));; MELT_LOCATION("warmelt-first.melt:3186:/ cond"); /*cond*/ if (/*_#STRING___L14*/ meltfnum[8]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3187:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3187:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V44*/ meltfptr[29] = /*_.RETURN___V45*/ meltfptr[30];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3186:/ clear"); /*clear*/ /*_.RETURN___V45*/ meltfptr[30] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#STRING___L15*/ meltfnum[9] = melt_string_less((melt_ptr_t)(/*_.N2__V43*/ meltfptr[28]), (melt_ptr_t)(/*_.N1__V42*/ meltfptr[31]));; MELT_LOCATION("warmelt-first.melt:3188:/ cond"); /*cond*/ if (/*_#STRING___L15*/ meltfnum[9]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3189:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3189:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V46*/ meltfptr[26] = /*_.RETURN___V47*/ meltfptr[33];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3188:/ clear"); /*clear*/ /*_.RETURN___V47*/ meltfptr[33] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L16*/ meltfnum[10] = ((/*_#RK1__L2*/ meltfnum[1]) < (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3190:/ cond"); /*cond*/ if (/*_#I__L16*/ meltfnum[10]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3191:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3191:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V48*/ meltfptr[24] = /*_.RETURN___V49*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3190:/ clear"); /*clear*/ /*_.RETURN___V49*/ meltfptr[15] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L17*/ meltfnum[7] = ((/*_#RK1__L2*/ meltfnum[1]) > (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3192:/ cond"); /*cond*/ if (/*_#I__L17*/ meltfnum[7]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3193:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3193:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V50*/ meltfptr[16] = /*_.RETURN___V51*/ meltfptr[23];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3192:/ clear"); /*clear*/ /*_.RETURN___V51*/ meltfptr[23] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3195:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VEQ__V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3195:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:3194:/ quasiblock"); /*_.PROGN___V53*/ meltfptr[30] = /*_.RETURN___V52*/ meltfptr[14];; /*^compute*/ /*_.IFELSE___V50*/ meltfptr[16] = /*_.PROGN___V53*/ meltfptr[30];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3192:/ clear"); /*clear*/ /*_.RETURN___V52*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V53*/ meltfptr[30] = 0 ;} ; } ; /*_.IFELSE___V48*/ meltfptr[24] = /*_.IFELSE___V50*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3190:/ clear"); /*clear*/ /*_#I__L17*/ meltfnum[7] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V50*/ meltfptr[16] = 0 ;} ; } ; /*_.IFELSE___V46*/ meltfptr[26] = /*_.IFELSE___V48*/ meltfptr[24];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3188:/ clear"); /*clear*/ /*_#I__L16*/ meltfnum[10] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V48*/ meltfptr[24] = 0 ;} ; } ; /*_.IFELSE___V44*/ meltfptr[29] = /*_.IFELSE___V46*/ meltfptr[26];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3186:/ clear"); /*clear*/ /*_#STRING___L15*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V46*/ meltfptr[26] = 0 ;} ; } ; /*_.LET___V41*/ meltfptr[37] = /*_.IFELSE___V44*/ meltfptr[29];; MELT_LOCATION("warmelt-first.melt:3183:/ clear"); /*clear*/ /*_.N1__V42*/ meltfptr[31] = 0 ; /*^clear*/ /*clear*/ /*_.N2__V43*/ meltfptr[28] = 0 ; /*^clear*/ /*clear*/ /*_#STRING___L14*/ meltfnum[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V44*/ meltfptr[29] = 0 ; /*_.IFELSE___V40*/ meltfptr[35] = /*_.LET___V41*/ meltfptr[37];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3182:/ clear"); /*clear*/ /*_.LET___V41*/ meltfptr[37] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L18*/ meltfnum[6] = melt_is_instance_of((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ANY_BINDING*/ meltfrout->tabval[2])));; MELT_LOCATION("warmelt-first.melt:3198:/ cond"); /*cond*/ if (/*_#IS_A__L18*/ meltfnum[6]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3199:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), 0, "BINDER");/*_.BSY1__V56*/ meltfptr[23] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3200:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), 0, "BINDER");/*_.BSY2__V57*/ meltfptr[14] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3201:/ apply"); /*apply*/{ union meltparam_un argtab[6]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.BXRK1__V3*/ meltfptr[2]; /*^apply.arg*/ argtab[1].bp_aptr = (melt_ptr_t*) &/*_.BSY2__V57*/ meltfptr[14]; /*^apply.arg*/ argtab[2].bp_aptr = (melt_ptr_t*) &/*_.BXRK2__V5*/ meltfptr[4]; /*^apply.arg*/ argtab[3].bp_aptr = (melt_ptr_t*) &/*_.VLESS__V6*/ meltfptr[5]; /*^apply.arg*/ argtab[4].bp_aptr = (melt_ptr_t*) &/*_.VEQ__V7*/ meltfptr[6]; /*^apply.arg*/ argtab[5].bp_aptr = (melt_ptr_t*) &/*_.VGREAT__V8*/ meltfptr[7]; /*_.COMPARE_OBJ_RANKED__V58*/ meltfptr[30] = melt_apply ((meltclosure_ptr_t)((/*!COMPARE_OBJ_RANKED*/ meltfrout->tabval[3])), (melt_ptr_t)(/*_.BSY1__V56*/ meltfptr[23]), (BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.COMPARE_OBJ_RANKED__V58*/ meltfptr[30];; MELT_LOCATION("warmelt-first.melt:3201:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.LET___V55*/ meltfptr[15] = /*_.RETURN___V59*/ meltfptr[16];; MELT_LOCATION("warmelt-first.melt:3199:/ clear"); /*clear*/ /*_.BSY1__V56*/ meltfptr[23] = 0 ; /*^clear*/ /*clear*/ /*_.BSY2__V57*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.COMPARE_OBJ_RANKED__V58*/ meltfptr[30] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V59*/ meltfptr[16] = 0 ; /*_.IFELSE___V54*/ meltfptr[33] = /*_.LET___V55*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3198:/ clear"); /*clear*/ /*_.LET___V55*/ meltfptr[15] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#IS_STRING__L19*/ meltfnum[7] = (melt_magic_discr((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1])) == MELTOBMAG_STRING);; MELT_LOCATION("warmelt-first.melt:3202:/ cond"); /*cond*/ if (/*_#IS_STRING__L19*/ meltfnum[7]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_#STRING___L20*/ meltfnum[10] = melt_string_less((melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]), (melt_ptr_t)(/*_.X2__V4*/ meltfptr[3]));; MELT_LOCATION("warmelt-first.melt:3203:/ cond"); /*cond*/ if (/*_#STRING___L20*/ meltfnum[10]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3204:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3204:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V61*/ meltfptr[26] = /*_.RETURN___V62*/ meltfptr[31];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3203:/ clear"); /*clear*/ /*_.RETURN___V62*/ meltfptr[31] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#STRING___L21*/ meltfnum[9] = melt_string_less((melt_ptr_t)(/*_.X2__V4*/ meltfptr[3]), (melt_ptr_t)(/*_.X1__V2*/ meltfptr[1]));; MELT_LOCATION("warmelt-first.melt:3205:/ cond"); /*cond*/ if (/*_#STRING___L21*/ meltfnum[9]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3206:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3206:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V63*/ meltfptr[28] = /*_.RETURN___V64*/ meltfptr[29];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3205:/ clear"); /*clear*/ /*_.RETURN___V64*/ meltfptr[29] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L22*/ meltfnum[8] = ((/*_#RK1__L2*/ meltfnum[1]) < (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3207:/ cond"); /*cond*/ if (/*_#I__L22*/ meltfnum[8]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3208:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3208:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V65*/ meltfptr[37] = /*_.RETURN___V66*/ meltfptr[23];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3207:/ clear"); /*clear*/ /*_.RETURN___V66*/ meltfptr[23] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L23*/ meltfnum[22] = ((/*_#RK1__L2*/ meltfnum[1]) > (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3209:/ cond"); /*cond*/ if (/*_#I__L23*/ meltfnum[22]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3210:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3210:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V67*/ meltfptr[14] = /*_.RETURN___V68*/ meltfptr[30];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3209:/ clear"); /*clear*/ /*_.RETURN___V68*/ meltfptr[30] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3212:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VEQ__V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3212:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:3211:/ quasiblock"); /*_.PROGN___V70*/ meltfptr[15] = /*_.RETURN___V69*/ meltfptr[16];; /*^compute*/ /*_.IFELSE___V67*/ meltfptr[14] = /*_.PROGN___V70*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3209:/ clear"); /*clear*/ /*_.RETURN___V69*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V70*/ meltfptr[15] = 0 ;} ; } ; /*_.IFELSE___V65*/ meltfptr[37] = /*_.IFELSE___V67*/ meltfptr[14];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3207:/ clear"); /*clear*/ /*_#I__L23*/ meltfnum[22] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V67*/ meltfptr[14] = 0 ;} ; } ; /*_.IFELSE___V63*/ meltfptr[28] = /*_.IFELSE___V65*/ meltfptr[37];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3205:/ clear"); /*clear*/ /*_#I__L22*/ meltfnum[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V65*/ meltfptr[37] = 0 ;} ; } ; /*_.IFELSE___V61*/ meltfptr[26] = /*_.IFELSE___V63*/ meltfptr[28];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3203:/ clear"); /*clear*/ /*_#STRING___L21*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V63*/ meltfptr[28] = 0 ;} ; } ; /*_.IFELSE___V60*/ meltfptr[24] = /*_.IFELSE___V61*/ meltfptr[26];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3202:/ clear"); /*clear*/ /*_#STRING___L20*/ meltfnum[10] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V61*/ meltfptr[26] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L24*/ meltfnum[22] = ((/*_#RK1__L2*/ meltfnum[1]) < (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3213:/ cond"); /*cond*/ if (/*_#I__L24*/ meltfnum[22]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3214:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VLESS__V6*/ meltfptr[5];; MELT_LOCATION("warmelt-first.melt:3214:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V71*/ meltfptr[31] = /*_.RETURN___V72*/ meltfptr[29];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3213:/ clear"); /*clear*/ /*_.RETURN___V72*/ meltfptr[29] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_#I__L25*/ meltfnum[8] = ((/*_#RK1__L2*/ meltfnum[1]) > (/*_#RK2__L3*/ meltfnum[2]));; MELT_LOCATION("warmelt-first.melt:3215:/ cond"); /*cond*/ if (/*_#I__L25*/ meltfnum[8]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3216:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VGREAT__V8*/ meltfptr[7];; MELT_LOCATION("warmelt-first.melt:3216:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*_.IFELSE___V73*/ meltfptr[23] = /*_.RETURN___V74*/ meltfptr[30];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3215:/ clear"); /*clear*/ /*_.RETURN___V74*/ meltfptr[30] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3218:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.VEQ__V7*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3218:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:3217:/ quasiblock"); /*_.PROGN___V76*/ meltfptr[15] = /*_.RETURN___V75*/ meltfptr[16];; /*^compute*/ /*_.IFELSE___V73*/ meltfptr[23] = /*_.PROGN___V76*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3215:/ clear"); /*clear*/ /*_.RETURN___V75*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V76*/ meltfptr[15] = 0 ;} ; } ; /*_.IFELSE___V71*/ meltfptr[31] = /*_.IFELSE___V73*/ meltfptr[23];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3213:/ clear"); /*clear*/ /*_#I__L25*/ meltfnum[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V73*/ meltfptr[23] = 0 ;} ; } ; /*_.IFELSE___V60*/ meltfptr[24] = /*_.IFELSE___V71*/ meltfptr[31];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3202:/ clear"); /*clear*/ /*_#I__L24*/ meltfnum[22] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V71*/ meltfptr[31] = 0 ;} ; } ; /*_.IFELSE___V54*/ meltfptr[33] = /*_.IFELSE___V60*/ meltfptr[24];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3198:/ clear"); /*clear*/ /*_#IS_STRING__L19*/ meltfnum[7] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V60*/ meltfptr[24] = 0 ;} ; } ; /*_.IFELSE___V40*/ meltfptr[35] = /*_.IFELSE___V54*/ meltfptr[33];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3182:/ clear"); /*clear*/ /*_#IS_A__L18*/ meltfnum[6] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V54*/ meltfptr[33] = 0 ;} ; } ; /*_.IFELSE___V20*/ meltfptr[17] = /*_.IFELSE___V40*/ meltfptr[35];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3158:/ clear"); /*clear*/ /*_#IS_A__L13*/ meltfnum[11] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V40*/ meltfptr[35] = 0 ;} ; } ; /*_.IFELSE___V14*/ meltfptr[13] = /*_.IFELSE___V20*/ meltfptr[17];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3152:/ clear"); /*clear*/ /*_#IS_A__L6*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V20*/ meltfptr[17] = 0 ;} ; } ; /*_.LET___V11*/ meltfptr[9] = /*_.IFELSE___V14*/ meltfptr[13];; MELT_LOCATION("warmelt-first.melt:3147:/ clear"); /*clear*/ /*_.X1DIS__V12*/ meltfptr[11] = 0 ; /*^clear*/ /*clear*/ /*_.X2DIS__V13*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_#RK1__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_#RK2__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_#__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V14*/ meltfptr[13] = 0 ; /*_.IFELSE___V9*/ meltfptr[8] = /*_.LET___V11*/ meltfptr[9];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3145:/ clear"); /*clear*/ /*_.LET___V11*/ meltfptr[9] = 0 ;} ; } ; MELT_LOCATION("warmelt-first.melt:3144:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IFELSE___V9*/ meltfptr[8];; MELT_LOCATION("warmelt-first.melt:3144:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V9*/ meltfptr[8] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("COMPARE_OBJ_RANKED", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_50_warmelt_first_COMPARE_OBJ_RANKED*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_51_warmelt_first_MAPOBJECT_SORTED_ATTRIBUTE_TUPLE(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_51_warmelt_first_MAPOBJECT_SORTED_ATTRIBUTE_TUPLE_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 18 void* mcfr_varptr[18]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<18; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 18; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("MAPOBJECT_SORTED_ATTRIBUTE_TUPLE", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3226:/ getarg"); /*_.MAPO__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3229:/ quasiblock"); /*_#MAPCOUNT__L1*/ meltfnum[0] = (melt_count_mapobjects((meltmapobjects_ptr_t)(/*_.MAPO__V2*/ meltfptr[1])));; /*^compute*/ /*_.COUNTBOX__V4*/ meltfptr[3] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[0])), (0)));; /*^compute*/ /*_.BOXEDONE__V5*/ meltfptr[4] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[0])), (1)));; /*^compute*/ /*_.BOXEDZERO__V6*/ meltfptr[5] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[0])), (0)));; /*^compute*/ /*_.BOXEDMINUSONE__V7*/ meltfptr[6] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[0])), (-1)));; /*^compute*/ /*_.TUPL__V8*/ meltfptr[7] = (meltgc_new_multiple((meltobject_ptr_t)((/*!DISCR_MULTIPLE*/ meltfrout->tabval[1])), (/*_#MAPCOUNT__L1*/ meltfnum[0])));; MELT_LOCATION("warmelt-first.melt:3240:/ quasiblock"); /*^newclosure*/ /*newclosure*/ /*_.LAMBDA___V10*/ meltfptr[9] = meltgc_new_closure((meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_CLOSURE)))), (meltroutine_ptr_t)((/*!konst_4*/ meltfrout->tabval[4])), (2)); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V10*/ meltfptr[9])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 0>= 0 && 0< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V10*/ meltfptr[9]))); ((meltclosure_ptr_t)/*_.LAMBDA___V10*/ meltfptr[9])->tabval[0] = (melt_ptr_t)(/*_.COUNTBOX__V4*/ meltfptr[3]); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V10*/ meltfptr[9])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 1>= 0 && 1< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V10*/ meltfptr[9]))); ((meltclosure_ptr_t)/*_.LAMBDA___V10*/ meltfptr[9])->tabval[1] = (melt_ptr_t)(/*_.TUPL__V8*/ meltfptr[7]); ; /*_.LAMBDA___V9*/ meltfptr[8] = /*_.LAMBDA___V10*/ meltfptr[9];; MELT_LOCATION("warmelt-first.melt:3238:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.LAMBDA___V9*/ meltfptr[8]; /*_.MAPOBJECT_EVERY__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)((/*!MAPOBJECT_EVERY*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.MAPO__V2*/ meltfptr[1]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; MELT_LOCATION("warmelt-first.melt:3249:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3252:/ quasiblock"); /*^newclosure*/ /*newclosure*/ /*_.LAMBDA___V14*/ meltfptr[13] = meltgc_new_closure((meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_CLOSURE)))), (meltroutine_ptr_t)((/*!konst_6*/ meltfrout->tabval[6])), (3)); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V14*/ meltfptr[13])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 0>= 0 && 0< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V14*/ meltfptr[13]))); ((meltclosure_ptr_t)/*_.LAMBDA___V14*/ meltfptr[13])->tabval[0] = (melt_ptr_t)(/*_.BOXEDMINUSONE__V7*/ meltfptr[6]); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V14*/ meltfptr[13])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 1>= 0 && 1< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V14*/ meltfptr[13]))); ((meltclosure_ptr_t)/*_.LAMBDA___V14*/ meltfptr[13])->tabval[1] = (melt_ptr_t)(/*_.BOXEDZERO__V6*/ meltfptr[5]); ; /*^putclosedv*/ /*putclosv*/ melt_assertmsg("putclosv checkclo", melt_magic_discr((melt_ptr_t)(/*_.LAMBDA___V14*/ meltfptr[13])) == MELTOBMAG_CLOSURE); melt_assertmsg("putclosv checkoff", 2>= 0 && 2< melt_closure_size((melt_ptr_t) (/*_.LAMBDA___V14*/ meltfptr[13]))); ((meltclosure_ptr_t)/*_.LAMBDA___V14*/ meltfptr[13])->tabval[2] = (melt_ptr_t)(/*_.BOXEDONE__V5*/ meltfptr[4]); ; /*_.LAMBDA___V13*/ meltfptr[12] = /*_.LAMBDA___V14*/ meltfptr[13];; /*^compute*/ /*_.SORTUPL__V15*/ meltfptr[14] = meltgc_sort_multiple((melt_ptr_t)(/*_.TUPL__V8*/ meltfptr[7]), (melt_ptr_t)(/*_.LAMBDA___V13*/ meltfptr[12]), (melt_ptr_t)((/*!DISCR_MULTIPLE*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3265:/ quasiblock"); /*^newclosure*/ /*newclosure*/ /*_.LAMBDA___V17*/ meltfptr[16] = meltgc_new_closure((meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_CLOSURE)))), (meltroutine_ptr_t)((/*!konst_8*/ meltfrout->tabval[8])), (0)); ; /*_.LAMBDA___V16*/ meltfptr[15] = /*_.LAMBDA___V17*/ meltfptr[16];; MELT_LOCATION("warmelt-first.melt:3265:/ apply"); /*apply*/{ union meltparam_un argtab[1]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.LAMBDA___V16*/ meltfptr[15]; /*_.MULTIPLE_MAP__V18*/ meltfptr[17] = melt_apply ((meltclosure_ptr_t)((/*!MULTIPLE_MAP*/ meltfrout->tabval[7])), (melt_ptr_t)(/*_.SORTUPL__V15*/ meltfptr[14]), (BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /*_.LET___V12*/ meltfptr[11] = /*_.MULTIPLE_MAP__V18*/ meltfptr[17];; MELT_LOCATION("warmelt-first.melt:3249:/ clear"); /*clear*/ /*_.LAMBDA___V13*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_.SORTUPL__V15*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.LAMBDA___V16*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.MULTIPLE_MAP__V18*/ meltfptr[17] = 0 ; /*_.LET___V3*/ meltfptr[2] = /*_.LET___V12*/ meltfptr[11];; MELT_LOCATION("warmelt-first.melt:3229:/ clear"); /*clear*/ /*_#MAPCOUNT__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.COUNTBOX__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.BOXEDONE__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.BOXEDZERO__V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.BOXEDMINUSONE__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.TUPL__V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.LAMBDA___V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.MAPOBJECT_EVERY__V11*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V12*/ meltfptr[11] = 0 ; MELT_LOCATION("warmelt-first.melt:3226:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V3*/ meltfptr[2];; MELT_LOCATION("warmelt-first.melt:3226:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.LET___V3*/ meltfptr[2] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("MAPOBJECT_SORTED_ATTRIBUTE_TUPLE", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_51_warmelt_first_MAPOBJECT_SORTED_ATTRIBUTE_TUPLE*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_52_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_52_warmelt_first_LAMBDA__st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void* mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<6; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3240:/ getarg"); /*_.AT__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.VA__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.VA__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3241:/ quasiblock"); /*_#CURCOUNT__L1*/ meltfnum[0] = (melt_get_int((melt_ptr_t)((/*~COUNTBOX*/ meltfclos->tabval[0]))));; /*^compute*/ /*_.MAKE_INTEGERBOX__V4*/ meltfptr[3] = (meltgc_new_int((meltobject_ptr_t)((/*!DISCR_INTEGER*/ meltfrout->tabval[0])), (/*_#CURCOUNT__L1*/ meltfnum[0])));; MELT_LOCATION("warmelt-first.melt:3242:/ blockmultialloc"); /*multiallocblock*/{ struct meltletrec_1_st { struct MELT_MULTIPLE_STRUCT(3) rtup_0__TUPLREC__x1; long meltletrec_1_endgap; } *meltletrec_1_ptr = 0; meltletrec_1_ptr = (struct meltletrec_1_st *) meltgc_allocate (sizeof (struct meltletrec_1_st), 0); /*^blockmultialloc.initfill*/ /*inimult rtup_0__TUPLREC__x1*/ /*_.TUPLREC___V6*/ meltfptr[5] = (void*)&meltletrec_1_ptr->rtup_0__TUPLREC__x1; meltletrec_1_ptr->rtup_0__TUPLREC__x1.discr = (meltobject_ptr_t)(((void*)(MELT_PREDEF(DISCR_MULTIPLE)))); meltletrec_1_ptr->rtup_0__TUPLREC__x1.nbval = 3; /*^putuple*/ /*putupl*/ melt_assertmsg("putupl checktup", melt_magic_discr((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))== MELTOBMAG_MULTIPLE); melt_assertmsg("putupl checkoff", (0>=0 && 0< melt_multiple_length((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5])))); ((meltmultiple_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))->tabval[0] = (melt_ptr_t)(/*_.AT__V2*/ meltfptr[1]); ; /*^putuple*/ /*putupl*/ melt_assertmsg("putupl checktup", melt_magic_discr((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))== MELTOBMAG_MULTIPLE); melt_assertmsg("putupl checkoff", (1>=0 && 1< melt_multiple_length((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5])))); ((meltmultiple_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))->tabval[1] = (melt_ptr_t)(/*_.VA__V3*/ meltfptr[2]); ; /*^putuple*/ /*putupl*/ melt_assertmsg("putupl checktup", melt_magic_discr((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))== MELTOBMAG_MULTIPLE); melt_assertmsg("putupl checkoff", (2>=0 && 2< melt_multiple_length((melt_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5])))); ((meltmultiple_ptr_t)(/*_.TUPLREC___V6*/ meltfptr[5]))->tabval[2] = (melt_ptr_t)(/*_.MAKE_INTEGERBOX__V4*/ meltfptr[3]); ; /*^touch*/ meltgc_touch(/*_.TUPLREC___V6*/ meltfptr[5]); ; /*_.ENT__V5*/ meltfptr[4] = /*_.TUPLREC___V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3242:/ clear"); /*clear*/ /*_.TUPLREC___V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.TUPLREC___V6*/ meltfptr[5] = 0 ;} /*end multiallocblock*/ ; { MELT_LOCATION("warmelt-first.melt:3245:/ locexp"); meltgc_multiple_put_nth((melt_ptr_t)((/*~TUPL*/ meltfclos->tabval[1])), (/*_#CURCOUNT__L1*/ meltfnum[0]), (melt_ptr_t)(/*_.ENT__V5*/ meltfptr[4]));} ; /*_#I__L2*/ meltfnum[1] = ((/*_#CURCOUNT__L1*/ meltfnum[0]) + (1));; { MELT_LOCATION("warmelt-first.melt:3246:/ locexp"); melt_put_int((melt_ptr_t)((/*~COUNTBOX*/ meltfclos->tabval[0])), (/*_#I__L2*/ meltfnum[1]));} ; MELT_LOCATION("warmelt-first.melt:3241:/ clear"); /*clear*/ /*_#CURCOUNT__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.MAKE_INTEGERBOX__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.ENT__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_#I__L2*/ meltfnum[1] = 0 ; /*epilog*/ } ; goto labend_rout; labend_rout: melt_trace_end("LAMBDA_", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_52_warmelt_first_LAMBDA_*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_53_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_53_warmelt_first_LAMBDA__st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 11 void* mcfr_varptr[11]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<11; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 11; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3252:/ getarg"); /*_.E1__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.E2__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.E2__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3253:/ quasiblock"); /*_.E1AT__V5*/ meltfptr[4] = (melt_multiple_nth((melt_ptr_t)(/*_.E1__V2*/ meltfptr[1]), (0)));; /*^compute*/ /*_.E1VA__V6*/ meltfptr[5] = (melt_multiple_nth((melt_ptr_t)(/*_.E1__V2*/ meltfptr[1]), (1)));; /*^compute*/ /*_.E1RK__V7*/ meltfptr[6] = (melt_multiple_nth((melt_ptr_t)(/*_.E1__V2*/ meltfptr[1]), (2)));; /*^compute*/ /*_.E2AT__V8*/ meltfptr[7] = (melt_multiple_nth((melt_ptr_t)(/*_.E2__V3*/ meltfptr[2]), (0)));; /*^compute*/ /*_.E2VA__V9*/ meltfptr[8] = (melt_multiple_nth((melt_ptr_t)(/*_.E2__V3*/ meltfptr[2]), (1)));; /*^compute*/ /*_.E2RK__V10*/ meltfptr[9] = (melt_multiple_nth((melt_ptr_t)(/*_.E2__V3*/ meltfptr[2]), (2)));; MELT_LOCATION("warmelt-first.melt:3260:/ apply"); /*apply*/{ union meltparam_un argtab[6]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_aptr = (melt_ptr_t*) &/*_.E1RK__V7*/ meltfptr[6]; /*^apply.arg*/ argtab[1].bp_aptr = (melt_ptr_t*) &/*_.E2AT__V8*/ meltfptr[7]; /*^apply.arg*/ argtab[2].bp_aptr = (melt_ptr_t*) &/*_.E2RK__V10*/ meltfptr[9]; /*^apply.arg*/ argtab[3].bp_aptr = (melt_ptr_t*) &(/*~BOXEDMINUSONE*/ meltfclos->tabval[0]); /*^apply.arg*/ argtab[4].bp_aptr = (melt_ptr_t*) &(/*~BOXEDZERO*/ meltfclos->tabval[1]); /*^apply.arg*/ argtab[5].bp_aptr = (melt_ptr_t*) &(/*~BOXEDONE*/ meltfclos->tabval[2]); /*_.COMPARE_OBJ_RANKED__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)((/*!COMPARE_OBJ_RANKED*/ meltfrout->tabval[0])), (melt_ptr_t)(/*_.E1AT__V5*/ meltfptr[4]), (BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR BPARSTR_PTR ""), argtab, "", (union meltparam_un*)0); } ; /*_.LET___V4*/ meltfptr[3] = /*_.COMPARE_OBJ_RANKED__V11*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:3253:/ clear"); /*clear*/ /*_.E1AT__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.E1VA__V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.E1RK__V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.E2AT__V8*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.E2VA__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.E2RK__V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.COMPARE_OBJ_RANKED__V11*/ meltfptr[10] = 0 ; MELT_LOCATION("warmelt-first.melt:3252:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3252:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.LET___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LAMBDA_", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_53_warmelt_first_LAMBDA_*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_54_warmelt_first_LAMBDA_(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_54_warmelt_first_LAMBDA__st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 void* mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<3; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3265:/ getarg"); /*_.EL__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_.MULTIPLE_NTH__V3*/ meltfptr[2] = (melt_multiple_nth((melt_ptr_t)(/*_.EL__V2*/ meltfptr[1]), (0)));; MELT_LOCATION("warmelt-first.melt:3265:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.MULTIPLE_NTH__V3*/ meltfptr[2];; MELT_LOCATION("warmelt-first.melt:3265:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.MULTIPLE_NTH__V3*/ meltfptr[2] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("LAMBDA_", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_54_warmelt_first_LAMBDA_*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_55_warmelt_first_FRESH_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_55_warmelt_first_FRESH_ENV_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 11 void* mcfr_varptr[11]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<11; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 11; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("FRESH_ENV", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3279:/ getarg"); /*_.PARENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.DESCR__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.DESCR__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ /*_#NULL__L1*/ meltfnum[0] = ((/*_.PARENV__V2*/ meltfptr[1]) == NULL);; MELT_LOCATION("warmelt-first.melt:3283:/ cond"); /*cond*/ if (/*_#NULL__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_#OR___L2*/ meltfnum[1] = /*_#NULL__L1*/ meltfnum[0];; } else {MELT_LOCATION("warmelt-first.melt:3283:/ cond.else"); /*^block*/ /*anyblock*/{ /*_#IS_A__L3*/ meltfnum[2] = melt_is_instance_of((melt_ptr_t)(/*_.PARENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; /*^compute*/ /*_#OR___L2*/ meltfnum[1] = /*_#IS_A__L3*/ meltfnum[2];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3283:/ clear"); /*clear*/ /*_#IS_A__L3*/ meltfnum[2] = 0 ;} ; } ; /*^cond*/ /*cond*/ if (/*_#OR___L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3284:/ cond"); /*cond*/ if (/*_.DESCR__V3*/ meltfptr[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_.MAKE_MAPOBJECT__V6*/ meltfptr[5] = (meltgc_new_mapobjects( (meltobject_ptr_t) ((/*!DISCR_MAP_OBJECTS*/ meltfrout->tabval[2])), (26)));; MELT_LOCATION("warmelt-first.melt:3285:/ quasiblock"); /*^rawallocobj*/ /*rawallocobj*/ { melt_ptr_t newobj = 0; melt_raw_object_create(newobj,(melt_ptr_t)((/*!CLASS_DESCRIBED_ENVIRONMENT*/ meltfrout->tabval[1])), (4), "CLASS_DESCRIBED_ENVIRONMENT");/*_.INST__V8*/ meltfptr[7] = newobj; }; ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @ENV_BIND", melt_magic_discr((melt_ptr_t)(/*_.INST__V8*/ meltfptr[7])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V8*/ meltfptr[7]), (0), (/*_.MAKE_MAPOBJECT__V6*/ meltfptr[5]), "ENV_BIND"); ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @ENV_PREV", melt_magic_discr((melt_ptr_t)(/*_.INST__V8*/ meltfptr[7])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V8*/ meltfptr[7]), (1), (/*_.PARENV__V2*/ meltfptr[1]), "ENV_PREV"); ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @DENV_DESCR", melt_magic_discr((melt_ptr_t)(/*_.INST__V8*/ meltfptr[7])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V8*/ meltfptr[7]), (3), (/*_.DESCR__V3*/ meltfptr[2]), "DENV_DESCR"); ; /*_.INST___V7*/ meltfptr[6] = /*_.INST__V8*/ meltfptr[7];; /*^compute*/ /*_.IFELSE___V5*/ meltfptr[4] = /*_.INST___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3284:/ clear"); /*clear*/ /*_.MAKE_MAPOBJECT__V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.INST___V7*/ meltfptr[6] = 0 ;} ; } else {/*^cond.else*/ /*^block*/ /*anyblock*/{ /*_.MAKE_MAPOBJECT__V9*/ meltfptr[5] = (meltgc_new_mapobjects( (meltobject_ptr_t) ((/*!DISCR_MAP_OBJECTS*/ meltfrout->tabval[2])), (6)));; MELT_LOCATION("warmelt-first.melt:3289:/ quasiblock"); /*^rawallocobj*/ /*rawallocobj*/ { melt_ptr_t newobj = 0; melt_raw_object_create(newobj,(melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])), (3), "CLASS_ENVIRONMENT");/*_.INST__V11*/ meltfptr[10] = newobj; }; ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @ENV_BIND", melt_magic_discr((melt_ptr_t)(/*_.INST__V11*/ meltfptr[10])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V11*/ meltfptr[10]), (0), (/*_.MAKE_MAPOBJECT__V9*/ meltfptr[5]), "ENV_BIND"); ; /*^putslot*/ /*putslot*/ melt_assertmsg("putslot checkobj @ENV_PREV", melt_magic_discr((melt_ptr_t)(/*_.INST__V11*/ meltfptr[10])) == MELTOBMAG_OBJECT); melt_putfield_object((/*_.INST__V11*/ meltfptr[10]), (1), (/*_.PARENV__V2*/ meltfptr[1]), "ENV_PREV"); ; /*_.INST___V10*/ meltfptr[6] = /*_.INST__V11*/ meltfptr[10];; /*^compute*/ /*_.IFELSE___V5*/ meltfptr[4] = /*_.INST___V10*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3284:/ clear"); /*clear*/ /*_.MAKE_MAPOBJECT__V9*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.INST___V10*/ meltfptr[6] = 0 ;} ; } ; /*_.IF___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3283:/ clear"); /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION("warmelt-first.melt:3279:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.IF___V4*/ meltfptr[3];; MELT_LOCATION("warmelt-first.melt:3279:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_#NULL__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#OR___L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("FRESH_ENV", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_55_warmelt_first_FRESH_ENV*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_56_warmelt_first_FIND_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_56_warmelt_first_FIND_ENV_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 19 void* mcfr_varptr[19]; #define MELTFRAM_NBVARNUM 6 long mcfr_varnum[6]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<19; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 19; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("FIND_ENV", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3301:/ getarg"); /*_.ENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BINDER__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3303:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3303:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V5*/ meltfptr[4] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3303:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check arg env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3303)?(3303):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3303:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V4*/ meltfptr[3] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3304:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L2*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3304:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V7*/ meltfptr[6] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3304:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check arg binder"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3304)?(3304):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V6*/ meltfptr[4] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3304:/ clear"); /*clear*/ /*_#IS_OBJECT__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V6*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3305:/ loop"); /*loop*/{ labloop_FINDLOOP_1:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#NULL__L3*/ meltfnum[0] = ((/*_.ENV__V2*/ meltfptr[1]) == NULL);; MELT_LOCATION("warmelt-first.melt:3307:/ cond"); /*cond*/ if (/*_#NULL__L3*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3308:/ quasiblock"); /*^compute*/ /*_.FINDLOOP__V9*/ meltfptr[8] = (/*nil*/NULL);; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3309:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L4*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3309:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V11*/ meltfptr[10] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3309:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env obj"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3309)?(3309):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V11*/ meltfptr[10] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V10*/ meltfptr[9] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3309:/ clear"); /*clear*/ /*_#IS_OBJECT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V11*/ meltfptr[10] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V10*/ meltfptr[9] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3310:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L5*/ meltfnum[3] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3310:/ cond"); /*cond*/ if (/*_#IS_A__L5*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V13*/ meltfptr[12] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3310:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check good env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3310)?(3310):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V13*/ meltfptr[12] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V12*/ meltfptr[10] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3310:/ clear"); /*clear*/ /*_#IS_A__L5*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V13*/ meltfptr[12] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V12*/ meltfptr[10] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3311:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3312:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 0, "ENV_BIND");/*_.BINDMAP__V14*/ meltfptr[12] = slot; }; ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3313:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L6*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.BINDMAP__V14*/ meltfptr[12])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3313:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L6*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V16*/ meltfptr[15] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3313:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check bindmap"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3313)?(3313):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V16*/ meltfptr[15] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V15*/ meltfptr[14] = /*_.IFELSE___V16*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3313:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L6*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V16*/ meltfptr[15] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V15*/ meltfptr[14] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3314:/ quasiblock"); /*_.BND__V17*/ meltfptr[15] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.BINDMAP__V14*/ meltfptr[12]), (meltobject_ptr_t)(/*_.BINDER__V3*/ meltfptr[2]));; MELT_LOCATION("warmelt-first.melt:3316:/ cond"); /*cond*/ if (/*_.BND__V17*/ meltfptr[15]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3317:/ quasiblock"); /*^compute*/ /*_.FINDLOOP__V9*/ meltfptr[8] = /*_.BND__V17*/ meltfptr[15];; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_1;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3314:/ clear"); /*clear*/ /*_.BND__V17*/ meltfptr[15] = 0 ; MELT_LOCATION("warmelt-first.melt:3311:/ clear"); /*clear*/ /*_.BINDMAP__V14*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V15*/ meltfptr[14] = 0 ; MELT_LOCATION("warmelt-first.melt:3319:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 1, "ENV_PREV");/*_.ENV_PREV__V18*/ meltfptr[15] = slot; }; ; /*^compute*/ /*_.ENV__V2*/ meltfptr[1] = /*_.SETQ___V19*/ meltfptr[12] = /*_.ENV_PREV__V18*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3305:/ clear"); /*clear*/ /*_#NULL__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V12*/ meltfptr[10] = 0 ; /*^clear*/ /*clear*/ /*_.ENV_PREV__V18*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V19*/ meltfptr[12] = 0 ;} ; ; goto labloop_FINDLOOP_1; labexit_FINDLOOP_1:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V8*/ meltfptr[6] = /*_.FINDLOOP__V9*/ meltfptr[8];; } ; MELT_LOCATION("warmelt-first.melt:3301:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.FOREVER___V8*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3301:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.IFCPP___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V8*/ meltfptr[6] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("FIND_ENV", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_56_warmelt_first_FIND_ENV*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_57_warmelt_first_FIND_ENV_DEBUG(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_57_warmelt_first_FIND_ENV_DEBUG_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 29 void* mcfr_varptr[29]; #define MELTFRAM_NBVARNUM 11 long mcfr_varnum[11]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<29; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 29; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("FIND_ENV_DEBUG", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3324:/ getarg"); /*_.ENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BINDER__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3325:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3325:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V5*/ meltfptr[4] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3325:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check arg env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3325)?(3325):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3325:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V4*/ meltfptr[3] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3326:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L2*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3326:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V7*/ meltfptr[6] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3326:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check arg binder"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3326)?(3326):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V6*/ meltfptr[4] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3326:/ clear"); /*clear*/ /*_#IS_OBJECT__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V6*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3327:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[0] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3327:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "find_env_debug initial env"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3327; /*_.DEBUG_MSG_FUN__V9*/ meltfptr[8] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[1])), (melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V8*/ meltfptr[6] = /*_.DEBUG_MSG_FUN__V9*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3327:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V9*/ meltfptr[8] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V8*/ meltfptr[6] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3328:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3328:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "find_env_debug binder"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3328; /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[1])), (melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V10*/ meltfptr[8] = /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3328:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L4*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V10*/ meltfptr[8] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3329:/ loop"); /*loop*/{ labloop_FINDLOOP_2:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#NULL__L5*/ meltfnum[0] = ((/*_.ENV__V2*/ meltfptr[1]) == NULL);; MELT_LOCATION("warmelt-first.melt:3331:/ cond"); /*cond*/ if (/*_#NULL__L5*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3332:/ quasiblock"); /*^compute*/ /*_.FINDLOOP__V13*/ meltfptr[12] = (/*nil*/NULL);; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_2;} ; /*epilog*/ } ; } /*noelse*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3333:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3333:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "find_env_debug current env"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3333; /*_.DEBUG_MSG_FUN__V15*/ meltfptr[14] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[1])), (melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V14*/ meltfptr[13] = /*_.DEBUG_MSG_FUN__V15*/ meltfptr[14];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3333:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V15*/ meltfptr[14] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V14*/ meltfptr[13] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3334:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L7*/ meltfnum[5] = (melt_magic_discr((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3334:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L7*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V17*/ meltfptr[16] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3334:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env obj"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3334)?(3334):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V17*/ meltfptr[16] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V16*/ meltfptr[14] = /*_.IFELSE___V17*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3334:/ clear"); /*clear*/ /*_#IS_OBJECT__L7*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V17*/ meltfptr[16] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V16*/ meltfptr[14] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3335:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L8*/ meltfnum[5] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3335:/ cond"); /*cond*/ if (/*_#IS_A__L8*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V19*/ meltfptr[18] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3335:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check good env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3335)?(3335):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V19*/ meltfptr[18] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V18*/ meltfptr[16] = /*_.IFELSE___V19*/ meltfptr[18];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3335:/ clear"); /*clear*/ /*_#IS_A__L8*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V19*/ meltfptr[18] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V18*/ meltfptr[16] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3336:/ quasiblock"); MELT_LOCATION("warmelt-first.melt:3337:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 0, "ENV_BIND");/*_.BINDMAP__V20*/ meltfptr[18] = slot; }; ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3338:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L9*/ meltfnum[5] = (melt_magic_discr((melt_ptr_t)(/*_.BINDMAP__V20*/ meltfptr[18])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3338:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L9*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V22*/ meltfptr[21] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3338:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check bindmap"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3338)?(3338):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V22*/ meltfptr[21] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V21*/ meltfptr[20] = /*_.IFELSE___V22*/ meltfptr[21];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3338:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L9*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V22*/ meltfptr[21] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V21*/ meltfptr[20] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3339:/ quasiblock"); /*_.BND__V23*/ meltfptr[21] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.BINDMAP__V20*/ meltfptr[18]), (meltobject_ptr_t)(/*_.BINDER__V3*/ meltfptr[2]));; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3341:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[5] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3341:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "find_env_debug current bnd"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[5]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3341; /*_.DEBUG_MSG_FUN__V25*/ meltfptr[24] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[1])), (melt_ptr_t)(/*_.BND__V23*/ meltfptr[21]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V24*/ meltfptr[23] = /*_.DEBUG_MSG_FUN__V25*/ meltfptr[24];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3341:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V25*/ meltfptr[24] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V24*/ meltfptr[23] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3342:/ cond"); /*cond*/ if (/*_.BND__V23*/ meltfptr[21]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3343:/ quasiblock"); /*^compute*/ /*_.FINDLOOP__V13*/ meltfptr[12] = /*_.BND__V23*/ meltfptr[21];; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_2;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3339:/ clear"); /*clear*/ /*_.BND__V23*/ meltfptr[21] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V24*/ meltfptr[23] = 0 ; MELT_LOCATION("warmelt-first.melt:3336:/ clear"); /*clear*/ /*_.BINDMAP__V20*/ meltfptr[18] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V21*/ meltfptr[20] = 0 ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3345:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[5] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3345:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "find_env_debug at end of loop binder"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[5]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3345; /*_.DEBUG_MSG_FUN__V27*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[1])), (melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V26*/ meltfptr[24] = /*_.DEBUG_MSG_FUN__V27*/ meltfptr[21];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3345:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V27*/ meltfptr[21] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V26*/ meltfptr[24] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3346:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 1, "ENV_PREV");/*_.ENV_PREV__V28*/ meltfptr[23] = slot; }; ; /*^compute*/ /*_.ENV__V2*/ meltfptr[1] = /*_.SETQ___V29*/ meltfptr[18] = /*_.ENV_PREV__V28*/ meltfptr[23];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3329:/ clear"); /*clear*/ /*_#NULL__L5*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V14*/ meltfptr[13] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V16*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V18*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V26*/ meltfptr[24] = 0 ; /*^clear*/ /*clear*/ /*_.ENV_PREV__V28*/ meltfptr[23] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V29*/ meltfptr[18] = 0 ;} ; ; goto labloop_FINDLOOP_2; labexit_FINDLOOP_2:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V12*/ meltfptr[10] = /*_.FINDLOOP__V13*/ meltfptr[12];; } ; MELT_LOCATION("warmelt-first.melt:3324:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.FOREVER___V12*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:3324:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.IFCPP___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V8*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V10*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V12*/ meltfptr[10] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("FIND_ENV_DEBUG", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_57_warmelt_first_FIND_ENV_DEBUG*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_58_warmelt_first_FIND_ENCLOSING_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_58_warmelt_first_FIND_ENCLOSING_ENV_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 22 void* mcfr_varptr[22]; #define MELTFRAM_NBVARNUM 4 long mcfr_varnum[4]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<22; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 22; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("FIND_ENCLOSING_ENV", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3351:/ getarg"); /*_.ENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BINDER__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3354:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3354:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V5*/ meltfptr[4] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3354:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3354)?(3354):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3354:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V4*/ meltfptr[3] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3355:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L2*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.BINDER__V3*/ meltfptr[2])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3355:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V7*/ meltfptr[6] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3355:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binder"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3355)?(3355):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V6*/ meltfptr[4] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3355:/ clear"); /*clear*/ /*_#IS_OBJECT__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V6*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3356:/ quasiblock"); /*_.PROCLIST__V9*/ meltfptr[8] = (meltgc_new_list((meltobject_ptr_t)((/*!DISCR_LIST*/ meltfrout->tabval[1]))));; MELT_LOCATION("warmelt-first.melt:3357:/ loop"); /*loop*/{ labloop_FINDLOOP_3:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_NOT_A__L3*/ meltfnum[0] = !melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3358:/ cond"); /*cond*/ if (/*_#IS_NOT_A__L3*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.FINDLOOP__V11*/ meltfptr[10] = NULL;; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_3;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3359:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 0, "ENV_BIND");/*_.BINDMAP__V13*/ meltfptr[12] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3360:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 2, "ENV_PROC");/*_.EPROC__V14*/ meltfptr[13] = slot; }; ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3362:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L4*/ meltfnum[3] = (melt_magic_discr((melt_ptr_t)(/*_.BINDMAP__V13*/ meltfptr[12])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3362:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L4*/ meltfnum[3]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V16*/ meltfptr[15] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3362:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check bindmap"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3362)?(3362):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V16*/ meltfptr[15] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V15*/ meltfptr[14] = /*_.IFELSE___V16*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3362:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L4*/ meltfnum[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V16*/ meltfptr[15] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V15*/ meltfptr[14] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3363:/ quasiblock"); /*_.BND__V18*/ meltfptr[17] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.BINDMAP__V13*/ meltfptr[12]), (meltobject_ptr_t)(/*_.BINDER__V3*/ meltfptr[2]));; MELT_LOCATION("warmelt-first.melt:3364:/ cond"); /*cond*/ if (/*_.BND__V18*/ meltfptr[17]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*_.RETVAL___V1*/ meltfptr[0] = /*_.BND__V18*/ meltfptr[17];; MELT_LOCATION("warmelt-first.melt:3364:/ putxtraresult"); if (!xrestab_ || !xresdescr_) goto labend_rout; if (xresdescr_[0] != BPAR_PTR) goto labend_rout; if (xrestab_[0].bp_aptr) *(xrestab_[0].bp_aptr) = (melt_ptr_t) (/*_.PROCLIST__V9*/ meltfptr[8]); ; /*^finalreturn*/ ; /*finalret*/ goto labend_rout ; /*_.IF___V19*/ meltfptr[18] = /*_.RETURN___V20*/ meltfptr[19];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3364:/ clear"); /*clear*/ /*_.RETURN___V20*/ meltfptr[19] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V19*/ meltfptr[18] = NULL;; } ; /*^compute*/ /*_.LET___V17*/ meltfptr[15] = /*_.IF___V19*/ meltfptr[18];; MELT_LOCATION("warmelt-first.melt:3363:/ clear"); /*clear*/ /*_.BND__V18*/ meltfptr[17] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V19*/ meltfptr[18] = 0 ; MELT_LOCATION("warmelt-first.melt:3365:/ cond"); /*cond*/ if (/*_.EPROC__V14*/ meltfptr[13]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ { /*^locexp*/ meltgc_prepend_list((melt_ptr_t)(/*_.PROCLIST__V9*/ meltfptr[8]), (melt_ptr_t)(/*_.EPROC__V14*/ meltfptr[13]));} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3366:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 1, "ENV_PREV");/*_.ENV_PREV__V21*/ meltfptr[19] = slot; }; ; /*^compute*/ /*_.ENV__V2*/ meltfptr[1] = /*_.SETQ___V22*/ meltfptr[17] = /*_.ENV_PREV__V21*/ meltfptr[19];; /*_.LET___V12*/ meltfptr[11] = /*_.SETQ___V22*/ meltfptr[17];; MELT_LOCATION("warmelt-first.melt:3359:/ clear"); /*clear*/ /*_.BINDMAP__V13*/ meltfptr[12] = 0 ; /*^clear*/ /*clear*/ /*_.EPROC__V14*/ meltfptr[13] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V15*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V17*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.ENV_PREV__V21*/ meltfptr[19] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V22*/ meltfptr[17] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3357:/ clear"); /*clear*/ /*_#IS_NOT_A__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V12*/ meltfptr[11] = 0 ;} ; ; goto labloop_FINDLOOP_3; labexit_FINDLOOP_3:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V10*/ meltfptr[9] = /*_.FINDLOOP__V11*/ meltfptr[10];; } ; /*^compute*/ /*_.LET___V8*/ meltfptr[6] = /*_.FOREVER___V10*/ meltfptr[9];; MELT_LOCATION("warmelt-first.melt:3356:/ clear"); /*clear*/ /*_.PROCLIST__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V10*/ meltfptr[9] = 0 ; MELT_LOCATION("warmelt-first.melt:3351:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V8*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3351:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.IFCPP___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V8*/ meltfptr[6] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("FIND_ENCLOSING_ENV", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_58_warmelt_first_FIND_ENCLOSING_ENV*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_59_warmelt_first_PUT_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_59_warmelt_first_PUT_ENV_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 23 void* mcfr_varptr[23]; #define MELTFRAM_NBVARNUM 13 long mcfr_varnum[13]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<23; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 23; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("PUT_ENV", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3370:/ getarg"); /*_.ENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BINDING__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3373:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L1*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3373:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V5*/ meltfptr[4] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3373:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binding is obj"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3373)?(3373):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3373:/ clear"); /*clear*/ /*_#IS_OBJECT__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V4*/ meltfptr[3] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3374:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L2*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3374:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V7*/ meltfptr[6] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3374:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env is obj"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3374)?(3374):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V6*/ meltfptr[4] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3374:/ clear"); /*clear*/ /*_#IS_OBJECT__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V6*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3375:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L3*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3375:/ cond"); /*cond*/ if (/*_#IS_A__L3*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V9*/ meltfptr[8] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3375:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3375)?(3375):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V9*/ meltfptr[8] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3375:/ clear"); /*clear*/ /*_#IS_A__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V9*/ meltfptr[8] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V8*/ meltfptr[6] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; /*^compute*/ /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_ANY_BINDING*/ meltfrout->tabval[1])));; /*^compute*/ /*_#NOT__L5*/ meltfnum[4] = (!(/*_#IS_A__L4*/ meltfnum[0]));; MELT_LOCATION("warmelt-first.melt:3376:/ cond"); /*cond*/ if (/*_#NOT__L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3378:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3378:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "put_env invalid binding"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3378; /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V10*/ meltfptr[8] = /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3378:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V11*/ meltfptr[10] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V10*/ meltfptr[8] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; { MELT_LOCATION("warmelt-first.melt:3379:/ locexp"); #if ENABLE_CHECKING if (flag_melt_debug) melt_dbgshortbacktrace(( "put_env invalid binding"), (15)); #endif ;} ; MELT_LOCATION("warmelt-first.melt:3377:/ quasiblock"); /*epilog*/ MELT_LOCATION("warmelt-first.melt:3376:/ clear"); /*clear*/ /*_.IFCPP___V10*/ meltfptr[8] = 0 ;} ; } /*noelse*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3380:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L7*/ meltfnum[5] = melt_is_instance_of((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_ANY_BINDING*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3380:/ cond"); /*cond*/ if (/*_#IS_A__L7*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V13*/ meltfptr[8] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3380:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binding"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3380)?(3380):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V13*/ meltfptr[8] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V12*/ meltfptr[10] = /*_.IFELSE___V13*/ meltfptr[8];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3380:/ clear"); /*clear*/ /*_#IS_A__L7*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V13*/ meltfptr[8] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V12*/ meltfptr[10] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3381:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 0, "ENV_BIND");/*_.BINDMAP__V14*/ meltfptr[8] = slot; }; ; MELT_LOCATION("warmelt-first.melt:3382:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), 0, "BINDER");/*_.BINDERV__V15*/ meltfptr[14] = slot; }; ; /*_#IS_OBJECT__L8*/ meltfnum[5] = (melt_magic_discr((melt_ptr_t)((/*!BINDER*/ meltfrout->tabval[3]))) == MELTOBMAG_OBJECT);; /*^compute*/ /*_#NOT__L9*/ meltfnum[8] = (!(/*_#IS_OBJECT__L8*/ meltfnum[5]));; MELT_LOCATION("warmelt-first.melt:3384:/ cond"); /*cond*/ if (/*_#NOT__L9*/ meltfnum[8]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3386:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[9] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3386:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "put_env bad binder in binding"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[9]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3386; /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V16*/ meltfptr[15] = /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3386:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L10*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V17*/ meltfptr[16] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V16*/ meltfptr[15] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3387:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[9] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3387:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "put_env bad binderv"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[9]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3387; /*_.DEBUG_MSG_FUN__V19*/ meltfptr[18] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.BINDERV__V15*/ meltfptr[14]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V18*/ meltfptr[16] = /*_.DEBUG_MSG_FUN__V19*/ meltfptr[18];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3387:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V19*/ meltfptr[18] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V18*/ meltfptr[16] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; { MELT_LOCATION("warmelt-first.melt:3388:/ locexp"); #if ENABLE_CHECKING if (flag_melt_debug) melt_dbgshortbacktrace(( "put_env bad binder in binding"), (5)); #endif ;} ; MELT_LOCATION("warmelt-first.melt:3385:/ quasiblock"); /*epilog*/ MELT_LOCATION("warmelt-first.melt:3384:/ clear"); /*clear*/ /*_.IFCPP___V16*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V18*/ meltfptr[16] = 0 ;} ; } /*noelse*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3389:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L12*/ meltfnum[9] = (melt_magic_discr((melt_ptr_t)(/*_.BINDMAP__V14*/ meltfptr[8])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3389:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L12*/ meltfnum[9]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V21*/ meltfptr[15] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3389:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check bindmap"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3389)?(3389):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V21*/ meltfptr[15] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V20*/ meltfptr[18] = /*_.IFELSE___V21*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3389:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L12*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V21*/ meltfptr[15] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V20*/ meltfptr[18] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3390:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L13*/ meltfnum[9] = (melt_magic_discr((melt_ptr_t)(/*_.BINDERV__V15*/ meltfptr[14])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3390:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L13*/ meltfnum[9]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V23*/ meltfptr[15] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3390:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binderv"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3390)?(3390):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V23*/ meltfptr[15] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V22*/ meltfptr[16] = /*_.IFELSE___V23*/ meltfptr[15];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3390:/ clear"); /*clear*/ /*_#IS_OBJECT__L13*/ meltfnum[9] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V23*/ meltfptr[15] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V22*/ meltfptr[16] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; { MELT_LOCATION("warmelt-first.melt:3391:/ locexp"); meltgc_put_mapobjects( (meltmapobjects_ptr_t) (/*_.BINDMAP__V14*/ meltfptr[8]), (meltobject_ptr_t) (/*_.BINDERV__V15*/ meltfptr[14]), (melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]));} ; MELT_LOCATION("warmelt-first.melt:3381:/ clear"); /*clear*/ /*_.BINDMAP__V14*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.BINDERV__V15*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_#IS_OBJECT__L8*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L9*/ meltfnum[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V20*/ meltfptr[18] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V22*/ meltfptr[16] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3370:/ clear"); /*clear*/ /*_.IFCPP___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V8*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_#IS_A__L4*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V12*/ meltfptr[10] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("PUT_ENV", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*noretval*/ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_59_warmelt_first_PUT_ENV*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_60_warmelt_first_OVERWRITE_ENV(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_60_warmelt_first_OVERWRITE_ENV_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 20 void* mcfr_varptr[20]; #define MELTFRAM_NBVARNUM 6 long mcfr_varnum[6]; /*others*/ long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<20; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 20; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("OVERWRITE_ENV", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3395:/ getarg"); /*_.ENV__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_PTR) goto lab_endgetargs; /*_.BINDING__V3*/ meltfptr[2] = (xargtab_[0].bp_aptr) ? (*(xargtab_[0].bp_aptr)) : NULL; gcc_assert(melt_discr((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3399:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; MELT_LOCATION("warmelt-first.melt:3399:/ cond"); /*cond*/ if (/*_#IS_A__L1*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V5*/ meltfptr[4] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3399:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check env"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3399)?(3399):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V4*/ meltfptr[3] = /*_.IFELSE___V5*/ meltfptr[4];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3399:/ clear"); /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V5*/ meltfptr[4] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V4*/ meltfptr[3] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3400:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_ANY_BINDING*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3400:/ cond"); /*cond*/ if (/*_#IS_A__L2*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V7*/ meltfptr[6] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3400:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binding"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3400)?(3400):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V6*/ meltfptr[4] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3400:/ clear"); /*clear*/ /*_#IS_A__L2*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V7*/ meltfptr[6] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V6*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3401:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]), 0, "BINDER");/*_.BINDERV__V9*/ meltfptr[8] = slot; }; ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3402:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr((melt_ptr_t)(/*_.BINDERV__V9*/ meltfptr[8])) == MELTOBMAG_OBJECT);; MELT_LOCATION("warmelt-first.melt:3402:/ cond"); /*cond*/ if (/*_#IS_OBJECT__L3*/ meltfnum[0]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V11*/ meltfptr[10] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3402:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check binderv"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3402)?(3402):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V11*/ meltfptr[10] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V10*/ meltfptr[9] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3402:/ clear"); /*clear*/ /*_#IS_OBJECT__L3*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V11*/ meltfptr[10] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V10*/ meltfptr[9] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3403:/ loop"); /*loop*/{ labloop_FINDLOOP_4:;/*^loopbody*/ /*^block*/ /*anyblock*/{ /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[0])));; /*^compute*/ /*_#NOT__L5*/ meltfnum[4] = (!(/*_#IS_A__L4*/ meltfnum[0]));; MELT_LOCATION("warmelt-first.melt:3404:/ cond"); /*cond*/ if (/*_#NOT__L5*/ meltfnum[4]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*^quasiblock*/ /*^compute*/ /*_.FINDLOOP__V13*/ meltfptr[12] = NULL;; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_4;} ; /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3405:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 0, "ENV_BIND");/*_.BINDMAP__V15*/ meltfptr[14] = slot; }; ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3406:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_MAPOBJECT__L6*/ meltfnum[5] = (melt_magic_discr((melt_ptr_t)(/*_.BINDMAP__V15*/ meltfptr[14])) == MELTOBMAG_MAPOBJECTS);; MELT_LOCATION("warmelt-first.melt:3406:/ cond"); /*cond*/ if (/*_#IS_MAPOBJECT__L6*/ meltfnum[5]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V17*/ meltfptr[16] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3406:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check bindmap"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3406)?(3406):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V17*/ meltfptr[16] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V16*/ meltfptr[15] = /*_.IFELSE___V17*/ meltfptr[16];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3406:/ clear"); /*clear*/ /*_#IS_MAPOBJECT__L6*/ meltfnum[5] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V17*/ meltfptr[16] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V16*/ meltfptr[15] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3407:/ quasiblock"); /*_.OLDBINDING__V18*/ meltfptr[16] = melt_get_mapobjects((meltmapobjects_ptr_t)(/*_.BINDMAP__V15*/ meltfptr[14]), (meltobject_ptr_t)((/*!BINDER*/ meltfrout->tabval[2])));; MELT_LOCATION("warmelt-first.melt:3408:/ cond"); /*cond*/ if (/*_.OLDBINDING__V18*/ meltfptr[16]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ { MELT_LOCATION("warmelt-first.melt:3410:/ locexp"); meltgc_put_mapobjects( (meltmapobjects_ptr_t) (/*_.BINDMAP__V15*/ meltfptr[14]), (meltobject_ptr_t) (/*_.BINDERV__V9*/ meltfptr[8]), (melt_ptr_t)(/*_.BINDING__V3*/ meltfptr[2]));} ; MELT_LOCATION("warmelt-first.melt:3411:/ quasiblock"); /*^compute*/ /*_.FINDLOOP__V13*/ meltfptr[12] = /*_.OLDBINDING__V18*/ meltfptr[16];; /*^exit*/ /*exit*/{ goto labexit_FINDLOOP_4;} ; MELT_LOCATION("warmelt-first.melt:3409:/ quasiblock"); /*epilog*/ } ; } /*noelse*/ ; MELT_LOCATION("warmelt-first.melt:3407:/ clear"); /*clear*/ /*_.OLDBINDING__V18*/ meltfptr[16] = 0 ; MELT_LOCATION("warmelt-first.melt:3413:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.ENV__V2*/ meltfptr[1]), 1, "ENV_PREV");/*_.ENV_PREV__V19*/ meltfptr[16] = slot; }; ; /*^compute*/ /*_.ENV__V2*/ meltfptr[1] = /*_.SETQ___V20*/ meltfptr[19] = /*_.ENV_PREV__V19*/ meltfptr[16];; /*_.LET___V14*/ meltfptr[13] = /*_.SETQ___V20*/ meltfptr[19];; MELT_LOCATION("warmelt-first.melt:3405:/ clear"); /*clear*/ /*_.BINDMAP__V15*/ meltfptr[14] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V16*/ meltfptr[15] = 0 ; /*^clear*/ /*clear*/ /*_.ENV_PREV__V19*/ meltfptr[16] = 0 ; /*^clear*/ /*clear*/ /*_.SETQ___V20*/ meltfptr[19] = 0 ; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3403:/ clear"); /*clear*/ /*_#IS_A__L4*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L5*/ meltfnum[4] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V14*/ meltfptr[13] = 0 ;} ; ; goto labloop_FINDLOOP_4; labexit_FINDLOOP_4:;/*^loopepilog*/ /*loopepilog*/ /*_.FOREVER___V12*/ meltfptr[10] = /*_.FINDLOOP__V13*/ meltfptr[12];; } ; /*^compute*/ /*_.LET___V8*/ meltfptr[6] = /*_.FOREVER___V12*/ meltfptr[10];; MELT_LOCATION("warmelt-first.melt:3401:/ clear"); /*clear*/ /*_.BINDERV__V9*/ meltfptr[8] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V10*/ meltfptr[9] = 0 ; /*^clear*/ /*clear*/ /*_.FOREVER___V12*/ meltfptr[10] = 0 ; MELT_LOCATION("warmelt-first.melt:3395:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V8*/ meltfptr[6];; MELT_LOCATION("warmelt-first.melt:3395:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.IFCPP___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V6*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.LET___V8*/ meltfptr[6] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("OVERWRITE_ENV", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_60_warmelt_first_OVERWRITE_ENV*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_61_warmelt_first_POST_INITIALIZATION(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_61_warmelt_first_POST_INITIALIZATION_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 16 void* mcfr_varptr[16]; #define MELTFRAM_NBVARNUM 6 long mcfr_varnum[6]; /*others*/ const char* loc_CSTRING__o0; long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<16; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 16; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("POST_INITIALIZATION", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3428:/ getarg"); /*_.UNUSEDARG__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_CSTRING) goto lab_endgetargs; /*_?*/ meltfram__.loc_CSTRING__o0 = xargtab_[0].bp_cstring; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3429:/ quasiblock"); /*_.CURMODENVCONT__V3*/ meltfptr[2] = /*quasi.cur.mod.env.cont */ (/*!konst_0*/ meltfrout->tabval[0]);; /*^compute*/ /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of((melt_ptr_t)(/*_.CURMODENVCONT__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_CONTAINER*/ meltfrout->tabval[1])));; /*^compute*/ /*_#NOT__L2*/ meltfnum[1] = (!(/*_#IS_A__L1*/ meltfnum[0]));; MELT_LOCATION("warmelt-first.melt:3430:/ cond"); /*cond*/ if (/*_#NOT__L2*/ meltfnum[1]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ /*_.DISCRIM__V5*/ meltfptr[4] = (melt_discr((melt_ptr_t)(/*_.CURMODENVCONT__V3*/ meltfptr[2])));; MELT_LOCATION("warmelt-first.melt:3433:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.DISCRIM__V5*/ meltfptr[4]), 1, "NAMED_NAME");/*_.NAMED_NAME__V6*/ meltfptr[5] = slot; }; ; { MELT_LOCATION("warmelt-first.melt:3432:/ locexp"); warning (0, "MELT WARNING MSG [#%ld]::: %s - %s", melt_dbgcounter, ( "post_initialization strange curmodenvcont of discr"), melt_string_str((melt_ptr_t)(/*_.NAMED_NAME__V6*/ meltfptr[5])));} ; MELT_LOCATION("warmelt-first.melt:3434:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; MELT_LOCATION("warmelt-first.melt:3434:/ finalreturn"); ; /*finalret*/ goto labend_rout ; MELT_LOCATION("warmelt-first.melt:3431:/ quasiblock"); /*_.PROGN___V8*/ meltfptr[7] = /*_.RETURN___V7*/ meltfptr[6];; /*^compute*/ /*_.IF___V4*/ meltfptr[3] = /*_.PROGN___V8*/ meltfptr[7];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3430:/ clear"); /*clear*/ /*_.DISCRIM__V5*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.NAMED_NAME__V6*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_.RETURN___V7*/ meltfptr[6] = 0 ; /*^clear*/ /*clear*/ /*_.PROGN___V8*/ meltfptr[7] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3436:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[2] = meltcallcount;; MELT_LOCATION("warmelt-first.melt:3436:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = "post_initialization curmodenvcont at start"; /*^apply.arg*/ argtab[1].bp_long = /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[2]; /*^apply.arg*/ argtab[2].bp_cstring = "warmelt-first.melt"; /*^apply.arg*/ argtab[3].bp_long = 3436; /*_.DEBUG_MSG_FUN__V10*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t)((/*!DEBUG_MSG_FUN*/ meltfrout->tabval[2])), (melt_ptr_t)(/*_.CURMODENVCONT__V3*/ meltfptr[2]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IFCPP___V9*/ meltfptr[4] = /*_.DEBUG_MSG_FUN__V10*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3436:/ clear"); /*clear*/ /*_#THE_MELTCALLCOUNT__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.DEBUG_MSG_FUN__V10*/ meltfptr[5] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V9*/ meltfptr[4] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; #if ENABLE_CHECKING MELT_LOCATION("warmelt-first.melt:3438:/ cppif.then"); /*^block*/ /*anyblock*/{ /*_#IS_A__L4*/ meltfnum[2] = melt_is_instance_of((melt_ptr_t)(/*_.CURMODENVCONT__V3*/ meltfptr[2]), (melt_ptr_t)((/*!CLASS_CONTAINER*/ meltfrout->tabval[1])));; MELT_LOCATION("warmelt-first.melt:3438:/ cond"); /*cond*/ if (/*_#IS_A__L4*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*_.IFELSE___V12*/ meltfptr[7] = (/*nil*/NULL);; } else {MELT_LOCATION("warmelt-first.melt:3438:/ cond.else"); /*^block*/ /*anyblock*/{ { /*^locexp*/ melt_assert_failed(( "check curmodenvcont"),( "warmelt-first.melt")?( "warmelt-first.melt"):__FILE__, (3438)?(3438):__LINE__, __FUNCTION__); ;} ; /*clear*/ /*_.IFELSE___V12*/ meltfptr[7] = 0 ; /*epilog*/ } ; } ; /*^compute*/ /*_.IFCPP___V11*/ meltfptr[6] = /*_.IFELSE___V12*/ meltfptr[7];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3438:/ clear"); /*clear*/ /*_#IS_A__L4*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.IFELSE___V12*/ meltfptr[7] = 0 ;} #else /*ENABLE_CHECKING*/ /*^cppif.else*/ /*_.IFCPP___V11*/ meltfptr[6] = (/*nil*/NULL); #endif /*ENABLE_CHECKING*/ ; MELT_LOCATION("warmelt-first.melt:3439:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CURMODENVCONT__V3*/ meltfptr[2]), 0, "CONTAINER_VALUE");/*_.CURMODENV__V13*/ meltfptr[5] = slot; }; ; /*_#IS_A__L5*/ meltfnum[2] = melt_is_instance_of((melt_ptr_t)(/*_.CURMODENV__V13*/ meltfptr[5]), (melt_ptr_t)((/*!CLASS_ENVIRONMENT*/ meltfrout->tabval[3])));; MELT_LOCATION("warmelt-first.melt:3440:/ cond"); /*cond*/ if (/*_#IS_A__L5*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3441:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CURMODENV__V13*/ meltfptr[5]), 0, "ENV_BIND");/*_.CURBINDMAP__V14*/ meltfptr[7] = slot; }; ; /*_#MAPOBJECT_COUNT__L6*/ meltfnum[5] = (melt_count_mapobjects((meltmapobjects_ptr_t)(/*_.CURBINDMAP__V14*/ meltfptr[7])));; { MELT_LOCATION("warmelt-first.melt:3443:/ locexp"); inform(UNKNOWN_LOCATION, "MELT INFORM [#%ld]: %s * %ld", melt_dbgcounter, ( "post_initialization boundvars num"), (/*_#MAPOBJECT_COUNT__L6*/ meltfnum[5]));} ; MELT_LOCATION("warmelt-first.melt:3441:/ clear"); /*clear*/ /*_.CURBINDMAP__V14*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_#MAPOBJECT_COUNT__L6*/ meltfnum[5] = 0 ; /*epilog*/ } ; } else {MELT_LOCATION("warmelt-first.melt:3440:/ cond.else"); /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3446:/ quasiblock"); /*_.CURMENVDISCR__V15*/ meltfptr[7] = (melt_discr((melt_ptr_t)(/*_.CURMODENV__V13*/ meltfptr[5])));; MELT_LOCATION("warmelt-first.melt:3448:/ getslot"); { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)(/*_.CURMENVDISCR__V15*/ meltfptr[7]), 1, "NAMED_NAME");/*_.NAMED_NAME__V16*/ meltfptr[15] = slot; }; ; { MELT_LOCATION("warmelt-first.melt:3447:/ locexp"); inform(UNKNOWN_LOCATION, ("MELT INFORM [#%ld]: %s - %s"), melt_dbgcounter, ( "post_initialization strange curmodenv of discr"), melt_string_str((melt_ptr_t)(/*_.NAMED_NAME__V16*/ meltfptr[15])));} ; MELT_LOCATION("warmelt-first.melt:3446:/ clear"); /*clear*/ /*_.CURMENVDISCR__V15*/ meltfptr[7] = 0 ; /*^clear*/ /*clear*/ /*_.NAMED_NAME__V16*/ meltfptr[15] = 0 ; /*epilog*/ } ; } ; MELT_LOCATION("warmelt-first.melt:3439:/ clear"); /*clear*/ /*_.CURMODENV__V13*/ meltfptr[5] = 0 ; /*^clear*/ /*clear*/ /*_#IS_A__L5*/ meltfnum[2] = 0 ; MELT_LOCATION("warmelt-first.melt:3429:/ clear"); /*clear*/ /*_.CURMODENVCONT__V3*/ meltfptr[2] = 0 ; /*^clear*/ /*clear*/ /*_#IS_A__L1*/ meltfnum[0] = 0 ; /*^clear*/ /*clear*/ /*_#NOT__L2*/ meltfnum[1] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V9*/ meltfptr[4] = 0 ; /*^clear*/ /*clear*/ /*_.IFCPP___V11*/ meltfptr[6] = 0 ; /*epilog*/ } ; goto labend_rout; labend_rout: melt_trace_end("POST_INITIALIZATION", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_61_warmelt_first_POST_INITIALIZATION*/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_62_warmelt_first_DEBUG_MSG_FUN(meltclosure_ptr_t closp_, melt_ptr_t firstargp_, const char xargdescr_[], union meltparam_un *xargtab_, const char xresdescr_[], union meltparam_un *xrestab_) { #if ENABLE_CHECKING static long call_counter__; long thiscallcounter__ ATTRIBUTE_UNUSED = ++ call_counter__; #undef meltcallcount #define meltcallcount thiscallcounter__ #else #undef meltcallcount #define meltcallcount 0L #endif struct frame_meltrout_62_warmelt_first_DEBUG_MSG_FUN_st { int mcfr_nbvar; #if ENABLE_CHECKING const char* mcfr_flocs; #endif struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct callframe_melt_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 void* mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ const char* loc_CSTRING__o0; const char* loc_CSTRING__o1; long _spare_; } *framptr_=0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY(xargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc*/ int ix=0; framptr_ = (void*)firstargp_; gt_ggc_mx_melt_un (framptr_->mcfr_clos); for(ix=0; ix<6; ix++) if (framptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (framptr_->mcfr_varptr[ix]); return NULL; }/*end markggc*/; memset(&meltfram__, 0, sizeof(meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = closp_; meltfram__.mcfr_prev = (struct callframe_melt_st *) melt_topframe; melt_topframe = (struct callframe_melt_st *) &meltfram__; melt_trace_start("DEBUG_MSG_FUN", meltcallcount); /*getargs*/ /*getarg#0*/ MELT_LOCATION("warmelt-first.melt:3778:/ getarg"); /*_.VAL__V2*/ meltfptr[1] = (melt_ptr_t) firstargp_; /*getarg#1*/ /*^getarg*/ if (xargdescr_[0] != BPAR_CSTRING) goto lab_endgetargs; /*_?*/ meltfram__.loc_CSTRING__o0 = xargtab_[0].bp_cstring; /*getarg#2*/ /*^getarg*/ if (xargdescr_[1] != BPAR_LONG) goto lab_endgetargs; /*_#COUNT__L1*/ meltfnum[0] = xargtab_[1].bp_long; /*getarg#3*/ /*^getarg*/ if (xargdescr_[2] != BPAR_CSTRING) goto lab_endgetargs; /*_?*/ meltfram__.loc_CSTRING__o1 = xargtab_[2].bp_cstring; /*getarg#4*/ /*^getarg*/ if (xargdescr_[3] != BPAR_LONG) goto lab_endgetargs; /*_#LINENO__L2*/ meltfnum[1] = xargtab_[3].bp_long; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3779:/ quasiblock"); /*^getslot*/ { melt_ptr_t slot=0; melt_object_get_field(slot,(melt_ptr_t)((/*!INITIAL_SYSTEM_DATA*/ meltfrout->tabval[0])), 17, "SYSDATA_DEBUGMSG");/*_.DBGMSGFUN__V4*/ meltfptr[3] = slot; }; ; /*_#IS_CLOSURE__L3*/ meltfnum[2] = (melt_magic_discr((melt_ptr_t)(/*_.DBGMSGFUN__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION("warmelt-first.melt:3780:/ cond"); /*cond*/ if (/*_#IS_CLOSURE__L3*/ meltfnum[2]) /*then*/ { /*^cond.then*/ /*^block*/ /*anyblock*/{ MELT_LOCATION("warmelt-first.melt:3781:/ apply"); /*apply*/{ union meltparam_un argtab[4]; memset(&argtab, 0, sizeof(argtab)); /*^apply.arg*/ argtab[0].bp_cstring = /*_?*/ meltfram__.loc_CSTRING__o0; /*^apply.arg*/ argtab[1].bp_long = /*_#COUNT__L1*/ meltfnum[0]; /*^apply.arg*/ argtab[2].bp_cstring = /*_?*/ meltfram__.loc_CSTRING__o1; /*^apply.arg*/ argtab[3].bp_long = /*_#LINENO__L2*/ meltfnum[1]; /*_.DBGMSGFUN__V6*/ meltfptr[5] = melt_apply ((meltclosure_ptr_t)(/*_.DBGMSGFUN__V4*/ meltfptr[3]), (melt_ptr_t)(/*_.VAL__V2*/ meltfptr[1]), (BPARSTR_CSTRING BPARSTR_LONG BPARSTR_CSTRING BPARSTR_LONG ""), argtab, "", (union meltparam_un*)0); } ; /*_.IF___V5*/ meltfptr[4] = /*_.DBGMSGFUN__V6*/ meltfptr[5];; /*epilog*/ MELT_LOCATION("warmelt-first.melt:3780:/ clear"); /*clear*/ /*_.DBGMSGFUN__V6*/ meltfptr[5] = 0 ;} ; } else {/*^cond.else*/ /*_.IF___V5*/ meltfptr[4] = NULL;; } ; /*^compute*/ /*_.LET___V3*/ meltfptr[2] = /*_.IF___V5*/ meltfptr[4];; MELT_LOCATION("warmelt-first.melt:3779:/ clear"); /*clear*/ /*_.DBGMSGFUN__V4*/ meltfptr[3] = 0 ; /*^clear*/ /*clear*/ /*_#IS_CLOSURE__L3*/ meltfnum[2] = 0 ; /*^clear*/ /*clear*/ /*_.IF___V5*/ meltfptr[4] = 0 ; MELT_LOCATION("warmelt-first.melt:3778:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V3*/ meltfptr[2];; MELT_LOCATION("warmelt-first.melt:3778:/ finalreturn"); ; /*finalret*/ goto labend_rout ; /*epilog*/ /*^clear*/ /*clear*/ /*_.LET___V3*/ meltfptr[2] = 0 ;} ; goto labend_rout; labend_rout: melt_trace_end("DEBUG_MSG_FUN", meltcallcount); melt_topframe = (struct callframe_melt_st*) meltfram__.mcfr_prev; return (melt_ptr_t)(/*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_62_warmelt_first_DEBUG_MSG_FUN*/ /**** end of warmelt-first.0+01.c ****/