/* GCC MELT GENERATED FILE warmelt-macro+04.c - DO NOT EDIT */ /* secondary MELT generated C file of rank #4 */ #include "melt-run.h" /* used hash from melt-run.h when compiling this file: */ const char used_meltrun_md5_melt_f4[] = MELT_RUN_HASHMD5 /* from melt-run.h */ ; /**** warmelt-macro+04.c declarations ****/ #define MELT_HAS_INITIAL_ENVIRONMENT 1 struct melt_callframe_st; /*defined in melt-runtime.h */ /**!!** *** Copyright 2008, 2009, 2010, 2011, 2012 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_macro_EXPAND_RESTLIST_AS_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_2_warmelt_macro_EXPAND_RESTLIST_AS_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_3_warmelt_macro_EXPAND_PAIRLIST_AS_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_4_warmelt_macro_EXPAND_PAIRLIST_AS_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_5_warmelt_macro_REGISTER_GENERATOR_DEVICE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_6_warmelt_macro_EXPAND_APPLY (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_7_warmelt_macro_EXPAND_MSEND (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_8_warmelt_macro_EXPAND_FIELDEXPR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_9_warmelt_macro_EXPAND_CITERATION (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_10_warmelt_macro_LAMBDA___1__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_11_warmelt_macro_EXPAND_CMATCHEXPR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_12_warmelt_macro_EXPAND_FUNMATCHEXPR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_13_warmelt_macro_EXPAND_KEYWORDFUN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_14_warmelt_macro_MACROEXPAND_1 (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_15_warmelt_macro_LAMBDA___2__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_16_warmelt_macro_EXPAND_PRIMITIVE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_17_warmelt_macro_PATTERNEXPAND_PAIRLIST_AS_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_18_warmelt_macro_LAMBDA___3__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_19_warmelt_macro_PATMACEXPAND_FOR_MATCHER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_20_warmelt_macro_LAMBDA___4__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_21_warmelt_macro_LAMBDA___5__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_22_warmelt_macro_PATTERN_WEIGHT_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_23_warmelt_macro_LAMBDA___6__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_24_warmelt_macro_PATTERNEXPAND_EXPR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_25_warmelt_macro_PATTERNEXPAND_1 (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_26_warmelt_macro_MACROEXPAND_TOPLEVEL_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_27_warmelt_macro_LAMBDA_ARG_BINDINGS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_28_warmelt_macro_INSTALL_INITIAL_MACRO (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_29_warmelt_macro_INSTALL_INITIAL_PATMACRO (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_30_warmelt_macro_WARN_IF_REDEFINED (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_31_warmelt_macro_FLATTEN_FOR_C_CODE_EXPANSION (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_32_warmelt_macro_PARSE_PAIRLIST_C_CODE_EXPANSION (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_33_warmelt_macro_CHECK_C_EXPANSION (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_34_warmelt_macro_MEXPAND_DEFPRIMITIVE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_35_warmelt_macro_MEXPAND_DEFCITERATOR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_36_warmelt_macro_MEXPAND_DEFCMATCHER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_37_warmelt_macro_LAMBDA___7__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_38_warmelt_macro_MEXPAND_DEFUNMATCHER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_39_warmelt_macro_LAMBDA___8__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_40_warmelt_macro_MEXPAND_DEFUN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_41_warmelt_macro_LAMBDA___9__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_42_warmelt_macro_MEXPAND_DEFINE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_43_warmelt_macro_LAMBDA___10__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_44_warmelt_macro_SCAN_DEFCLASS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_45_warmelt_macro_MEXPAND_DEFCLASS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_46_warmelt_macro_LAMBDA___11__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_47_warmelt_macro_LAMBDA___12__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_48_warmelt_macro_PARSE_FIELD_ASSIGNMENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_49_warmelt_macro_LAMBDA___13__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_50_warmelt_macro_MEXPAND_DEFINSTANCE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_51_warmelt_macro_MEXPAND_DEFSELECTOR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_52_warmelt_macro_MEXPAND_INSTANCE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_53_warmelt_macro_MEXPAND_LOAD (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_54_warmelt_macro_PARSE_FIELD_PATTERN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_55_warmelt_macro_LAMBDA___14__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_56_warmelt_macro_PATEXPAND_INSTANCE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_57_warmelt_macro_LAMBDA___15__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_58_warmelt_macro_PATEXPAND_OBJECT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_59_warmelt_macro_LAMBDA___16__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_60_warmelt_macro_MEXPAND_OBJECT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_61_warmelt_macro_MEXPAND_CODE_CHUNK (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_62_warmelt_macro_MEXPAND_UNSAFE_PUT_FIELDS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_63_warmelt_macro_MEXPAND_PUT_FIELDS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_64_warmelt_macro_MEXPAND_UNSAFE_GET_FIELD (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_65_warmelt_macro_MEXPAND_GET_FIELD (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_66_warmelt_macro_PAIRLIST_TO_PROGN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_67_warmelt_macro_LAMBDA___17__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_68_warmelt_macro_MEXPAND_SETQ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_69_warmelt_macro_MEXPAND_IF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_70_warmelt_macro_MEXPAND_WHEN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_71_warmelt_macro_MEXPAND_UNLESS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_72_warmelt_macro_MEXPAND_CPPIF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_73_warmelt_macro_FILTERGCCVERSION (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_74_warmelt_macro_MEXPAND_GCCIF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_75_warmelt_macro_MEXPAND_COND (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_76_warmelt_macro_LAMBDA___18__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_77_warmelt_macro_MEXPAND_AND (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_78_warmelt_macro_LAMBDA___19__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_79_warmelt_macro_PATEXPAND_AS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_80_warmelt_macro_MEXPAND_AS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_81_warmelt_macro_PATEXPAND_WHEN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_82_warmelt_macro_MEXPAND_WHEN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_83_warmelt_macro_PATEXPAND_AND (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_84_warmelt_macro_MEXPAND_OR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_85_warmelt_macro_LAMBDA___20__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_86_warmelt_macro_PATEXPAND_OR (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_87_warmelt_macro_MEXPAND_REFERENCE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_88_warmelt_macro_PATEXPAND_REFERENCE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_89_warmelt_macro_MEXPANDOBSOLETE_CONTAINER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_90_warmelt_macro_PATEXPANDOBSOLETE_CONTAINER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_91_warmelt_macro_MEXPAND_DEREF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_92_warmelt_macro_MEXPANDOBSOLETE_CONTENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_93_warmelt_macro_MEXPAND_SET_REF (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_94_warmelt_macro_MEXPAND_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_95_warmelt_macro_PATEXPAND_TUPLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_96_warmelt_macro_MEXPAND_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_97_warmelt_macro_PATEXPAND_LIST (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_98_warmelt_macro_MEXPAND_MATCH (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_99_warmelt_macro_LAMBDA___21__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_100_warmelt_macro_MEXPAND_LETBINDING (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_101_warmelt_macro_MEXPAND_LET (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_102_warmelt_macro_LAMBDA___22__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_103_warmelt_macro_LAMBDA___23__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_104_warmelt_macro_LAMBDA___24__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_106_warmelt_macro_MEXPAND_LETREC (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_107_warmelt_macro_LAMBDA___25__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_108_warmelt_macro_LAMBDA___26__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_109_warmelt_macro_MEXPAND_LAMBDA (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_110_warmelt_macro_LAMBDA___27__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_111_warmelt_macro_MEXPAND_VARIADIC (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_112_warmelt_macro_LAMBDA___28__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_113_warmelt_macro_LAMBDA___29__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_114_warmelt_macro_LAMBDA___30__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_115_warmelt_macro_LAMBDA___31__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_116_warmelt_macro_MEXPAND_MULTICALL (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_117_warmelt_macro_LAMBDA___32__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_118_warmelt_macro_LAMBDA___33__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_119_warmelt_macro_MEXPAND_QUOTE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_120_warmelt_macro_MEXPAND_COMMENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_121_warmelt_macro_MEXPAND_CHEADER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_124_warmelt_macro_LAMBDA___34__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_125_warmelt_macro_MEXPAND_PROGN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_126_warmelt_macro_MEXPAND_RETURN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_127_warmelt_macro_MEXPAND_FOREVER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_128_warmelt_macro_LAMBDA___35__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_129_warmelt_macro_MEXPAND_EXIT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_130_warmelt_macro_LAMBDA___36__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_131_warmelt_macro_MEXPAND_AGAIN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_132_warmelt_macro_MEXPAND_COMPILE_WARNING (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_133_warmelt_macro_MEXPAND_ASSERT_MSG (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_134_warmelt_macro_MEXPAND_DEBUG_MSG (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_135_warmelt_macro_MEXPAND_DEBUG (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_136_warmelt_macro_MEXPAND_EXPORT_VALUES (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_137_warmelt_macro_LAMBDA___37__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_138_warmelt_macro_MEXPAND_EXPORT_MACRO (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_139_warmelt_macro_MEXPAND_EXPORT_PATMACRO (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_140_warmelt_macro_MEXPAND_EXPORT_CLASS (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_141_warmelt_macro_LAMBDA___38__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_142_warmelt_macro_MEXPAND_EXPORT_SYNONYM (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_143_warmelt_macro_MEXPAND_CURRENT_MODULE_ENVIRONMENT_CONTAINER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_144_warmelt_macro_MEXPAND_PARENT_MODULE_ENVIRONMENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_145_warmelt_macro_MEXPAND_UPDATE_CURRENT_MODULE_ENVIRONMENT_CONTAINER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_146_warmelt_macro_MEXPAND_FETCH_PREDEFINED (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); melt_ptr_t MELT_MODULE_VISIBILITY meltrout_147_warmelt_macro_MEXPAND_STORE_PREDEFINED (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_); #ifdef __cplusplus extern "C" #endif void *start_module_melt (void *); /* define different names when debugging or not */ #if MELT_HAVE_DEBUG extern #ifdef __cplusplus "C" #endif /*__cplusplus*/ const char meltmodule_warmelt_macro__melt_have_debug_enabled[]; #define melt_have_debug_string meltmodule_warmelt_macro__melt_have_debug_enabled #else /*!MELT_HAVE_DEBUG */ extern #ifdef __cplusplus "C" #endif /*__cplusplus*/ const char meltmodule_warmelt_macro__melt_have_debug_disabled[]; #define melt_have_debug_string meltmodule_warmelt_macro__melt_have_debug_disabled #endif /*!MELT_HAVE_DEBUG */ struct frame_start_module_melt_st; void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_0 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_1 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_2 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_3 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_4 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_5 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_6 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_7 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_8 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_9 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_10 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_11 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_12 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_13 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_14 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_15 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_16 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_17 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_18 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_19 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_20 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_21 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_22 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_23 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_24 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_25 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_26 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_27 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_28 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_29 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_30 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_31 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_32 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_33 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__initialmeltchunk_34 (struct frame_start_module_melt_st *, char *); void MELT_MODULE_VISIBILITY meltmod__warmelt_macro__forward_or_mark_module_start_frame (struct melt_callframe_st *fp, int marking); /**** warmelt-macro+04.c implementations ****/ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_101_warmelt_macro_MEXPAND_LET (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un *meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un *meltxrestab_) { long current_blocklevel_signals_meltrout_101_warmelt_macro_MEXPAND_LET_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_101_warmelt_macro_MEXPAND_LET_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 46 melt_ptr_t mcfr_varptr[46]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_101_warmelt_macro_MEXPAND_LET_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 46; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 46; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_LET", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5284:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5285:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5285:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5285:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5285; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_let sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5285:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5285:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5285:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5286:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5286:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5286:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5286) ? (5286) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5286:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5287:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:5287:/ cond"); /*cond */ if ( /*_#IS_A__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5287:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5287) ? (5287) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5287:/ clear"); /*clear *//*_#IS_A__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5288:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#NULL__L5*/ meltfnum[1] = (( /*_.MEXPANDER__V4*/ meltfptr[3]) == NULL);; MELT_LOCATION ("warmelt-macro.melt:5288:/ cond"); /*cond */ if ( /*_#NULL__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_.MEXPANDER__V4*/ meltfptr[3] = /*_.SETQ___V15*/ meltfptr[14] = ( /*!MACROEXPAND_1 */ meltfrout->tabval[3]);; /*_.IF___V14*/ meltfptr[12] = /*_.SETQ___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5288:/ clear"); /*clear *//*_.SETQ___V15*/ meltfptr[14] = 0; } ; } else { /*^cond.else */ /*_.IF___V14*/ meltfptr[12] = NULL;; } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5289:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L6*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5289:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V17*/ meltfptr[16] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5289:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5289) ? (5289) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V17*/ meltfptr[16] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V16*/ meltfptr[14] = /*_.IFELSE___V17*/ meltfptr[16];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5289:/ clear"); /*clear *//*_#IS_OBJECT__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V17*/ meltfptr[16] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V16*/ meltfptr[14] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5290:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5291:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V19*/ meltfptr[18] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5292:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V20*/ meltfptr[19] = slot; }; ; /*_.LIST_FIRST__V21*/ meltfptr[20] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V19*/ meltfptr[18])));; /*^compute */ /*_.SECPAIR__V22*/ meltfptr[21] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V21*/ meltfptr[20])));; /*^compute */ /*_.RESTPAIR__V23*/ meltfptr[22] = (melt_pair_tail ((melt_ptr_t) ( /*_.SECPAIR__V22*/ meltfptr[21])));; /*^compute */ /*_.BINDEXPR__V24*/ meltfptr[23] = (melt_pair_head ((melt_ptr_t) ( /*_.SECPAIR__V22*/ meltfptr[21])));; MELT_LOCATION ("warmelt-macro.melt:5296:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V25*/ meltfptr[24] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[4])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; /*_.BINDTUP__V26*/ meltfptr[25] = ( /*nil */ NULL);; /*^compute */ /*_.BODYTUP__V27*/ meltfptr[26] = ( /*nil */ NULL);; MELT_LOCATION ("warmelt-macro.melt:5300:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*_.BINDEXPR__V24*/ meltfptr[23]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5301:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L7*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.BINDEXPR__V24*/ meltfptr[23]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5301:/ cond"); /*cond */ if ( /*_#IS_A__L7*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5304:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.BINDEXPR__V24*/ meltfptr[23]), 2, "SEXP_CONTENTS"); /*_.SEXP_CONTENTS__V30*/ meltfptr[29] = slot; }; ; /*_.LIST_FIRST__V31*/ meltfptr[30] = (melt_list_first ((melt_ptr_t) ( /*_.SEXP_CONTENTS__V30*/ meltfptr[29])));; MELT_LOCATION ("warmelt-macro.melt:5306:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V33*/ meltfptr[32] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_9 */ meltfrout-> tabval[9])), (4)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32]))); ((meltclosure_ptr_t) /*_.LAMBDA___V33*/ meltfptr[32])-> tabval[0] = (melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32]))); ((meltclosure_ptr_t) /*_.LAMBDA___V33*/ meltfptr[32])-> tabval[1] = (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32]))); ((meltclosure_ptr_t) /*_.LAMBDA___V33*/ meltfptr[32])-> tabval[2] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 3 >= 0 && 3 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V33*/ meltfptr[32]))); ((meltclosure_ptr_t) /*_.LAMBDA___V33*/ meltfptr[32])-> tabval[3] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V32*/ meltfptr[31] = /*_.LAMBDA___V33*/ meltfptr[32];; MELT_LOCATION ("warmelt-macro.melt:5303:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout-> tabval[6]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V32*/ meltfptr[31]; /*_.PAIRLIST_TO_MULTIPLE__V34*/ meltfptr[33] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout-> tabval[5])), (melt_ptr_t) ( /*_.LIST_FIRST__V31*/ meltfptr[30]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5302:/ compute"); /*_.BINDTUP__V26*/ meltfptr[25] = /*_.SETQ___V35*/ meltfptr[34] = /*_.PAIRLIST_TO_MULTIPLE__V34*/ meltfptr[33];; /*_.IFELSE___V29*/ meltfptr[28] = /*_.SETQ___V35*/ meltfptr[34];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5301:/ clear"); /*clear *//*_.SEXP_CONTENTS__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V31*/ meltfptr[30] = 0; /*^clear */ /*clear *//*_.LAMBDA___V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.PAIRLIST_TO_MULTIPLE__V34*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.SETQ___V35*/ meltfptr[34] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5310:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]), ("missing letbinding-s in LET"), (melt_ptr_t) 0); } ; /*clear *//*_.IFELSE___V29*/ meltfptr[28] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IF___V28*/ meltfptr[27] = /*_.IFELSE___V29*/ meltfptr[28];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5300:/ clear"); /*clear *//*_#IS_A__L7*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V29*/ meltfptr[28] = 0; } ; } else { /*^cond.else */ /*_.IF___V28*/ meltfptr[27] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5314:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V37*/ meltfptr[30] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_14 */ meltfrout-> tabval[14])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[30])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[30]))); ((meltclosure_ptr_t) /*_.LAMBDA___V37*/ meltfptr[30])->tabval[0] = (melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]); ; /*_.LAMBDA___V36*/ meltfptr[29] = /*_.LAMBDA___V37*/ meltfptr[30];; MELT_LOCATION ("warmelt-macro.melt:5312:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V36*/ meltfptr[29]; /*_.MULTIPLE_EVERY__V38*/ meltfptr[31] = melt_apply ((meltclosure_ptr_t) (( /*!MULTIPLE_EVERY */ meltfrout->tabval[10])), (melt_ptr_t) ( /*_.BINDTUP__V26*/ meltfptr[25]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5327:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V40*/ meltfptr[34] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_15 */ meltfrout-> tabval[15])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V40*/ meltfptr[34])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V40*/ meltfptr[34])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V40*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V40*/ meltfptr[34])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V39*/ meltfptr[33] = /*_.LAMBDA___V40*/ meltfptr[34];; MELT_LOCATION ("warmelt-macro.melt:5325:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[6]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V39*/ meltfptr[33]; /*_.PAIRLIST_TO_MULTIPLE__V41*/ meltfptr[28] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[5])), (melt_ptr_t) ( /*_.RESTPAIR__V23*/ meltfptr[22]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.BODYTUP__V27*/ meltfptr[26] = /*_.SETQ___V42*/ meltfptr[41] = /*_.PAIRLIST_TO_MULTIPLE__V41*/ meltfptr[28];; MELT_LOCATION ("warmelt-macro.melt:5328:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5329:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_LET */ meltfrout->tabval[16])), (4), "CLASS_SOURCE_LET"); /*_.INST__V45*/ meltfptr[44] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V45*/ meltfptr[44])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V45*/ meltfptr[44]), (1), ( /*_.LOC__V20*/ meltfptr[19]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLET_BINDINGS", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V45*/ meltfptr[44])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V45*/ meltfptr[44]), (2), ( /*_.BINDTUP__V26*/ meltfptr[25]), "SLET_BINDINGS"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLET_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V45*/ meltfptr[44])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V45*/ meltfptr[44]), (3), ( /*_.BODYTUP__V27*/ meltfptr[26]), "SLET_BODY"); ; /*_.LETR__V44*/ meltfptr[43] = /*_.INST__V45*/ meltfptr[44];; MELT_LOCATION ("warmelt-macro.melt:5333:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LETR__V44*/ meltfptr[43];; { MELT_LOCATION ("warmelt-macro.melt:5333:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V43*/ meltfptr[42] = /*_.RETURN___V46*/ meltfptr[45];; MELT_LOCATION ("warmelt-macro.melt:5328:/ clear"); /*clear *//*_.LETR__V44*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.RETURN___V46*/ meltfptr[45] = 0; /*_.LET___V18*/ meltfptr[16] = /*_.LET___V43*/ meltfptr[42];; MELT_LOCATION ("warmelt-macro.melt:5290:/ clear"); /*clear *//*_.CONT__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.LOC__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.SECPAIR__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.RESTPAIR__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.BINDEXPR__V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.NEWENV__V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.BINDTUP__V26*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.BODYTUP__V27*/ meltfptr[26] = 0; /*^clear */ /*clear *//*_.IF___V28*/ meltfptr[27] = 0; /*^clear */ /*clear *//*_.LAMBDA___V36*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.MULTIPLE_EVERY__V38*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.LAMBDA___V39*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.PAIRLIST_TO_MULTIPLE__V41*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_.SETQ___V42*/ meltfptr[41] = 0; /*^clear */ /*clear *//*_.LET___V43*/ meltfptr[42] = 0; MELT_LOCATION ("warmelt-macro.melt:5284:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V18*/ meltfptr[16];; { MELT_LOCATION ("warmelt-macro.melt:5284:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_#NULL__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IF___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.IFCPP___V16*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.LET___V18*/ meltfptr[16] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_LET", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_101_warmelt_macro_MEXPAND_LET_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_101_warmelt_macro_MEXPAND_LET */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_102_warmelt_macro_LAMBDA___22__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_102_warmelt_macro_LAMBDA___22___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_102_warmelt_macro_LAMBDA___22___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_102_warmelt_macro_LAMBDA___22___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5306:/ getarg"); /*_.B__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-macro.melt:5307:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L1*/ meltfnum[0] = !melt_is_instance_of ((melt_ptr_t) ( /*_.B__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5307:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5308:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) (( /*~LOC */ meltfclos->tabval[0])), ("sexpr expected in LET binding"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5309:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~ENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[2]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[3]); /*_.MEXPAND_LETBINDING__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*!MEXPAND_LETBINDING */ meltfrout->tabval[1])), (melt_ptr_t) ( /*_.B__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5306:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPAND_LETBINDING__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5306:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_NOT_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.MEXPAND_LETBINDING__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_102_warmelt_macro_LAMBDA___22___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_102_warmelt_macro_LAMBDA___22__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_103_warmelt_macro_LAMBDA___23__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_103_warmelt_macro_LAMBDA___23___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_103_warmelt_macro_LAMBDA___23___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 13 melt_ptr_t mcfr_varptr[13]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_103_warmelt_macro_LAMBDA___23___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 13; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 13; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5314:/ getarg"); /*_.SLB__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5315:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SLB__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SOURCE_LET_BINDING */ meltfrout->tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5315:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V4*/ meltfptr[3] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5315:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("mexp.let. check slb"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5315) ? (5315) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V4*/ meltfptr[3] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V3*/ meltfptr[2] = /*_.IFELSE___V4*/ meltfptr[3];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5315:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V4*/ meltfptr[3] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V3*/ meltfptr[2] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5316:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5317:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SLB__V2*/ meltfptr[1]), 4, "SLETB_EXPR"); /*_.SX__V6*/ meltfptr[5] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5318:/ checksignal"); MELT_CHECK_SIGNAL (); ; MELT_LOCATION ("warmelt-macro.melt:5319:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SLB__V2*/ meltfptr[1]), 3, "SLETB_BINDER"); /*_.SLETB_BINDER__V7*/ meltfptr[6] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5320:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SLB__V2*/ meltfptr[1]), 2, "SLETB_TYPE"); /*_.SLETB_TYPE__V8*/ meltfptr[7] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5318:/ quasiblock"); /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_LET_BINDING */ meltfrout->tabval[1])), (4), "CLASS_LET_BINDING"); /*_.INST__V10*/ meltfptr[9] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @BINDER", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V10*/ meltfptr[9])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V10*/ meltfptr[9]), (0), ( /*_.SLETB_BINDER__V7*/ meltfptr[6]), "BINDER"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LETBIND_TYPE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V10*/ meltfptr[9])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V10*/ meltfptr[9]), (1), ( /*_.SLETB_TYPE__V8*/ meltfptr[7]), "LETBIND_TYPE"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LETBIND_EXPR", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V10*/ meltfptr[9])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V10*/ meltfptr[9]), (2), ( /*_.SX__V6*/ meltfptr[5]), "LETBIND_EXPR"); ; /*_.LB__V9*/ meltfptr[8] = /*_.INST__V10*/ meltfptr[9];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5322:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_LIST__L2*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.LB__V9*/ meltfptr[8])) == MELTOBMAG_LIST);; /*^compute */ /*_#NOT__L3*/ meltfnum[2] = (!( /*_#IS_LIST__L2*/ meltfnum[0]));; MELT_LOCATION ("warmelt-macro.melt:5322:/ cond"); /*cond */ if ( /*_#NOT__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*_.IFELSE___V12*/ meltfptr[11] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5322:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("mexp.let not list lb"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5322) ? (5322) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V11*/ meltfptr[10] = /*_.IFELSE___V12*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5322:/ clear"); /*clear *//*_#IS_LIST__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#NOT__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V11*/ meltfptr[10] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5323:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LB__V9*/ meltfptr[8]; /*_.PUT_ENV__V13*/ meltfptr[11] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout->tabval[2])), (melt_ptr_t) (( /*~NEWENV */ meltfclos->tabval[0])), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.LET___V5*/ meltfptr[3] = /*_.PUT_ENV__V13*/ meltfptr[11];; MELT_LOCATION ("warmelt-macro.melt:5316:/ clear"); /*clear *//*_.SX__V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.SLETB_BINDER__V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.SLETB_TYPE__V8*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.LB__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.IFCPP___V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.PUT_ENV__V13*/ meltfptr[11] = 0; MELT_LOCATION ("warmelt-macro.melt:5314:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V5*/ meltfptr[3];; { MELT_LOCATION ("warmelt-macro.melt:5314:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^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 ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_103_warmelt_macro_LAMBDA___23___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_103_warmelt_macro_LAMBDA___23__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_104_warmelt_macro_LAMBDA___24__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_104_warmelt_macro_LAMBDA___24___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_104_warmelt_macro_LAMBDA___24___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_104_warmelt_macro_LAMBDA___24___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5327:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5327:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_104_warmelt_macro_LAMBDA___24___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_104_warmelt_macro_LAMBDA___24__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 7 melt_ptr_t mcfr_varptr[7]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 7; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 7; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("YES_RECURSIVELY_CONSTRUCTIBLE", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5351:/ getarg"); /*_.RECV__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5352:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5352:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5352:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5352; /*^apply.arg */ argtab[3].meltbp_cstring = "yes_recursively_constructible recv"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.RECV__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V4*/ meltfptr[3] = /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5352:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = 0; } ; } else { /*^cond.else */ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5352:/ quasiblock"); /*_.PROGN___V6*/ meltfptr[4] = /*_.IF___V4*/ meltfptr[3];; /*^compute */ /*_.IFCPP___V3*/ meltfptr[2] = /*_.PROGN___V6*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5352:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.PROGN___V6*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V3*/ meltfptr[2] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5353:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.RECV__V2*/ meltfptr[1];; { MELT_LOCATION ("warmelt-macro.melt:5353:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5351:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.RETURN___V7*/ meltfptr[3];; { MELT_LOCATION ("warmelt-macro.melt:5351:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_.RETURN___V7*/ meltfptr[3] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("YES_RECURSIVELY_CONSTRUCTIBLE", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_105_warmelt_macro_YES_RECURSIVELY_CONSTRUCTIBLE */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_106_warmelt_macro_MEXPAND_LETREC (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_106_warmelt_macro_MEXPAND_LETREC_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_106_warmelt_macro_MEXPAND_LETREC_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 126 melt_ptr_t mcfr_varptr[126]; #define MELTFRAM_NBVARNUM 37 long mcfr_varnum[37]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_106_warmelt_macro_MEXPAND_LETREC_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 126; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 126; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_LETREC", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5364:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5365:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5365:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5365:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5365; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec sexpr"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5365:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5365:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5365:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5366:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5366:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5366:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5366) ? (5366) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5366:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5367:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:5367:/ cond"); /*cond */ if ( /*_#IS_A__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5367:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5367) ? (5367) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5367:/ clear"); /*clear *//*_#IS_A__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5368:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:5368:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5368:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5368) ? (5368) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5368:/ clear"); /*clear *//*_#IS_CLOSURE__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5369:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L6*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5369:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V17*/ meltfptr[16] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5369:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5369) ? (5369) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V17*/ meltfptr[16] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V16*/ meltfptr[14] = /*_.IFELSE___V17*/ meltfptr[16];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5369:/ clear"); /*clear *//*_#IS_OBJECT__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V17*/ meltfptr[16] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V16*/ meltfptr[14] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5370:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5371:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V19*/ meltfptr[18] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5372:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V20*/ meltfptr[19] = slot; }; ; /*_.LIST_FIRST__V21*/ meltfptr[20] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V19*/ meltfptr[18])));; /*^compute */ /*_.SECPAIR__V22*/ meltfptr[21] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V21*/ meltfptr[20])));; /*^compute */ /*_.RESTPAIR__V23*/ meltfptr[22] = (melt_pair_tail ((melt_ptr_t) ( /*_.SECPAIR__V22*/ meltfptr[21])));; /*^compute */ /*_.BINDEXPR__V24*/ meltfptr[23] = (melt_pair_head ((melt_ptr_t) ( /*_.SECPAIR__V22*/ meltfptr[21])));; MELT_LOCATION ("warmelt-macro.melt:5376:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V25*/ meltfptr[24] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[3])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; /*_#NBIND__L7*/ meltfnum[1] = 0;; /*^compute */ /*_.BINDTUP__V26*/ meltfptr[25] = ( /*nil */ NULL);; /*^compute */ /*_.SRCBINDTUP__V27*/ meltfptr[26] = ( /*nil */ NULL);; /*^compute */ /*_.VARTUP__V28*/ meltfptr[27] = ( /*nil */ NULL);; /*^compute */ /*_.EXPRTUP__V29*/ meltfptr[28] = ( /*nil */ NULL);; /*^compute */ /*_.BODYTUP__V30*/ meltfptr[29] = ( /*nil */ NULL);; MELT_LOCATION ("warmelt-macro.melt:5385:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*_.BINDEXPR__V24*/ meltfptr[23]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5386:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L8*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.BINDEXPR__V24*/ meltfptr[23]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5386:/ cond"); /*cond */ if ( /*_#IS_A__L8*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5387:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5389:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.BINDEXPR__V24*/ meltfptr[23]), 2, "SEXP_CONTENTS"); /*_.SEXP_CONTENTS__V34*/ meltfptr[33] = slot; }; ; /*_.LIST_FIRST__V35*/ meltfptr[34] = (melt_list_first ((melt_ptr_t) ( /*_.SEXP_CONTENTS__V34*/ meltfptr[33])));; MELT_LOCATION ("warmelt-macro.melt:5391:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V37*/ meltfptr[36] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_7 */ meltfrout-> tabval[7])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[36])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[36]))); ((meltclosure_ptr_t) /*_.LAMBDA___V37*/ meltfptr[36])-> tabval[0] = (melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]); ; /*_.LAMBDA___V36*/ meltfptr[35] = /*_.LAMBDA___V37*/ meltfptr[36];; MELT_LOCATION ("warmelt-macro.melt:5388:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout-> tabval[5]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V36*/ meltfptr[35]; /*_.RECBINDTUP__V38*/ meltfptr[37] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout-> tabval[4])), (melt_ptr_t) ( /*_.LIST_FIRST__V35*/ meltfptr[34]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_#NBRECBIND__L9*/ meltfnum[8] = (melt_multiple_length ((melt_ptr_t) ( /*_.RECBINDTUP__V38*/ meltfptr[37])));; /*^compute */ /*_.RECSEXPRTUP__V39*/ meltfptr[38] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[5])), ( /*_#NBRECBIND__L9*/ meltfnum[8])));; MELT_LOCATION ("warmelt-macro.melt:5398:/ compute"); /*_#NBIND__L7*/ meltfnum[1] = /*_#SETQ___L10*/ meltfnum[9] = /*_#NBRECBIND__L9*/ meltfnum[8];; /*_.MAKE_MULTIPLE__V40*/ meltfptr[39] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[5])), ( /*_#NBIND__L7*/ meltfnum[1])));; MELT_LOCATION ("warmelt-macro.melt:5399:/ compute"); /*_.BINDTUP__V26*/ meltfptr[25] = /*_.SETQ___V41*/ meltfptr[40] = /*_.MAKE_MULTIPLE__V40*/ meltfptr[39];; /*_.MAKE_MULTIPLE__V42*/ meltfptr[41] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[5])), ( /*_#NBIND__L7*/ meltfnum[1])));; MELT_LOCATION ("warmelt-macro.melt:5400:/ compute"); /*_.SRCBINDTUP__V27*/ meltfptr[26] = /*_.SETQ___V43*/ meltfptr[42] = /*_.MAKE_MULTIPLE__V42*/ meltfptr[41];; /*_.MAKE_MULTIPLE__V44*/ meltfptr[43] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[5])), ( /*_#NBIND__L7*/ meltfnum[1])));; MELT_LOCATION ("warmelt-macro.melt:5401:/ compute"); /*_.VARTUP__V28*/ meltfptr[27] = /*_.SETQ___V45*/ meltfptr[44] = /*_.MAKE_MULTIPLE__V44*/ meltfptr[43];; /*_.MAKE_MULTIPLE__V46*/ meltfptr[45] = (meltgc_new_multiple ((meltobject_ptr_t) (( /*!DISCR_MULTIPLE */ meltfrout->tabval[5])), ( /*_#NBIND__L7*/ meltfnum[1])));; MELT_LOCATION ("warmelt-macro.melt:5402:/ compute"); /*_.EXPRTUP__V29*/ meltfptr[28] = /*_.SETQ___V47*/ meltfptr[46] = /*_.MAKE_MULTIPLE__V46*/ meltfptr[45];; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit1__EACHTUP */ long meltcit1__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.RECBINDTUP__V38*/ meltfptr[37]); for ( /*_#BINDIX__L11*/ meltfnum[10] = 0; ( /*_#BINDIX__L11*/ meltfnum[10] >= 0) && ( /*_#BINDIX__L11*/ meltfnum[10] < meltcit1__EACHTUP_ln); /*_#BINDIX__L11*/ meltfnum[10]++) { /*_.CURBINDEXPR__V48*/ meltfptr[47] = melt_multiple_nth ((melt_ptr_t) ( /*_.RECBINDTUP__V38*/ meltfptr[37]), /*_#BINDIX__L11*/ meltfnum[10]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5407:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L12*/ meltfnum[11] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5407:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L12*/ meltfnum[11]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5407:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5407; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec firstloop curbindexpr"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CURBINDEXPR__V48*/ meltfptr[47]; /*_.MELT_DEBUG_FUN__V51*/ meltfptr[50] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V50*/ meltfptr[49] = /*_.MELT_DEBUG_FUN__V51*/ meltfptr[50];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5407:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V51*/ meltfptr[50] = 0; } ; } else { /*^cond.else */ /*_.IF___V50*/ meltfptr[49] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5407:/ quasiblock"); /*_.PROGN___V52*/ meltfptr[50] = /*_.IF___V50*/ meltfptr[49];; /*^compute */ /*_.IFCPP___V49*/ meltfptr[48] = /*_.PROGN___V52*/ meltfptr[50];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5407:/ clear"); /*clear *//*_#MELT_NEED_DBG__L12*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IF___V50*/ meltfptr[49] = 0; /*^clear */ /*clear *//*_.PROGN___V52*/ meltfptr[50] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V49*/ meltfptr[48] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5408:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L14*/ meltfnum[12] = !melt_is_instance_of ((melt_ptr_t) ( /*_.CURBINDEXPR__V48*/ meltfptr[47]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5408:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L14*/ meltfnum[12]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5410:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5410:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.IF___V53*/ meltfptr[49] = /*_.RETURN___V54*/ meltfptr[50];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5408:/ clear"); /*clear *//*_.RETURN___V54*/ meltfptr[50] = 0; } ; } else { /*^cond.else */ /*_.IF___V53*/ meltfptr[49] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5411:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CURBINDEXPR__V48*/ meltfptr[47]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURBINDEXPR__V48*/ meltfptr[47]), 2, "SEXP_CONTENTS"); /*_.CURCONT__V55*/ meltfptr[50] = slot; }; ; } else { /*^cond.else */ /*_.CURCONT__V55*/ meltfptr[50] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5412:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CURBINDEXPR__V48*/ meltfptr[47]), (melt_ptr_t) (( /*!CLASS_LOCATED */ meltfrout->tabval[8]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURBINDEXPR__V48*/ meltfptr[47]), 1, "LOCA_LOCATION"); /*_.CURLOC__V56*/ meltfptr[55] = slot; }; ; } else { /*^cond.else */ /*_.CURLOC__V56*/ meltfptr[55] = NULL;; } ; /*^compute */ /*_.CURPAIR__V57*/ meltfptr[56] = (melt_list_first ((melt_ptr_t) ( /*_.CURCONT__V55*/ meltfptr[50])));; /*^compute */ /*_.CURCOMP__V58*/ meltfptr[57] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V57*/ meltfptr[56])));; /*^compute */ /*_.CURSYMB__V59*/ meltfptr[58] = ( /*nil */ NULL);; /*^compute */ /*_.CURSEXPR__V60*/ meltfptr[59] = ( /*nil */ NULL);; MELT_LOCATION ("warmelt-macro.melt:5418:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L15*/ meltfnum[11] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCOMP__V58*/ meltfptr[57]), (melt_ptr_t) (( /*!CLASS_KEYWORD */ meltfrout->tabval[9])));; MELT_LOCATION ("warmelt-macro.melt:5418:/ cond"); /*cond */ if ( /*_#IS_A__L15*/ meltfnum[11]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5419:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURLOC__V56*/ meltfptr[55]), ("keyword invalid in LETREC binding"), (melt_ptr_t) 0); } ; /*clear *//*_.IFELSE___V61*/ meltfptr[60] = 0; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-macro.melt:5418:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5421:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L16*/ meltfnum[15] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCOMP__V58*/ meltfptr[57]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout->tabval[10])));; MELT_LOCATION ("warmelt-macro.melt:5421:/ cond"); /*cond */ if ( /*_#IS_A__L16*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5422:/ compute"); /*_.CURSYMB__V59*/ meltfptr[58] = /*_.SETQ___V63*/ meltfptr[62] = /*_.CURCOMP__V58*/ meltfptr[57];; /*_.IFELSE___V62*/ meltfptr[61] = /*_.SETQ___V63*/ meltfptr[62];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5421:/ clear"); /*clear *//*_.SETQ___V63*/ meltfptr[62] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5425:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURLOC__V56*/ meltfptr[55]), ("invalid LETREC binding - expecting ( )"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5424:/ quasiblock"); /*epilog */ } ; } ; /*_.IFELSE___V61*/ meltfptr[60] = /*_.IFELSE___V62*/ meltfptr[61];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5418:/ clear"); /*clear *//*_#IS_A__L16*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.IFELSE___V62*/ meltfptr[61] = 0; } ; } ; /*_.PAIR_TAIL__V64*/ meltfptr[62] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V57*/ meltfptr[56])));; MELT_LOCATION ("warmelt-macro.melt:5427:/ compute"); /*_.CURPAIR__V57*/ meltfptr[56] = /*_.SETQ___V65*/ meltfptr[61] = /*_.PAIR_TAIL__V64*/ meltfptr[62];; /*_.PAIR_HEAD__V66*/ meltfptr[65] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V57*/ meltfptr[56])));; MELT_LOCATION ("warmelt-macro.melt:5428:/ compute"); /*_.CURCOMP__V58*/ meltfptr[57] = /*_.SETQ___V67*/ meltfptr[66] = /*_.PAIR_HEAD__V66*/ meltfptr[65];; MELT_LOCATION ("warmelt-macro.melt:5429:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L17*/ meltfnum[15] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCOMP__V58*/ meltfptr[57]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5429:/ cond"); /*cond */ if ( /*_#IS_A__L17*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5430:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L18*/ meltfnum[17] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURSYMB__V59*/ meltfptr[58]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout->tabval[10])));; MELT_LOCATION ("warmelt-macro.melt:5430:/ cond"); /*cond */ if ( /*_#IS_A__L18*/ meltfnum[17]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5432:/ compute"); /*_.CURSEXPR__V60*/ meltfptr[59] = /*_.SETQ___V68*/ meltfptr[67] = /*_.CURCOMP__V58*/ meltfptr[57];; { MELT_LOCATION ("warmelt-macro.melt:5433:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.RECSEXPRTUP__V39*/ meltfptr[38]), ( /*_#BINDIX__L11*/ meltfnum[10]), (melt_ptr_t) ( /*_.CURSEXPR__V60*/ meltfptr[59])); } ; { MELT_LOCATION ("warmelt-macro.melt:5434:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.VARTUP__V28*/ meltfptr[27]), ( /*_#BINDIX__L11*/ meltfnum[10]), (melt_ptr_t) ( /*_.CURSYMB__V59*/ meltfptr[58])); } ; MELT_LOCATION ("warmelt-macro.melt:5431:/ quasiblock"); /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5430:/ clear"); /*clear *//*_.SETQ___V68*/ meltfptr[67] = 0; } ; } /*noelse */ ; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5429:/ clear"); /*clear *//*_#IS_A__L18*/ meltfnum[17] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5436:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURLOC__V56*/ meltfptr[55]), ("invalid LETREC binding - missing constructive expression"), (melt_ptr_t) 0); } ; /*epilog */ } ; } ; MELT_LOCATION ("warmelt-macro.melt:5437:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.PAIR_TAIL__V69*/ meltfptr[67] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V57*/ meltfptr[56])));; MELT_LOCATION ("warmelt-macro.melt:5437:/ cond"); /*cond */ if ( /*_.PAIR_TAIL__V69*/ meltfptr[67]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5438:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURLOC__V56*/ meltfptr[55]), ("invalid LETREC binding - more than two components"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5411:/ clear"); /*clear *//*_.CURCONT__V55*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.CURLOC__V56*/ meltfptr[55] = 0; /*^clear */ /*clear *//*_.CURPAIR__V57*/ meltfptr[56] = 0; /*^clear */ /*clear *//*_.CURCOMP__V58*/ meltfptr[57] = 0; /*^clear */ /*clear *//*_.CURSYMB__V59*/ meltfptr[58] = 0; /*^clear */ /*clear *//*_.CURSEXPR__V60*/ meltfptr[59] = 0; /*^clear */ /*clear *//*_#IS_A__L15*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IFELSE___V61*/ meltfptr[60] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V64*/ meltfptr[62] = 0; /*^clear */ /*clear *//*_.SETQ___V65*/ meltfptr[61] = 0; /*^clear */ /*clear *//*_.PAIR_HEAD__V66*/ meltfptr[65] = 0; /*^clear */ /*clear *//*_.SETQ___V67*/ meltfptr[66] = 0; /*^clear */ /*clear *//*_#IS_A__L17*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V69*/ meltfptr[67] = 0; if ( /*_#BINDIX__L11*/ meltfnum[10] < 0) break; } /* end foreach_in_multiple meltcit1__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5404:/ clear"); /*clear *//*_.CURBINDEXPR__V48*/ meltfptr[47] = 0; /*^clear */ /*clear *//*_#BINDIX__L11*/ meltfnum[10] = 0; /*^clear */ /*clear *//*_.IFCPP___V49*/ meltfptr[48] = 0; /*^clear */ /*clear *//*_#IS_NOT_A__L14*/ meltfnum[12] = 0; /*^clear */ /*clear *//*_.IF___V53*/ meltfptr[49] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5440:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L19*/ meltfnum[17] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5440:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L19*/ meltfnum[17]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L20*/ meltfnum[11] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5440:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L20*/ meltfnum[11]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5440; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec recsexprtup after firstloop"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.RECSEXPRTUP__V39*/ meltfptr[38]; /*_.MELT_DEBUG_FUN__V72*/ meltfptr[56] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V71*/ meltfptr[55] = /*_.MELT_DEBUG_FUN__V72*/ meltfptr[56];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5440:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L20*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V72*/ meltfptr[56] = 0; } ; } else { /*^cond.else */ /*_.IF___V71*/ meltfptr[55] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5440:/ quasiblock"); /*_.PROGN___V73*/ meltfptr[57] = /*_.IF___V71*/ meltfptr[55];; /*^compute */ /*_.IFCPP___V70*/ meltfptr[50] = /*_.PROGN___V73*/ meltfptr[57];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5440:/ clear"); /*clear *//*_#MELT_NEED_DBG__L19*/ meltfnum[17] = 0; /*^clear */ /*clear *//*_.IF___V71*/ meltfptr[55] = 0; /*^clear */ /*clear *//*_.PROGN___V73*/ meltfptr[57] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V70*/ meltfptr[50] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5441:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L21*/ meltfnum[15] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5441:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L21*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L22*/ meltfnum[11] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5441:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L22*/ meltfnum[11]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5441; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec vartup after firstloop"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.VARTUP__V28*/ meltfptr[27]; /*_.MELT_DEBUG_FUN__V76*/ meltfptr[60] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V75*/ meltfptr[59] = /*_.MELT_DEBUG_FUN__V76*/ meltfptr[60];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5441:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L22*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V76*/ meltfptr[60] = 0; } ; } else { /*^cond.else */ /*_.IF___V75*/ meltfptr[59] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5441:/ quasiblock"); /*_.PROGN___V77*/ meltfptr[62] = /*_.IF___V75*/ meltfptr[59];; /*^compute */ /*_.IFCPP___V74*/ meltfptr[58] = /*_.PROGN___V77*/ meltfptr[62];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5441:/ clear"); /*clear *//*_#MELT_NEED_DBG__L21*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.IF___V75*/ meltfptr[59] = 0; /*^clear */ /*clear *//*_.PROGN___V77*/ meltfptr[62] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V74*/ meltfptr[58] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5444:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[2]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]), 0, "ENV_BIND"); /*_.ENVMAP__V78*/ meltfptr[61] = slot; }; ; } else { /*^cond.else */ /*_.ENVMAP__V78*/ meltfptr[61] = NULL;; } ; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit2__EACHTUP */ long meltcit2__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.VARTUP__V28*/ meltfptr[27]); for ( /*_#VARIX__L23*/ meltfnum[17] = 0; ( /*_#VARIX__L23*/ meltfnum[17] >= 0) && ( /*_#VARIX__L23*/ meltfnum[17] < meltcit2__EACHTUP_ln); /*_#VARIX__L23*/ meltfnum[17]++) { /*_.CURVAR__V79*/ meltfptr[65] = melt_multiple_nth ((melt_ptr_t) ( /*_.VARTUP__V28*/ meltfptr[27]), /*_#VARIX__L23*/ meltfnum[17]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5449:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L24*/ meltfnum[11] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5449:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L24*/ meltfnum[11]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L25*/ meltfnum[15] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5449:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L25*/ meltfnum[15]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5449; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec second loop curvar"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CURVAR__V79*/ meltfptr[65]; /*_.MELT_DEBUG_FUN__V82*/ meltfptr[56] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V81*/ meltfptr[67] = /*_.MELT_DEBUG_FUN__V82*/ meltfptr[56];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5449:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L25*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V82*/ meltfptr[56] = 0; } ; } else { /*^cond.else */ /*_.IF___V81*/ meltfptr[67] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5449:/ quasiblock"); /*_.PROGN___V83*/ meltfptr[55] = /*_.IF___V81*/ meltfptr[67];; /*^compute */ /*_.IFCPP___V80*/ meltfptr[66] = /*_.PROGN___V83*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5449:/ clear"); /*clear *//*_#MELT_NEED_DBG__L24*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IF___V81*/ meltfptr[67] = 0; /*^clear */ /*clear *//*_.PROGN___V83*/ meltfptr[55] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V80*/ meltfptr[66] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5450:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.MAPOBJECT_GET__V84*/ meltfptr[57] = /*mapobject_get */ melt_get_mapobjects ((meltmapobjects_ptr_t) ( /*_.ENVMAP__V78*/ meltfptr[61]), (meltobject_ptr_t) ( /*_.CURVAR__V79*/ meltfptr[65]));; MELT_LOCATION ("warmelt-macro.melt:5450:/ cond"); /*cond */ if ( /*_.MAPOBJECT_GET__V84*/ meltfptr[57]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5452:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CURVAR__V79*/ meltfptr[65]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[11]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURVAR__V79*/ meltfptr[65]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V85*/ meltfptr[60] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V85*/ meltfptr[60] = NULL;; } ; { MELT_LOCATION ("warmelt-macro.melt:5451:/ locexp"); melt_error_str ((melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]), ("repeated variable in LETREC binding"), (melt_ptr_t) ( /*_.NAMED_NAME__V85*/ meltfptr[60])); } ; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5450:/ clear"); /*clear *//*_.NAMED_NAME__V85*/ meltfptr[60] = 0; } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5454:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_LETREC_BINDING */ meltfrout->tabval[12])), (4), "CLASS_LETREC_BINDING"); /*_.INST__V87*/ meltfptr[62] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @BINDER", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V87*/ meltfptr[62])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V87*/ meltfptr[62]), (0), ( /*_.CURVAR__V79*/ meltfptr[65]), "BINDER"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LETBIND_TYPE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V87*/ meltfptr[62])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V87*/ meltfptr[62]), (1), (( /*!CTYPE_VALUE */ meltfrout-> tabval[13])), "LETBIND_TYPE"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LETBIND_EXPR", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V87*/ meltfptr[62])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V87*/ meltfptr[62]), (2), (( /*nil */ NULL)), "LETBIND_EXPR"); ; /*_.CURBIND__V86*/ meltfptr[59] = /*_.INST__V87*/ meltfptr[62];; MELT_LOCATION ("warmelt-macro.melt:5460:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.CURBIND__V86*/ meltfptr[59]; /*_.PUT_ENV__V88*/ meltfptr[56] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout-> tabval[14])), (melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; { MELT_LOCATION ("warmelt-macro.melt:5461:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.BINDTUP__V26*/ meltfptr[25]), ( /*_#VARIX__L23*/ meltfnum[17]), (melt_ptr_t) ( /*_.CURBIND__V86*/ meltfptr[59])); } ; MELT_LOCATION ("warmelt-macro.melt:5454:/ clear"); /*clear *//*_.CURBIND__V86*/ meltfptr[59] = 0; /*^clear */ /*clear *//*_.PUT_ENV__V88*/ meltfptr[56] = 0; if ( /*_#VARIX__L23*/ meltfnum[17] < 0) break; } /* end foreach_in_multiple meltcit2__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5446:/ clear"); /*clear *//*_.CURVAR__V79*/ meltfptr[65] = 0; /*^clear */ /*clear *//*_#VARIX__L23*/ meltfnum[17] = 0; /*^clear */ /*clear *//*_.IFCPP___V80*/ meltfptr[66] = 0; /*^clear */ /*clear *//*_.MAPOBJECT_GET__V84*/ meltfptr[57] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; MELT_LOCATION ("warmelt-macro.melt:5444:/ clear"); /*clear *//*_.ENVMAP__V78*/ meltfptr[61] = 0; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5463:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L26*/ meltfnum[15] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5463:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L26*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L27*/ meltfnum[11] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5463:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L27*/ meltfnum[11]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5463; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec bindtup after secondloop"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.BINDTUP__V26*/ meltfptr[25]; /*_.MELT_DEBUG_FUN__V91*/ meltfptr[60] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V90*/ meltfptr[55] = /*_.MELT_DEBUG_FUN__V91*/ meltfptr[60];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5463:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L27*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V91*/ meltfptr[60] = 0; } ; } else { /*^cond.else */ /*_.IF___V90*/ meltfptr[55] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5463:/ quasiblock"); /*_.PROGN___V92*/ meltfptr[59] = /*_.IF___V90*/ meltfptr[55];; /*^compute */ /*_.IFCPP___V89*/ meltfptr[67] = /*_.PROGN___V92*/ meltfptr[59];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5463:/ clear"); /*clear *//*_#MELT_NEED_DBG__L26*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.IF___V90*/ meltfptr[55] = 0; /*^clear */ /*clear *//*_.PROGN___V92*/ meltfptr[59] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V89*/ meltfptr[67] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit3__EACHTUP */ long meltcit3__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.RECSEXPRTUP__V39*/ meltfptr[38]); for ( /*_#EXPIX__L28*/ meltfnum[11] = 0; ( /*_#EXPIX__L28*/ meltfnum[11] >= 0) && ( /*_#EXPIX__L28*/ meltfnum[11] < meltcit3__EACHTUP_ln); /*_#EXPIX__L28*/ meltfnum[11]++) { /*_.CURSEXPR__V93*/ meltfptr[56] = melt_multiple_nth ((melt_ptr_t) ( /*_.RECSEXPRTUP__V39*/ meltfptr[38]), /*_#EXPIX__L28*/ meltfnum[11]); MELT_LOCATION ("warmelt-macro.melt:5469:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5470:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CURSEXPR__V93*/ meltfptr[56]), (melt_ptr_t) (( /*!CLASS_LOCATED */ meltfrout->tabval[8]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURSEXPR__V93*/ meltfptr[56]), 1, "LOCA_LOCATION"); /*_.LOCA_LOCATION__V94*/ meltfptr[61] = slot; }; ; } else { /*^cond.else */ /*_.LOCA_LOCATION__V94*/ meltfptr[61] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5470:/ cond"); /*cond */ if ( /*_.LOCA_LOCATION__V94*/ meltfptr[61]) /*then */ { /*^cond.then */ /*_.CURLOC__V95*/ meltfptr[60] = /*_.LOCA_LOCATION__V94*/ meltfptr[61];; } else { MELT_LOCATION ("warmelt-macro.melt:5470:/ cond.else"); /*_.CURLOC__V95*/ meltfptr[60] = /*_.LOC__V20*/ meltfptr[19];; } ; MELT_LOCATION ("warmelt-macro.melt:5471:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.NEWENV__V25*/ meltfptr[24]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.CUREXP__V96*/ meltfptr[55] = melt_apply ((meltclosure_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.CURSEXPR__V93*/ meltfptr[56]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.CURBIND__V97*/ meltfptr[59] = (melt_multiple_nth ((melt_ptr_t) ( /*_.BINDTUP__V26*/ meltfptr[25]), ( /*_#EXPIX__L28*/ meltfnum[11])));; MELT_LOCATION ("warmelt-macro.melt:5474:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^msend */ /*msend */ { /*_.IS_RECURSIVELY_CONSTRUCTIBLE__V98*/ meltfptr[97] = meltgc_send ((melt_ptr_t) ( /*_.CUREXP__V96*/ meltfptr[55]), (melt_ptr_t) (( /*!IS_RECURSIVELY_CONSTRUCTIBLE */ meltfrout->tabval[15])), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; /*_#NULL__L29*/ meltfnum[15] = (( /*_.IS_RECURSIVELY_CONSTRUCTIBLE__V98*/ meltfptr[97]) == NULL);; MELT_LOCATION ("warmelt-macro.melt:5474:/ cond"); /*cond */ if ( /*_#NULL__L29*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5476:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURLOC__V95*/ meltfptr[60]), ("invalid expression in LETREC binding [not recursively constructible]"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5477:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5477:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5475:/ quasiblock"); /*_.PROGN___V101*/ meltfptr[100] = /*_.RETURN___V100*/ meltfptr[99];; /*^compute */ /*_.IF___V99*/ meltfptr[98] = /*_.PROGN___V101*/ meltfptr[100];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5474:/ clear"); /*clear *//*_.RETURN___V100*/ meltfptr[99] = 0; /*^clear */ /*clear *//*_.PROGN___V101*/ meltfptr[100] = 0; } ; } else { /*^cond.else */ /*_.IF___V99*/ meltfptr[98] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5478:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CURBIND__V97*/ meltfptr[59]), (melt_ptr_t) (( /*!CLASS_LET_BINDING */ meltfrout->tabval[16]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LETBIND_EXPR", melt_magic_discr ((melt_ptr_t) ( /*_.CURBIND__V97*/ meltfptr[59])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.CURBIND__V97*/ meltfptr[59]), (2), ( /*_.CUREXP__V96*/ meltfptr[55]), "LETBIND_EXPR"); ; /*^touch */ meltgc_touch ( /*_.CURBIND__V97*/ meltfptr[59]); ; /*epilog */ } ; } /*noelse */ ; { MELT_LOCATION ("warmelt-macro.melt:5479:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.EXPRTUP__V29*/ meltfptr[28]), ( /*_#EXPIX__L28*/ meltfnum[11]), (melt_ptr_t) ( /*_.CUREXP__V96*/ meltfptr[55])); } ; MELT_LOCATION ("warmelt-macro.melt:5480:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5481:/ checksignal"); MELT_CHECK_SIGNAL (); ; MELT_LOCATION ("warmelt-macro.melt:5482:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CUREXP__V96*/ meltfptr[55]), (melt_ptr_t) (( /*!CLASS_LOCATED */ meltfrout->tabval[8]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CUREXP__V96*/ meltfptr[55]), 1, "LOCA_LOCATION"); /*_.LOCA_LOCATION__V102*/ meltfptr[99] = slot; }; ; } else { /*^cond.else */ /*_.LOCA_LOCATION__V102*/ meltfptr[99] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5482:/ cond"); /*cond */ if ( /*_.LOCA_LOCATION__V102*/ meltfptr[99]) /*then */ { /*^cond.then */ /*_.OR___V103*/ meltfptr[100] = /*_.LOCA_LOCATION__V102*/ meltfptr[99];; } else { MELT_LOCATION ("warmelt-macro.melt:5482:/ cond.else"); /*_.OR___V103*/ meltfptr[100] = /*_.LOC__V20*/ meltfptr[19];; } ; /*^compute */ /*_.MULTIPLE_NTH__V104*/ meltfptr[103] = (melt_multiple_nth ((melt_ptr_t) ( /*_.VARTUP__V28*/ meltfptr[27]), ( /*_#EXPIX__L28*/ meltfnum[11])));; MELT_LOCATION ("warmelt-macro.melt:5481:/ quasiblock"); /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_LETREC_BINDING */ meltfrout->tabval[17])), (5), "CLASS_SOURCE_LETREC_BINDING"); /*_.INST__V106*/ meltfptr[105] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V106*/ meltfptr[105])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V106*/ meltfptr[105]), (1), ( /*_.OR___V103*/ meltfptr[100]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLETB_TYPE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V106*/ meltfptr[105])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V106*/ meltfptr[105]), (2), (( /*!CTYPE_VALUE */ meltfrout-> tabval[13])), "SLETB_TYPE"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLETB_BINDER", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V106*/ meltfptr[105])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V106*/ meltfptr[105]), (3), ( /*_.MULTIPLE_NTH__V104*/ meltfptr[103]), "SLETB_BINDER"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLETB_EXPR", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V106*/ meltfptr[105])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V106*/ meltfptr[105]), (4), ( /*_.CUREXP__V96*/ meltfptr[55]), "SLETB_EXPR"); ; /*_.SBIND__V105*/ meltfptr[104] = /*_.INST__V106*/ meltfptr[105];; { MELT_LOCATION ("warmelt-macro.melt:5488:/ locexp"); meltgc_multiple_put_nth ((melt_ptr_t) ( /*_.SRCBINDTUP__V27*/ meltfptr[26]), ( /*_#EXPIX__L28*/ meltfnum[11]), (melt_ptr_t) ( /*_.SBIND__V105*/ meltfptr[104])); } ; MELT_LOCATION ("warmelt-macro.melt:5480:/ clear"); /*clear *//*_.LOCA_LOCATION__V102*/ meltfptr[99] = 0; /*^clear */ /*clear *//*_.OR___V103*/ meltfptr[100] = 0; /*^clear */ /*clear *//*_.MULTIPLE_NTH__V104*/ meltfptr[103] = 0; /*^clear */ /*clear *//*_.SBIND__V105*/ meltfptr[104] = 0; MELT_LOCATION ("warmelt-macro.melt:5469:/ clear"); /*clear *//*_.LOCA_LOCATION__V94*/ meltfptr[61] = 0; /*^clear */ /*clear *//*_.CURLOC__V95*/ meltfptr[60] = 0; /*^clear */ /*clear *//*_.CUREXP__V96*/ meltfptr[55] = 0; /*^clear */ /*clear *//*_.CURBIND__V97*/ meltfptr[59] = 0; /*^clear */ /*clear *//*_.IS_RECURSIVELY_CONSTRUCTIBLE__V98*/ meltfptr[97] = 0; /*^clear */ /*clear *//*_#NULL__L29*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.IF___V99*/ meltfptr[98] = 0; if ( /*_#EXPIX__L28*/ meltfnum[11] < 0) break; } /* end foreach_in_multiple meltcit3__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5466:/ clear"); /*clear *//*_.CURSEXPR__V93*/ meltfptr[56] = 0; /*^clear */ /*clear *//*_#EXPIX__L28*/ meltfnum[11] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5490:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L30*/ meltfnum[15] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5490:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L30*/ meltfnum[15]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L31*/ meltfnum[30] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5490:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L31*/ meltfnum[30]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5490; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec exprtup after thirdloop"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.EXPRTUP__V29*/ meltfptr[28]; /*_.MELT_DEBUG_FUN__V109*/ meltfptr[103] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V108*/ meltfptr[100] = /*_.MELT_DEBUG_FUN__V109*/ meltfptr[103];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5490:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L31*/ meltfnum[30] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V109*/ meltfptr[103] = 0; } ; } else { /*^cond.else */ /*_.IF___V108*/ meltfptr[100] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5490:/ quasiblock"); /*_.PROGN___V110*/ meltfptr[104] = /*_.IF___V108*/ meltfptr[100];; /*^compute */ /*_.IFCPP___V107*/ meltfptr[99] = /*_.PROGN___V110*/ meltfptr[104];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5490:/ clear"); /*clear *//*_#MELT_NEED_DBG__L30*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.IF___V108*/ meltfptr[100] = 0; /*^clear */ /*clear *//*_.PROGN___V110*/ meltfptr[104] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V107*/ meltfptr[99] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; /*^compute */ /*_.LET___V33*/ meltfptr[32] = /*_.IFCPP___V107*/ meltfptr[99];; MELT_LOCATION ("warmelt-macro.melt:5387:/ clear"); /*clear *//*_.SEXP_CONTENTS__V34*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V35*/ meltfptr[34] = 0; /*^clear */ /*clear *//*_.LAMBDA___V36*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.RECBINDTUP__V38*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_#NBRECBIND__L9*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_.RECSEXPRTUP__V39*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_#SETQ___L10*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_.MAKE_MULTIPLE__V40*/ meltfptr[39] = 0; /*^clear */ /*clear *//*_.SETQ___V41*/ meltfptr[40] = 0; /*^clear */ /*clear *//*_.MAKE_MULTIPLE__V42*/ meltfptr[41] = 0; /*^clear */ /*clear *//*_.SETQ___V43*/ meltfptr[42] = 0; /*^clear */ /*clear *//*_.MAKE_MULTIPLE__V44*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.SETQ___V45*/ meltfptr[44] = 0; /*^clear */ /*clear *//*_.MAKE_MULTIPLE__V46*/ meltfptr[45] = 0; /*^clear */ /*clear *//*_.SETQ___V47*/ meltfptr[46] = 0; /*^clear */ /*clear *//*_.IFCPP___V70*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.IFCPP___V74*/ meltfptr[58] = 0; /*^clear */ /*clear *//*_.IFCPP___V89*/ meltfptr[67] = 0; /*^clear */ /*clear *//*_.IFCPP___V107*/ meltfptr[99] = 0; /*_.IFELSE___V32*/ meltfptr[31] = /*_.LET___V33*/ meltfptr[32];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5386:/ clear"); /*clear *//*_.LET___V33*/ meltfptr[32] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5492:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]), ("missing letbinding-s in LETREC"), (melt_ptr_t) 0); } ; /*clear *//*_.IFELSE___V32*/ meltfptr[31] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IF___V31*/ meltfptr[30] = /*_.IFELSE___V32*/ meltfptr[31];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5385:/ clear"); /*clear *//*_#IS_A__L8*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V32*/ meltfptr[31] = 0; } ; } else { /*^cond.else */ /*_.IF___V31*/ meltfptr[30] = NULL;; } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5494:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L32*/ meltfnum[30] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5494:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L32*/ meltfnum[30]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L33*/ meltfnum[15] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5494:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L33*/ meltfnum[15]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5494; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec srcbindtup"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SRCBINDTUP__V27*/ meltfptr[26]; /*_.MELT_DEBUG_FUN__V113*/ meltfptr[55] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V112*/ meltfptr[60] = /*_.MELT_DEBUG_FUN__V113*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5494:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L33*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V113*/ meltfptr[55] = 0; } ; } else { /*^cond.else */ /*_.IF___V112*/ meltfptr[60] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5494:/ quasiblock"); /*_.PROGN___V114*/ meltfptr[59] = /*_.IF___V112*/ meltfptr[60];; /*^compute */ /*_.IFCPP___V111*/ meltfptr[61] = /*_.PROGN___V114*/ meltfptr[59];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5494:/ clear"); /*clear *//*_#MELT_NEED_DBG__L32*/ meltfnum[30] = 0; /*^clear */ /*clear *//*_.IF___V112*/ meltfptr[60] = 0; /*^clear */ /*clear *//*_.PROGN___V114*/ meltfptr[59] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V111*/ meltfptr[61] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5497:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V116*/ meltfptr[98] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_18 */ meltfrout-> tabval[18])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98]))); ((meltclosure_ptr_t) /*_.LAMBDA___V116*/ meltfptr[98])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98]))); ((meltclosure_ptr_t) /*_.LAMBDA___V116*/ meltfptr[98])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V25*/ meltfptr[24]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V116*/ meltfptr[98]))); ((meltclosure_ptr_t) /*_.LAMBDA___V116*/ meltfptr[98])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V115*/ meltfptr[97] = /*_.LAMBDA___V116*/ meltfptr[98];; MELT_LOCATION ("warmelt-macro.melt:5495:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[5]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V115*/ meltfptr[97]; /*_.PAIRLIST_TO_MULTIPLE__V117*/ meltfptr[103] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[4])), (melt_ptr_t) ( /*_.RESTPAIR__V23*/ meltfptr[22]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^compute */ /*_.BODYTUP__V30*/ meltfptr[29] = /*_.SETQ___V118*/ meltfptr[100] = /*_.PAIRLIST_TO_MULTIPLE__V117*/ meltfptr[103];; MELT_LOCATION ("warmelt-macro.melt:5498:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#MULTIPLE_LENGTH__L34*/ meltfnum[8] = (melt_multiple_length ((melt_ptr_t) ( /*_.BODYTUP__V30*/ meltfptr[29])));; /*^compute */ /*_#I__L35*/ meltfnum[9] = (( /*_#MULTIPLE_LENGTH__L34*/ meltfnum[8]) <= (0));; MELT_LOCATION ("warmelt-macro.melt:5498:/ cond"); /*cond */ if ( /*_#I__L35*/ meltfnum[9]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5499:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V20*/ meltfptr[19]), ("emptyy body in LETREC"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5500:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5501:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_LETREC */ meltfrout->tabval[19])), (4), "CLASS_SOURCE_LETREC"); /*_.INST__V121*/ meltfptr[34] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V121*/ meltfptr[34])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V121*/ meltfptr[34]), (1), ( /*_.LOC__V20*/ meltfptr[19]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLET_BINDINGS", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V121*/ meltfptr[34])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V121*/ meltfptr[34]), (2), ( /*_.SRCBINDTUP__V27*/ meltfptr[26]), "SLET_BINDINGS"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLET_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V121*/ meltfptr[34])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V121*/ meltfptr[34]), (3), ( /*_.BODYTUP__V30*/ meltfptr[29]), "SLET_BODY"); ; /*_.LETR__V120*/ meltfptr[33] = /*_.INST__V121*/ meltfptr[34];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5505:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L36*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5505:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L36*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L37*/ meltfnum[15] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5505:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L37*/ meltfnum[15]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5505; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_letrec result"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.LETR__V120*/ meltfptr[33]; /*_.MELT_DEBUG_FUN__V124*/ meltfptr[38] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V123*/ meltfptr[37] = /*_.MELT_DEBUG_FUN__V124*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5505:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L37*/ meltfnum[15] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V124*/ meltfptr[38] = 0; } ; } else { /*^cond.else */ /*_.IF___V123*/ meltfptr[37] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5505:/ quasiblock"); /*_.PROGN___V125*/ meltfptr[39] = /*_.IF___V123*/ meltfptr[37];; /*^compute */ /*_.IFCPP___V122*/ meltfptr[35] = /*_.PROGN___V125*/ meltfptr[39];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5505:/ clear"); /*clear *//*_#MELT_NEED_DBG__L36*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V123*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.PROGN___V125*/ meltfptr[39] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V122*/ meltfptr[35] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5506:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LETR__V120*/ meltfptr[33];; { MELT_LOCATION ("warmelt-macro.melt:5506:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V119*/ meltfptr[104] = /*_.RETURN___V126*/ meltfptr[40];; MELT_LOCATION ("warmelt-macro.melt:5500:/ clear"); /*clear *//*_.LETR__V120*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.IFCPP___V122*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.RETURN___V126*/ meltfptr[40] = 0; /*_.LET___V18*/ meltfptr[16] = /*_.LET___V119*/ meltfptr[104];; MELT_LOCATION ("warmelt-macro.melt:5370:/ clear"); /*clear *//*_.CONT__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.LOC__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.SECPAIR__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.RESTPAIR__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.BINDEXPR__V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.NEWENV__V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_#NBIND__L7*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.BINDTUP__V26*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.SRCBINDTUP__V27*/ meltfptr[26] = 0; /*^clear */ /*clear *//*_.VARTUP__V28*/ meltfptr[27] = 0; /*^clear */ /*clear *//*_.EXPRTUP__V29*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_.BODYTUP__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.IF___V31*/ meltfptr[30] = 0; /*^clear */ /*clear *//*_.IFCPP___V111*/ meltfptr[61] = 0; /*^clear */ /*clear *//*_.LAMBDA___V115*/ meltfptr[97] = 0; /*^clear */ /*clear *//*_.PAIRLIST_TO_MULTIPLE__V117*/ meltfptr[103] = 0; /*^clear */ /*clear *//*_.SETQ___V118*/ meltfptr[100] = 0; /*^clear */ /*clear *//*_#MULTIPLE_LENGTH__L34*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_#I__L35*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_.LET___V119*/ meltfptr[104] = 0; MELT_LOCATION ("warmelt-macro.melt:5364:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V18*/ meltfptr[16];; { MELT_LOCATION ("warmelt-macro.melt:5364:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.IFCPP___V16*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.LET___V18*/ meltfptr[16] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_LETREC", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_106_warmelt_macro_MEXPAND_LETREC_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_106_warmelt_macro_MEXPAND_LETREC */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_107_warmelt_macro_LAMBDA___25__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_107_warmelt_macro_LAMBDA___25___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_107_warmelt_macro_LAMBDA___25___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 2 melt_ptr_t mcfr_varptr[2]; #define MELTFRAM_NBVARNUM 1 long mcfr_varnum[1]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_107_warmelt_macro_LAMBDA___25___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 2; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 2; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5391:/ getarg"); /*_.BX__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { MELT_LOCATION ("warmelt-macro.melt:5392:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L1*/ meltfnum[0] = !melt_is_instance_of ((melt_ptr_t) ( /*_.BX__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5392:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5393:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) (( /*~LOC */ meltfclos->tabval[0])), ("sexpr expected in LETREC binding"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5391:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.BX__V2*/ meltfptr[1];; { MELT_LOCATION ("warmelt-macro.melt:5391:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_#IS_NOT_A__L1*/ meltfnum[0] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_107_warmelt_macro_LAMBDA___25___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_107_warmelt_macro_LAMBDA___25__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_108_warmelt_macro_LAMBDA___26__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_108_warmelt_macro_LAMBDA___26___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_108_warmelt_macro_LAMBDA___26___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_108_warmelt_macro_LAMBDA___26___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5497:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5497:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_108_warmelt_macro_LAMBDA___26___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_108_warmelt_macro_LAMBDA___26__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_109_warmelt_macro_MEXPAND_LAMBDA (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_109_warmelt_macro_MEXPAND_LAMBDA_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_109_warmelt_macro_MEXPAND_LAMBDA_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 35 melt_ptr_t mcfr_varptr[35]; #define MELTFRAM_NBVARNUM 9 long mcfr_varnum[9]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_109_warmelt_macro_MEXPAND_LAMBDA_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 35; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 35; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_LAMBDA", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5520:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5521:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5521:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5521:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5521) ? (5521) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5521:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5522:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5522:/ cond"); /*cond */ if ( /*_#IS_A__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V9*/ meltfptr[8] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5522:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5522) ? (5522) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5522:/ clear"); /*clear *//*_#IS_A__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V8*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5523:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5523:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5523:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5523) ? (5523) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5523:/ clear"); /*clear *//*_#IS_OBJECT__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5524:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:5524:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5524:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5524) ? (5524) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[10] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5524:/ clear"); /*clear *//*_#IS_CLOSURE__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[10] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5525:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V15*/ meltfptr[14] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5526:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V16*/ meltfptr[15] = slot; }; ; /*_.LIST_FIRST__V17*/ meltfptr[16] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V15*/ meltfptr[14])));; /*^compute */ /*_.CURPAIR__V18*/ meltfptr[17] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V17*/ meltfptr[16])));; MELT_LOCATION ("warmelt-macro.melt:5528:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V19*/ meltfptr[18] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[2])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; /*_.FORMALS__V20*/ meltfptr[19] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5532:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#NOTNULL__L5*/ meltfnum[0] = (( /*_.FORMALS__V20*/ meltfptr[19]) != NULL);; MELT_LOCATION ("warmelt-macro.melt:5532:/ cond"); /*cond */ if ( /*_#NOTNULL__L5*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#IS_NOT_A__L7*/ meltfnum[6] = !melt_is_instance_of ((melt_ptr_t) ( /*_.FORMALS__V20*/ meltfptr[19]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout->tabval[0])));; /*^compute */ /*_#IF___L6*/ meltfnum[5] = /*_#IS_NOT_A__L7*/ meltfnum[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5532:/ clear"); /*clear *//*_#IS_NOT_A__L7*/ meltfnum[6] = 0; } ; } else { /*^cond.else */ /*_#IF___L6*/ meltfnum[5] = 0;; } ; MELT_LOCATION ("warmelt-macro.melt:5532:/ cond"); /*cond */ if ( /*_#IF___L6*/ meltfnum[5]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5533:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V16*/ meltfptr[15]), ("missing formal argument list in (LAMBDA (arglist...) body...)"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5534:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.ARGTUP__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) (( /*!LAMBDA_ARG_BINDINGS */ meltfrout->tabval[3])), (melt_ptr_t) ( /*_.FORMALS__V20*/ meltfptr[19]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.PAIR_TAIL__V23*/ meltfptr[22] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5535:/ compute"); /*_.CURPAIR__V18*/ meltfptr[17] = /*_.SETQ___V24*/ meltfptr[23] = /*_.PAIR_TAIL__V23*/ meltfptr[22];; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit1__EACHTUP */ long meltcit1__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.ARGTUP__V22*/ meltfptr[21]); for ( /*_#IX__L8*/ meltfnum[6] = 0; ( /*_#IX__L8*/ meltfnum[6] >= 0) && ( /*_#IX__L8*/ meltfnum[6] < meltcit1__EACHTUP_ln); /*_#IX__L8*/ meltfnum[6]++) { /*_.LB__V25*/ meltfptr[24] = melt_multiple_nth ((melt_ptr_t) ( /*_.ARGTUP__V22*/ meltfptr[21]), /*_#IX__L8*/ meltfnum[6]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5539:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L9*/ meltfnum[8] = melt_is_instance_of ((melt_ptr_t) ( /*_.LB__V25*/ meltfptr[24]), (melt_ptr_t) (( /*!CLASS_FORMAL_BINDING */ meltfrout->tabval[4])));; MELT_LOCATION ("warmelt-macro.melt:5539:/ cond"); /*cond */ if ( /*_#IS_A__L9*/ meltfnum[8]) /*then */ { /*^cond.then */ /*_.IFELSE___V27*/ meltfptr[26] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5539:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check lb"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5539) ? (5539) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V27*/ meltfptr[26] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V26*/ meltfptr[25] = /*_.IFELSE___V27*/ meltfptr[26];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5539:/ clear"); /*clear *//*_#IS_A__L9*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_.IFELSE___V27*/ meltfptr[26] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V26*/ meltfptr[25] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5540:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LB__V25*/ meltfptr[24]; /*_.PUT_ENV__V28*/ meltfptr[26] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout->tabval[5])), (melt_ptr_t) ( /*_.NEWENV__V19*/ meltfptr[18]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; if ( /*_#IX__L8*/ meltfnum[6] < 0) break; } /* end foreach_in_multiple meltcit1__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5536:/ clear"); /*clear *//*_.LB__V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_#IX__L8*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V26*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.PUT_ENV__V28*/ meltfptr[26] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; MELT_LOCATION ("warmelt-macro.melt:5541:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5543:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V31*/ meltfptr[30] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_8 */ meltfrout-> tabval[8])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30]))); ((meltclosure_ptr_t) /*_.LAMBDA___V31*/ meltfptr[30])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30]))); ((meltclosure_ptr_t) /*_.LAMBDA___V31*/ meltfptr[30])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V19*/ meltfptr[18]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V31*/ meltfptr[30]))); ((meltclosure_ptr_t) /*_.LAMBDA___V31*/ meltfptr[30])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V30*/ meltfptr[29] = /*_.LAMBDA___V31*/ meltfptr[30];; MELT_LOCATION ("warmelt-macro.melt:5541:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[7]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V30*/ meltfptr[29]; /*_.BODYTUP__V32*/ meltfptr[31] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[6])), (melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5545:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_LAMBDA */ meltfrout->tabval[9])), (4), "CLASS_SOURCE_LAMBDA"); /*_.INST__V34*/ meltfptr[33] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V34*/ meltfptr[33])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V34*/ meltfptr[33]), (1), ( /*_.LOC__V16*/ meltfptr[15]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLAM_ARGBIND", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V34*/ meltfptr[33])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V34*/ meltfptr[33]), (2), ( /*_.ARGTUP__V22*/ meltfptr[21]), "SLAM_ARGBIND"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLAM_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V34*/ meltfptr[33])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V34*/ meltfptr[33]), (3), ( /*_.BODYTUP__V32*/ meltfptr[31]), "SLAM_BODY"); ; /*_.LAMBR__V33*/ meltfptr[32] = /*_.INST__V34*/ meltfptr[33];; MELT_LOCATION ("warmelt-macro.melt:5550:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LAMBR__V33*/ meltfptr[32];; { MELT_LOCATION ("warmelt-macro.melt:5550:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V29*/ meltfptr[28] = /*_.RETURN___V35*/ meltfptr[34];; MELT_LOCATION ("warmelt-macro.melt:5541:/ clear"); /*clear *//*_.LAMBDA___V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.BODYTUP__V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.LAMBR__V33*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.RETURN___V35*/ meltfptr[34] = 0; /*_.LET___V21*/ meltfptr[20] = /*_.LET___V29*/ meltfptr[28];; MELT_LOCATION ("warmelt-macro.melt:5534:/ clear"); /*clear *//*_.ARGTUP__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.SETQ___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.LET___V29*/ meltfptr[28] = 0; /*_.LET___V14*/ meltfptr[12] = /*_.LET___V21*/ meltfptr[20];; MELT_LOCATION ("warmelt-macro.melt:5525:/ clear"); /*clear *//*_.CONT__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.LOC__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.CURPAIR__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.NEWENV__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.FORMALS__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_#NOTNULL__L5*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#IF___L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_.LET___V21*/ meltfptr[20] = 0; MELT_LOCATION ("warmelt-macro.melt:5520:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V14*/ meltfptr[12];; { MELT_LOCATION ("warmelt-macro.melt:5520:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.LET___V14*/ meltfptr[12] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_LAMBDA", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_109_warmelt_macro_MEXPAND_LAMBDA_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_109_warmelt_macro_MEXPAND_LAMBDA */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_110_warmelt_macro_LAMBDA___27__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_110_warmelt_macro_LAMBDA___27___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_110_warmelt_macro_LAMBDA___27___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_110_warmelt_macro_LAMBDA___27___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5543:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5543:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_110_warmelt_macro_LAMBDA___27___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_110_warmelt_macro_LAMBDA___27__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_111_warmelt_macro_MEXPAND_VARIADIC (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_111_warmelt_macro_MEXPAND_VARIADIC_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_111_warmelt_macro_MEXPAND_VARIADIC_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 116 melt_ptr_t mcfr_varptr[116]; #define MELTFRAM_NBVARNUM 35 long mcfr_varnum[35]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_111_warmelt_macro_MEXPAND_VARIADIC_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 116; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 116; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_VARIADIC", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5571:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5572:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5572:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5572:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5572) ? (5572) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5572:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5573:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5573:/ cond"); /*cond */ if ( /*_#IS_A__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V9*/ meltfptr[8] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5573:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5573) ? (5573) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5573:/ clear"); /*clear *//*_#IS_A__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V8*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5574:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5574:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5574:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5574) ? (5574) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5574:/ clear"); /*clear *//*_#IS_OBJECT__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5575:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V13*/ meltfptr[12] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5576:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V14*/ meltfptr[13] = slot; }; ; /*_.LIST_FIRST__V15*/ meltfptr[14] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V13*/ meltfptr[12])));; /*^compute */ /*_.FIRSTPAIR__V16*/ meltfptr[15] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V15*/ meltfptr[14])));; MELT_LOCATION ("warmelt-macro.melt:5578:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_REFERENCE */ meltfrout->tabval[2])), (1), "CLASS_REFERENCE"); /*_.INST__V18*/ meltfptr[17] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @REFERENCED_VALUE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V18*/ meltfptr[17])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V18*/ meltfptr[17]), (0), (( /*nil */ NULL)), "REFERENCED_VALUE"); ; /*_.RESCONT__V17*/ meltfptr[16] = /*_.INST__V18*/ meltfptr[17];; /*^compute */ /*_#LIST_LENGTH__L4*/ meltfnum[0] = (melt_list_length ((melt_ptr_t) ( /*_.CONT__V13*/ meltfptr[12])));; /*^compute */ /*_#I__L5*/ meltfnum[4] = ((3) * ( /*_#LIST_LENGTH__L4*/ meltfnum[0]));; /*^compute */ /*_#I__L6*/ meltfnum[5] = ((7) + ( /*_#I__L5*/ meltfnum[4]));; /*^compute */ /*_.VARBINDMAP__V19*/ meltfptr[18] = (meltgc_new_mapobjects ((meltobject_ptr_t) (( /*!DISCR_MAP_OBJECTS */ meltfrout->tabval[3])), ( /*_#I__L6*/ meltfnum[5])));; MELT_LOCATION ("warmelt-macro.melt:5580:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V21*/ meltfptr[20] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_6 */ meltfrout-> tabval[6])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V21*/ meltfptr[20])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V21*/ meltfptr[20]))); ((meltclosure_ptr_t) /*_.LAMBDA___V21*/ meltfptr[20])->tabval[0] = (melt_ptr_t) ( /*_.RESCONT__V17*/ meltfptr[16]); ; /*_.HOOKFUN__V20*/ meltfptr[19] = /*_.LAMBDA___V21*/ meltfptr[20];; /*citerblock FOREACH_PAIR */ { /* start foreach_pair meltcit1__EACHPAIR */ for ( /*_.CURPAIRCASE__V22*/ meltfptr[21] = /*_.FIRSTPAIR__V16*/ meltfptr[15]; melt_magic_discr ((melt_ptr_t) /*_.CURPAIRCASE__V22*/ meltfptr[21]) == MELTOBMAG_PAIR; /*_.CURPAIRCASE__V22*/ meltfptr[21] = melt_pair_tail ((melt_ptr_t) /*_.CURPAIRCASE__V22*/ meltfptr[21])) { /*_.CURCASE__V23*/ meltfptr[22] = melt_pair_head ((melt_ptr_t) /*_.CURPAIRCASE__V22*/ meltfptr[21]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5587:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L7*/ meltfnum[6] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5587:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L7*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L8*/ meltfnum[7] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5587:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L8*/ meltfnum[7]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5587; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic curcase"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CURCASE__V23*/ meltfptr[22]; /*_.MELT_DEBUG_FUN__V26*/ meltfptr[25] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V25*/ meltfptr[24] = /*_.MELT_DEBUG_FUN__V26*/ meltfptr[25];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5587:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L8*/ meltfnum[7] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V26*/ meltfptr[25] = 0; } ; } else { /*^cond.else */ /*_.IF___V25*/ meltfptr[24] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5587:/ quasiblock"); /*_.PROGN___V27*/ meltfptr[25] = /*_.IF___V25*/ meltfptr[24];; /*^compute */ /*_.IFCPP___V24*/ meltfptr[23] = /*_.PROGN___V27*/ meltfptr[25];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5587:/ clear"); /*clear *//*_#MELT_NEED_DBG__L7*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.IF___V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.PROGN___V27*/ meltfptr[25] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V24*/ meltfptr[23] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5588:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L9*/ meltfnum[7] = !melt_is_instance_of ((melt_ptr_t) ( /*_.CURCASE__V23*/ meltfptr[22]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout->tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5588:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L9*/ meltfnum[7]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5590:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("(VARIADIC variadic-case...) expects a list, so cannot have non-list components."), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5591:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5591:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5589:/ quasiblock"); /*_.PROGN___V30*/ meltfptr[29] = /*_.RETURN___V29*/ meltfptr[25];; /*^compute */ /*_.IF___V28*/ meltfptr[24] = /*_.PROGN___V30*/ meltfptr[29];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5588:/ clear"); /*clear *//*_.RETURN___V29*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.PROGN___V30*/ meltfptr[29] = 0; } ; } else { /*^cond.else */ /*_.IF___V28*/ meltfptr[24] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5592:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5593:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURCASE__V23*/ meltfptr[22]), 1, "LOCA_LOCATION"); /*_.CURCASELOC__V32*/ meltfptr[29] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5594:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CURCASE__V23*/ meltfptr[22]), 2, "SEXP_CONTENTS"); /*_.CURCASECONT__V33*/ meltfptr[32] = slot; }; ; /*_.CURCASEPAIR__V34*/ meltfptr[33] = (melt_list_first ((melt_ptr_t) ( /*_.CURCASECONT__V33*/ meltfptr[32])));; /*^compute */ /*_.CASEFIRST__V35*/ meltfptr[34] = (melt_pair_head ((melt_ptr_t) ( /*_.CURCASEPAIR__V34*/ meltfptr[33])));; /*^compute */ /*_.CASEREST__V36*/ meltfptr[35] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURCASEPAIR__V34*/ meltfptr[33])));; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5599:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L10*/ meltfnum[6] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5599:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L10*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5599:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[7]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5599; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic casefirst="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CASEFIRST__V35*/ meltfptr[34]; /*^apply.arg */ argtab[5].meltbp_cstring = " curcase="; /*^apply.arg */ argtab[6].meltbp_aptr = (melt_ptr_t *) & /*_.CURCASE__V23*/ meltfptr[22]; /*_.MELT_DEBUG_FUN__V39*/ meltfptr[38] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V38*/ meltfptr[37] = /*_.MELT_DEBUG_FUN__V39*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5599:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V39*/ meltfptr[38] = 0; } ; } else { /*^cond.else */ /*_.IF___V38*/ meltfptr[37] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5599:/ quasiblock"); /*_.PROGN___V40*/ meltfptr[38] = /*_.IF___V38*/ meltfptr[37];; /*^compute */ /*_.IFCPP___V37*/ meltfptr[36] = /*_.PROGN___V40*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5599:/ clear"); /*clear *//*_#MELT_NEED_DBG__L10*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.IF___V38*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.PROGN___V40*/ meltfptr[38] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V37*/ meltfptr[36] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5601:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#__L12*/ meltfnum[10] = (( /*_.CASEFIRST__V35*/ meltfptr[34]) == (( /*!konst_8_ELSE */ meltfrout->tabval[8])));; MELT_LOCATION ("warmelt-macro.melt:5601:/ cond"); /*cond */ if ( /*_#__L12*/ meltfnum[10]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5602:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.PAIR_TAIL__V42*/ meltfptr[38] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIRCASE__V22*/ meltfptr[21])));; MELT_LOCATION ("warmelt-macro.melt:5602:/ cond"); /*cond */ if ( /*_.PAIR_TAIL__V42*/ meltfptr[38]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5604:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURCASELOC__V32*/ meltfptr[29]), ("case (:ELSE ...) should be last in (VARIADIC ...)"), (melt_ptr_t) 0); } ; { MELT_LOCATION ("warmelt-macro.melt:5605:/ locexp"); melt_warning_str (0, (melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("This (VARIADIC ...) should have (:ELSE ...) case at last"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5606:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5606:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5603:/ quasiblock"); /*_.PROGN___V45*/ meltfptr[44] = /*_.RETURN___V44*/ meltfptr[43];; /*^compute */ /*_.IF___V43*/ meltfptr[42] = /*_.PROGN___V45*/ meltfptr[44];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5602:/ clear"); /*clear *//*_.RETURN___V44*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.PROGN___V45*/ meltfptr[44] = 0; } ; } else { /*^cond.else */ /*_.IF___V43*/ meltfptr[42] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5607:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5610:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V48*/ meltfptr[47] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_11 */ meltfrout-> tabval[11])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47]))); ((meltclosure_ptr_t) /*_.LAMBDA___V48*/ meltfptr[47])-> tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47]))); ((meltclosure_ptr_t) /*_.LAMBDA___V48*/ meltfptr[47])-> tabval[1] = (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V48*/ meltfptr[47]))); ((meltclosure_ptr_t) /*_.LAMBDA___V48*/ meltfptr[47])-> tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V47*/ meltfptr[44] = /*_.LAMBDA___V48*/ meltfptr[47];; MELT_LOCATION ("warmelt-macro.melt:5607:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout-> tabval[10]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V47*/ meltfptr[44]; /*_.BODYTUP__V49*/ meltfptr[48] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout-> tabval[9])), (melt_ptr_t) ( /*_.CASEREST__V36*/ meltfptr[35]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5612:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L13*/ meltfnum[6] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5612:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L13*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L14*/ meltfnum[13] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5612:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L14*/ meltfnum[13]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5612; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic else bodytup before hookfun"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.BODYTUP__V49*/ meltfptr[48]; /*_.MELT_DEBUG_FUN__V52*/ meltfptr[51] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V51*/ meltfptr[50] = /*_.MELT_DEBUG_FUN__V52*/ meltfptr[51];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5612:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L14*/ meltfnum[13] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V52*/ meltfptr[51] = 0; } ; } else { /*^cond.else */ /*_.IF___V51*/ meltfptr[50] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5612:/ quasiblock"); /*_.PROGN___V53*/ meltfptr[51] = /*_.IF___V51*/ meltfptr[50];; /*^compute */ /*_.IFCPP___V50*/ meltfptr[49] = /*_.PROGN___V53*/ meltfptr[51];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5612:/ clear"); /*clear *//*_#MELT_NEED_DBG__L13*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.IF___V51*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.PROGN___V53*/ meltfptr[51] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V50*/ meltfptr[49] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5613:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L15*/ meltfnum[13] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5613:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L15*/ meltfnum[13]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L16*/ meltfnum[6] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5613:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L16*/ meltfnum[6]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5613; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic hookfun before"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.HOOKFUN__V20*/ meltfptr[19]; /*_.MELT_DEBUG_FUN__V56*/ meltfptr[55] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V55*/ meltfptr[51] = /*_.MELT_DEBUG_FUN__V56*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5613:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L16*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V56*/ meltfptr[55] = 0; } ; } else { /*^cond.else */ /*_.IF___V55*/ meltfptr[51] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5613:/ quasiblock"); /*_.PROGN___V57*/ meltfptr[55] = /*_.IF___V55*/ meltfptr[51];; /*^compute */ /*_.IFCPP___V54*/ meltfptr[50] = /*_.PROGN___V57*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5613:/ clear"); /*clear *//*_#MELT_NEED_DBG__L15*/ meltfnum[13] = 0; /*^clear */ /*clear *//*_.IF___V55*/ meltfptr[51] = 0; /*^clear */ /*clear *//*_.PROGN___V57*/ meltfptr[55] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V54*/ meltfptr[50] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-macro.melt:5614:/ locexp"); #if MELT_HAVE_DEBUG if (melt_need_debug (0)) melt_dbgshortbacktrace (("mexpand_variadic before calling hookfun for else"), (15)); #endif ; } ; MELT_LOCATION ("warmelt-macro.melt:5615:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.HOOKFUN__V58*/ meltfptr[51] = melt_apply ((meltclosure_ptr_t) ( /*_.HOOKFUN__V20*/ meltfptr[19]), (melt_ptr_t) ( /*_.BODYTUP__V49*/ meltfptr[48]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; /*_.LET___V46*/ meltfptr[43] = /*_.HOOKFUN__V58*/ meltfptr[51];; MELT_LOCATION ("warmelt-macro.melt:5607:/ clear"); /*clear *//*_.LAMBDA___V47*/ meltfptr[44] = 0; /*^clear */ /*clear *//*_.BODYTUP__V49*/ meltfptr[48] = 0; /*^clear */ /*clear *//*_.IFCPP___V50*/ meltfptr[49] = 0; /*^clear */ /*clear *//*_.IFCPP___V54*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.HOOKFUN__V58*/ meltfptr[51] = 0; MELT_LOCATION ("warmelt-macro.melt:5601:/ quasiblock"); /*_.PROGN___V59*/ meltfptr[55] = /*_.LET___V46*/ meltfptr[43];; /*^compute */ /*_.IFELSE___V41*/ meltfptr[37] = /*_.PROGN___V59*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5601:/ clear"); /*clear *//*_.PAIR_TAIL__V42*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.IF___V43*/ meltfptr[42] = 0; /*^clear */ /*clear *//*_.LET___V46*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.PROGN___V59*/ meltfptr[55] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5618:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#NULL__L17*/ meltfnum[6] = (( /*_.CASEFIRST__V35*/ meltfptr[34]) == NULL);; MELT_LOCATION ("warmelt-macro.melt:5618:/ cond"); /*cond */ if ( /*_#NULL__L17*/ meltfnum[6]) /*then */ { /*^cond.then */ /*_#OR___L18*/ meltfnum[13] = /*_#NULL__L17*/ meltfnum[6];; } else { MELT_LOCATION ("warmelt-macro.melt:5618:/ cond.else"); /*^block */ /*anyblock */ { /*_#IS_A__L19*/ meltfnum[18] = melt_is_instance_of ((melt_ptr_t) ( /*_.CASEFIRST__V35*/ meltfptr[34]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; /*^compute */ /*_#OR___L18*/ meltfnum[13] = /*_#IS_A__L19*/ meltfnum[18];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5618:/ clear"); /*clear *//*_#IS_A__L19*/ meltfnum[18] = 0; } ; } ; /*^cond */ /*cond */ if ( /*_#OR___L18*/ meltfnum[13]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5620:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L20*/ meltfnum[18] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5620:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L20*/ meltfnum[18]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L21*/ meltfnum[20] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5620:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L21*/ meltfnum[20]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5620; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic casefirst="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CASEFIRST__V35*/ meltfptr[34]; /*_.MELT_DEBUG_FUN__V63*/ meltfptr[50] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V62*/ meltfptr[49] = /*_.MELT_DEBUG_FUN__V63*/ meltfptr[50];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5620:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L21*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V63*/ meltfptr[50] = 0; } ; } else { /*^cond.else */ /*_.IF___V62*/ meltfptr[49] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5620:/ quasiblock"); /*_.PROGN___V64*/ meltfptr[51] = /*_.IF___V62*/ meltfptr[49];; /*^compute */ /*_.IFCPP___V61*/ meltfptr[48] = /*_.PROGN___V64*/ meltfptr[51];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5620:/ clear"); /*clear *//*_#MELT_NEED_DBG__L20*/ meltfnum[18] = 0; /*^clear */ /*clear *//*_.IF___V62*/ meltfptr[49] = 0; /*^clear */ /*clear *//*_.PROGN___V64*/ meltfptr[51] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V61*/ meltfptr[48] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5621:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!konst_13_TRUE */ meltfrout-> tabval[13]); /*_.ARGS__V66*/ meltfptr[42] = melt_apply ((meltclosure_ptr_t) (( /*!LAMBDA_ARG_BINDINGS */ meltfrout-> tabval[12])), (melt_ptr_t) ( /*_.CASEFIRST__V35*/ meltfptr[34]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5622:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V67*/ meltfptr[43] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout-> tabval[14])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5624:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L22*/ meltfnum[20] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5624:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L22*/ meltfnum[20]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L23*/ meltfnum[18] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5624:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L23*/ meltfnum[18]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5624; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic args"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.ARGS__V66*/ meltfptr[42]; /*_.MELT_DEBUG_FUN__V70*/ meltfptr[49] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V69*/ meltfptr[50] = /*_.MELT_DEBUG_FUN__V70*/ meltfptr[49];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5624:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L23*/ meltfnum[18] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V70*/ meltfptr[49] = 0; } ; } else { /*^cond.else */ /*_.IF___V69*/ meltfptr[50] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5624:/ quasiblock"); /*_.PROGN___V71*/ meltfptr[51] = /*_.IF___V69*/ meltfptr[50];; /*^compute */ /*_.IFCPP___V68*/ meltfptr[55] = /*_.PROGN___V71*/ meltfptr[51];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5624:/ clear"); /*clear *//*_#MELT_NEED_DBG__L22*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.IF___V69*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.PROGN___V71*/ meltfptr[51] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V68*/ meltfptr[55] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit2__EACHTUP */ long meltcit2__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.ARGS__V66*/ meltfptr[42]); for ( /*_#FIX__L24*/ meltfnum[18] = 0; ( /*_#FIX__L24*/ meltfnum[18] >= 0) && ( /*_#FIX__L24*/ meltfnum[18] < meltcit2__EACHTUP_ln); /*_#FIX__L24*/ meltfnum[18]++) { /*_.FBI__V72*/ meltfptr[49] = melt_multiple_nth ((melt_ptr_t) ( /*_.ARGS__V66*/ meltfptr[42]), /*_#FIX__L24*/ meltfnum[18]); #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5628:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L25*/ meltfnum[20] = melt_is_instance_of ((melt_ptr_t) ( /*_.FBI__V72*/ meltfptr[49]), (melt_ptr_t) (( /*!CLASS_FORMAL_BINDING */ meltfrout->tabval[15])));; MELT_LOCATION ("warmelt-macro.melt:5628:/ cond"); /*cond */ if ( /*_#IS_A__L25*/ meltfnum[20]) /*then */ { /*^cond.then */ /*_.IFELSE___V74*/ meltfptr[51] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5628:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check fbi"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5628) ? (5628) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V74*/ meltfptr[51] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V73*/ meltfptr[50] = /*_.IFELSE___V74*/ meltfptr[51];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5628:/ clear"); /*clear *//*_#IS_A__L25*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.IFELSE___V74*/ meltfptr[51] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V73*/ meltfptr[50] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5629:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.FBI__V72*/ meltfptr[49]), (melt_ptr_t) (( /*!CLASS_ANY_BINDING */ meltfrout->tabval[16]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.FBI__V72*/ meltfptr[49]), 0, "BINDER"); /*_.FBISYMB__V76*/ meltfptr[75] = slot; }; ; } else { /*^cond.else */ /*_.FBISYMB__V76*/ meltfptr[75] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5631:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.NEWENV__V67*/ meltfptr[43]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LOC__V14*/ meltfptr[13]; /*_.WARN_IF_REDEFINED__V77*/ meltfptr[76] = melt_apply ((meltclosure_ptr_t) (( /*!WARN_IF_REDEFINED */ meltfrout->tabval[17])), (melt_ptr_t) ( /*_.FBISYMB__V76*/ meltfptr[75]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5632:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.MAPOBJECT_GET__V78*/ meltfptr[77] = /*mapobject_get */ melt_get_mapobjects ((meltmapobjects_ptr_t) ( /*_.VARBINDMAP__V19*/ meltfptr[18]), (meltobject_ptr_t) ( /*_.FBISYMB__V76*/ meltfptr[75]));; MELT_LOCATION ("warmelt-macro.melt:5632:/ cond"); /*cond */ if ( /*_.MAPOBJECT_GET__V78*/ meltfptr[77]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5634:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.FBISYMB__V76*/ meltfptr[75]), (melt_ptr_t) (( /*!CLASS_NAMED */ meltfrout->tabval[18]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.FBISYMB__V76*/ meltfptr[75]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V79*/ meltfptr[78] = slot; }; ; } else { /*^cond.else */ /*_.NAMED_NAME__V79*/ meltfptr[78] = NULL;; } ; { MELT_LOCATION ("warmelt-macro.melt:5634:/ locexp"); melt_error_str ((melt_ptr_t) ( /*_.CURCASELOC__V32*/ meltfptr[29]), ("formals should all be distinct in (VARIADIC ...) "), (melt_ptr_t) ( /*_.NAMED_NAME__V79*/ meltfptr[78])); } ; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5632:/ clear"); /*clear *//*_.NAMED_NAME__V79*/ meltfptr[78] = 0; } ; } /*noelse */ ; { MELT_LOCATION ("warmelt-macro.melt:5636:/ locexp"); meltgc_put_mapobjects ((meltmapobjects_ptr_t) ( /*_.VARBINDMAP__V19*/ meltfptr[18]), (meltobject_ptr_t) ( /*_.FBISYMB__V76*/ meltfptr[75]), (melt_ptr_t) ( /*_.FBI__V72*/ meltfptr[49])); } ; MELT_LOCATION ("warmelt-macro.melt:5637:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.FBI__V72*/ meltfptr[49]; /*_.PUT_ENV__V80*/ meltfptr[78] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout-> tabval[19])), (melt_ptr_t) ( /*_.NEWENV__V67*/ meltfptr[43]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.LET___V75*/ meltfptr[51] = /*_.PUT_ENV__V80*/ meltfptr[78];; MELT_LOCATION ("warmelt-macro.melt:5629:/ clear"); /*clear *//*_.FBISYMB__V76*/ meltfptr[75] = 0; /*^clear */ /*clear *//*_.WARN_IF_REDEFINED__V77*/ meltfptr[76] = 0; /*^clear */ /*clear *//*_.MAPOBJECT_GET__V78*/ meltfptr[77] = 0; /*^clear */ /*clear *//*_.PUT_ENV__V80*/ meltfptr[78] = 0; if ( /*_#FIX__L24*/ meltfnum[18] < 0) break; } /* end foreach_in_multiple meltcit2__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5625:/ clear"); /*clear *//*_.FBI__V72*/ meltfptr[49] = 0; /*^clear */ /*clear *//*_#FIX__L24*/ meltfnum[18] = 0; /*^clear */ /*clear *//*_.IFCPP___V73*/ meltfptr[50] = 0; /*^clear */ /*clear *//*_.LET___V75*/ meltfptr[51] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; MELT_LOCATION ("warmelt-macro.melt:5639:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5641:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V83*/ meltfptr[77] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_20 */ meltfrout->tabval[20])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77]))); ((meltclosure_ptr_t) /*_.LAMBDA___V83*/ meltfptr[77])-> tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77]))); ((meltclosure_ptr_t) /*_.LAMBDA___V83*/ meltfptr[77])-> tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V67*/ meltfptr[43]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V83*/ meltfptr[77]))); ((meltclosure_ptr_t) /*_.LAMBDA___V83*/ meltfptr[77])-> tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V82*/ meltfptr[76] = /*_.LAMBDA___V83*/ meltfptr[77];; MELT_LOCATION ("warmelt-macro.melt:5639:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout-> tabval[10]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V82*/ meltfptr[76]; /*_.BODYTUP__V84*/ meltfptr[78] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[9])), (melt_ptr_t) ( /*_.CASEREST__V36*/ meltfptr[35]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5642:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_IFVARIADIC */ meltfrout->tabval[21])), (5), "CLASS_SOURCE_IFVARIADIC"); /*_.INST__V86*/ meltfptr[85] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V86*/ meltfptr[85])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V86*/ meltfptr[85]), (1), ( /*_.LOC__V14*/ meltfptr[13]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SIFVARIADIC_ARGBIND", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V86*/ meltfptr[85])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V86*/ meltfptr[85]), (2), ( /*_.ARGS__V66*/ meltfptr[42]), "SIFVARIADIC_ARGBIND"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SIFVARIADIC_THEN", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V86*/ meltfptr[85])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V86*/ meltfptr[85]), (3), ( /*_.BODYTUP__V84*/ meltfptr[78]), "SIFVARIADIC_THEN"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SIFVARIADIC_ELSE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V86*/ meltfptr[85])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V86*/ meltfptr[85]), (4), (( /*nil */ NULL)), "SIFVARIADIC_ELSE"); ; /*_.SIFVARIADIC__V85*/ meltfptr[84] = /*_.INST__V86*/ meltfptr[85];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5648:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L26*/ meltfnum[20] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5648:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L26*/ meltfnum[20]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L27*/ meltfnum[26] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5648:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L27*/ meltfnum[26]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5648; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic bodytup"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.BODYTUP__V84*/ meltfptr[78]; /*_.MELT_DEBUG_FUN__V89*/ meltfptr[88] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V88*/ meltfptr[87] = /*_.MELT_DEBUG_FUN__V89*/ meltfptr[88];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5648:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L27*/ meltfnum[26] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V89*/ meltfptr[88] = 0; } ; } else { /*^cond.else */ /*_.IF___V88*/ meltfptr[87] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5648:/ quasiblock"); /*_.PROGN___V90*/ meltfptr[88] = /*_.IF___V88*/ meltfptr[87];; /*^compute */ /*_.IFCPP___V87*/ meltfptr[86] = /*_.PROGN___V90*/ meltfptr[88];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5648:/ clear"); /*clear *//*_#MELT_NEED_DBG__L26*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.IF___V88*/ meltfptr[87] = 0; /*^clear */ /*clear *//*_.PROGN___V90*/ meltfptr[88] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V87*/ meltfptr[86] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-macro.melt:5649:/ locexp"); #if MELT_HAVE_DEBUG if (melt_need_debug (0)) melt_dbgshortbacktrace (("mexpand_variadic before calling hookfun for casefirst"), (15)); #endif ; } ; MELT_LOCATION ("warmelt-macro.melt:5650:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.HOOKFUN__V91*/ meltfptr[87] = melt_apply ((meltclosure_ptr_t) ( /*_.HOOKFUN__V20*/ meltfptr[19]), (melt_ptr_t) ( /*_.SIFVARIADIC__V85*/ meltfptr[84]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5652:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V93*/ meltfptr[92] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_24 */ meltfrout->tabval[24])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V93*/ meltfptr[92])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V93*/ meltfptr[92]))); ((meltclosure_ptr_t) /*_.LAMBDA___V93*/ meltfptr[92])-> tabval[0] = (melt_ptr_t) ( /*_.SIFVARIADIC__V85*/ meltfptr[84]); ; /*_.LAMBDA___V92*/ meltfptr[88] = /*_.LAMBDA___V93*/ meltfptr[92];; MELT_LOCATION ("warmelt-macro.melt:5651:/ compute"); /*_.HOOKFUN__V20*/ meltfptr[19] = /*_.SETQ___V94*/ meltfptr[93] = /*_.LAMBDA___V92*/ meltfptr[88];; /*_.LET___V81*/ meltfptr[75] = /*_.SETQ___V94*/ meltfptr[93];; MELT_LOCATION ("warmelt-macro.melt:5639:/ clear"); /*clear *//*_.LAMBDA___V82*/ meltfptr[76] = 0; /*^clear */ /*clear *//*_.BODYTUP__V84*/ meltfptr[78] = 0; /*^clear */ /*clear *//*_.SIFVARIADIC__V85*/ meltfptr[84] = 0; /*^clear */ /*clear *//*_.IFCPP___V87*/ meltfptr[86] = 0; /*^clear */ /*clear *//*_.HOOKFUN__V91*/ meltfptr[87] = 0; /*^clear */ /*clear *//*_.LAMBDA___V92*/ meltfptr[88] = 0; /*^clear */ /*clear *//*_.SETQ___V94*/ meltfptr[93] = 0; /*_.LET___V65*/ meltfptr[38] = /*_.LET___V81*/ meltfptr[75];; MELT_LOCATION ("warmelt-macro.melt:5621:/ clear"); /*clear *//*_.ARGS__V66*/ meltfptr[42] = 0; /*^clear */ /*clear *//*_.NEWENV__V67*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.IFCPP___V68*/ meltfptr[55] = 0; /*^clear */ /*clear *//*_.LET___V81*/ meltfptr[75] = 0; MELT_LOCATION ("warmelt-macro.melt:5618:/ quasiblock"); /*_.PROGN___V95*/ meltfptr[76] = /*_.LET___V65*/ meltfptr[38];; /*^compute */ /*_.IFELSE___V60*/ meltfptr[44] = /*_.PROGN___V95*/ meltfptr[76];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5618:/ clear"); /*clear *//*_.IFCPP___V61*/ meltfptr[48] = 0; /*^clear */ /*clear *//*_.LET___V65*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.PROGN___V95*/ meltfptr[76] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5662:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L28*/ meltfnum[26] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5662:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L28*/ meltfnum[26]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L29*/ meltfnum[20] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5662:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L29*/ meltfnum[20]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5662; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic invalid casefirst"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CASEFIRST__V35*/ meltfptr[34]; /*_.MELT_DEBUG_FUN__V98*/ meltfptr[86] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V97*/ meltfptr[84] = /*_.MELT_DEBUG_FUN__V98*/ meltfptr[86];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5662:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L29*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V98*/ meltfptr[86] = 0; } ; } else { /*^cond.else */ /*_.IF___V97*/ meltfptr[84] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5662:/ quasiblock"); /*_.PROGN___V99*/ meltfptr[87] = /*_.IF___V97*/ meltfptr[84];; /*^compute */ /*_.IFCPP___V96*/ meltfptr[78] = /*_.PROGN___V99*/ meltfptr[87];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5662:/ clear"); /*clear *//*_#MELT_NEED_DBG__L28*/ meltfnum[26] = 0; /*^clear */ /*clear *//*_.IF___V97*/ meltfptr[84] = 0; /*^clear */ /*clear *//*_.PROGN___V99*/ meltfptr[87] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V96*/ meltfptr[78] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-macro.melt:5663:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.CURCASELOC__V32*/ meltfptr[29]), ("invalid case in (VARIADIC ...), should start with formals"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5664:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5664:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5661:/ quasiblock"); /*_.PROGN___V101*/ meltfptr[93] = /*_.RETURN___V100*/ meltfptr[88];; /*^compute */ /*_.IFELSE___V60*/ meltfptr[44] = /*_.PROGN___V101*/ meltfptr[93];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5618:/ clear"); /*clear *//*_.IFCPP___V96*/ meltfptr[78] = 0; /*^clear */ /*clear *//*_.RETURN___V100*/ meltfptr[88] = 0; /*^clear */ /*clear *//*_.PROGN___V101*/ meltfptr[93] = 0; } ; } ; /*_.IFELSE___V41*/ meltfptr[37] = /*_.IFELSE___V60*/ meltfptr[44];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5601:/ clear"); /*clear *//*_#NULL__L17*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_#OR___L18*/ meltfnum[13] = 0; /*^clear */ /*clear *//*_.IFELSE___V60*/ meltfptr[44] = 0; } ; } ; /*_.LET___V31*/ meltfptr[25] = /*_.IFELSE___V41*/ meltfptr[37];; MELT_LOCATION ("warmelt-macro.melt:5592:/ clear"); /*clear *//*_.CURCASELOC__V32*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.CURCASECONT__V33*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.CURCASEPAIR__V34*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.CASEFIRST__V35*/ meltfptr[34] = 0; /*^clear */ /*clear *//*_.CASEREST__V36*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.IFCPP___V37*/ meltfptr[36] = 0; /*^clear */ /*clear *//*_#__L12*/ meltfnum[10] = 0; /*^clear */ /*clear *//*_.IFELSE___V41*/ meltfptr[37] = 0; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5668:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L30*/ meltfnum[20] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5668:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L30*/ meltfnum[20]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L31*/ meltfnum[26] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5668:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L31*/ meltfnum[26]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5668; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic done curcase"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CURCASE__V23*/ meltfptr[22]; /*_.MELT_DEBUG_FUN__V104*/ meltfptr[55] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V103*/ meltfptr[43] = /*_.MELT_DEBUG_FUN__V104*/ meltfptr[55];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5668:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L31*/ meltfnum[26] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V104*/ meltfptr[55] = 0; } ; } else { /*^cond.else */ /*_.IF___V103*/ meltfptr[43] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5668:/ quasiblock"); /*_.PROGN___V105*/ meltfptr[75] = /*_.IF___V103*/ meltfptr[43];; /*^compute */ /*_.IFCPP___V102*/ meltfptr[42] = /*_.PROGN___V105*/ meltfptr[75];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5668:/ clear"); /*clear *//*_#MELT_NEED_DBG__L30*/ meltfnum[20] = 0; /*^clear */ /*clear *//*_.IF___V103*/ meltfptr[43] = 0; /*^clear */ /*clear *//*_.PROGN___V105*/ meltfptr[75] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V102*/ meltfptr[42] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; } /* ending foreach_pair meltcit1__EACHPAIR */ /*_.CURPAIRCASE__V22*/ meltfptr[21] = NULL; /*_.CURCASE__V23*/ meltfptr[22] = NULL; /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5584:/ clear"); /*clear *//*_.CURPAIRCASE__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.CURCASE__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.IFCPP___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_#IS_NOT_A__L9*/ meltfnum[7] = 0; /*^clear */ /*clear *//*_.IF___V28*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.LET___V31*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.IFCPP___V102*/ meltfptr[42] = 0; } /*endciterblock FOREACH_PAIR */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5670:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L32*/ meltfnum[6] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5670:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L32*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L33*/ meltfnum[13] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5670:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L33*/ meltfnum[13]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5670; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic rescont"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.RESCONT__V17*/ meltfptr[16]; /*_.MELT_DEBUG_FUN__V108*/ meltfptr[76] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V107*/ meltfptr[38] = /*_.MELT_DEBUG_FUN__V108*/ meltfptr[76];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5670:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L33*/ meltfnum[13] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V108*/ meltfptr[76] = 0; } ; } else { /*^cond.else */ /*_.IF___V107*/ meltfptr[38] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5670:/ quasiblock"); /*_.PROGN___V109*/ meltfptr[86] = /*_.IF___V107*/ meltfptr[38];; /*^compute */ /*_.IFCPP___V106*/ meltfptr[48] = /*_.PROGN___V109*/ meltfptr[86];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5670:/ clear"); /*clear *//*_#MELT_NEED_DBG__L32*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.IF___V107*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.PROGN___V109*/ meltfptr[86] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V106*/ meltfptr[48] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5671:/ quasiblock"); /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.RESCONT__V17*/ meltfptr[16]), (melt_ptr_t) (( /*!CLASS_REFERENCE */ meltfrout->tabval[2]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.RESCONT__V17*/ meltfptr[16]), 0, "REFERENCED_VALUE"); /*_.RES__V111*/ meltfptr[87] = slot; }; ; } else { /*^cond.else */ /*_.RES__V111*/ meltfptr[87] = NULL;; } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5673:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L34*/ meltfnum[10] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5673:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L34*/ meltfnum[10]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L35*/ meltfnum[26] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5673:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L35*/ meltfnum[26]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5673; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic result"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.RES__V111*/ meltfptr[87]; /*_.MELT_DEBUG_FUN__V114*/ meltfptr[93] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V113*/ meltfptr[88] = /*_.MELT_DEBUG_FUN__V114*/ meltfptr[93];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5673:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L35*/ meltfnum[26] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V114*/ meltfptr[93] = 0; } ; } else { /*^cond.else */ /*_.IF___V113*/ meltfptr[88] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5673:/ quasiblock"); /*_.PROGN___V115*/ meltfptr[44] = /*_.IF___V113*/ meltfptr[88];; /*^compute */ /*_.IFCPP___V112*/ meltfptr[78] = /*_.PROGN___V115*/ meltfptr[44];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5673:/ clear"); /*clear *//*_#MELT_NEED_DBG__L34*/ meltfnum[10] = 0; /*^clear */ /*clear *//*_.IF___V113*/ meltfptr[88] = 0; /*^clear */ /*clear *//*_.PROGN___V115*/ meltfptr[44] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V112*/ meltfptr[78] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5674:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.RES__V111*/ meltfptr[87];; { MELT_LOCATION ("warmelt-macro.melt:5674:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V110*/ meltfptr[84] = /*_.RETURN___V116*/ meltfptr[29];; MELT_LOCATION ("warmelt-macro.melt:5671:/ clear"); /*clear *//*_.RES__V111*/ meltfptr[87] = 0; /*^clear */ /*clear *//*_.IFCPP___V112*/ meltfptr[78] = 0; /*^clear */ /*clear *//*_.RETURN___V116*/ meltfptr[29] = 0; /*_.LET___V12*/ meltfptr[10] = /*_.LET___V110*/ meltfptr[84];; MELT_LOCATION ("warmelt-macro.melt:5575:/ clear"); /*clear *//*_.CONT__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LOC__V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.FIRSTPAIR__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.RESCONT__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_#LIST_LENGTH__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#I__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_#I__L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_.VARBINDMAP__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.HOOKFUN__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.IFCPP___V106*/ meltfptr[48] = 0; /*^clear */ /*clear *//*_.LET___V110*/ meltfptr[84] = 0; MELT_LOCATION ("warmelt-macro.melt:5571:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V12*/ meltfptr[10];; { MELT_LOCATION ("warmelt-macro.melt:5571:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.LET___V12*/ meltfptr[10] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_VARIADIC", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_111_warmelt_macro_MEXPAND_VARIADIC_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_111_warmelt_macro_MEXPAND_VARIADIC */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_112_warmelt_macro_LAMBDA___28__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_112_warmelt_macro_LAMBDA___28___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_112_warmelt_macro_LAMBDA___28___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 6 melt_ptr_t mcfr_varptr[6]; #define MELTFRAM_NBVARNUM 2 long mcfr_varnum[2]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_112_warmelt_macro_LAMBDA___28___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 6; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 6; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5580:/ getarg"); /*_.X__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5581:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5581:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5581:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5581; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic/hookfun rescont set to x"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.X__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V4*/ meltfptr[3] = /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5581:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = 0; } ; } else { /*^cond.else */ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5581:/ quasiblock"); /*_.PROGN___V6*/ meltfptr[4] = /*_.IF___V4*/ meltfptr[3];; /*^compute */ /*_.IFCPP___V3*/ meltfptr[2] = /*_.PROGN___V6*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5581:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.PROGN___V6*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V3*/ meltfptr[2] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5582:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*~RESCONT */ meltfclos-> tabval[0])), (melt_ptr_t) (( /*!CLASS_REFERENCE */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @REFERENCED_VALUE", melt_magic_discr ((melt_ptr_t) (( /*~RESCONT */ meltfclos-> tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*~RESCONT */ meltfclos->tabval[0])), (0), ( /*_.X__V2*/ meltfptr[1]), "REFERENCED_VALUE"); ; /*^touch */ meltgc_touch (( /*~RESCONT */ meltfclos->tabval[0])); ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5580:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_112_warmelt_macro_LAMBDA___28___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*noretval */ NULL); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_112_warmelt_macro_LAMBDA___28__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_113_warmelt_macro_LAMBDA___29__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_113_warmelt_macro_LAMBDA___29___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_113_warmelt_macro_LAMBDA___29___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_113_warmelt_macro_LAMBDA___29___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5610:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~ENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5610:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_113_warmelt_macro_LAMBDA___29___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_113_warmelt_macro_LAMBDA___29__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_114_warmelt_macro_LAMBDA___30__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_114_warmelt_macro_LAMBDA___30___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_114_warmelt_macro_LAMBDA___30___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_114_warmelt_macro_LAMBDA___30___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5641:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5641:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_114_warmelt_macro_LAMBDA___30___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_114_warmelt_macro_LAMBDA___30__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_115_warmelt_macro_LAMBDA___31__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_115_warmelt_macro_LAMBDA___31___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_115_warmelt_macro_LAMBDA___31___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 13 melt_ptr_t mcfr_varptr[13]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_115_warmelt_macro_LAMBDA___31___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 13; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 13; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5652:/ getarg"); /*_.XTUP__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5653:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5653:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5653:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5653; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic/hookfun xtup"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.XTUP__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V4*/ meltfptr[3] = /*_.MELT_DEBUG_FUN__V5*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5653:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V5*/ meltfptr[4] = 0; } ; } else { /*^cond.else */ /*_.IF___V4*/ meltfptr[3] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5653:/ quasiblock"); /*_.PROGN___V6*/ meltfptr[4] = /*_.IF___V4*/ meltfptr[3];; /*^compute */ /*_.IFCPP___V3*/ meltfptr[2] = /*_.PROGN___V6*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5653:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V4*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.PROGN___V6*/ meltfptr[4] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V3*/ meltfptr[2] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5654:/ checksignal"); MELT_CHECK_SIGNAL (); ; MELT_LOCATION ("warmelt-macro.melt:5655:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_MULTIPLE_OR_NULL__L3*/ meltfnum[1] = (( /*_.XTUP__V2*/ meltfptr[1]) == NULL || (melt_unsafe_magic_discr ((melt_ptr_t) ( /*_.XTUP__V2*/ meltfptr[1])) == MELTOBMAG_MULTIPLE));; MELT_LOCATION ("warmelt-macro.melt:5655:/ cond"); /*cond */ if ( /*_#IS_MULTIPLE_OR_NULL__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[3] = /*_.XTUP__V2*/ meltfptr[1];; } else { MELT_LOCATION ("warmelt-macro.melt:5655:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5657:/ blockmultialloc"); /*multiallocblock */ { struct meltletrec_1_st { struct MELT_MULTIPLE_STRUCT (1) rtup_0__TUPLREC__x8; 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__x8 */ /*_.TUPLREC___V9*/ meltfptr[8] = (melt_ptr_t) & meltletrec_1_ptr->rtup_0__TUPLREC__x8; meltletrec_1_ptr->rtup_0__TUPLREC__x8.discr = (meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_MULTIPLE)))); meltletrec_1_ptr->rtup_0__TUPLREC__x8.nbval = 1; /*^putuple */ /*putupl#11 */ melt_assertmsg ("putupl [:5657] #11 checktup", melt_magic_discr ((melt_ptr_t) ( /*_.TUPLREC___V9*/ meltfptr[8])) == MELTOBMAG_MULTIPLE); melt_assertmsg ("putupl [:5657] #11 checkoff", (0 >= 0 && 0 < melt_multiple_length ((melt_ptr_t) ( /*_.TUPLREC___V9*/ meltfptr[8])))); ((meltmultiple_ptr_t) ( /*_.TUPLREC___V9*/ meltfptr[8]))-> tabval[0] = (melt_ptr_t) ( /*_.XTUP__V2*/ meltfptr[1]); ; /*^touch */ meltgc_touch ( /*_.TUPLREC___V9*/ meltfptr[8]); ; /*_.TUPLE___V8*/ meltfptr[4] = /*_.TUPLREC___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5657:/ clear"); /*clear *//*_.TUPLREC___V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.TUPLREC___V9*/ meltfptr[8] = 0; } /*end multiallocblock */ ; /*_.IFELSE___V7*/ meltfptr[3] = /*_.TUPLE___V8*/ meltfptr[4];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5655:/ clear"); /*clear *//*_.TUPLE___V8*/ meltfptr[4] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5654:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) (( /*~SIFVARIADIC */ meltfclos-> tabval[0])), (melt_ptr_t) (( /*!CLASS_SOURCE_IFVARIADIC */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SIFVARIADIC_ELSE", melt_magic_discr ((melt_ptr_t) (( /*~SIFVARIADIC */ meltfclos-> tabval[0]))) == MELTOBMAG_OBJECT); melt_putfield_object ((( /*~SIFVARIADIC */ meltfclos->tabval[0])), (4), ( /*_.IFELSE___V7*/ meltfptr[3]), "SIFVARIADIC_ELSE"); ; /*^touch */ meltgc_touch (( /*~SIFVARIADIC */ meltfclos->tabval[0])); ; /*epilog */ } ; } /*noelse */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5658:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L4*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5658:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L5*/ meltfnum[4] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5658:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L5*/ meltfnum[4]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5658; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_variadic/hookfun updated sifvariadic"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & ( /*~SIFVARIADIC */ meltfclos->tabval[0]); /*_.MELT_DEBUG_FUN__V12*/ meltfptr[11] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V11*/ meltfptr[4] = /*_.MELT_DEBUG_FUN__V12*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5658:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V12*/ meltfptr[11] = 0; } ; } else { /*^cond.else */ /*_.IF___V11*/ meltfptr[4] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5658:/ quasiblock"); /*_.PROGN___V13*/ meltfptr[11] = /*_.IF___V11*/ meltfptr[4];; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.PROGN___V13*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5658:/ clear"); /*clear *//*_#MELT_NEED_DBG__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V11*/ meltfptr[4] = 0; /*^clear */ /*clear *//*_.PROGN___V13*/ meltfptr[11] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5652:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.IFCPP___V10*/ meltfptr[8];; { MELT_LOCATION ("warmelt-macro.melt:5652:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V3*/ meltfptr[2] = 0; /*^clear */ /*clear *//*_#IS_MULTIPLE_OR_NULL__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[3] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_115_warmelt_macro_LAMBDA___31___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_115_warmelt_macro_LAMBDA___31__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_116_warmelt_macro_MEXPAND_MULTICALL (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_116_warmelt_macro_MEXPAND_MULTICALL_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_116_warmelt_macro_MEXPAND_MULTICALL_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 50 melt_ptr_t mcfr_varptr[50]; #define MELTFRAM_NBVARNUM 12 long mcfr_varnum[12]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_116_warmelt_macro_MEXPAND_MULTICALL_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 50; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 50; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_MULTICALL", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5694:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5695:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5695:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5695:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5695) ? (5695) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5695:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5696:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5696:/ cond"); /*cond */ if ( /*_#IS_A__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V9*/ meltfptr[8] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5696:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5696) ? (5696) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5696:/ clear"); /*clear *//*_#IS_A__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V8*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5697:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:5697:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5697:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5697) ? (5697) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5697:/ clear"); /*clear *//*_#IS_CLOSURE__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5698:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5698:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5698:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5698) ? (5698) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[10] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5698:/ clear"); /*clear *//*_#IS_OBJECT__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[10] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5699:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V15*/ meltfptr[14] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5700:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V16*/ meltfptr[15] = slot; }; ; /*_.LIST_FIRST__V17*/ meltfptr[16] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V15*/ meltfptr[14])));; /*^compute */ /*_.CURPAIR__V18*/ meltfptr[17] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V17*/ meltfptr[16])));; MELT_LOCATION ("warmelt-macro.melt:5702:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V19*/ meltfptr[18] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[2])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5705:/ quasiblock"); /*_.PAIR_HEAD__V21*/ meltfptr[20] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5705:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.RESTUP__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) (( /*!LAMBDA_ARG_BINDINGS */ meltfrout->tabval[3])), (melt_ptr_t) ( /*_.PAIR_HEAD__V21*/ meltfptr[20]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5707:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L5*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.RESTUP__V22*/ meltfptr[21]), (melt_ptr_t) (( /*!DISCR_VARIADIC_FORMAL_SEQUENCE */ meltfrout->tabval[4])));; MELT_LOCATION ("warmelt-macro.melt:5707:/ cond"); /*cond */ if ( /*_#IS_A__L5*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5709:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V16*/ meltfptr[15]), ("MULTICALL cannot have variadic result"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5710:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5710:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5708:/ quasiblock"); /*_.PROGN___V25*/ meltfptr[24] = /*_.RETURN___V24*/ meltfptr[23];; /*^compute */ /*_.IF___V23*/ meltfptr[22] = /*_.PROGN___V25*/ meltfptr[24];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5707:/ clear"); /*clear *//*_.RETURN___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.PROGN___V25*/ meltfptr[24] = 0; } ; } else { /*^cond.else */ /*_.IF___V23*/ meltfptr[22] = NULL;; } ; /*^compute */ /*_.PAIR_TAIL__V26*/ meltfptr[23] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5711:/ compute"); /*_.CURPAIR__V18*/ meltfptr[17] = /*_.SETQ___V27*/ meltfptr[24] = /*_.PAIR_TAIL__V26*/ meltfptr[23];; MELT_LOCATION ("warmelt-macro.melt:5712:/ quasiblock"); /*_.CURCALLEXP__V29*/ meltfptr[28] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5713:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L6*/ meltfnum[5] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCALLEXP__V29*/ meltfptr[28]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; /*^compute */ /*_#NOT__L7*/ meltfnum[6] = (!( /*_#IS_A__L6*/ meltfnum[5]));; MELT_LOCATION ("warmelt-macro.melt:5713:/ cond"); /*cond */ if ( /*_#NOT__L7*/ meltfnum[6]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5714:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V16*/ meltfptr[15]), ("missing called expression in MULTICALL"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; /*_.PAIR_TAIL__V30*/ meltfptr[29] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:5715:/ compute"); /*_.CURPAIR__V18*/ meltfptr[17] = /*_.SETQ___V31*/ meltfptr[30] = /*_.PAIR_TAIL__V30*/ meltfptr[29];; MELT_LOCATION ("warmelt-macro.melt:5716:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.CURCALL__V33*/ meltfptr[32] = melt_apply ((meltclosure_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.CURCALLEXP__V29*/ meltfptr[28]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5719:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L8*/ meltfnum[7] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCALL__V33*/ meltfptr[32]), (melt_ptr_t) (( /*!CLASS_SOURCE_APPLY */ meltfrout->tabval[6])));; MELT_LOCATION ("warmelt-macro.melt:5719:/ cond"); /*cond */ if ( /*_#IS_A__L8*/ meltfnum[7]) /*then */ { /*^cond.then */ /*_#OR___L9*/ meltfnum[8] = /*_#IS_A__L8*/ meltfnum[7];; } else { MELT_LOCATION ("warmelt-macro.melt:5719:/ cond.else"); /*^block */ /*anyblock */ { /*_#IS_A__L10*/ meltfnum[9] = melt_is_instance_of ((melt_ptr_t) ( /*_.CURCALL__V33*/ meltfptr[32]), (melt_ptr_t) (( /*!CLASS_SOURCE_MSEND */ meltfrout->tabval[5])));; /*^compute */ /*_#OR___L9*/ meltfnum[8] = /*_#IS_A__L10*/ meltfnum[9];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5719:/ clear"); /*clear *//*_#IS_A__L10*/ meltfnum[9] = 0; } ; } ; /*^cond */ /*cond */ if ( /*_#OR___L9*/ meltfnum[8]) /*then */ { /*^cond.then */ /*_.IFELSE___V34*/ meltfptr[33] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5719:/ cond.else"); /*^block */ /*anyblock */ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5723:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L11*/ meltfnum[9] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5723:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L11*/ meltfnum[9]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L12*/ meltfnum[11] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5723:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L12*/ meltfnum[11]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5723; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_multicall bad curcall"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CURCALL__V33*/ meltfptr[32]; /*_.MELT_DEBUG_FUN__V37*/ meltfptr[36] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout-> tabval[7])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V36*/ meltfptr[35] = /*_.MELT_DEBUG_FUN__V37*/ meltfptr[36];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5723:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L12*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V37*/ meltfptr[36] = 0; } ; } else { /*^cond.else */ /*_.IF___V36*/ meltfptr[35] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5723:/ quasiblock"); /*_.PROGN___V38*/ meltfptr[36] = /*_.IF___V36*/ meltfptr[35];; /*^compute */ /*_.IFCPP___V35*/ meltfptr[34] = /*_.PROGN___V38*/ meltfptr[36];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5723:/ clear"); /*clear *//*_#MELT_NEED_DBG__L11*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_.IF___V36*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.PROGN___V38*/ meltfptr[36] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V35*/ meltfptr[34] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-macro.melt:5724:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V16*/ meltfptr[15]), ("called expression in MULTICALL is invalid, expecting application or send"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5725:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5725:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5722:/ quasiblock"); /*_.PROGN___V40*/ meltfptr[36] = /*_.RETURN___V39*/ meltfptr[35];; /*^compute */ /*_.IFELSE___V34*/ meltfptr[33] = /*_.PROGN___V40*/ meltfptr[36];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5719:/ clear"); /*clear *//*_.IFCPP___V35*/ meltfptr[34] = 0; /*^clear */ /*clear *//*_.RETURN___V39*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.PROGN___V40*/ meltfptr[36] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5727:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V42*/ meltfptr[35] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_10 */ meltfrout-> tabval[10])), (1)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V42*/ meltfptr[35])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V42*/ meltfptr[35]))); ((meltclosure_ptr_t) /*_.LAMBDA___V42*/ meltfptr[35])->tabval[0] = (melt_ptr_t) ( /*_.NEWENV__V19*/ meltfptr[18]); ; /*_.LAMBDA___V41*/ meltfptr[34] = /*_.LAMBDA___V42*/ meltfptr[35];; MELT_LOCATION ("warmelt-macro.melt:5726:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V41*/ meltfptr[34]; /*_.MULTIPLE_EVERY__V43*/ meltfptr[36] = melt_apply ((meltclosure_ptr_t) (( /*!MULTIPLE_EVERY */ meltfrout->tabval[8])), (melt_ptr_t) ( /*_.RESTUP__V22*/ meltfptr[21]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5729:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5731:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V46*/ meltfptr[45] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_13 */ meltfrout-> tabval[13])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45]))); ((meltclosure_ptr_t) /*_.LAMBDA___V46*/ meltfptr[45])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45]))); ((meltclosure_ptr_t) /*_.LAMBDA___V46*/ meltfptr[45])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V19*/ meltfptr[18]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V46*/ meltfptr[45]))); ((meltclosure_ptr_t) /*_.LAMBDA___V46*/ meltfptr[45])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V45*/ meltfptr[44] = /*_.LAMBDA___V46*/ meltfptr[45];; MELT_LOCATION ("warmelt-macro.melt:5729:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[12]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V45*/ meltfptr[44]; /*_.BODYTUP__V47*/ meltfptr[46] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[11])), (melt_ptr_t) ( /*_.CURPAIR__V18*/ meltfptr[17]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5733:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_MULTICALL */ meltfrout->tabval[14])), (5), "CLASS_SOURCE_MULTICALL"); /*_.INST__V49*/ meltfptr[48] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V49*/ meltfptr[48])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V49*/ meltfptr[48]), (1), ( /*_.LOC__V16*/ meltfptr[15]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SMULC_RESBIND", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V49*/ meltfptr[48])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V49*/ meltfptr[48]), (2), ( /*_.RESTUP__V22*/ meltfptr[21]), "SMULC_RESBIND"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SMULC_CALL", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V49*/ meltfptr[48])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V49*/ meltfptr[48]), (3), ( /*_.CURCALL__V33*/ meltfptr[32]), "SMULC_CALL"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SMULC_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V49*/ meltfptr[48])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V49*/ meltfptr[48]), (4), ( /*_.BODYTUP__V47*/ meltfptr[46]), "SMULC_BODY"); ; /*_.MULCR__V48*/ meltfptr[47] = /*_.INST__V49*/ meltfptr[48];; MELT_LOCATION ("warmelt-macro.melt:5740:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MULCR__V48*/ meltfptr[47];; { MELT_LOCATION ("warmelt-macro.melt:5740:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V44*/ meltfptr[43] = /*_.RETURN___V50*/ meltfptr[49];; MELT_LOCATION ("warmelt-macro.melt:5729:/ clear"); /*clear *//*_.LAMBDA___V45*/ meltfptr[44] = 0; /*^clear */ /*clear *//*_.BODYTUP__V47*/ meltfptr[46] = 0; /*^clear */ /*clear *//*_.MULCR__V48*/ meltfptr[47] = 0; /*^clear */ /*clear *//*_.RETURN___V50*/ meltfptr[49] = 0; /*_.LET___V32*/ meltfptr[31] = /*_.LET___V44*/ meltfptr[43];; MELT_LOCATION ("warmelt-macro.melt:5716:/ clear"); /*clear *//*_.CURCALL__V33*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_#IS_A__L8*/ meltfnum[7] = 0; /*^clear */ /*clear *//*_#OR___L9*/ meltfnum[8] = 0; /*^clear */ /*clear *//*_.IFELSE___V34*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.LAMBDA___V41*/ meltfptr[34] = 0; /*^clear */ /*clear *//*_.MULTIPLE_EVERY__V43*/ meltfptr[36] = 0; /*^clear */ /*clear *//*_.LET___V44*/ meltfptr[43] = 0; /*_.LET___V28*/ meltfptr[27] = /*_.LET___V32*/ meltfptr[31];; MELT_LOCATION ("warmelt-macro.melt:5712:/ clear"); /*clear *//*_.CURCALLEXP__V29*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_#IS_A__L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_#NOT__L7*/ meltfnum[6] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.SETQ___V31*/ meltfptr[30] = 0; /*^clear */ /*clear *//*_.LET___V32*/ meltfptr[31] = 0; /*_.LET___V20*/ meltfptr[19] = /*_.LET___V28*/ meltfptr[27];; MELT_LOCATION ("warmelt-macro.melt:5705:/ clear"); /*clear *//*_.PAIR_HEAD__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.RESTUP__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_#IS_A__L5*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V26*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.SETQ___V27*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.LET___V28*/ meltfptr[27] = 0; /*_.LET___V14*/ meltfptr[12] = /*_.LET___V20*/ meltfptr[19];; MELT_LOCATION ("warmelt-macro.melt:5699:/ clear"); /*clear *//*_.CONT__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.LOC__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.CURPAIR__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.NEWENV__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.LET___V20*/ meltfptr[19] = 0; MELT_LOCATION ("warmelt-macro.melt:5694:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V14*/ meltfptr[12];; { MELT_LOCATION ("warmelt-macro.melt:5694:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.LET___V14*/ meltfptr[12] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_MULTICALL", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_116_warmelt_macro_MEXPAND_MULTICALL_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_116_warmelt_macro_MEXPAND_MULTICALL */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_117_warmelt_macro_LAMBDA___32__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_117_warmelt_macro_LAMBDA___32___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_117_warmelt_macro_LAMBDA___32___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_117_warmelt_macro_LAMBDA___32___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5727:/ getarg"); /*_.LB__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LB__V2*/ meltfptr[1]; /*_.PUT_ENV__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout->tabval[0])), (melt_ptr_t) (( /*~NEWENV */ meltfclos->tabval[0])), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.PUT_ENV__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5727:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.PUT_ENV__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_117_warmelt_macro_LAMBDA___32___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_117_warmelt_macro_LAMBDA___32__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_118_warmelt_macro_LAMBDA___33__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_118_warmelt_macro_LAMBDA___33___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_118_warmelt_macro_LAMBDA___33___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_118_warmelt_macro_LAMBDA___33___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5731:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5731:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_118_warmelt_macro_LAMBDA___33___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_118_warmelt_macro_LAMBDA___33__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_119_warmelt_macro_MEXPAND_QUOTE (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_119_warmelt_macro_MEXPAND_QUOTE_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_119_warmelt_macro_MEXPAND_QUOTE_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 27 melt_ptr_t mcfr_varptr[27]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_119_warmelt_macro_MEXPAND_QUOTE_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 27; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 27; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_QUOTE", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5756:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5757:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5757:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5757:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5757) ? (5757) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5757:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5758:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5758:/ cond"); /*cond */ if ( /*_#IS_A__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V9*/ meltfptr[8] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5758:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5758) ? (5758) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5758:/ clear"); /*clear *//*_#IS_A__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V8*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5759:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5759:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5759:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5759) ? (5759) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5759:/ clear"); /*clear *//*_#IS_OBJECT__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5760:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V13*/ meltfptr[12] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5761:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V14*/ meltfptr[13] = slot; }; ; /*_.LIST_FIRST__V15*/ meltfptr[14] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V13*/ meltfptr[12])));; /*^compute */ /*_.CURPAIR__V16*/ meltfptr[15] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V15*/ meltfptr[14])));; /*^compute */ /*_.QUOTED__V17*/ meltfptr[16] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V16*/ meltfptr[15])));; MELT_LOCATION ("warmelt-macro.melt:5765:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.PAIR_TAIL__V18*/ meltfptr[17] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V16*/ meltfptr[15])));; MELT_LOCATION ("warmelt-macro.melt:5765:/ cond"); /*cond */ if ( /*_.PAIR_TAIL__V18*/ meltfptr[17]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5766:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("QUOTE should have only one argument"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5767:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.QUOTED__V17*/ meltfptr[16]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout-> tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:5767:/ cond"); /*cond */ if ( /*_#IS_A__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V19*/ meltfptr[18] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5767:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5770:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_STRING__L5*/ meltfnum[4] = (melt_magic_discr ((melt_ptr_t) ( /*_.QUOTED__V17*/ meltfptr[16])) == MELTOBMAG_STRING);; MELT_LOCATION ("warmelt-macro.melt:5770:/ cond"); /*cond */ if ( /*_#IS_STRING__L5*/ meltfnum[4]) /*then */ { /*^cond.then */ /*_.IFELSE___V20*/ meltfptr[19] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5770:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5773:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_INTEGERBOX__L6*/ meltfnum[5] = (melt_magic_discr ((melt_ptr_t) ( /*_.QUOTED__V17*/ meltfptr[16])) == MELTOBMAG_INT);; MELT_LOCATION ("warmelt-macro.melt:5773:/ cond"); /*cond */ if ( /*_#IS_INTEGERBOX__L6*/ meltfnum[5]) /*then */ { /*^cond.then */ /*_.IFELSE___V21*/ meltfptr[20] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5773:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5777:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("QUOTE should have a symbol, string, or integer argument"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5776:/ quasiblock"); /*epilog */ } ; } ; /*_.IFELSE___V20*/ meltfptr[19] = /*_.IFELSE___V21*/ meltfptr[20];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5770:/ clear"); /*clear *//*_#IS_INTEGERBOX__L6*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_.IFELSE___V21*/ meltfptr[20] = 0; } ; } ; /*_.IFELSE___V19*/ meltfptr[18] = /*_.IFELSE___V20*/ meltfptr[19];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5767:/ clear"); /*clear *//*_#IS_STRING__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_.IFELSE___V20*/ meltfptr[19] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5779:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L7*/ meltfnum[5] = melt_is_instance_of ((melt_ptr_t) ( /*_.QUOTED__V17*/ meltfptr[16]), (melt_ptr_t) (( /*!CLASS_KEYWORD */ meltfrout-> tabval[3])));; MELT_LOCATION ("warmelt-macro.melt:5779:/ cond"); /*cond */ if ( /*_#IS_A__L7*/ meltfnum[5]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5780:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.QUOTED__V17*/ meltfptr[16];; { MELT_LOCATION ("warmelt-macro.melt:5780:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.IF___V22*/ meltfptr[20] = /*_.RETURN___V23*/ meltfptr[19];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5779:/ clear"); /*clear *//*_.RETURN___V23*/ meltfptr[19] = 0; } ; } else { /*^cond.else */ /*_.IF___V22*/ meltfptr[20] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5781:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_QUOTE */ meltfrout->tabval[4])), (3), "CLASS_SOURCE_QUOTE"); /*_.INST__V26*/ meltfptr[25] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V26*/ meltfptr[25])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V26*/ meltfptr[25]), (1), ( /*_.LOC__V14*/ meltfptr[13]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SQUOTED", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V26*/ meltfptr[25])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V26*/ meltfptr[25]), (2), ( /*_.QUOTED__V17*/ meltfptr[16]), "SQUOTED"); ; /*_.SQU__V25*/ meltfptr[24] = /*_.INST__V26*/ meltfptr[25];; MELT_LOCATION ("warmelt-macro.melt:5784:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.SQU__V25*/ meltfptr[24];; { MELT_LOCATION ("warmelt-macro.melt:5784:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V24*/ meltfptr[19] = /*_.RETURN___V27*/ meltfptr[26];; MELT_LOCATION ("warmelt-macro.melt:5781:/ clear"); /*clear *//*_.SQU__V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.RETURN___V27*/ meltfptr[26] = 0; /*_.LET___V12*/ meltfptr[10] = /*_.LET___V24*/ meltfptr[19];; MELT_LOCATION ("warmelt-macro.melt:5760:/ clear"); /*clear *//*_.CONT__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LOC__V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.CURPAIR__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.QUOTED__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_#IS_A__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_#IS_A__L7*/ meltfnum[5] = 0; /*^clear */ /*clear *//*_.IF___V22*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.LET___V24*/ meltfptr[19] = 0; MELT_LOCATION ("warmelt-macro.melt:5756:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V12*/ meltfptr[10];; { MELT_LOCATION ("warmelt-macro.melt:5756:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.LET___V12*/ meltfptr[10] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_QUOTE", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_119_warmelt_macro_MEXPAND_QUOTE_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_119_warmelt_macro_MEXPAND_QUOTE */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_120_warmelt_macro_MEXPAND_COMMENT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_120_warmelt_macro_MEXPAND_COMMENT_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_120_warmelt_macro_MEXPAND_COMMENT_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 25 melt_ptr_t mcfr_varptr[25]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_120_warmelt_macro_MEXPAND_COMMENT_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 25; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 25; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_COMMENT", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5795:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5796:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5796:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5796:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5796) ? (5796) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5796:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5797:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L2*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5797:/ cond"); /*cond */ if ( /*_#IS_A__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V9*/ meltfptr[8] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5797:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5797) ? (5797) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V8*/ meltfptr[6] = /*_.IFELSE___V9*/ meltfptr[8];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5797:/ clear"); /*clear *//*_#IS_A__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V9*/ meltfptr[8] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V8*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5798:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5798:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[10] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5798:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5798) ? (5798) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[8] = /*_.IFELSE___V11*/ meltfptr[10];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5798:/ clear"); /*clear *//*_#IS_OBJECT__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[10] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[8] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5799:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V13*/ meltfptr[12] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5800:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V14*/ meltfptr[13] = slot; }; ; /*_.LIST_FIRST__V15*/ meltfptr[14] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V13*/ meltfptr[12])));; /*^compute */ /*_.CURPAIR__V16*/ meltfptr[15] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V15*/ meltfptr[14])));; /*^compute */ /*_.COMSTR__V17*/ meltfptr[16] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V16*/ meltfptr[15])));; MELT_LOCATION ("warmelt-macro.melt:5804:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.PAIR_TAIL__V18*/ meltfptr[17] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V16*/ meltfptr[15])));; MELT_LOCATION ("warmelt-macro.melt:5804:/ cond"); /*cond */ if ( /*_.PAIR_TAIL__V18*/ meltfptr[17]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5805:/ locexp"); melt_warning_str (0, (melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("COMMENT should have only one string argument"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; MELT_LOCATION ("warmelt-macro.melt:5806:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_STRING__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.COMSTR__V17*/ meltfptr[16])) == MELTOBMAG_STRING);; /*^compute */ /*_#NOT__L5*/ meltfnum[4] = (!( /*_#IS_STRING__L4*/ meltfnum[0]));; MELT_LOCATION ("warmelt-macro.melt:5806:/ cond"); /*cond */ if ( /*_#NOT__L5*/ meltfnum[4]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5808:/ locexp"); melt_warning_str (0, (melt_ptr_t) ( /*_.LOC__V14*/ meltfptr[13]), ("COMMENT without string is ignored"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5809:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5809:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5807:/ quasiblock"); /*_.PROGN___V21*/ meltfptr[20] = /*_.RETURN___V20*/ meltfptr[19];; /*^compute */ /*_.IF___V19*/ meltfptr[18] = /*_.PROGN___V21*/ meltfptr[20];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5806:/ clear"); /*clear *//*_.RETURN___V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.PROGN___V21*/ meltfptr[20] = 0; } ; } else { /*^cond.else */ /*_.IF___V19*/ meltfptr[18] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5812:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_COMMENT */ meltfrout->tabval[2])), (3), "CLASS_SOURCE_COMMENT"); /*_.INST__V24*/ meltfptr[23] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V24*/ meltfptr[23])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V24*/ meltfptr[23]), (1), ( /*_.LOC__V14*/ meltfptr[13]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SCOMM_STR", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V24*/ meltfptr[23])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V24*/ meltfptr[23]), (2), ( /*_.COMSTR__V17*/ meltfptr[16]), "SCOMM_STR"); ; /*_.SCOM__V23*/ meltfptr[20] = /*_.INST__V24*/ meltfptr[23];; MELT_LOCATION ("warmelt-macro.melt:5815:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.SCOM__V23*/ meltfptr[20];; { MELT_LOCATION ("warmelt-macro.melt:5815:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V22*/ meltfptr[19] = /*_.RETURN___V25*/ meltfptr[24];; MELT_LOCATION ("warmelt-macro.melt:5812:/ clear"); /*clear *//*_.SCOM__V23*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.RETURN___V25*/ meltfptr[24] = 0; /*_.LET___V12*/ meltfptr[10] = /*_.LET___V22*/ meltfptr[19];; MELT_LOCATION ("warmelt-macro.melt:5799:/ clear"); /*clear *//*_.CONT__V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LOC__V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V15*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.CURPAIR__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.COMSTR__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_#IS_STRING__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#NOT__L5*/ meltfnum[4] = 0; /*^clear */ /*clear *//*_.IF___V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.LET___V22*/ meltfptr[19] = 0; MELT_LOCATION ("warmelt-macro.melt:5795:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V12*/ meltfptr[10];; { MELT_LOCATION ("warmelt-macro.melt:5795:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V8*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.LET___V12*/ meltfptr[10] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_COMMENT", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_120_warmelt_macro_MEXPAND_COMMENT_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_120_warmelt_macro_MEXPAND_COMMENT */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_121_warmelt_macro_MEXPAND_CHEADER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_121_warmelt_macro_MEXPAND_CHEADER_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_121_warmelt_macro_MEXPAND_CHEADER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 49 melt_ptr_t mcfr_varptr[49]; #define MELTFRAM_NBVARNUM 11 long mcfr_varnum[11]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_121_warmelt_macro_MEXPAND_CHEADER_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 49; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 49; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_CHEADER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5826:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5827:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5827:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5827:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5827; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_cheader sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5827:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5827:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5827:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5828:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5828:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5828:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5828) ? (5828) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5828:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5829:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:5829:/ cond"); /*cond */ if ( /*_#IS_A__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5829:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5829) ? (5829) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5829:/ clear"); /*clear *//*_#IS_A__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5830:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5830:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5830:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5830) ? (5830) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5830:/ clear"); /*clear *//*_#IS_OBJECT__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5831:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V17*/ meltfptr[16] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5832:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V18*/ meltfptr[17] = slot; }; ; /*_.LIST_FIRST__V19*/ meltfptr[18] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V17*/ meltfptr[16])));; /*^compute */ /*_.CURPAIR__V20*/ meltfptr[19] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V19*/ meltfptr[18])));; /*^compute */ /*_.CHEAD__V21*/ meltfptr[20] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:5836:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_.PAIR_TAIL__V22*/ meltfptr[21] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:5836:/ cond"); /*cond */ if ( /*_.PAIR_TAIL__V22*/ meltfptr[21]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5837:/ locexp"); melt_warning_str (0, (melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("CHEADER should have only one argument"), (melt_ptr_t) 0); } ; /*epilog */ } ; } /*noelse */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5838:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L6*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5838:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5838:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5838; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_cheader chead="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CHEAD__V21*/ meltfptr[20]; /*_.MELT_DEBUG_FUN__V25*/ meltfptr[24] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V24*/ meltfptr[23] = /*_.MELT_DEBUG_FUN__V25*/ meltfptr[24];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5838:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V25*/ meltfptr[24] = 0; } ; } else { /*^cond.else */ /*_.IF___V24*/ meltfptr[23] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5838:/ quasiblock"); /*_.PROGN___V26*/ meltfptr[24] = /*_.IF___V24*/ meltfptr[23];; /*^compute */ /*_.IFCPP___V23*/ meltfptr[22] = /*_.PROGN___V26*/ meltfptr[24];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5838:/ clear"); /*clear *//*_#MELT_NEED_DBG__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.PROGN___V26*/ meltfptr[24] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V23*/ meltfptr[22] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5840:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_STRING__L8*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20])) == MELTOBMAG_STRING);; MELT_LOCATION ("warmelt-macro.melt:5840:/ cond"); /*cond */ if ( /*_#IS_STRING__L8*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5841:/ locexp"); /*void */ (void) 0; } ; /*clear *//*_.IFELSE___V27*/ meltfptr[23] = 0; /*epilog */ } ; } else { MELT_LOCATION ("warmelt-macro.melt:5840:/ cond.else"); /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5843:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_A__L9*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20]), (melt_ptr_t) (( /*!CLASS_SEXPR_MACROSTRING */ meltfrout->tabval[3])));; MELT_LOCATION ("warmelt-macro.melt:5843:/ cond"); /*cond */ if ( /*_#IS_A__L9*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:5844:/ quasiblock"); /*_.SBUF__V30*/ meltfptr[29] = (melt_ptr_t) meltgc_new_strbuf ((meltobject_ptr_t) (( /*!DISCR_STRBUF */ meltfrout-> tabval[4])), (const char *) 0);; MELT_LOCATION ("warmelt-macro.melt:5845:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout->tabval[1]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20]), 2, "SEXP_CONTENTS"); /*_.SCONT__V31*/ meltfptr[30] = slot; }; ; } else { /*^cond.else */ /*_.SCONT__V31*/ meltfptr[30] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5846:/ cond"); /*cond */ if ( /*ifisa */ melt_is_instance_of ((melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20]), (melt_ptr_t) (( /*!CLASS_LOCATED */ meltfrout->tabval[5]))) ) /*then */ { /*^cond.then */ /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.CHEAD__V21*/ meltfptr[20]), 1, "LOCA_LOCATION"); /*_.SLOC__V32*/ meltfptr[31] = slot; }; ; } else { /*^cond.else */ /*_.SLOC__V32*/ meltfptr[31] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5848:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*_.SLOC__V32*/ meltfptr[31]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*^compute */ /*_.LOC__V18*/ meltfptr[17] = /*_.SETQ___V34*/ meltfptr[33] = /*_.SLOC__V32*/ meltfptr[31];; /*_.IF___V33*/ meltfptr[32] = /*_.SETQ___V34*/ meltfptr[33];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5848:/ clear"); /*clear *//*_.SETQ___V34*/ meltfptr[33] = 0; } ; } else { /*^cond.else */ /*_.IF___V33*/ meltfptr[32] = NULL;; } ; /*citerblock FOREACH_IN_LIST */ { /* start foreach_in_list meltcit1__EACHLIST */ for ( /*_.CURPAIR__V35*/ meltfptr[33] = melt_list_first ((melt_ptr_t) /*_.SCONT__V31*/ meltfptr[30]); melt_magic_discr ((melt_ptr_t) /*_.CURPAIR__V35*/ meltfptr[33]) == MELTOBMAG_PAIR; /*_.CURPAIR__V35*/ meltfptr[33] = melt_pair_tail ((melt_ptr_t) /*_.CURPAIR__V35*/ meltfptr[33])) { /*_.CURARG__V36*/ meltfptr[35] = melt_pair_head ((melt_ptr_t) /*_.CURPAIR__V35*/ meltfptr[33]); MELT_LOCATION ("warmelt-macro.melt:5852:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.CURARG__V36*/ meltfptr[35]; /*_.ADD2OUT__V37*/ meltfptr[36] = melt_apply ((meltclosure_ptr_t) (( /*!ADD2OUT */ meltfrout->tabval[6])), (melt_ptr_t) ( /*_.SBUF__V30*/ meltfptr[29]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; } /* end foreach_in_list meltcit1__EACHLIST */ /*_.CURPAIR__V35*/ meltfptr[33] = NULL; /*_.CURARG__V36*/ meltfptr[35] = NULL; /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5849:/ clear"); /*clear *//*_.CURPAIR__V35*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.CURARG__V36*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.ADD2OUT__V37*/ meltfptr[36] = 0; } /*endciterblock FOREACH_IN_LIST */ ; /*_.STRBUF2STRING__V38*/ meltfptr[37] = (meltgc_new_stringdup ((meltobject_ptr_t) (( /*!DISCR_VERBATIM_STRING */ meltfrout->tabval[7])), melt_strbuf_str ((melt_ptr_t) ( /*_.SBUF__V30*/ meltfptr[29]))));; MELT_LOCATION ("warmelt-macro.melt:5854:/ compute"); /*_.CHEAD__V21*/ meltfptr[20] = /*_.SETQ___V39*/ meltfptr[38] = /*_.STRBUF2STRING__V38*/ meltfptr[37];; /*_.LET___V29*/ meltfptr[28] = /*_.SETQ___V39*/ meltfptr[38];; MELT_LOCATION ("warmelt-macro.melt:5844:/ clear"); /*clear *//*_.SBUF__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.SCONT__V31*/ meltfptr[30] = 0; /*^clear */ /*clear *//*_.SLOC__V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.IF___V33*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.STRBUF2STRING__V38*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.SETQ___V39*/ meltfptr[38] = 0; /*_.IFELSE___V28*/ meltfptr[24] = /*_.LET___V29*/ meltfptr[28];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5843:/ clear"); /*clear *//*_.LET___V29*/ meltfptr[28] = 0; } ; } else { /*^cond.else */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5857:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("CHEADER without string or macrostring"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5858:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5858:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5856:/ quasiblock"); /*_.PROGN___V41*/ meltfptr[30] = /*_.RETURN___V40*/ meltfptr[29];; /*^compute */ /*_.IFELSE___V28*/ meltfptr[24] = /*_.PROGN___V41*/ meltfptr[30];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5843:/ clear"); /*clear *//*_.RETURN___V40*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.PROGN___V41*/ meltfptr[30] = 0; } ; } ; /*_.IFELSE___V27*/ meltfptr[23] = /*_.IFELSE___V28*/ meltfptr[24];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5840:/ clear"); /*clear *//*_#IS_A__L9*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V28*/ meltfptr[24] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5861:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_CHEADER */ meltfrout->tabval[8])), (3), "CLASS_SOURCE_CHEADER"); /*_.INST__V44*/ meltfptr[37] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V44*/ meltfptr[37])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V44*/ meltfptr[37]), (1), ( /*_.LOC__V18*/ meltfptr[17]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SCHEADER_CODESTRING", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V44*/ meltfptr[37])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V44*/ meltfptr[37]), (2), ( /*_.CHEAD__V21*/ meltfptr[20]), "SCHEADER_CODESTRING"); ; /*_.SCH__V43*/ meltfptr[32] = /*_.INST__V44*/ meltfptr[37];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5864:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L10*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5864:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L10*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5864:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5864; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_cheader gives sch="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SCH__V43*/ meltfptr[32]; /*_.MELT_DEBUG_FUN__V47*/ meltfptr[29] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V46*/ meltfptr[28] = /*_.MELT_DEBUG_FUN__V47*/ meltfptr[29];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5864:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L11*/ meltfnum[10] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V47*/ meltfptr[29] = 0; } ; } else { /*^cond.else */ /*_.IF___V46*/ meltfptr[28] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5864:/ quasiblock"); /*_.PROGN___V48*/ meltfptr[30] = /*_.IF___V46*/ meltfptr[28];; /*^compute */ /*_.IFCPP___V45*/ meltfptr[38] = /*_.PROGN___V48*/ meltfptr[30];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5864:/ clear"); /*clear *//*_#MELT_NEED_DBG__L10*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V46*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_.PROGN___V48*/ meltfptr[30] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V45*/ meltfptr[38] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5865:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.SCH__V43*/ meltfptr[32];; { MELT_LOCATION ("warmelt-macro.melt:5865:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V42*/ meltfptr[31] = /*_.RETURN___V49*/ meltfptr[24];; MELT_LOCATION ("warmelt-macro.melt:5861:/ clear"); /*clear *//*_.SCH__V43*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.IFCPP___V45*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.RETURN___V49*/ meltfptr[24] = 0; /*_.LET___V16*/ meltfptr[14] = /*_.LET___V42*/ meltfptr[31];; MELT_LOCATION ("warmelt-macro.melt:5831:/ clear"); /*clear *//*_.CONT__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.LOC__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.CURPAIR__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.CHEAD__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.IFCPP___V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_#IS_STRING__L8*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V27*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.LET___V42*/ meltfptr[31] = 0; MELT_LOCATION ("warmelt-macro.melt:5826:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V16*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:5826:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[14] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_CHEADER", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_121_warmelt_macro_MEXPAND_CHEADER_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_121_warmelt_macro_MEXPAND_CHEADER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 55 melt_ptr_t mcfr_varptr[55]; #define MELTFRAM_NBVARNUM 17 long mcfr_varnum[17]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 55; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 55; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5876:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5877:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5877:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5877:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5877; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_use_package_from_pkg_config sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5877:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5877:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5877:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5878:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:5878:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5878:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5878) ? (5878) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5878:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5879:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L4*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:5879:/ cond"); /*cond */ if ( /*_#IS_A__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5879:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5879) ? (5879) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5879:/ clear"); /*clear *//*_#IS_A__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5880:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5880:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5880:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5880) ? (5880) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5880:/ clear"); /*clear *//*_#IS_OBJECT__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5881:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V17*/ meltfptr[16] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5882:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V18*/ meltfptr[17] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5883:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.XARGTUP__V19*/ meltfptr[18] = melt_apply ((meltclosure_ptr_t) (( /*!EXPAND_RESTLIST_AS_TUPLE */ meltfrout->tabval[3])), (melt_ptr_t) ( /*_.CONT__V17*/ meltfptr[16]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.CMDBUF__V20*/ meltfptr[19] = (melt_ptr_t) meltgc_new_strbuf ((meltobject_ptr_t) (( /*!DISCR_STRBUF */ meltfrout->tabval[4])), (const char *) 0);; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5886:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L6*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5886:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5886:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5886; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_use_package_from_pkg_config xargtup="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.XARGTUP__V19*/ meltfptr[18]; /*_.MELT_DEBUG_FUN__V23*/ meltfptr[22] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V22*/ meltfptr[21] = /*_.MELT_DEBUG_FUN__V23*/ meltfptr[22];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5886:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L7*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V23*/ meltfptr[22] = 0; } ; } else { /*^cond.else */ /*_.IF___V22*/ meltfptr[21] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5886:/ quasiblock"); /*_.PROGN___V24*/ meltfptr[22] = /*_.IF___V22*/ meltfptr[21];; /*^compute */ /*_.IFCPP___V21*/ meltfptr[20] = /*_.PROGN___V24*/ meltfptr[22];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5886:/ clear"); /*clear *//*_#MELT_NEED_DBG__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.PROGN___V24*/ meltfptr[22] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V21*/ meltfptr[20] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5887:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_cstring = "pkg-config --exists"; /*_.ADD2OUT__V25*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) (( /*!ADD2OUT */ meltfrout->tabval[5])), (melt_ptr_t) ( /*_.CMDBUF__V20*/ meltfptr[19]), (MELTBPARSTR_CSTRING ""), argtab, "", (union meltparam_un *) 0); } ; /*citerblock FOREACH_IN_MULTIPLE */ { /* start foreach_in_multiple meltcit1__EACHTUP */ long meltcit1__EACHTUP_ln = melt_multiple_length ((melt_ptr_t) /*_.XARGTUP__V19*/ meltfptr[18]); for ( /*_#PKGIX__L8*/ meltfnum[1] = 0; ( /*_#PKGIX__L8*/ meltfnum[1] >= 0) && ( /*_#PKGIX__L8*/ meltfnum[1] < meltcit1__EACHTUP_ln); /*_#PKGIX__L8*/ meltfnum[1]++) { /*_.CURPKGNAME__V26*/ meltfptr[22] = melt_multiple_nth ((melt_ptr_t) ( /*_.XARGTUP__V19*/ meltfptr[18]), /*_#PKGIX__L8*/ meltfnum[1]); MELT_LOCATION ("warmelt-macro.melt:5891:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_STRING__L9*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.CURPKGNAME__V26*/ meltfptr[22])) == MELTOBMAG_STRING);; MELT_LOCATION ("warmelt-macro.melt:5891:/ cond"); /*cond */ if ( /*_#IS_STRING__L9*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V27*/ meltfptr[26] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5891:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5893:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("invalid argument to (USE_PACKAGE_FROM_PKG_CONFIG ...), expecting string"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5894:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5894:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5891:/ quasiblock"); /*_.PROGN___V29*/ meltfptr[28] = /*_.RETURN___V28*/ meltfptr[27];; /*^compute */ /*_.IFELSE___V27*/ meltfptr[26] = /*_.PROGN___V29*/ meltfptr[28];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5891:/ clear"); /*clear *//*_.RETURN___V28*/ meltfptr[27] = 0; /*^clear */ /*clear *//*_.PROGN___V29*/ meltfptr[28] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5896:/ quasiblock"); /*_#GOODPKGNAME__L10*/ meltfnum[9] = 1;; { MELT_LOCATION ("warmelt-macro.melt:5898:/ locexp"); /* mexpand_use_package_from_pkg_config CHECKPKGNAME_CHK__1 */ { const char *pkgs_CHECKPKGNAME_CHK__1 = melt_string_str ((melt_ptr_t) /*_.CURPKGNAME__V26*/ meltfptr[22]); if (!pkgs_CHECKPKGNAME_CHK__1) /*_#GOODPKGNAME__L10*/ meltfnum[9] = 0; else { const char *pc = NULL; for (pc = pkgs_CHECKPKGNAME_CHK__1; *pc && /*_#GOODPKGNAME__L10*/ meltfnum[9]; pc++) { if (ISALNUM (*pc) || *pc == '+' || *pc == '-' || *pc == '_' || *pc == '.' || *pc == '@') continue; else /*_#GOODPKGNAME__L10*/ meltfnum[9] = 0L; } }; } /* end mexpand_use_package_from_pkg_config CHECKPKGNAME_CHK__1 */ ; } ; MELT_LOCATION ("warmelt-macro.melt:5915:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*_#GOODPKGNAME__L10*/ meltfnum[9]) /*then */ { /*^cond.then */ /*_.IFELSE___V31*/ meltfptr[28] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5915:/ cond.else"); /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5916:/ locexp"); melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("invalid package name for (USE_PACKAGE_FROM_PKG_CONFIG ...)"), (melt_ptr_t) ( /*_.CURPKGNAME__V26*/ meltfptr[22])); } ; MELT_LOCATION ("warmelt-macro.melt:5917:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5917:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5915:/ quasiblock"); /*_.PROGN___V33*/ meltfptr[32] = /*_.RETURN___V32*/ meltfptr[31];; /*^compute */ /*_.IFELSE___V31*/ meltfptr[28] = /*_.PROGN___V33*/ meltfptr[32];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5915:/ clear"); /*clear *//*_.RETURN___V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.PROGN___V33*/ meltfptr[32] = 0; } ; } ; MELT_LOCATION ("warmelt-macro.melt:5918:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_cstring = " "; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.CURPKGNAME__V26*/ meltfptr[22]; /*_.ADD2OUT__V34*/ meltfptr[31] = melt_apply ((meltclosure_ptr_t) (( /*!ADD2OUT */ meltfrout->tabval[5])), (melt_ptr_t) ( /*_.CMDBUF__V20*/ meltfptr[19]), (MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.LET___V30*/ meltfptr[27] = /*_.ADD2OUT__V34*/ meltfptr[31];; MELT_LOCATION ("warmelt-macro.melt:5896:/ clear"); /*clear *//*_#GOODPKGNAME__L10*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_.IFELSE___V31*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_.ADD2OUT__V34*/ meltfptr[31] = 0; if ( /*_#PKGIX__L8*/ meltfnum[1] < 0) break; } /* end foreach_in_multiple meltcit1__EACHTUP */ /*citerepilog */ MELT_LOCATION ("warmelt-macro.melt:5888:/ clear"); /*clear *//*_.CURPKGNAME__V26*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_#PKGIX__L8*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_#IS_STRING__L9*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V27*/ meltfptr[26] = 0; /*^clear */ /*clear *//*_.LET___V30*/ meltfptr[27] = 0; } /*endciterblock FOREACH_IN_MULTIPLE */ ; MELT_LOCATION ("warmelt-macro.melt:5922:/ quasiblock"); /*_.CMDSTR__V36*/ meltfptr[28] = (meltgc_new_stringdup ((meltobject_ptr_t) (( /*!DISCR_STRING */ meltfrout->tabval[6])), melt_strbuf_str ((melt_ptr_t) ( /*_.CMDBUF__V20*/ meltfptr[19]))));; /*^compute */ /*_#FAILCMD__L11*/ meltfnum[9] = 0;; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5925:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L12*/ meltfnum[11] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5925:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L12*/ meltfnum[11]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5925:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5925; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_use_package_from_pkg_config cmdstr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.CMDSTR__V36*/ meltfptr[28]; /*_.MELT_DEBUG_FUN__V39*/ meltfptr[38] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V38*/ meltfptr[37] = /*_.MELT_DEBUG_FUN__V39*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5925:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L13*/ meltfnum[12] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V39*/ meltfptr[38] = 0; } ; } else { /*^cond.else */ /*_.IF___V38*/ meltfptr[37] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5925:/ quasiblock"); /*_.PROGN___V40*/ meltfptr[38] = /*_.IF___V38*/ meltfptr[37];; /*^compute */ /*_.IFCPP___V37*/ meltfptr[31] = /*_.PROGN___V40*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5925:/ clear"); /*clear *//*_#MELT_NEED_DBG__L12*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IF___V38*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.PROGN___V40*/ meltfptr[38] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V37*/ meltfptr[31] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; { MELT_LOCATION ("warmelt-macro.melt:5926:/ locexp"); /* mexpand_use_package_from_pkg_config TESTPKGCONFIG_CHK__1 */ const char *cmd_TESTPKGCONFIG_CHK__1 = melt_string_str ((melt_ptr_t) /*_.CMDSTR__V36*/ meltfptr[28]); fflush (NULL); /*_#FAILCMD__L11*/ meltfnum[9] = (cmd_TESTPKGCONFIG_CHK__1 ? system (cmd_TESTPKGCONFIG_CHK__1) : 1000); ; } ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5933:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L14*/ meltfnum[12] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5933:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L14*/ meltfnum[12]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L15*/ meltfnum[11] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5933:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L15*/ meltfnum[11]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5933; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_use_package_from_pkg_config failcmd="; /*^apply.arg */ argtab[4].meltbp_long = /*_#FAILCMD__L11*/ meltfnum[9]; /*_.MELT_DEBUG_FUN__V43*/ meltfptr[42] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V42*/ meltfptr[38] = /*_.MELT_DEBUG_FUN__V43*/ meltfptr[42];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5933:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L15*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V43*/ meltfptr[42] = 0; } ; } else { /*^cond.else */ /*_.IF___V42*/ meltfptr[38] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5933:/ quasiblock"); /*_.PROGN___V44*/ meltfptr[42] = /*_.IF___V42*/ meltfptr[38];; /*^compute */ /*_.IFCPP___V41*/ meltfptr[37] = /*_.PROGN___V44*/ meltfptr[42];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5933:/ clear"); /*clear *//*_#MELT_NEED_DBG__L14*/ meltfnum[12] = 0; /*^clear */ /*clear *//*_.IF___V42*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.PROGN___V44*/ meltfptr[42] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V41*/ meltfptr[37] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5934:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^cond */ /*cond */ if ( /*_#FAILCMD__L11*/ meltfnum[9]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5935:/ locexp"); melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("unexistent package names for USE_PACKAGE_FROM_PKG_CONFIG "), (melt_ptr_t) ( /*_.CMDSTR__V36*/ meltfptr[28])); } ; MELT_LOCATION ("warmelt-macro.melt:5936:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5936:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5934:/ quasiblock"); /*_.PROGN___V47*/ meltfptr[46] = /*_.RETURN___V46*/ meltfptr[42];; /*^compute */ /*_.IF___V45*/ meltfptr[38] = /*_.PROGN___V47*/ meltfptr[46];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5934:/ clear"); /*clear *//*_.RETURN___V46*/ meltfptr[42] = 0; /*^clear */ /*clear *//*_.PROGN___V47*/ meltfptr[46] = 0; } ; } else { /*^cond.else */ /*_.IF___V45*/ meltfptr[38] = NULL;; } ; /*^compute */ /*_.LET___V35*/ meltfptr[32] = /*_.IF___V45*/ meltfptr[38];; MELT_LOCATION ("warmelt-macro.melt:5922:/ clear"); /*clear *//*_.CMDSTR__V36*/ meltfptr[28] = 0; /*^clear */ /*clear *//*_#FAILCMD__L11*/ meltfnum[9] = 0; /*^clear */ /*clear *//*_.IFCPP___V37*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.IFCPP___V41*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.IF___V45*/ meltfptr[38] = 0; MELT_LOCATION ("warmelt-macro.melt:5939:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_USE_PACKAGE_FROM_PKG_CONFIG */ meltfrout->tabval[7])), (3), "CLASS_SOURCE_USE_PACKAGE_FROM_PKG_CONFIG"); /*_.INST__V50*/ meltfptr[28] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V50*/ meltfptr[28])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V50*/ meltfptr[28]), (1), ( /*_.LOC__V18*/ meltfptr[17]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SUSEPACKAGE_PKGTUPLE", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V50*/ meltfptr[28])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V50*/ meltfptr[28]), (2), ( /*_.XARGTUP__V19*/ meltfptr[18]), "SUSEPACKAGE_PKGTUPLE"); ; /*_.SUP__V49*/ meltfptr[46] = /*_.INST__V50*/ meltfptr[28];; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5942:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L16*/ meltfnum[11] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:5942:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L16*/ meltfnum[11]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L17*/ meltfnum[12] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:5942:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L17*/ meltfnum[12]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 5942; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_use_package_from_pkg_config gives sup="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SUP__V49*/ meltfptr[46]; /*_.MELT_DEBUG_FUN__V53*/ meltfptr[38] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V52*/ meltfptr[37] = /*_.MELT_DEBUG_FUN__V53*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5942:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L17*/ meltfnum[12] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V53*/ meltfptr[38] = 0; } ; } else { /*^cond.else */ /*_.IF___V52*/ meltfptr[37] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5942:/ quasiblock"); /*_.PROGN___V54*/ meltfptr[38] = /*_.IF___V52*/ meltfptr[37];; /*^compute */ /*_.IFCPP___V51*/ meltfptr[31] = /*_.PROGN___V54*/ meltfptr[38];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5942:/ clear"); /*clear *//*_#MELT_NEED_DBG__L16*/ meltfnum[11] = 0; /*^clear */ /*clear *//*_.IF___V52*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.PROGN___V54*/ meltfptr[38] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V51*/ meltfptr[31] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5943:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.SUP__V49*/ meltfptr[46];; { MELT_LOCATION ("warmelt-macro.melt:5943:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V48*/ meltfptr[42] = /*_.RETURN___V55*/ meltfptr[37];; MELT_LOCATION ("warmelt-macro.melt:5939:/ clear"); /*clear *//*_.SUP__V49*/ meltfptr[46] = 0; /*^clear */ /*clear *//*_.IFCPP___V51*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.RETURN___V55*/ meltfptr[37] = 0; /*_.LET___V16*/ meltfptr[14] = /*_.LET___V48*/ meltfptr[42];; MELT_LOCATION ("warmelt-macro.melt:5881:/ clear"); /*clear *//*_.CONT__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.LOC__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.XARGTUP__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.CMDBUF__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.IFCPP___V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.ADD2OUT__V25*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.LET___V35*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.LET___V48*/ meltfptr[42] = 0; MELT_LOCATION ("warmelt-macro.melt:5876:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V16*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:5876:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[14] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_122_warmelt_macro_MEXPAND_USE_PACKAGE_FROM_PKG_CONFIG */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_123_warmelt_macro_PAIRLIST_TO_RETURN_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 18 melt_ptr_t mcfr_varptr[18]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 18; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 18; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("PAIRLIST_TO_RETURN", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5966:/ getarg"); /*_.PAIR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.LOC__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.LOC__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V5*/ meltfptr[4])) != NULL); /*getarg#4 */ /*^getarg */ if (meltxargdescr_[3] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V6*/ meltfptr[5] = (meltxargtab_[3].meltbp_aptr) ? (*(meltxargtab_[3].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V6*/ meltfptr[5])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5967:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.ENV__V4*/ meltfptr[3]), (melt_ptr_t) (( /*!CLASS_ENVIRONMENT */ meltfrout->tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5967:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V8*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5967:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check env"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5967) ? (5967) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V8*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V7*/ meltfptr[6] = /*_.IFELSE___V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5967:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V8*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V7*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5968:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L2*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V5*/ meltfptr[4])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:5968:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L2*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V10*/ meltfptr[9] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5968:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5968) ? (5968) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V10*/ meltfptr[9] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V9*/ meltfptr[7] = /*_.IFELSE___V10*/ meltfptr[9];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5968:/ clear"); /*clear *//*_#IS_CLOSURE__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V10*/ meltfptr[9] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V9*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5969:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L3*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V6*/ meltfptr[5])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:5969:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L3*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V12*/ meltfptr[11] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5969:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5969) ? (5969) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V11*/ meltfptr[9] = /*_.IFELSE___V12*/ meltfptr[11];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5969:/ clear"); /*clear *//*_#IS_OBJECT__L3*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V12*/ meltfptr[11] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V11*/ meltfptr[9] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5970:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5974:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V15*/ meltfptr[14] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (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___V15*/ meltfptr[14])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V15*/ meltfptr[14]))); ((meltclosure_ptr_t) /*_.LAMBDA___V15*/ meltfptr[14])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V5*/ meltfptr[4]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V15*/ meltfptr[14])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V15*/ meltfptr[14]))); ((meltclosure_ptr_t) /*_.LAMBDA___V15*/ meltfptr[14])->tabval[1] = (melt_ptr_t) ( /*_.ENV__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V15*/ meltfptr[14])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V15*/ meltfptr[14]))); ((meltclosure_ptr_t) /*_.LAMBDA___V15*/ meltfptr[14])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V6*/ meltfptr[5]); ; /*_.LAMBDA___V14*/ meltfptr[13] = /*_.LAMBDA___V15*/ meltfptr[14];; MELT_LOCATION ("warmelt-macro.melt:5971:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[2]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V14*/ meltfptr[13]; /*_.BODYTUP__V16*/ meltfptr[15] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[1])), (melt_ptr_t) ( /*_.PAIR__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5975:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_RETURN */ meltfrout->tabval[4])), (3), "CLASS_SOURCE_RETURN"); /*_.INST__V18*/ meltfptr[17] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V18*/ meltfptr[17])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V18*/ meltfptr[17]), (1), ( /*_.LOC__V3*/ meltfptr[2]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SARGOP_ARGS", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V18*/ meltfptr[17])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V18*/ meltfptr[17]), (2), ( /*_.BODYTUP__V16*/ meltfptr[15]), "SARGOP_ARGS"); ; /*_.INST___V17*/ meltfptr[16] = /*_.INST__V18*/ meltfptr[17];; /*^compute */ /*_.LET___V13*/ meltfptr[11] = /*_.INST___V17*/ meltfptr[16];; MELT_LOCATION ("warmelt-macro.melt:5970:/ clear"); /*clear *//*_.LAMBDA___V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.BODYTUP__V16*/ meltfptr[15] = 0; /*^clear */ /*clear *//*_.INST___V17*/ meltfptr[16] = 0; MELT_LOCATION ("warmelt-macro.melt:5966:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V13*/ meltfptr[11];; { MELT_LOCATION ("warmelt-macro.melt:5966:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V9*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V11*/ meltfptr[9] = 0; /*^clear */ /*clear *//*_.LET___V13*/ meltfptr[11] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("PAIRLIST_TO_RETURN", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_123_warmelt_macro_PAIRLIST_TO_RETURN */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_124_warmelt_macro_LAMBDA___34__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_124_warmelt_macro_LAMBDA___34___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_124_warmelt_macro_LAMBDA___34___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_124_warmelt_macro_LAMBDA___34___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5974:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~ENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:5974:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_124_warmelt_macro_LAMBDA___34___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_124_warmelt_macro_LAMBDA___34__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_125_warmelt_macro_MEXPAND_PROGN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_125_warmelt_macro_MEXPAND_PROGN_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_125_warmelt_macro_MEXPAND_PROGN_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 18 melt_ptr_t mcfr_varptr[18]; #define MELTFRAM_NBVARNUM 3 long mcfr_varnum[3]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_125_warmelt_macro_MEXPAND_PROGN_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 18; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 18; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_PROGN", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:5982:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:5983:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L1*/ meltfnum[0] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[0])));; MELT_LOCATION ("warmelt-macro.melt:5983:/ cond"); /*cond */ if ( /*_#IS_A__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V7*/ meltfptr[6] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:5983:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (5983) ? (5983) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.IFELSE___V7*/ meltfptr[6];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5983:/ clear"); /*clear *//*_#IS_A__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V7*/ meltfptr[6] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:5984:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.SLOC__V9*/ meltfptr[8] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:5986:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.SEXP_CONTENTS__V10*/ meltfptr[9] = slot; }; ; /*_.LIST_FIRST__V11*/ meltfptr[10] = (melt_list_first ((melt_ptr_t) ( /*_.SEXP_CONTENTS__V10*/ meltfptr[9])));; /*^compute */ /*_.PAIRS__V12*/ meltfptr[11] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V11*/ meltfptr[10])));; MELT_LOCATION ("warmelt-macro.melt:5988:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_PAIR__L2*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.PAIRS__V12*/ meltfptr[11])) == MELTOBMAG_PAIR);; /*^compute */ /*_#NOT__L3*/ meltfnum[2] = (!( /*_#IS_PAIR__L2*/ meltfnum[0]));; MELT_LOCATION ("warmelt-macro.melt:5988:/ cond"); /*cond */ if ( /*_#NOT__L3*/ meltfnum[2]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:5990:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.SLOC__V9*/ meltfptr[8]), ("empty PROGN"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5991:/ quasiblock"); /*_.RETVAL___V1*/ meltfptr[0] = NULL;; { MELT_LOCATION ("warmelt-macro.melt:5991:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:5989:/ quasiblock"); /*_.PROGN___V15*/ meltfptr[14] = /*_.RETURN___V14*/ meltfptr[13];; /*^compute */ /*_.IF___V13*/ meltfptr[12] = /*_.PROGN___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:5988:/ clear"); /*clear *//*_.RETURN___V14*/ meltfptr[13] = 0; /*^clear */ /*clear *//*_.PROGN___V15*/ meltfptr[14] = 0; } ; } else { /*^cond.else */ /*_.IF___V13*/ meltfptr[12] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:5992:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:5993:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[4]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.SLOC__V9*/ meltfptr[8]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[3].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.PROGR__V17*/ meltfptr[14] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_PROGN */ meltfrout->tabval[1])), (melt_ptr_t) ( /*_.PAIRS__V12*/ meltfptr[11]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:5998:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.PROGR__V17*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:5998:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V16*/ meltfptr[13] = /*_.RETURN___V18*/ meltfptr[17];; MELT_LOCATION ("warmelt-macro.melt:5992:/ clear"); /*clear *//*_.PROGR__V17*/ meltfptr[14] = 0; /*^clear */ /*clear *//*_.RETURN___V18*/ meltfptr[17] = 0; /*_.LET___V8*/ meltfptr[6] = /*_.LET___V16*/ meltfptr[13];; MELT_LOCATION ("warmelt-macro.melt:5984:/ clear"); /*clear *//*_.SLOC__V9*/ meltfptr[8] = 0; /*^clear */ /*clear *//*_.SEXP_CONTENTS__V10*/ meltfptr[9] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V11*/ meltfptr[10] = 0; /*^clear */ /*clear *//*_.PAIRS__V12*/ meltfptr[11] = 0; /*^clear */ /*clear *//*_#IS_PAIR__L2*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_#NOT__L3*/ meltfnum[2] = 0; /*^clear */ /*clear *//*_.IF___V13*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[13] = 0; MELT_LOCATION ("warmelt-macro.melt:5982:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V8*/ meltfptr[6];; { MELT_LOCATION ("warmelt-macro.melt:5982:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.LET___V8*/ meltfptr[6] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_PROGN", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_125_warmelt_macro_MEXPAND_PROGN_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_125_warmelt_macro_MEXPAND_PROGN */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_126_warmelt_macro_MEXPAND_RETURN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_126_warmelt_macro_MEXPAND_RETURN_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_126_warmelt_macro_MEXPAND_RETURN_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 22 melt_ptr_t mcfr_varptr[22]; #define MELTFRAM_NBVARNUM 5 long mcfr_varnum[5]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_126_warmelt_macro_MEXPAND_RETURN_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 22; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 22; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_RETURN", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6008:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6009:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:6009:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:6009:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 6009; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_return sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6009:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:6009:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6009:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6010:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:6010:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6010:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6010) ? (6010) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6010:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6011:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:6011:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6011:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6011) ? (6011) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6011:/ clear"); /*clear *//*_#IS_CLOSURE__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6012:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:6012:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6012:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6012) ? (6012) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6012:/ clear"); /*clear *//*_#IS_OBJECT__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:6013:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:6014:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.SEXP_CONTENTS__V17*/ meltfptr[16] = slot; }; ; /*_.LIST_FIRST__V18*/ meltfptr[17] = (melt_list_first ((melt_ptr_t) ( /*_.SEXP_CONTENTS__V17*/ meltfptr[16])));; /*^compute */ /*_.PAIR_TAIL__V19*/ meltfptr[18] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V18*/ meltfptr[17])));; MELT_LOCATION ("warmelt-macro.melt:6015:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOCA_LOCATION__V20*/ meltfptr[19] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:6014:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[4]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LOCA_LOCATION__V20*/ meltfptr[19]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[3].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.RETR__V21*/ meltfptr[20] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_RETURN */ meltfrout->tabval[2])), (melt_ptr_t) ( /*_.PAIR_TAIL__V19*/ meltfptr[18]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6020:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.RETR__V21*/ meltfptr[20];; { MELT_LOCATION ("warmelt-macro.melt:6020:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V16*/ meltfptr[14] = /*_.RETURN___V22*/ meltfptr[21];; MELT_LOCATION ("warmelt-macro.melt:6013:/ clear"); /*clear *//*_.SEXP_CONTENTS__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.LOCA_LOCATION__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.RETR__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.RETURN___V22*/ meltfptr[21] = 0; MELT_LOCATION ("warmelt-macro.melt:6008:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V16*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:6008:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[14] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_RETURN", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_126_warmelt_macro_MEXPAND_RETURN_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_126_warmelt_macro_MEXPAND_RETURN */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_127_warmelt_macro_MEXPAND_FOREVER (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_127_warmelt_macro_MEXPAND_FOREVER_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_127_warmelt_macro_MEXPAND_FOREVER_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 39 melt_ptr_t mcfr_varptr[39]; #define MELTFRAM_NBVARNUM 6 long mcfr_varnum[6]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_127_warmelt_macro_MEXPAND_FOREVER_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 39; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 39; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_FOREVER", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6032:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6033:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:6033:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:6033:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 6033; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_forever sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6033:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:6033:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6033:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6034:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:6034:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6034:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6034) ? (6034) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6034:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6035:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:6035:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6035:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6035) ? (6035) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6035:/ clear"); /*clear *//*_#IS_CLOSURE__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6036:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:6036:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6036:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6036) ? (6036) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6036:/ clear"); /*clear *//*_#IS_OBJECT__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:6037:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V17*/ meltfptr[16] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:6038:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V18*/ meltfptr[17] = slot; }; ; /*_.LIST_FIRST__V19*/ meltfptr[18] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V17*/ meltfptr[16])));; /*^compute */ /*_.CURPAIR__V20*/ meltfptr[19] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V19*/ meltfptr[18])));; /*^compute */ /*_.SLABNAM__V21*/ meltfptr[20] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6041:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.XLABNAM__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.SLABNAM__V21*/ meltfptr[20]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6042:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V23*/ meltfptr[22] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[2])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6044:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L6*/ meltfnum[0] = !melt_is_instance_of ((melt_ptr_t) ( /*_.XLABNAM__V22*/ meltfptr[21]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout-> tabval[3])));; MELT_LOCATION ("warmelt-macro.melt:6044:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:6046:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("missing label in FOREVER"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6047:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = ( /*nil */ NULL);; { MELT_LOCATION ("warmelt-macro.melt:6047:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:6045:/ quasiblock"); /*_.PROGN___V26*/ meltfptr[25] = /*_.RETURN___V25*/ meltfptr[24];; /*^compute */ /*_.IF___V24*/ meltfptr[23] = /*_.PROGN___V26*/ meltfptr[25];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6044:/ clear"); /*clear *//*_.RETURN___V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.PROGN___V26*/ meltfptr[25] = 0; } ; } else { /*^cond.else */ /*_.IF___V24*/ meltfptr[23] = NULL;; } ; /*^compute */ /*_.PAIR_TAIL__V27*/ meltfptr[24] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6048:/ compute"); /*_.CURPAIR__V20*/ meltfptr[19] = /*_.SETQ___V28*/ meltfptr[25] = /*_.PAIR_TAIL__V27*/ meltfptr[24];; MELT_LOCATION ("warmelt-macro.melt:6049:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_LABEL_BINDING */ meltfrout->tabval[4])), (4), "CLASS_LABEL_BINDING"); /*_.INST__V31*/ meltfptr[30] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @BINDER", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V31*/ meltfptr[30])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V31*/ meltfptr[30]), (0), ( /*_.XLABNAM__V22*/ meltfptr[21]), "BINDER"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LABIND_LOC", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V31*/ meltfptr[30])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V31*/ meltfptr[30]), (1), ( /*_.LOC__V18*/ meltfptr[17]), "LABIND_LOC"); ; /*_.LABIND__V30*/ meltfptr[29] = /*_.INST__V31*/ meltfptr[30];; MELT_LOCATION ("warmelt-macro.melt:6052:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.LABIND__V30*/ meltfptr[29]; /*_.PUT_ENV__V32*/ meltfptr[31] = melt_apply ((meltclosure_ptr_t) (( /*!PUT_ENV */ meltfrout->tabval[5])), (melt_ptr_t) ( /*_.NEWENV__V23*/ meltfptr[22]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6053:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:6056:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V35*/ meltfptr[34] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_8 */ meltfrout-> tabval[8])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V35*/ meltfptr[34])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V35*/ meltfptr[34])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V23*/ meltfptr[22]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V35*/ meltfptr[34]))); ((meltclosure_ptr_t) /*_.LAMBDA___V35*/ meltfptr[34])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V34*/ meltfptr[33] = /*_.LAMBDA___V35*/ meltfptr[34];; MELT_LOCATION ("warmelt-macro.melt:6053:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[7]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V34*/ meltfptr[33]; /*_.BODYTUP__V36*/ meltfptr[35] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[6])), (melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6058:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_FOREVER */ meltfrout->tabval[9])), (4), "CLASS_SOURCE_FOREVER"); /*_.INST__V38*/ meltfptr[37] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V38*/ meltfptr[37])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V38*/ meltfptr[37]), (1), ( /*_.LOC__V18*/ meltfptr[17]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLABEL_BIND", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V38*/ meltfptr[37])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V38*/ meltfptr[37]), (2), ( /*_.LABIND__V30*/ meltfptr[29]), "SLABEL_BIND"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SFRV_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V38*/ meltfptr[37])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V38*/ meltfptr[37]), (3), ( /*_.BODYTUP__V36*/ meltfptr[35]), "SFRV_BODY"); ; /*_.FORR__V37*/ meltfptr[36] = /*_.INST__V38*/ meltfptr[37];; MELT_LOCATION ("warmelt-macro.melt:6063:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.FORR__V37*/ meltfptr[36];; { MELT_LOCATION ("warmelt-macro.melt:6063:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V33*/ meltfptr[32] = /*_.RETURN___V39*/ meltfptr[38];; MELT_LOCATION ("warmelt-macro.melt:6053:/ clear"); /*clear *//*_.LAMBDA___V34*/ meltfptr[33] = 0; /*^clear */ /*clear *//*_.BODYTUP__V36*/ meltfptr[35] = 0; /*^clear */ /*clear *//*_.FORR__V37*/ meltfptr[36] = 0; /*^clear */ /*clear *//*_.RETURN___V39*/ meltfptr[38] = 0; /*_.LET___V29*/ meltfptr[28] = /*_.LET___V33*/ meltfptr[32];; MELT_LOCATION ("warmelt-macro.melt:6049:/ clear"); /*clear *//*_.LABIND__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_.PUT_ENV__V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.LET___V33*/ meltfptr[32] = 0; /*_.LET___V16*/ meltfptr[14] = /*_.LET___V29*/ meltfptr[28];; MELT_LOCATION ("warmelt-macro.melt:6037:/ clear"); /*clear *//*_.CONT__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.LOC__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.CURPAIR__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.SLABNAM__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.XLABNAM__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.NEWENV__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_#IS_NOT_A__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V27*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.SETQ___V28*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.LET___V29*/ meltfptr[28] = 0; MELT_LOCATION ("warmelt-macro.melt:6032:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V16*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:6032:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[14] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_FOREVER", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_127_warmelt_macro_MEXPAND_FOREVER_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_127_warmelt_macro_MEXPAND_FOREVER */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_128_warmelt_macro_LAMBDA___35__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_128_warmelt_macro_LAMBDA___35___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_128_warmelt_macro_LAMBDA___35___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_128_warmelt_macro_LAMBDA___35___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6056:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:6056:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_128_warmelt_macro_LAMBDA___35___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_128_warmelt_macro_LAMBDA___35__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_129_warmelt_macro_MEXPAND_EXIT (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_129_warmelt_macro_MEXPAND_EXIT_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_129_warmelt_macro_MEXPAND_EXIT_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 41 melt_ptr_t mcfr_varptr[41]; #define MELTFRAM_NBVARNUM 7 long mcfr_varnum[7]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_129_warmelt_macro_MEXPAND_EXIT_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 41; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 41; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_EXIT", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6075:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6076:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:6076:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:6076:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 6076; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_exit sexpr="; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6076:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:6076:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6076:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6077:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:6077:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6077:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6077) ? (6077) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6077:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6078:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:6078:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6078:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6078) ? (6078) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6078:/ clear"); /*clear *//*_#IS_OBJECT__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6079:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:6079:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6079:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6079) ? (6079) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6079:/ clear"); /*clear *//*_#IS_CLOSURE__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:6080:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V17*/ meltfptr[16] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:6081:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V18*/ meltfptr[17] = slot; }; ; /*_.LIST_FIRST__V19*/ meltfptr[18] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V17*/ meltfptr[16])));; /*^compute */ /*_.CURPAIR__V20*/ meltfptr[19] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V19*/ meltfptr[18])));; /*^compute */ /*_.SLABNAM__V21*/ meltfptr[20] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6084:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.XLABNAM__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.SLABNAM__V21*/ meltfptr[20]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6085:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { /*_.NEWENV__V23*/ meltfptr[22] = melt_apply ((meltclosure_ptr_t) (( /*!FRESH_ENV */ meltfrout->tabval[2])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (""), (union meltparam_un *) 0, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6087:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L6*/ meltfnum[0] = !melt_is_instance_of ((melt_ptr_t) ( /*_.XLABNAM__V22*/ meltfptr[21]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout-> tabval[3])));; MELT_LOCATION ("warmelt-macro.melt:6087:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:6089:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("missing label in EXIT"), (melt_ptr_t) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6090:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = ( /*nil */ NULL);; { MELT_LOCATION ("warmelt-macro.melt:6090:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:6088:/ quasiblock"); /*_.PROGN___V26*/ meltfptr[25] = /*_.RETURN___V25*/ meltfptr[24];; /*^compute */ /*_.IF___V24*/ meltfptr[23] = /*_.PROGN___V26*/ meltfptr[25];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6087:/ clear"); /*clear *//*_.RETURN___V25*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.PROGN___V26*/ meltfptr[25] = 0; } ; } else { /*^cond.else */ /*_.IF___V24*/ meltfptr[23] = NULL;; } ; /*^compute */ /*_.PAIR_TAIL__V27*/ meltfptr[24] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6091:/ compute"); /*_.CURPAIR__V20*/ meltfptr[19] = /*_.SETQ___V28*/ meltfptr[25] = /*_.PAIR_TAIL__V27*/ meltfptr[24];; MELT_LOCATION ("warmelt-macro.melt:6092:/ quasiblock"); /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[1]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.XLABNAM__V22*/ meltfptr[21]; /*_.LABIND__V30*/ meltfptr[29] = melt_apply ((meltclosure_ptr_t) (( /*!FIND_ENV */ meltfrout->tabval[4])), (melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2]), (MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6093:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L7*/ meltfnum[1] = !melt_is_instance_of ((melt_ptr_t) ( /*_.LABIND__V30*/ meltfptr[29]), (melt_ptr_t) (( /*!CLASS_LABEL_BINDING */ meltfrout->tabval[5])));; MELT_LOCATION ("warmelt-macro.melt:6093:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L7*/ meltfnum[1]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { MELT_LOCATION ("warmelt-macro.melt:6096:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.XLABNAM__V22*/ meltfptr[21]), 1, "NAMED_NAME"); /*_.NAMED_NAME__V32*/ meltfptr[31] = slot; }; ; { MELT_LOCATION ("warmelt-macro.melt:6095:/ locexp"); melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("bad label in EXIT"), (melt_ptr_t) ( /*_.NAMED_NAME__V32*/ meltfptr[31])); } ; MELT_LOCATION ("warmelt-macro.melt:6097:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = ( /*nil */ NULL);; { MELT_LOCATION ("warmelt-macro.melt:6097:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; MELT_LOCATION ("warmelt-macro.melt:6094:/ quasiblock"); /*_.PROGN___V34*/ meltfptr[33] = /*_.RETURN___V33*/ meltfptr[32];; /*^compute */ /*_.IF___V31*/ meltfptr[30] = /*_.PROGN___V34*/ meltfptr[33];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6093:/ clear"); /*clear *//*_.NAMED_NAME__V32*/ meltfptr[31] = 0; /*^clear */ /*clear *//*_.RETURN___V33*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.PROGN___V34*/ meltfptr[33] = 0; } ; } else { /*^cond.else */ /*_.IF___V31*/ meltfptr[30] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:6098:/ quasiblock"); MELT_LOCATION ("warmelt-macro.melt:6101:/ quasiblock"); /*^newclosure */ /*newclosure *//*_.LAMBDA___V37*/ meltfptr[33] = (melt_ptr_t) meltgc_new_closure ((meltobject_ptr_t) (((melt_ptr_t) (MELT_PREDEF (DISCR_CLOSURE)))), (meltroutine_ptr_t) (( /*!konst_8 */ meltfrout-> tabval[8])), (3)); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 0 >= 0 && 0 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33]))); ((meltclosure_ptr_t) /*_.LAMBDA___V37*/ meltfptr[33])->tabval[0] = (melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 1 >= 0 && 1 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33]))); ((meltclosure_ptr_t) /*_.LAMBDA___V37*/ meltfptr[33])->tabval[1] = (melt_ptr_t) ( /*_.NEWENV__V23*/ meltfptr[22]); ; /*^putclosedv */ /*putclosv */ melt_assertmsg ("putclosv checkclo", melt_magic_discr ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33])) == MELTOBMAG_CLOSURE); melt_assertmsg ("putclosv checkoff", 2 >= 0 && 2 < melt_closure_size ((melt_ptr_t) ( /*_.LAMBDA___V37*/ meltfptr[33]))); ((meltclosure_ptr_t) /*_.LAMBDA___V37*/ meltfptr[33])->tabval[2] = (melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4]); ; /*_.LAMBDA___V36*/ meltfptr[32] = /*_.LAMBDA___V37*/ meltfptr[33];; MELT_LOCATION ("warmelt-macro.melt:6098:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[2]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*!DISCR_MULTIPLE */ meltfrout->tabval[7]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.LAMBDA___V36*/ meltfptr[32]; /*_.BODYTUP__V38*/ meltfptr[37] = melt_apply ((meltclosure_ptr_t) (( /*!PAIRLIST_TO_MULTIPLE */ meltfrout->tabval[6])), (melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19]), (MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; MELT_LOCATION ("warmelt-macro.melt:6103:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*^rawallocobj */ /*rawallocobj */ { melt_ptr_t newobj = 0; melt_raw_object_create (newobj, (melt_ptr_t) (( /*!CLASS_SOURCE_EXIT */ meltfrout->tabval[9])), (4), "CLASS_SOURCE_EXIT"); /*_.INST__V40*/ meltfptr[39] = newobj; }; ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @LOCA_LOCATION", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V40*/ meltfptr[39])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V40*/ meltfptr[39]), (1), ( /*_.LOC__V18*/ meltfptr[17]), "LOCA_LOCATION"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SLABEL_BIND", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V40*/ meltfptr[39])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V40*/ meltfptr[39]), (2), ( /*_.LABIND__V30*/ meltfptr[29]), "SLABEL_BIND"); ; /*^putslot */ /*putslot */ melt_assertmsg ("putslot checkobj @SEXI_BODY", melt_magic_discr ((melt_ptr_t) ( /*_.INST__V40*/ meltfptr[39])) == MELTOBMAG_OBJECT); melt_putfield_object (( /*_.INST__V40*/ meltfptr[39]), (3), ( /*_.BODYTUP__V38*/ meltfptr[37]), "SEXI_BODY"); ; /*_.EXR__V39*/ meltfptr[38] = /*_.INST__V40*/ meltfptr[39];; MELT_LOCATION ("warmelt-macro.melt:6108:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.EXR__V39*/ meltfptr[38];; { MELT_LOCATION ("warmelt-macro.melt:6108:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*_.LET___V35*/ meltfptr[31] = /*_.RETURN___V41*/ meltfptr[40];; MELT_LOCATION ("warmelt-macro.melt:6098:/ clear"); /*clear *//*_.LAMBDA___V36*/ meltfptr[32] = 0; /*^clear */ /*clear *//*_.BODYTUP__V38*/ meltfptr[37] = 0; /*^clear */ /*clear *//*_.EXR__V39*/ meltfptr[38] = 0; /*^clear */ /*clear *//*_.RETURN___V41*/ meltfptr[40] = 0; /*_.LET___V29*/ meltfptr[28] = /*_.LET___V35*/ meltfptr[31];; MELT_LOCATION ("warmelt-macro.melt:6092:/ clear"); /*clear *//*_.LABIND__V30*/ meltfptr[29] = 0; /*^clear */ /*clear *//*_#IS_NOT_A__L7*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IF___V31*/ meltfptr[30] = 0; /*^clear */ /*clear *//*_.LET___V35*/ meltfptr[31] = 0; /*_.LET___V16*/ meltfptr[14] = /*_.LET___V29*/ meltfptr[28];; MELT_LOCATION ("warmelt-macro.melt:6080:/ clear"); /*clear *//*_.CONT__V17*/ meltfptr[16] = 0; /*^clear */ /*clear *//*_.LOC__V18*/ meltfptr[17] = 0; /*^clear */ /*clear *//*_.LIST_FIRST__V19*/ meltfptr[18] = 0; /*^clear */ /*clear *//*_.CURPAIR__V20*/ meltfptr[19] = 0; /*^clear */ /*clear *//*_.SLABNAM__V21*/ meltfptr[20] = 0; /*^clear */ /*clear *//*_.XLABNAM__V22*/ meltfptr[21] = 0; /*^clear */ /*clear *//*_.NEWENV__V23*/ meltfptr[22] = 0; /*^clear */ /*clear *//*_#IS_NOT_A__L6*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V24*/ meltfptr[23] = 0; /*^clear */ /*clear *//*_.PAIR_TAIL__V27*/ meltfptr[24] = 0; /*^clear */ /*clear *//*_.SETQ___V28*/ meltfptr[25] = 0; /*^clear */ /*clear *//*_.LET___V29*/ meltfptr[28] = 0; MELT_LOCATION ("warmelt-macro.melt:6075:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.LET___V16*/ meltfptr[14];; { MELT_LOCATION ("warmelt-macro.melt:6075:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.IFCPP___V6*/ meltfptr[5] = 0; /*^clear */ /*clear *//*_.IFCPP___V10*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.IFCPP___V12*/ meltfptr[7] = 0; /*^clear */ /*clear *//*_.IFCPP___V14*/ meltfptr[12] = 0; /*^clear */ /*clear *//*_.LET___V16*/ meltfptr[14] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("MEXPAND_EXIT", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_129_warmelt_macro_MEXPAND_EXIT_melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_129_warmelt_macro_MEXPAND_EXIT */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_130_warmelt_macro_LAMBDA___36__ (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_130_warmelt_macro_LAMBDA___36___melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_130_warmelt_macro_LAMBDA___36___st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 3 melt_ptr_t mcfr_varptr[3]; /*no varnum*/ #define MELTFRAM_NBVARNUM /*none*/0 /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_130_warmelt_macro_LAMBDA___36___st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 3; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 3; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("LAMBDA_", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6101:/ getarg"); /*_.E__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & ( /*~NEWENV */ meltfclos->tabval[1]); /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & ( /*~MEXPANDER */ meltfclos->tabval[0]); /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & ( /*~MODCTX */ meltfclos->tabval[2]); /*_.MEXPANDER__V3*/ meltfptr[2] = melt_apply ((meltclosure_ptr_t) (( /*~MEXPANDER */ meltfclos->tabval[0])), (melt_ptr_t) ( /*_.E__V2*/ meltfptr[1]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*^quasiblock */ /*_.RETVAL___V1*/ meltfptr[0] = /*_.MEXPANDER__V3*/ meltfptr[2];; { MELT_LOCATION ("warmelt-macro.melt:6101:/ locexp"); /*ochecknores compilobj_nrep_return */ #if MELT_HAVE_DEBUG if (meltxresdescr_ && meltxresdescr_[0] && meltxrestab_) melt_warn_for_no_expected_secondary_results (); /* we warned when secondary results are expected but not returned. */ #endif /*MELT_HAVE_DEBUG */ ; } ; /*^finalreturn */ ; /*finalret */ goto labend_rout; /*epilog */ /*^clear */ /*clear *//*_.MEXPANDER__V3*/ meltfptr[2] = 0; } ; goto labend_rout; labend_rout: melt_trace_end ("LAMBDA_", meltcallcount); melt_blocklevel_signals = current_blocklevel_signals_meltrout_130_warmelt_macro_LAMBDA___36___melt; melt_topframe = (struct melt_callframe_st *) meltfram__.mcfr_prev; return (melt_ptr_t) ( /*_.RETVAL___V1*/ meltfptr[0]); #undef meltcallcount #undef meltfram__ #undef MELTFRAM_NBVARNUM #undef MELTFRAM_NBVARPTR } /*end meltrout_130_warmelt_macro_LAMBDA___36__ */ melt_ptr_t MELT_MODULE_VISIBILITY meltrout_131_warmelt_macro_MEXPAND_AGAIN (meltclosure_ptr_t meltclosp_, melt_ptr_t meltfirstargp_, const melt_argdescr_cell_t meltxargdescr_[], union meltparam_un * meltxargtab_, const melt_argdescr_cell_t meltxresdescr_[], union meltparam_un * meltxrestab_) { long current_blocklevel_signals_meltrout_131_warmelt_macro_MEXPAND_AGAIN_melt = melt_blocklevel_signals; #if MELT_HAVE_DEBUG 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_131_warmelt_macro_MEXPAND_AGAIN_st { int mcfr_nbvar; #if MELT_HAVE_DEBUG const char *mcfr_flocs; #else /*!MELT_HAVE_DEBUG */ const char *mcfr_unusedflocs; #endif /*MELT_HAVE_DEBUG */ struct meltclosure_st *mcfr_clos; struct excepth_melt_st *mcfr_exh; struct melt_callframe_st *mcfr_prev; #define MELTFRAM_NBVARPTR 44 melt_ptr_t mcfr_varptr[44]; #define MELTFRAM_NBVARNUM 9 long mcfr_varnum[9]; /*others*/ long _spare_; } *meltframptr_ = 0, meltfram__; #define meltframe meltfram__ if (MELT_UNLIKELY (meltxargdescr_ == MELTPAR_MARKGGC)) { /*mark for ggc */ int ix = 0; meltframptr_ = (struct frame_meltrout_131_warmelt_macro_MEXPAND_AGAIN_st *) meltfirstargp_; /* use arguments output_curframe_declstruct_init */ (void) meltclosp_; (void) meltfirstargp_; (void) meltxargdescr_; (void) meltxargtab_; (void) meltxresdescr_; (void) meltxrestab_; gt_ggc_mx_melt_un (meltframptr_->mcfr_clos); for (ix = 0; ix < 44; ix++) if (meltframptr_->mcfr_varptr[ix]) gt_ggc_mx_melt_un (meltframptr_->mcfr_varptr[ix]); return NULL; } /*end markggc */ ; memset (&meltfram__, 0, sizeof (meltfram__)); meltfram__.mcfr_nbvar = 44; meltfram__.mcfr_clos = meltclosp_; meltfram__.mcfr_prev = (struct melt_callframe_st *) melt_topframe; melt_topframe = (struct melt_callframe_st *) &meltfram__; melt_trace_start ("MEXPAND_AGAIN", meltcallcount); /*getargs*/ /*getarg#0 */ MELT_LOCATION ("warmelt-macro.melt:6118:/ getarg"); /*_.SEXPR__V2*/ meltfptr[1] = (melt_ptr_t) meltfirstargp_; /*getarg#1 */ /*^getarg */ if (meltxargdescr_[0] != MELTBPAR_PTR) goto lab_endgetargs; /*_.ENV__V3*/ meltfptr[2] = (meltxargtab_[0].meltbp_aptr) ? (*(meltxargtab_[0].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.ENV__V3*/ meltfptr[2])) != NULL); /*getarg#2 */ /*^getarg */ if (meltxargdescr_[1] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MEXPANDER__V4*/ meltfptr[3] = (meltxargtab_[1].meltbp_aptr) ? (*(meltxargtab_[1].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) != NULL); /*getarg#3 */ /*^getarg */ if (meltxargdescr_[2] != MELTBPAR_PTR) goto lab_endgetargs; /*_.MODCTX__V5*/ meltfptr[4] = (meltxargtab_[2].meltbp_aptr) ? (*(meltxargtab_[2].meltbp_aptr)) : NULL; gcc_assert (melt_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) != NULL); ; goto lab_endgetargs; lab_endgetargs:; /*body*/ /*^block*/ /*anyblock*/ { #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6119:/ cppif.then"); /*^block */ /*anyblock */ { { /*^locexp */ /*melt_increment_dbgcounter */ #if MELT_HAVE_DEBUG melt_dbgcounter++; #endif ; } ; /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#MELT_NEED_DBG__L1*/ meltfnum[0] = /*MELT_NEED_DBG */ #if MELT_HAVE_DEBUG ( /*melt_need_dbg */ melt_need_debug ((int) 0)) #else 0 /* no melt_need_dbg */ #endif /*MELT_HAVE_DEBUG */ ;; MELT_LOCATION ("warmelt-macro.melt:6119:/ cond"); /*cond */ if ( /*_#MELT_NEED_DBG__L1*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = #ifdef meltcallcount meltcallcount /* the_meltcallcount */ #else 0L #endif /* meltcallcount the_meltcallcount */ ;; MELT_LOCATION ("warmelt-macro.melt:6119:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[5]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_long = /*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1]; /*^apply.arg */ argtab[1].meltbp_cstring = "warmelt-macro.melt"; /*^apply.arg */ argtab[2].meltbp_long = 6119; /*^apply.arg */ argtab[3].meltbp_cstring = "mexpand_again sexpr"; /*^apply.arg */ argtab[4].meltbp_aptr = (melt_ptr_t *) & /*_.SEXPR__V2*/ meltfptr[1]; /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = melt_apply ((meltclosure_ptr_t) (( /*!MELT_DEBUG_FUN */ meltfrout->tabval[0])), (melt_ptr_t) (( /*nil */ NULL)), (MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_LONG MELTBPARSTR_CSTRING MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.IF___V7*/ meltfptr[6] = /*_.MELT_DEBUG_FUN__V8*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6119:/ clear"); /*clear *//*_#THE_MELTCALLCOUNT__L2*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.MELT_DEBUG_FUN__V8*/ meltfptr[7] = 0; } ; } else { /*^cond.else */ /*_.IF___V7*/ meltfptr[6] = NULL;; } ; MELT_LOCATION ("warmelt-macro.melt:6119:/ quasiblock"); /*_.PROGN___V9*/ meltfptr[7] = /*_.IF___V7*/ meltfptr[6];; /*^compute */ /*_.IFCPP___V6*/ meltfptr[5] = /*_.PROGN___V9*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6119:/ clear"); /*clear *//*_#MELT_NEED_DBG__L1*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IF___V7*/ meltfptr[6] = 0; /*^clear */ /*clear *//*_.PROGN___V9*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V6*/ meltfptr[5] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6120:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_A__L3*/ meltfnum[1] = melt_is_instance_of ((melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), (melt_ptr_t) (( /*!CLASS_SEXPR */ meltfrout-> tabval[1])));; MELT_LOCATION ("warmelt-macro.melt:6120:/ cond"); /*cond */ if ( /*_#IS_A__L3*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V11*/ meltfptr[7] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6120:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check sexpr"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6120) ? (6120) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V10*/ meltfptr[6] = /*_.IFELSE___V11*/ meltfptr[7];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6120:/ clear"); /*clear *//*_#IS_A__L3*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V11*/ meltfptr[7] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V10*/ meltfptr[6] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6121:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_CLOSURE__L4*/ meltfnum[0] = (melt_magic_discr ((melt_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3])) == MELTOBMAG_CLOSURE);; MELT_LOCATION ("warmelt-macro.melt:6121:/ cond"); /*cond */ if ( /*_#IS_CLOSURE__L4*/ meltfnum[0]) /*then */ { /*^cond.then */ /*_.IFELSE___V13*/ meltfptr[12] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6121:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check mexpander"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6121) ? (6121) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V12*/ meltfptr[7] = /*_.IFELSE___V13*/ meltfptr[12];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6121:/ clear"); /*clear *//*_#IS_CLOSURE__L4*/ meltfnum[0] = 0; /*^clear */ /*clear *//*_.IFELSE___V13*/ meltfptr[12] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V12*/ meltfptr[7] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; #if MELT_HAVE_DEBUG MELT_LOCATION ("warmelt-macro.melt:6122:/ cppif.then"); /*^block */ /*anyblock */ { /*^checksignal */ MELT_CHECK_SIGNAL (); ; /*_#IS_OBJECT__L5*/ meltfnum[1] = (melt_magic_discr ((melt_ptr_t) ( /*_.MODCTX__V5*/ meltfptr[4])) == MELTOBMAG_OBJECT);; MELT_LOCATION ("warmelt-macro.melt:6122:/ cond"); /*cond */ if ( /*_#IS_OBJECT__L5*/ meltfnum[1]) /*then */ { /*^cond.then */ /*_.IFELSE___V15*/ meltfptr[14] = ( /*nil */ NULL);; } else { MELT_LOCATION ("warmelt-macro.melt:6122:/ cond.else"); /*^block */ /*anyblock */ { { /*^locexp */ melt_assert_failed (("check modctx"), ("warmelt-macro.melt") ? ("warmelt-macro.melt") : __FILE__, (6122) ? (6122) : __LINE__, __FUNCTION__); ; } ; /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; /*epilog */ } ; } ; /*^compute */ /*_.IFCPP___V14*/ meltfptr[12] = /*_.IFELSE___V15*/ meltfptr[14];; /*epilog */ MELT_LOCATION ("warmelt-macro.melt:6122:/ clear"); /*clear *//*_#IS_OBJECT__L5*/ meltfnum[1] = 0; /*^clear */ /*clear *//*_.IFELSE___V15*/ meltfptr[14] = 0; } #else /*MELT_HAVE_DEBUG */ /*^cppif.else */ /*_.IFCPP___V14*/ meltfptr[12] = ( /*nil */ NULL); #endif /*MELT_HAVE_DEBUG */ ; MELT_LOCATION ("warmelt-macro.melt:6123:/ quasiblock"); /*^getslot */ { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 2, "SEXP_CONTENTS"); /*_.CONT__V17*/ meltfptr[16] = slot; }; ; MELT_LOCATION ("warmelt-macro.melt:6124:/ getslot"); { melt_ptr_t slot = 0; melt_object_get_field (slot, (melt_ptr_t) ( /*_.SEXPR__V2*/ meltfptr[1]), 1, "LOCA_LOCATION"); /*_.LOC__V18*/ meltfptr[17] = slot; }; ; /*_.LIST_FIRST__V19*/ meltfptr[18] = (melt_list_first ((melt_ptr_t) ( /*_.CONT__V17*/ meltfptr[16])));; /*^compute */ /*_.CURPAIR__V20*/ meltfptr[19] = (melt_pair_tail ((melt_ptr_t) ( /*_.LIST_FIRST__V19*/ meltfptr[18])));; /*^compute */ /*_.SLABNAM__V21*/ meltfptr[20] = (melt_pair_head ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6127:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*^apply */ /*apply */ { union meltparam_un argtab[3]; memset (&argtab, 0, sizeof (argtab)); /*^apply.arg */ argtab[0].meltbp_aptr = (melt_ptr_t *) & /*_.ENV__V3*/ meltfptr[2]; /*^apply.arg */ argtab[1].meltbp_aptr = (melt_ptr_t *) & /*_.MEXPANDER__V4*/ meltfptr[3]; /*^apply.arg */ argtab[2].meltbp_aptr = (melt_ptr_t *) & /*_.MODCTX__V5*/ meltfptr[4]; /*_.XLABNAM__V22*/ meltfptr[21] = melt_apply ((meltclosure_ptr_t) ( /*_.MEXPANDER__V4*/ meltfptr[3]), (melt_ptr_t) ( /*_.SLABNAM__V21*/ meltfptr[20]), (MELTBPARSTR_PTR MELTBPARSTR_PTR MELTBPARSTR_PTR ""), argtab, "", (union meltparam_un *) 0); } ; /*_.PAIR_TAIL__V23*/ meltfptr[22] = (melt_pair_tail ((melt_ptr_t) ( /*_.CURPAIR__V20*/ meltfptr[19])));; MELT_LOCATION ("warmelt-macro.melt:6129:/ compute"); /*_.CURPAIR__V20*/ meltfptr[19] = /*_.SETQ___V24*/ meltfptr[23] = /*_.PAIR_TAIL__V23*/ meltfptr[22];; MELT_LOCATION ("warmelt-macro.melt:6130:/ checksignal"); MELT_CHECK_SIGNAL (); ; /*_#IS_NOT_A__L6*/ meltfnum[0] = !melt_is_instance_of ((melt_ptr_t) ( /*_.XLABNAM__V22*/ meltfptr[21]), (melt_ptr_t) (( /*!CLASS_SYMBOL */ meltfrout-> tabval[2])));; MELT_LOCATION ("warmelt-macro.melt:6130:/ cond"); /*cond */ if ( /*_#IS_NOT_A__L6*/ meltfnum[0]) /*then */ { /*^cond.then */ /*^block */ /*anyblock */ { { MELT_LOCATION ("warmelt-macro.melt:6132:/ locexp"); /* error_plain */ melt_error_str ((melt_ptr_t) ( /*_.LOC__V18*/ meltfptr[17]), ("bad label in (AGAIN